Commit Graph

38 Commits

Author SHA1 Message Date
David Walker bedd398789 CCT: Add new Square Root coding contract (#1656)
To make this simpler, there is now a general-purpose util for getting
random bigints. I don't know if anyone else will use it, but it makes
this code simpler.

I also rejiggered the type-checking on contracts a little more, because
the previous refactor didn't quite catch all the mistakes that could be
made.
2024-09-30 20:18:58 -07:00
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
gmcew ad5e2b0fe5 CONTRACT: Remove " "s from .getDescription() result (#1525) 2024-07-27 15:42:28 -07:00
Aleksei Bezrodnov 1d5a735941 MISC: enforce eslint react checks (#640) 2023-06-26 22:29:44 -04:00
Snarling 9a0a843ffc TYPESAFETY: FactionName (#644) 2023-06-25 22:53:35 -04:00
Snarling 6732549196 ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling ebae35b1fb CODEBASE: Expand lint rules, and Aliases are stored as maps (#501) 2023-05-05 03:55:59 -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 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
Olivier Gagnon f6f023eeb4 Fix tons of typos 2022-10-09 01:25:31 -04:00
Snarling aa80cf6451 See description
Reverted ToastVariant back to an enum internally. Still exposed to player as just possible strings.
Changed all 1-line documentation comments to actually be 1-line. Moved some because they were not providing documentation for the thing they were trying to.
2022-10-04 06:40:10 -04:00
Snarling 50f14b4f58 Commit1 2022-10-03 12:12:16 -04:00
Olivier Gagnon 1b90b42881 rm more any 2022-07-18 02:28:21 -04:00
Olivier Gagnon 6b630753f0 nuke some use of any 2022-07-14 19:00:10 -04:00
Olivier Gagnon 6b114fab7d remove unused stuff 2021-10-14 18:45:50 -04:00
Olivier Gagnon 4e8bb96f3f removing some of the classes 2021-10-01 13:08:37 -04:00
Olivier Gagnon 06f716c0fa moved a bunch of files 2021-09-25 14:42:57 -04:00
Olivier Gagnon 2922e42055 most terminal converted to ts 2021-09-16 18:10:28 -04:00
Olivier Gagnon 3df298e91e fix contract 2021-09-09 12:52:43 -04:00
Olivier Gagnon 2a13db39c7 fix sleeve memory bug 2021-09-08 23:47:34 -04:00
Olivier Gagnon a18bdd6afc prettify, sorry for the big ass commit 2021-09-04 19:09:30 -04:00
Olivier Gagnon 25f546c691 part 1 of converting gang to react 2021-08-15 12:09:43 -04:00
Olivier Gagnon 674ce17834 fix nearly all lint errors now 2021-05-29 14:48:56 -04:00
Olivier Gagnon 60d6d49c43 Vigilante Justice now reduces wanted by a percentage to help players stuck with very high wanted level. 2021-05-29 12:48:58 -04:00
Olivier Gagnon 7777c400a5 Make coding contract title click-to-copy 2021-05-03 19:46:04 -04:00
Olivier Gagnon d745150c45 all the lints 2021-05-01 03:17:31 -04:00
Olivier Gagnon 3fad505096 run auto fix lint 2021-04-29 23:52:56 -04:00
hydroflame 4e5ebcfe6f V0.51.3 (#845)
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.
2021-04-18 11:18:56 -04:00
Olivier Gagnon 79a06dd91c Character,Augmentations now display by how much the stats will increase. 2021-03-07 16:32:16 -05:00
danielyxie fef7aaba8f Adding more directory-related unit tests. Several more bug fixes and QoL improvements 2019-05-14 01:35:37 -07:00
danielyxie 585e1ac7aa Stock transactions can now influence forecast in addition to price. Several more minor bug/UI fixes 2019-05-01 15:20:14 -07:00
danielyxie 0d14cd6e7e Improved module import styling for all top-level src files 2019-04-14 02:07:29 -07:00
danielyxie 0e8872fad1 Added 6 new Coding Contracts. Added Coding Contract information to documentation. 2019-02-05 16:45:12 -08:00
danielyxie f4391b19bc Fixed various Coding Contract bugs. Added getContractType() to coding contract API 2018-10-09 11:56:22 -05:00
danielyxie eb1a7cf8a0 Fix linting issues 2018-10-01 19:51:32 -05:00
danielyxie f78f0ec1a7 Implemented Coding Contracts 2018-10-01 19:51:32 -05:00
danielyxie e714f1e6cd Rename ContractTypes -> CodingCOntractTypes. Begin Contract Generation code 2018-10-01 19:51:32 -05:00
danielyxie 420fd0c5ad write()/read() now work for script files. You can now use angled brackets in tprint() (and create DOM elements). Added CodingContract implementation 2018-10-01 19:51:32 -05:00