Bitburner source code.
Go to file
David Walker 21ffa5322f
MISC: Refactor coding contracts for type safety (#1653)
* MISC: Refactor coding contracts for type safety

This refactor does three things without any behavior changes:
* Adds type safety by introducing generic type parameters to the coding
  contract definitions, so they can use concrete types instead of
  "unknown". This also eliminates a bunch of boilerplate casts.
* Removes the unneeded CodingContractType class. We can use the metadata
  type directly.
* Introduces a new hidden state to coding contracts. Instead of
  generating and storing the data (which is what is shown to the user as
  the problem's input), the state is stored instead. This allows
  problems to (for instance) generate the answer up-front, and check the
  solution directly against the answer, instead of needing to embed a
  solver in the problem (which can then easily be ripped from the source
  code).

For compatibility, state == data by default. I plan to make use of this
feature in a followup, but it is unused currently.
2024-09-15 23:53:10 -07:00
.github CI: Update Node version (#1578) 2024-08-15 13:08:21 -07:00
assets Merge pull request #2820 from MartinFournier/chore/declutter 2022-01-26 12:56:37 -05:00
dist BUGFIX: Use mathjax from npm, rather than vendored copy. (#1491) 2024-07-18 16:27:01 -07:00
doc DOCS: Adding information to CONTRIBUTING.md (#1049) 2024-01-23 16:18:00 -05:00
electron ELECTRON: Update Electron to v29 (#1556) 2024-08-08 18:10:55 -07:00
lore Fix tons of typos 2022-10-09 01:25:31 -04:00
markdown IPVGO: Prevent issues caused by resetting the board while the go AI is in flight (#1608) 2024-09-07 18:33:49 -07:00
src MISC: Refactor coding contracts for type safety (#1653) 2024-09-15 23:53:10 -07:00
test MISC: Refactor BLADEBURNER Identifier Lookup (#1646) 2024-09-14 17:39:18 -07:00
tools EDITOR: Provide type definitions for React and ReactDOM in in-game editor. (#1458) 2024-07-07 00:08:33 -07:00
.browserslistrc update browserlist 2022-04-12 14:59:53 -04:00
.dockerignore Add basic docker support for development 2021-05-10 08:54:25 -04:00
.editorconfig fix editorconfig for markdown 2023-07-27 06:47:55 -05:00
.eslintignore Change tests 2023-02-04 07:42:35 -05:00
.eslintrc.js MISC: Add configuration to eslintrc to fix the warning thrown when linting (#814) 2023-09-19 12:24:12 -04:00
.git_blame_ignore_revs MISC: Rename an aug (#1218) 2024-04-23 20:40:12 -04:00
.gitattributes Allow drag on character overview 2022-01-10 07:37:01 -05:00
.gitignore BUGFIX: Use mathjax from npm, rather than vendored copy. (#1491) 2024-07-18 16:27:01 -07:00
.nojekyll Disable Jekyll in GitHub Pages builds 2021-12-20 07:26:20 -05:00
.npmrc Add npm version support to build releases 2022-04-07 07:50:47 -04:00
.prettierignore DEV: improve "git blame" for contributors (#1092) 2024-03-28 21:28:05 -04:00
.prettierrc Allow drag on character overview 2022-01-10 07:37:01 -05:00
.readthedocs.yaml MISC: Readthedocs configuration that redirects to this repo (#833) 2023-10-24 05:11:14 -04:00
api-extractor.json DOCUMENTATION: Fix errors and warnings shown by api-extractor (#1566) 2024-08-13 15:57:15 -07:00
babel.config.js fix sleeve memory bug 2021-09-08 23:47:34 -04:00
changelog.md v2.4.0 2023-07-30 22:08:36 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2022-03-07 18:22:26 -05:00
favicon.ico fix build 2022-01-27 20:44:50 -05:00
FixJSDOMEnvironment.ts MISC: Use structuredClone() for deep cloning (#1077) 2024-02-10 04:10:19 -05:00
jest.config.js JEST: Test faster by removing barrels (#1645) 2024-09-09 18:36:00 -07:00
jest.polyfills.js CORPORATION: Add documentation (#1121) 2024-03-04 03:10:18 -08:00
license.txt Change license to Apache 2 with Commons Clause 2022-03-08 02:42:43 -08:00
package-lock.json JEST: Test faster by removing barrels (#1645) 2024-09-09 18:36:00 -07:00
package.json JEST: Test faster by removing barrels (#1645) 2024-09-09 18:36:00 -07:00
README.md DOC: Update README.md (#1503) 2024-07-19 17:41:59 -07:00
requirements.txt Massive doc update 2023-01-06 14:43:09 +02:00
tsconfig.json CODE: Enable es2023 features (#870) 2023-10-23 04:49:12 -04:00
webpack.config.js MISC: Add some more types to webpack.config.js. (#1511) 2024-07-26 02:17:59 -07:00

Bitburner

Join Discord

Build Status

Bitburner is a programming-based incremental game that revolves around hacking and cyberpunk themes. The game can be played at https://bitburner-official.github.io/ (release build), https://bitburner-official.github.io/bitburner-src/ (development build), or installed through Steam. The location of the release build may change in the near future.

See the frequently asked questions for more information . To discuss the game or get help, join the official Discord server.

Documentation

The game's official documentation can be found in-game.

The in-game documentation is generated from the TypeScript definitions.

Anyone is welcome to contribute to the documentation by editing the source files and then making a pull request with your contributions. For further guidance, please refer to the "As A Documenter" section of CONTRIBUTING.

Contribution

There are many ways to contribute to the game. It can be as simple as fixing a typo, correcting a bug, or improving the UI. For guidance on doing so, please refer to the CONTRIBUTING document.

You will retain all ownership of the Copyright of any contributions you make, and will have the same rights to use or license your contributions. By submitting a pull request you agree to grant me perpetual, worldwide, non-exclusive, transferable, royalty-free, and irrevocable rights to use, publish, and distribute your contributions to the project. A formal Contributor's License Agreement will be drawn up in the future.

If you would like to make significant contributions to the project as a collaborator, please reach out in #suggestions or #development on Discord to help coordinate the effort.