Commit Graph

242 Commits

Author SHA1 Message Date
catloversg 7db15a6bd2 CODEBASE: Remove wrong and irrelevant comments/code (#2111) 2025-05-10 02:22:47 -07:00
catloversg b2093a2419 MISC: Clarify conditions of activating Gang, Bladeburner, Stanek's Gift (#2053) 2025-03-31 13:37:35 -07:00
catloversg e8f9882e2d MISC: Disable effect of SF7.3 and SF10 if player disables them with advanced options (#2019)
* MISC: Disable effect of SF7.3 and SF10 if player disables them with advanced options

* Update based on feedback
2025-03-17 16:04:36 -07:00
catloversg f5b12da0fe UI: Increase width of each job in "Job" tab (#2017) 2025-03-12 16:08:14 -07:00
catloversg 8fe0ea1615 MISC: Warn player that they cannot accept Stanek's Gift after joining Bladeburner with SF7.3 (#2005) 2025-03-07 15:14:15 -08:00
catloversg 91b68db1fe BUGFIX: Multiple problems with Job tab (#1976) 2025-02-28 12:52:08 -08:00
catloversg 8ed83f3d37 MISC: Add key binding feature (#1830) 2025-02-27 22:59:12 -08:00
catloversg 72d2528e9a UI: Show all jobs instead of only one in Job tab (#1945) 2025-02-02 09:26:39 -08:00
catloversg f49d21cd71 UI: Clarify messages related to "buy" command (#1902) 2025-01-07 21:12:44 -08:00
catloversg 68a436cb77 UI: Disable buttons when player cannot buy things in tech vendor (#1881)
* UI: Disable buttons when player cannot buy things in tech vendor

* Tweak reachMaxCore warning comment

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2025-01-04 16:34:48 -08:00
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