Commit Graph

232 Commits

Author SHA1 Message Date
Tom Prince
2f95d21503
UI: Sync UI updates to game updates. (#1512)
There are a bunch of React components that update at the same rate
that the game engine processes cycles. Rather than have each place
that does so start its own timer to update that often, add a new
react hook that triggers an update shortly after the engine completes
a cycle.
2024-08-01 23:57:43 -07:00
catloversg
783120c886
FEATURE: BitNode options (#1411) 2024-07-14 14:30:30 -07:00
catloversg
7a39a93fa9
MISC: Remove mention of re-sleeving (#1399) 2024-06-15 16:36:32 -07:00
catloversg
a354867fc4
MISC: Refactor code of traveling and going to location (#1365) 2024-06-08 13:52:10 -07:00
Caldwell
cb92643c7e
IMPROVEMENT: partial migration @mui/styles to tss-react (#1338) 2024-06-03 12:27:13 -04:00
catloversg
c2a56a6150
MISC: Refactor favor code (#1321) 2024-05-28 12:04:16 -07: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
adeilt
93b9a10e41
UI: Improve theme support. (#1079) 2024-02-15 23:51:07 -05:00
Caldwell
b79df29ef4
nerf n00dles (#1020)
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
2024-02-15 05:36:04 -08:00
Caldwell
4d551915b3
MISC: move server constants into their own constant (#1075) 2024-02-10 04:13:42 -05:00
Snarling
550829a1c3 Fix #944 merge errors 2023-12-27 04:35:58 -05:00
draughtnyan
ccf0aa4771
UI: 'Disable Text Effects' setting applies to "corrupted text" (#944) 2023-12-27 03:30:08 -05:00
Michael Ficocelli
7ef12a0323
BITNODE: IPvGO territory control strategy game (#934) 2023-12-26 11:45:27 -05:00
Jesse Clark
28ef5df880
COMPANY: Much better job location interface (#927) 2023-12-18 07:23:47 -05:00
Kelenius
da1b8533e0
Added "prev" and "next" buttons to job screen (#932) 2023-12-16 05:00:19 -05:00
Jesse Clark
902306530c
CORPORATION: Use accounting methods for all funds transactions (#949) 2023-12-07 21:22:21 -05:00
Kelenius
107b4e90e9
Changed message when buying tor router (#948) 2023-12-07 20:51:29 -05:00
missymae#2783
ff0118f2f4
UI: Update general devmenu page (#835) 2023-10-23 04:01:21 -04:00
alutman
1a052a7daf
API: Change singularity.applyToCompany() to use an enum for job field (#859) 2023-10-17 05:33:16 -04:00
missymae#2783
e1d2e12747
UI: Improve soft reset dialog, and always confirm soft resets (#809) 2023-09-17 16:30:10 -04:00
Snarling
e2655793f4
TYPESAFETY: CompanyName (#650) 2023-07-11 09:23:17 -04:00
Aleksei Bezrodnov
1d5a735941
MISC: enforce eslint react checks (#640) 2023-06-26 22:29:44 -04:00
Aleksei Bezrodnov
1af01401d9
UI: Correct behavior of "back" button on faction augs page
Plus router refactoring
2023-06-26 04:24:37 -04:00
Snarling
a4b826683e
TYPESAFETY: Strict internal typing for AugmentationName (#608) 2023-06-16 17:52:42 -04:00
Snarling
6732549196
ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling
2ae3ac52f1
CORPORATION: Corp changes prior to 2.3 finalization (#503) 2023-05-15 18:06:57 -04:00
Snarling
ebae35b1fb
CODEBASE: Expand lint rules, and Aliases are stored as maps (#501) 2023-05-05 03:55:59 -04:00
Snarling
0df984eea0
CODEBASE: Add Jsonable Map and Set types, move player.sourceFiles to a map (#473) 2023-04-18 03:19:45 -04:00
Snarling
6a6043c509
CODEBASE: Add custom useRerender hook (#359) 2023-02-11 13:22:55 -05:00
Snarling
b4074328ec
UI: Added new locale-aware and configurable number formatting (#354) 2023-02-11 13:18:50 -05:00
David Walker
8f2014ea6f BUGFIX: Fix rendering of GenericLocation
Fixes #316. Rollback of the change to GenericLocation made in the
previous PR, plus adding keys (instead) to address the original problem.
2023-01-09 20:02:26 -08:00
David Walker
0c2d402f0b
INFRA: Update everything except React (#312) 2023-01-08 02:36:55 -05:00
Snarling
dc0de2498b
Fix mathjax error (#287)
* Updated mathjax and better-react-mathjax
* Removed MathJaxWrapper. Per better-react-mathjax documentation, we were incorrectly including a new context for every equation using this wrapper.
* Wrapped entire game in a MathJaxContext at GameRoot.
2023-01-03 07:38:14 -05:00
Snarling
fb1f95c26e
VARIOUS: Various changes prior to release 2.2 (#271)
See PR #271 description
2022-12-29 20:28:53 -05:00
David Walker
8d793ea271
Internal refactoring of Router (#241) 2022-12-04 03:14:06 -05:00
Snarling
65cd14e33b
DOC: Add ns documentation for possible sleeve tasks (#217)
* Add specific types for sleeve tasks
* Moved LocationName enum to overall enums file
* Add LocationName enum to those provided to player
* remove trailing s on CompanyPosNames enum (now CompanyPosName, in line with LocationName)
* Also regenerated all ns documentation. This leads to an expected error when checking for generated files, because PRs should not normally touch markdown files. Also leads to a lint failure in generated file bitburner.d.ts
* also removed some exporting from NetscriptDefinitions.d.ts for anything that wasn't imported somewhere else.
2022-11-20 12:07:22 -05:00
Snarling
88d51e9a7e
MISC: A bunch of enums stuff. (#212)
* Some game enums moved to utils/enums. Others can eventually be moved there as well.
* findEnumMember function for performing fuzzy matching of player input with enum members, without needing separate fuzzy functions for every enum.
* Also used findEnumMember for safely loading save games (allows case changes in enum values)
* Changed capitalization on some enums.
* BREAKING: removed classGains work formulas function
* Split ClassType enum into UniversityClassType and GymType.
* Added universityGains and gymGains work formulas functions
* Provided the new split enums to the player on ns.enums.
2022-11-20 08:37:11 -05:00
Snarling
8e0e0eaa88
NETSCRIPT: ns.sleeve.getSleeve added. getPlayer and getSleeve can both be used for formulas. (#200)
* BREAKING CHANGE: Removed getSleeveStats and getSleeveInformation because this info is provided by getSleeve in a more usable form.
* BREAKING CHANGE: Removed tor, inBladeburner, and hasCorporation fields from ns.getPlayer. Functionality still exists via added functions ns.hasTorRouter, ns.corporation.hasCorporation, and ns.bladeburner.inBladeburner.
* Separated ns definitions for Person, Sleeve, and Player interfaces with both Player and Sleeve just extending Person.
Added getSleeve, which provides a Sleeve object similar to getPlayer.
* Renamed the sleeve ns layer's interface as sleeve lowercase because of name conflict. todo: May move all the ns layers interface names to lowercase for consistency
* Added ns.formulas.work.crimeSuccessChance and reworked to allow both sleeve and player calculations.
* Removed internal Person.getIntelligenceBonus function which was just a wrapper for calculateIntelligenceBonus. Any use of the former in formulas creates a conflict where ns-provided Person objects throw an error.
* Renamed helpers.player to helpers.person for netscript person validation. Reduced number of fields validated due to Person being a smaller interface.
* Fixed bug in bladeburner where Player multipliers and int were being used no matter which person was performing the task
* Fixed leak of Player.jobs at ns.getPlayer
* Person / Player / Sleeve classes now implement the netscript equivalent interfaces. Netscript helper for person no longer asserts that it's a real Person class member, only that it's a Person interface. Functions that use netscript persons have been changed to expect just a person interface to prevent needing this incorrect type assertion.
2022-11-09 07:26:26 -05:00
Snarling
9e869bc876
NETSCRIPT: Add ns.formulas.work.companyGains function (#195)
* added ns.formulas.work.companyGains.
* Removed Work/Formulas folder, added Work/Formulas.ts
* CompanyPosition.calculateJobPerformance now takes in a Person instead of taking in a full set of stats, and it takes INT into account.
* formulas.crimeGains takes in a person object.
* Renamed ns Player type to Person.
* added multWorkStats, which multiplies a WorkStats object with a multipliers object.
* Remove unused types in NetscriptDefinitons.d.ts
* reuse formulas code in other parts of game
* getSleeveInformation also returns skills

Co-authored-by: Alexey <alexey.kozhemiakin@gmail.com>
2022-11-06 17:27:04 -05:00
Snarling
d74c380e42
WIP: Crimes streamlining. (#138)
* streamline crimes

* Crimes object is now indexed by CrimeType enum instead of an entirely new set of keys that aren't used for anything else. This eliminated a lot of instances of iterating to find the right crime for a given CrimeType.
* Removed unused `None` CrimeType which allowed typing Crimes as a Record<CrimeType, Crime>.
* Added slums tooltip text as a crime property, to allow streamlining slums.
* Refactor slums location - removed repetitive code, rerenders 1/sec to update chances
* Fix bugged descriptive text when sleeve is committing a crime (was "is attempting to DRUGS", now uses correct text e.g. "to deal drugs").
* Remove unused and now unneeded NewCrimeType enum. Values were identical to existing CrimeType values after removing unused None.

* Add CrimeType enum in NetscriptDefinition.d.ts

* Also update broken ToastVariant type. Better support for enums in player scripts.
* Still todo is modifying some NS functions to expect CrimeType as input (rough crime names will continue to work to avoid breaking scripts)

* Expect enum use for crime functions

Affected functions:
* ns.singularity.commitCrime
* ns.singularity.getCrimeChance
* ns.singularity.getCrimeStats
* ns.sleeve.setToCommitCrime
* formulas.work.crimeGains (param type only)

- Affected functions still will fall back to rough names, except formulas.work.crimeGains which already only accepted the enum members.
- Some documentation changes:
  * examples updated to use uppercase expected form.
  * Note on sleeve.setToCommitCrime that it only accepts exact matches removed. It already, and still does, accept any rough crime name (but the enum is expected input).
  * note about needing to use isBusy to schedule crimes remove - crimes autoloop now.
  * Since expected string inputs are documented directly on the type, removed list of crimes from sleeve.setToCommitCrimes
2022-10-21 11:57:37 -04:00
borisflagell
baa149fa80 Update HospitalLocation.tsx
Add auto-refreshing to the component
2022-10-14 14:13:53 +03:00
borisflagell
1b61ec0e12 Update HospitalLocation.tsx 2022-10-14 13:59:56 +03:00
Olivier Gagnon
cbb7f58231 Make the main player object an alias, makes it easier to import 2022-10-09 18:42:14 -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
Snarling
582c9f40e2
Merge branch 'dev' into cityFix 2022-09-27 16:38:39 -04:00
Snarling
38063f62a7 build fix, lint, remove some instanceof checks 2022-09-27 16:09:32 -04:00
Snarling
c5f2b959f6 commit1 2022-09-27 16:02:09 -04:00
Snarling
ba1a10b4f7 Unify error handling 2022-09-27 15:46:34 -04:00