Compare commits

...

1848 Commits

Author SHA1 Message Date
Lee Stutzman
d1b6acc57a CODEBASE: Replace ipExists() linear scan with O(1) Map.has() (#2621) 2026-04-02 19:13:35 -07:00
catloversg
dc4ea8452c CODEBASE: Update comments to reflect changes in #2603 (#2606) 2026-04-02 19:13:21 -07:00
Lee Stutzman
5fc54809de BUGFIX: Fix skillMaxUpgradeCount returning 1 at extreme skill levels (#2611) 2026-04-02 19:06:44 -07:00
catloversg
7425d8a8fd UI: Show hints of Sleeves mechanic in pre-endgame (#2605) 2026-03-31 13:29:49 -07:00
Michael Ficocelli
3e44f08a0f CCT: Generate more frequent and lower-reward coding contracts (#2603) 2026-03-31 13:28:39 -07:00
catloversg
e3ae5478d5 DOCUMENTATION: Fix newline issues in IPvGO docs and add missing RAM cost (#2602) 2026-03-27 10:26:45 -07:00
catloversg
3d5079a4e6 REFACTOR: Remove duplicate random alphanumeric string functions (#2601) 2026-03-26 21:49:20 -07:00
Michael Ficocelli
fdd6d65c25 DNET: Tweaks from player feedback (#2593) 2026-03-26 18:38:45 -07:00
catloversg
38d5f3b364 REFACTOR: Split Settings.ts to reduce number of imports (#2600) 2026-03-26 18:33:11 -07:00
Michael Ficocelli
5c02f81dc7 DNET: Remove packet capture (#2594)
* DNET: Remove packet capture as an API tool; add the mechanic as part of the logs in the Open Web Access Point puzzle

* DNET: Make harder version of the packet capture puzzle just have alphanumeric noise instead of lore data and stuff

* DNET: Make harder version of the packet capture puzzle just have alphanumeric noise instead of lore data and stuff

* PR feedback
2026-03-26 18:27:30 -07:00
catloversg
92a8e619b8 ELECTRON: Import correct cloud file when multiple exist (#2599) 2026-03-26 18:23:09 -07:00
catloversg
eacdc081df ELECTRON: Mitigate issue of forcefullyCrashRenderer (#2597) 2026-03-25 13:29:50 -07:00
catloversg
a2de3c1a35 DEPS: Update Electron (#2591) 2026-03-24 14:07:10 -07:00
catloversg
aced392f53 BLADEBURNER: Always show Black Operations list (#2592) 2026-03-24 14:05:51 -07:00
catloversg
2834684170 ELECTRON: Add UI menus and CLI flags to change log levels (#2596) 2026-03-24 13:56:28 -07:00
catloversg
ed557e9e46 BUGFIX: Import save comparison popup shows wrong BN level (#2595) 2026-03-24 13:49:44 -07:00
catloversg
77cc7874ab MISC: Support importing Steam Cloud save file manually (#2583) 2026-03-21 22:23:43 -07:00
catloversg
a9bb3f6d2f ELECTRON: Allow opening dev tools via CLI arguments (#2589) 2026-03-21 05:41:29 -07:00
catloversg
2e7d591583 TOOL: Add script to generate webpack bundle report (#2587) 2026-03-20 10:44:22 -07:00
catloversg
08604e1e76 DEPS: Update Babel core, presets and module loader for webpack (#2585) 2026-03-20 01:20:24 -07:00
Michael Ficocelli
1b6b07faae DNET: Player feedback (#2545) 2026-03-19 21:07:43 -07:00
catloversg
73b7921ef0 API: Reduce RAM cost of inGang and inBladeburner APIs (#2582) 2026-03-19 20:15:41 -07:00
catloversg
9de9fbaf27 CODEBASE: Fix React warning in IPvGO scoring explanation popup (#2581) 2026-03-19 20:14:16 -07:00
catloversg
0bc05772f6 CODEBASE: Remove barrel imports in Bladeburner code (#2580) 2026-03-19 20:13:19 -07:00
catloversg
3813d03fb6 MISC: Rework intelligence override (#2575) 2026-03-19 20:09:37 -07:00
catloversg
6a9abd9544 DOCUMENTATION: Update mention of outdated getStockForecast API (#2578) 2026-03-16 12:46:43 -07:00
catloversg
c00da0cd87 BUGFIX: hacknetNodeCost formula API throws when using documented optional parameter (#2577) 2026-03-16 12:46:06 -07:00
catloversg
06e6479408 DEPS: Update dependencies (#2576) 2026-03-16 12:44:29 -07:00
catloversg
17a7b2efac UI: Prevent ending BNs through reuse of Bladeburner UI event handler (#2574) 2026-03-16 11:55:05 -07:00
catloversg
3b372e9cad UI: Prevent joining banned factions via UI (#2573) 2026-03-16 11:52:21 -07:00
catloversg
f916daf252 MISC: Rework faction rumor (#2569) 2026-03-16 11:49:46 -07:00
catloversg
ade79c0f65 UI: Add option to autosave scripts on focus change (#2565) 2026-03-13 19:37:17 -07:00
catloversg
9f6e2ce2d1 MISC: Improve help text of expr command (#2561) 2026-03-13 19:34:40 -07:00
catloversg
50442472b5 BLADEBURNER: Add APIs to get rank gain and rank loss of an action (#2572) 2026-03-13 19:34:13 -07:00
catloversg
bc3e8ff3d5 DOCUMENTATION: Add missing newline after RAM cost (#2570) 2026-03-13 19:23:29 -07:00
catloversg
8bdcaf5f83 API: Improve error messages for invalid sleeve numbers (#2567) 2026-03-12 17:36:16 -07:00
catloversg
b737bb63e6 CODEBASE: Create monaco editor instance with null model (#2563) 2026-03-12 17:19:14 -07:00
catloversg
9eb2863e48 API: Add API to minimize and expand tail windows (#2556) 2026-03-08 14:00:06 -07:00
catloversg
342dea77fa API: Make ns.cloud.purchaseServer() and ns.cloud.deleteServer() use hostname as provided (#2560) 2026-03-08 13:57:13 -07:00
catloversg
e329082a48 API: Cancel sleeve's current task when calling ns.sleeve.travel() (#2559) 2026-03-07 12:10:20 -08:00
catloversg
39a7a31276 API: Add minimum width/height constraints to ns.ui.resizeTail (#2558) 2026-03-07 12:07:56 -08:00
catloversg
e06fb3dd9d API: Print error message when calling ns.ui.closeTail with nonexistent pid or pid of stopped scripts (#2557) 2026-03-07 12:05:21 -08:00
catloversg
f8bb1ed997 UI: Show "undefined" instead of -1 as pid in error popup when catching promise errors (#2555) 2026-03-07 11:34:04 -08:00
David Walker
b6a29681f4 BUGFIX: Fix webstorm by using a mutationLock (#2542) 2026-03-06 11:11:06 -08:00
catloversg
90f6db6d24 MISC: Allow parsing unknown options with data.flags in autocomplete (#2539) 2026-03-04 12:27:12 -08:00
David Walker
dc5c43db2e REFACTOR: Make getPlayer 10x faster (#2548) 2026-03-03 14:21:34 -08:00
catloversg
5e71612fd7 UI: Update toolbar of in-game editor (#2551) 2026-03-03 14:07:08 -08:00
catloversg
45366a1a42 DOCUMENTATION: Update guides (#2550) 2026-03-03 14:05:14 -08:00
David N
17f8c354e0 UI: Add inline script RAM usage text to each active script (#2546) 2026-03-03 13:38:59 -08:00
catloversg
cf1f5224fd BLADEBURNER: Rebalance charisma exp gain of Recruitment action (#2549) 2026-03-03 13:36:11 -08:00
catloversg
c14b4955f6 DOCUMENTATION: Clarify how share power affects reputation gain rate of non-hacking work (#2544) 2026-02-28 11:50:53 -08:00
Michael Ficocelli
3d41c348bc DNET: Rebalance / player feedback (#2533) 2026-02-28 11:48:03 -08:00
Joshua
15e1ab9af7 BLADEBURNER: Adjusted team bonus computation to make one member help (#2541) 2026-02-27 17:19:27 -08:00
catloversg
cfb536cd01 BUGFIX: Fix issues with RFA auto-reconnecting feature (#2535) 2026-02-26 13:34:28 -08:00
catloversg
47d8db8b91 DOCUMENTATION: Follow-up of #2523 (#2529) 2026-02-24 13:30:43 -08:00
catloversg
144fd50774 UI: Add indicator of RFA connection status to overview panel (#2497) 2026-02-24 12:11:20 -08:00
Misha279-UA
c85d9cbe8c CCT: Add "Find Largest Rectangle in a Matrix" coding contract (#2519) 2026-02-24 12:10:42 -08:00
catloversg
6626f0d5d1 DOCUMENTATION: Document quirky behavior of ns.flags when default value is nullish (#2528) 2026-02-24 12:03:10 -08:00
catloversg
d677b4ad18 CODEBASE: Update comment of LoadingScreen of ComplexPage enum (#2527) 2026-02-24 11:59:18 -08:00
catloversg
dbc58f1f58 DOCUMENTATION: Update BitNode recommendation short guide (#2523) 2026-02-23 12:09:21 -08:00
David Walker
8f4313b180 Revert "PIPE: Add pipe support for passing data into and out of terminal commands (#2395)" (#2524)
This reverts commit 92b8b58588.

Accidental merge on my part - the code is in decent shape, but isn't meant to go in for 3.0.
2026-02-22 11:28:10 -08:00
Michael Ficocelli
92b8b58588 PIPE: Add pipe support for passing data into and out of terminal commands (#2395) 2026-02-22 11:18:23 -08:00
catloversg
4a22e16058 WORKFLOW: Fix wrong instruction of generating docs (#2522) 2026-02-21 11:58:50 -08:00
catloversg
0c118ede38 DOCUMENTATION: Use relative links instead of absolute links (#2521) 2026-02-21 11:58:15 -08:00
catloversg
67fd763c30 JEST: Show coding contract names when their tests failed (#2520) 2026-02-21 10:20:31 -08:00
David Walker
42acdc6d84 UI: Tweak CSS/Position of Darknet Docs link (#2517)
Per Discord discussion, the lower left seems to be more visible.
2026-02-21 10:17:15 -08:00
catloversg
00b9034980 UI: Show errors if using nano/vim with patterns that do not match any files (#2515) 2026-02-19 09:53:01 -08:00
David Walker
2b542257a9 MISC: Update changelog (#2514)
Latest commit: 9279b16
2026-02-18 13:52:02 -08:00
Michael Ficocelli
9279b16729 DNET: Adjust balance from player feedback (#2512) 2026-02-18 13:41:48 -08:00
catloversg
8f77dc2df0 UI: Show hints of BitNode documentation and allow opening it in BitVerse (#2513) 2026-02-18 10:08:53 -08:00
catloversg
f7483243fd UI: Use font family setting when rendering MUI Link component (#2511) 2026-02-18 09:59:28 -08:00
catloversg
7c3473e98d MISC: Update changelog and version number (#2509) 2026-02-17 01:27:21 +07:00
David Walker
42bdbbc2c8 MISC: Update blood donations (#2508)
Per Hydroflame's request
2026-02-16 10:12:52 -08:00
catloversg
9a6e80129f UI: Improve navigation system of in-game documentation viewer (#2499)
* UI: Improve navigation system of in-game documentation viewer

* Update based on feedback

* Update based on feedback
2026-02-16 09:00:58 -08:00
catloversg
dd78a2cb44 API: Remove RAM cost of hacknet namespace and set RAM cost of each hacknet API (#2502)
* API: Remove RAM cost of hacknet namespace and set RAM cost of each hacknet API

* Fix Jest tests

* Update based on feedback
2026-02-16 09:00:02 -08:00
catloversg
775a1b1e4b CODEBASE: Refactor ImportSave component (#2505) 2026-02-15 10:57:40 -08:00
catloversg
77d83a2fdc UI: Add option to disable minimap in script editor (#2504) 2026-02-15 10:56:01 -08:00
catloversg
dc0c3b6fa3 JEST: Add tests for checking getAnswer and solver of coding contracts (#2503) 2026-02-15 10:53:58 -08:00
David Walker
b51ed8fd59 BUG: Fix missed cases in offline server handling (#2495)
There were two large holes in the existing offline server handling:

1. It didn't include IPs, so scripts that used IPs instead of hostnames
   would get exceptions thrown for "server not found."
2. Coverage was very low for non-Darknet APIs. Maybe most of them don't
   need to be covered, but many obvious ones like "ps", "killall" and
   "hasRootAccess" were missing. IMO the only reliable answer is one
   that enforces *all* are covered via the type system.

To accomplish the second part, helpers.getServer() was changed to return
null when a server is offline. This intentionally breaks a lot of its
utility, which was to return a server unconditionally. To compensate,
its utility was increased - it now also does unknown argument
processing, allowing it to subsume a common line that all callers were
repeating.

Some callers switched to ctx.workerScript.getServer(), because they
didn't actually need to be using helpers.getServer(). Similarly, a few
callsites switched to GetServerOrThrow(), for the cases where it should
be guaranteed that the server is valid. The rest are returning a
default/failure response when the server is offline. (Except for
contracts, which threw on failure already anyway.)
2026-02-15 10:29:47 -08:00
catloversg
b5ab495837 BUGFIX: Hacknet server UI shows NaN hash rate when 100% RAM is being used (#2500) 2026-02-15 10:27:21 -08:00
David Walker
a0bbdfd871 DARKNET: Refactor/adjust getPixelPosition (#2501)
This simplifies the logic. It also adjusts the position of special
servers slightly; in particular, they are horizontally centered
(appearing in-between the adjacent row, and not merely staggered).

The split into two functions is in preparation for perf improvements
that require calculating this without access to the server.
2026-02-13 20:19:17 -08:00
Michael Ficocelli
26db9f2955 DNET: More fixes and feedback (#2489)
* Add some re-rendering improvements to avoid the canvas and visual servers getting desynched

* removed underlevelled nerf to low-level servers; improved charisma level docs

* Remove offscreen dynamic culling

* PR feedback; add cache file names to tooltip

* Ensure stasis link servers get loaded properly; ensure darkweb has neighbors to prevent unit tests from failing; remove extra optional chaining accessors
2026-02-13 17:23:24 -08:00
catloversg
68700ff01f API: Expose ProgramName enum (#2492) 2026-02-13 11:51:42 -08:00
catloversg
be66b766a2 DOCUMENTATION: Fix invalid links in ns.sleep and ns.asleep (#2496) 2026-02-11 10:46:04 -08:00
David Walker
26b5c28df6 REFACTOR: Speed up by-ip lookups by introducing a new map entry (#2488)
Thankfully, the existing AllServers map is not exported, so we can
ensure that all the changes are only local to this file.

This also fixes a bug if renameServer was called with the same
name. (Probably calling code checked that case already.)
2026-02-11 10:43:52 -08:00
catloversg
826fd42296 DOCUMENTATION: Improve help text of scp and run (#2493) 2026-02-11 10:42:10 -08:00
catloversg
ac34d6508d BLADEBURNER: Stop randomizing action difficulty (#2491) 2026-02-11 10:36:10 -08:00
catloversg
638c791047 MISC: Change how coding contract rewards are randomized (#2490) 2026-02-11 10:34:59 -08:00
David Walker
62f7501b43 REFACTOR: Change getFailureResult to checkDarknetServer (#2494) 2026-02-11 08:42:27 -08:00
catloversg
97987fe35b BUGFIX: Global states are not reset properly between each Jest test (#2487) 2026-02-10 10:13:00 -08:00
catloversg
95b739f703 BUGFIX: Darknet state is not reset properly on prestige (#2486) 2026-02-10 09:39:31 -08:00
David Walker
ed727d6e74 DARKNET: Buff packet sniffing slightly (#2485)
Refactor the sniff code so that successful sniffs for the current server
are tagged server_name:password, not just those for adjacent servers.
2026-02-10 08:10:33 -08:00
Michael Ficocelli
bab6280735 DNET: Add JS object properties as server names; refactor save/load/server storage to support this (#2482) 2026-02-10 00:13:47 -08:00
Groot-0909
b99e522d1c UI: Update incorrect ps command shown in help (#2484) 2026-02-08 09:37:04 -08:00
catloversg
8633e94899 UI: Update icon of DARKNET_BACKDOOR and DARKNET_DEPTHS achievements (#2480) 2026-02-08 08:40:35 -08:00
David Walker
b5da311133 REFACTOR: Consolidate checks under getFailureResult() (#2476)
There was duplicated code, and more importantly, were were handling
certain things subtly differently in exec() and scp() as a result. This
notably causes a behavior change in exec() and scp() where failure to
authenticate now returns failure instead of throwing, which I believe is
the proper response.

This also makes it easier to see in the code exactly which functions
require what (auth, session, etc.)
2026-02-08 08:39:42 -08:00
Michael Ficocelli
425bff8217 DNET: Update documentation (#2483) 2026-02-07 19:25:56 -08:00
Michael Ficocelli
e649adfef4 DARKNET: Add improved challenge achievement for BN15 (#2479)
* DARKNET: Add improved challenge achievement for BN15

* DARKNET: Adjust heartbleed check location for achievement

* Fix wrong achievement data and update svg

* DARKNET: Fix styling of documentation link

* lint

---------

Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2026-02-07 18:28:55 -08:00
gmcew
95d08d7722 Change fallback reward priorities (#2481) 2026-02-07 08:50:40 -08:00
Michael Ficocelli
60a8996707 DARKNET: Add extra hint to sorted echo puzzle at high levels (#2465) 2026-02-06 04:58:01 -08:00
Michael Ficocelli
451aed153f DARKNET: Add glossary of terms to the documentation page (#2469) 2026-02-06 04:57:30 -08:00
catloversg
4c7e3d0833 UI: Show karma in Stats page and explain what it is in documentation (#2475) 2026-02-05 10:07:51 -08:00
Michael Ficocelli
6ca7c677a9 DARKNET: Prevent blocked ram on the "darkweb" server (#2468) 2026-02-05 07:32:58 -08:00
catloversg
a29f2945c5 BUGFIX: Monaco shows wrong TSDoc of APIs that have "export" word (#2473) 2026-02-05 07:31:13 -08:00
Michael Ficocelli
0eae02adcf DARKNET: Improve documentation; remove requirement that getBlockedRam and getDepth be called on a darknet server (#2472) 2026-02-05 07:28:06 -08:00
David Walker
a16706a33b DOCS: Add a note to CONTRIBUTING.md about the npm peer dep issue (#2474) 2026-02-05 07:24:24 -08:00
catloversg
796bef81b3 BUGFIX: Sleeves can earn exp and purchase augmentations when enabling disableSleeveExpAndAugmentation (#2467) 2026-02-05 04:47:24 -08:00
Michael Ficocelli
77cc582bf9 DARKNET: make threads' bonus apply to timing attack puzzle's extra time per char (#2466) 2026-02-05 04:43:13 -08:00
Snarling
2d69387227 GITHUB: Update format created by "build artifacts" workflows (#2470)
* Change filenames and structure of build artifacts, for compatibility with steam version updating
Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2026-02-04 22:59:40 -05:00
catloversg
79b3b9cb74 MISC: Update version number (#2462) 2026-02-03 04:56:05 -08:00
Michael Ficocelli
b9068ab328 DOCS: Fix some IPvGO docs that do not reflect winstreak rep converted to favor (#2463) 2026-02-03 04:55:38 -08:00
Michael Ficocelli
ba1c6f3818 IPVGO: Fix scoring of very large open areas (#2464) 2026-02-03 04:52:40 -08:00
catloversg
00339a206c DOCUMENTATION: Move current changelog to changelog-v2.md (#2461) 2026-02-03 04:14:17 -08:00
Michael Ficocelli
6073964768 DARKNET: Darkweb Expansion Project & Bitnode (#2139)
This is BN15. It is a really big change; see the PR for all the details.
2026-02-03 03:40:36 -08:00
catloversg
a674633f6c MISC: Update changelog (#2460) 2026-02-02 03:43:30 -08:00
catloversg
5a2bdfc9f1 CODEBASE: Update NodeJS to v24 (#2456) 2026-01-28 22:10:55 -08:00
catloversg
8b07879ad9 CODEBASE: Update SaveData type to be compatible with TS 5.9 and upgrade TS (#2457) 2026-01-28 12:26:06 -08:00
kaoticengineering
afddd284fc UI: Add settings to change currency symbol and whether to show it after money value (#2453) 2026-01-28 12:16:28 -08:00
catloversg
366c44d5c2 API: Add warning when installing backdoor on backdoored server with Singularity API (#2458) 2026-01-28 12:10:13 -08:00
catloversg
d7c1c7be72 UI: Remove BitNode's difficulty in BitNode selection popup (#2454)
* UI: Remove BitNode's difficulty in BitNode selection popup

* Run prettier
2026-01-25 20:34:54 -08:00
catloversg
5f519991a6 API: Allow ns.read to read .msg and .lit files (#2455) 2026-01-25 20:32:44 -08:00
catloversg
2edad3ed37 DOCUMENTATION: Update math notations in corporation docs (#2452) 2026-01-20 13:04:38 -08:00
TheAimMan
210c338f86 SLEEVES: Add sleeve commands to purchase sleeves and memory via the API (#2443) 2026-01-20 12:55:51 -08:00
Michael Ficocelli
19064a1b12 MISC: Improve script args validation message (#2451) 2026-01-18 11:34:49 -08:00
catloversg
c55577929c BLADEBURNER: Make some editorial changes in Black Operations' description (#2449) 2026-01-17 14:43:07 -08:00
catloversg
c8e3eb2050 CODEBASE: Generate display data for math notation at built time and remove runtime mathjax dependency (#2447) 2026-01-17 14:41:24 -08:00
catloversg
be16b2a375 BLADEBURNER: Reduce threshold of showing warning of low population (#2450) 2026-01-17 14:35:53 -08:00
David Walker
3d7d2d7734 REFACTOR: Move Result to the public API (#2398)
* REFACTOR: Move Result to the public API

This refactors Result<T> to be part of the public NetscriptDefinitions.
It is not used by anything in this PR, but it is planned to be used in
the autoinfil APIs, or lacking that, future APIs, so this should not be
exposing anything prematurely.

* Add @public as api-extractor suggested and generate docs

* Use import type

---------

Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2026-01-17 14:30:49 +07:00
EntenBu
95528ebb09 Add a question and a grammatical fix in faq.md (#2446)
"Made with beginners in mind" might be a bit of an overstatement, but I'm not gonna quibble on the wording. (IMO we are less "let me hold your hand while you learn how to cast your fishing rod" and more "I shoved you into the pond, grab some fish or smth idk")
2026-01-12 15:58:55 -08:00
catloversg
d0474a7adf DEPS: Update dependencies to fix vulnerability warnings (#2445) 2026-01-11 13:31:21 -08:00
Jonathon Chase
d7ee3cc3bb Update README.md to correct Frequently Asked Questions link. (#2444) 2026-01-08 13:25:24 -08:00
Adam Weeden
7af9dca6bc CONTRACTS: Display contract answers on completely failed contracts (#2440) 2026-01-08 13:21:52 -08:00
Nicholas Colclasure
edf3d11b72 LORE: Add literature expanding the augment prestige lore (#2433) 2026-01-03 13:49:42 -08:00
EntenBu
fc2931bc15 DOC: Change wording in Singularity.installAugmentation (#2439)
This commit changes a minor wording in the API commit. "uninstalled" implies "removed" hence the change
2026-01-03 13:45:40 -08:00
gmcew
df6c507369 MISC: Fix typos and duplicating ms per cycle constant (#2436) 2025-12-28 16:09:35 -08:00
Cica
3663b4507f MISC: Update error message when backdooring without admin rights (#2435) 2025-12-27 09:48:55 -08:00
Michael Ficocelli
4218b01dfb IPVGO: Do not update captures on passed analysis boards (#2415) 2025-12-21 13:44:24 -08:00
catloversg
49e231fd41 DEPS: Update dependencies related to monaco (#2432) 2025-12-21 13:42:20 -08:00
gmcew
3e90217cdb UI: Add Script Editor toggle for Sticky Scroll (#2431) 2025-12-21 13:40:14 -08:00
catloversg
d92b5520ec UI: Do not show error popup related to Stanek's Gift data when loading save files from pre-v1.1.0 (#2429) 2025-12-19 12:32:20 -08:00
catloversg
b76ceb725f DOCUMENTATION: Clean up "doc" folder (#2427) 2025-12-19 12:28:09 -08:00
catloversg
903b885ea2 UI: Change notice for breaking changes in v2 (#2426) 2025-12-18 14:59:17 -08:00
catloversg
bd2af9392f UI: Show useful error messages when loading unsupported save data from newer versions (#2425) 2025-12-18 14:51:48 -08:00
catloversg
be7bb0ad7c UI: Add links to documentation pages in tutorial's last step (#2424) 2025-12-18 14:43:44 -08:00
catloversg
a47867c406 CODEBASE: Refactor code related to in-game documentation link (#2422)
Nice!
2025-12-17 13:39:44 -08:00
EntenBu
6f9447e27e DOC: Add FAQ and another JIT batcher illustration to documentation (#2400) 2025-12-17 13:30:58 -08:00
Paul Setzer
968c0c2a8c CONTRACTS: Generate test contracts on executing host by default. Add support for optional parameter to specify the server. (#2417) 2025-12-16 16:23:59 -08:00
CTN
e7768824ba UI: Add option to set fractional digits (#2419) 2025-12-15 11:51:34 -08:00
catloversg
c3eb4f9ad6 DOCUMENTATION: Add instructions to troubleshoot common issues for contributors to CONTRIBUTING.md (#2420) 2025-12-15 11:46:58 -08:00
catloversg
2167a92af1 CODEBASE: Allow specifying migrator when migrating player's scripts (#2418) 2025-12-14 15:58:27 -08:00
sg673
a20053cde8 DOCUMENTATION: Clarify behavior of NS.getScriptLogs() for running scripts (#2408) 2025-12-02 12:39:35 -08:00
maglinvinn
d664d2b41a DOCUMENTATION: Remove references to defunct wiki from Hack/Weaken/Grow (#2404) 2025-11-30 13:31:43 -08:00
Michael Taylor
47b7a6f656 CODEBASE: Update packages-lock.json to not use vulnerable versions (#2405) 2025-11-28 01:19:44 -08:00
gmcew
cf32ea553f Clarification of Singularity costs inside BN4 (#2403)
- change BN description to highlight SF levels impact other BN use of singularity functions
 - add detail to singularity API description to highlight the same
2025-11-27 11:15:02 -08:00
imcute_aaaa
77fe36db89 BUGFIX: Coding contracts may have duplicate names (#2399) 2025-11-26 23:59:11 -08:00
catloversg
329fdc50fb CODEBASE: Follow-up of infil refactor #2316 (#2393) 2025-11-22 23:08:15 -08:00
David Walker
f3e9e3ddc8 BUGFIX: Avoid re-entrency issues with EventEmitter (#2397)
Subscribing or unsubscribing from within an event handler (possibly
transitively) could cause issues or even infinite loops.

This was initially fixed in #2257, which exhibited such problems.
Currently no code is known to have this issue, but it could easily come
up again in the future.
2025-11-22 18:13:44 -08:00
David Walker
50b0cc2808 MISC: Refactor implementation of ports (#2396)
This moves the implementation entirely into the PortHandle class, which
makes the code a bit more streamlined and will allow for other port
implementations in the future.
2025-11-22 17:52:25 -08:00
catloversg
67119e6c9c UI: Improve instructions in recovery mode (#2394) 2025-11-22 09:28:02 -08:00
catloversg
ce8852f3a2 BUGFIX: Company's job list shows wrong starting jobs (#2391) 2025-11-21 20:06:31 -08:00
catloversg
5c271eddf1 BUGFIX: Bladeburner console prints main body's HP instead of sleeve's HP (#2390) 2025-11-21 06:52:19 -08:00
imcute_aaaa
bb50272e54 MISC: Avoid reinventing core bonus calculation and fix formatting issue (#2387) 2025-11-19 14:18:54 -08:00
David Walker
4d230c3121 REFACTOR: Rewrite infiltration to pull state out of React (#2316)
* REFACTOR: Rewrite infiltration to pull state out of React

Upcoming projects (auto-infil, the possibility of making infil a work
task, etc.) require infiltration state to transition with predictable
timing and be under our control, instead of inside React. This refactor
accomplishes this by pulling the state out into accompanying model
classes.

After this, infiltration can theoretically run headless (without UI),
although it doesn't actually, and you would quickly be
hospitalized due to failing all the minigames.

There should be no user-visible changes, aside from the progress-bars
scrolling much more smoothly.

* Fix console warning in InfiltrationRoot

It turns out true isn't actually a safe value to use in JSX, only false works.

* Fix up some comments
2025-11-16 22:55:06 -08:00
Shy
57ca5ffeaf UI: Prevent showing redundant error toasts on failed RFA auto connect attempts (#2381) 2025-11-08 12:26:41 -08:00
gmcew
7c0286222c API: Move and rename purchased server functions to cloud API (#2367)
* Convert purchased server functions to cloud API

- Create `ns.cloud`
- Change `bitnode multipliers` and `server constants` wording for consistency
- change `server`, `ram` and `getting started` docs for consistency
- Added changes to 3.0.0 API Break and `setRemovedFunctions` in NetscriptFunctions.js

Tested by
- running tutorial `purchase-server-8gb.js`, and a more typical player one
- buying manually using vendor (Alpha Ent in Sector 12)
- deleting them all using script, and checked all deleted functions gave correct error
- Imported completed save to ensure auto-transfer of function work

* Revision in line with comments

- changed more `purchased` to `cloud` references
- Added BN mults auto-conversion

* Update getting_started.md

 - Corrected function names for new `cloud API`

* Don't show `cloud API` warning

v3.0.0 API break auto-replaces `cloud` functions, not warning suggested.

* API Break correction

- `cloud` affected API break replacement changed to be more descriptive and functional

* Fix typo and add empty lines

* Update many things (check commit's description)

- Comments
- Terminal message
- UI Text
- TSDoc
- md docs
- Improve error messages in src\NetscriptFunctions\Cloud.ts
2025-11-07 12:10:33 -08:00
Nick Shelley
d1a4ec8337 DOCUMENTATION: Improve wording around host argument of getScriptRam (#2374) 2025-11-07 11:57:33 -08:00
Shy
4ad9a96788 MISC: Support css file type (#2378) 2025-11-05 14:05:31 -08:00
Shy
9cd3ffd308 UI: Expose theme as css custom props (#2380) 2025-11-03 16:58:09 -08:00
EntenBu
e599988af7 MISC: Fix typo in README.md (#2375) 2025-10-30 10:28:59 -07:00
catloversg
174e160348 API: Make ActiveFragment extend Fragment (#2373)
* DOCUMENTATION: Fix wrong return type of ns.stanek.activeFragments

* Make ActiveFragment extend Fragment
2025-10-30 10:27:58 -07:00
catloversg
a69ee132f9 CODEBASE: Prepare for save data migration of next beta version (#2369) 2025-10-30 10:25:34 -07:00
catloversg
a5cb2a97bd UI: Reword tutorial steps to distinguish between instruction and example (#2370)
* UI: Reword tutorial steps to distinguish between instruction and example

* Minor change
2025-10-29 11:47:58 -07:00
Chaddeus
0c5256b83c UI: Correct phrasing in SmartSonar description (#2368) 2025-10-29 11:38:42 -07:00
catloversg
c6e40476bb DOCUMENTATION: Fix missing/wrong TSDoc of APIs having optional host parameter (#2371) 2025-10-29 11:15:10 -07:00
catloversg
3e75577ded BUGFIX: Electron app does not show achievement icons (#2362) 2025-10-23 12:39:11 -04:00
catloversg
1d3b96326e DEPS: Update Electron version (#2360) 2025-10-23 12:31:23 -04:00
catloversg
a703e8753b JEST: Refactor tests that add home server manually (#2358) 2025-10-21 20:57:14 -04:00
Michael Taylor
c6684431b5 UI: Format the shared RAM multipler on the factions (#2355) 2025-10-20 01:53:35 -07:00
catloversg
6837f334fd CODEBASE: Remove redundant check in getServer utility function and serverExists API (#2357) 2025-10-19 11:45:30 -07:00
Petal Ladenson
b495deb458 CLI: Let ServerProfiler.exe autocomplete servers (#2356) 2025-10-19 11:36:47 -07:00
catloversg
222e42000c CLI: Add --temporary flag to run command (#2354) 2025-10-18 12:04:39 -07:00
Michael Taylor
d785f20921 CODEBASE: Minor React related packages update (#2353)
* CODEBASE: Update @types/react & react-dom packages

Update @types/react and @types/react-dom to
17.0.26 (ts3.8) and 17.0.89 (ts3.8) from
17.0.21 (2021) and 17.0.67.

To major changes, no apparent breaking changes,
mostly packaging fixes.

* CODEBASE: Update react-syntax-higher package

Update from 15.5.0 (2022) to 15.6.6 (August 2025) which
fixes a bug with wrapLines (15.6.0, 15.6.1), fixes some
small bugs in 15.6.3 (line count, spelling), and
primarily updates dependencies, in particular prismjs to 1.30.0.

* CODEBASE: Update react-draggable package

Updates from 4.4.6 to
[4.5.0](https://github.com/react-grid-layout/react-draggable/commits/master/),
some small fixes, updated dependencies. Nothing critical, but
nothing breaking or radical as far as I can tell.

* CODEBASE: Update tss-react package

Patch level update of [tss-react](https://www.tss-react.dev/) package,
from 4.9.10 (Apr 2024) to 4.9.19 (Jul 2025). Appears to be primarily
for React 19 and Material UI 7 support. Low-priority, but should be
low-risk.

* CODEBASE: Update react-refresh package

[react-refresh](https://www.npmjs.com/package/react-refresh)
From 0.17.0 to 0.18.0.
2025-10-18 09:15:52 -07:00
catloversg
cb5b80a6d5 DOCUMENTATION: Use alternative fix for newline issue in IPvGO docs (#2350) 2025-10-15 11:58:11 -07:00
catloversg
30a572cfe6 API: Rename "TIX" interface to "Stock" (#2351) 2025-10-14 11:51:54 -07:00
catloversg
7ca364f49f DOCUMENTATION: Fix wrong commands in getting_started.md (#2349) 2025-10-13 08:59:53 -07:00
Adam Weeden
0335d8bc70 STANEK: Add FragmentType to NS Enums (#2341) 2025-10-13 08:57:19 -07:00
catloversg
2dfc2126df CODEBASE: Follow-up of #2344 (#2345) 2025-10-12 13:26:03 -07:00
catloversg
030be41df9 CODEBASE: Refactor Stanek's Gift UI code and change internal FragmentType enum (#2346) 2025-10-12 13:23:45 -07:00
catloversg
950c21d734 API: Update type of Player.factions, GangGenInfo.faction and CorpMaterialConstantData.name (#2347) 2025-10-12 13:00:21 -07:00
catloversg
d421d4fcf9 MISC: Make TIX access independent from WSE account (#2342) 2025-10-11 17:28:45 -07:00
catloversg
bd4e34fae0 CLI: Do not round down amount of hacked money in "hack" CLI (#2344) 2025-10-10 10:38:50 -07:00
catloversg
5c0f24f5d0 UI: Show server's money in exponential form if it's too small (#2343) 2025-10-10 10:37:35 -07:00
catloversg
2a2b38f4ad UI: Warn player if they run no-arg programs with arguments (#2338) 2025-10-08 14:14:01 -07:00
Michael Taylor
f12fc380cc MUI: Update minor version of material UI and Emotion packages (#2339) 2025-10-08 14:11:24 -07:00
Thaccus
625fe46bc3 DOCUMENTATION: Clarify cross-host characteristic of PID and port (#2336) 2025-10-07 13:40:05 -07:00
catloversg
1883af6c38 TOOLS: Enable linting in test folder (#2337) 2025-10-06 23:48:18 -07:00
Michael Ficocelli
0d1f5f3eeb IPVGO: Consistently return error() calls to make sure it is obvious the function halts at that point (#2335) 2025-10-06 14:26:31 -07:00
Michael Taylor
370424af2d JEST: Quiet Jest tests output on expected failures (#2332) 2025-10-05 12:31:15 -07:00
Femboy Fireball
8a2f8bb746 UI: Clarify why you can't buy 4S when disabled (#2311) 2025-10-04 14:45:42 -07:00
catloversg
4b8af02026 WORKFLOW: Add new job to check generated docs (#2329) 2025-10-04 14:41:02 -07:00
catloversg
020b185377 JEST: Enable restoreMocks option and fix lint errors (#2333)
* JEST: Enable restoreMocks option and fix lint errors

* Fix test\jest\Save.test.ts
2025-10-04 14:38:50 -07:00
Femboy Fireball
18b062663d ELECTRON: Allow automatically hiding the top menu in Electron (#2325) 2025-10-03 12:45:18 -07:00
catloversg
7225a2b22e BUGFIX: Color picker appears behind theme editor (#2321)
* BUGFIX: Color picker appears behind theme editor

* Remove unnecessary newline
2025-10-02 16:24:04 -07:00
catloversg
66a5c9568b TOOLS: Update doc.sh (#2331)
* TOOLS: Update doc.sh

* Update as suggested
2025-10-01 12:37:04 -07:00
Ante
f9a6cc841e CORPORATION: Expose production limit of material and product (#2330) 2025-10-01 01:04:39 -07:00
catloversg
060e929b68 UI: Print error detail to terminal if script cannot be compiled or there is runtime error while autocompleting (#2328)
* UI: Print error detail to terminal if script cannot be compiled while autocompleting

* Print error if there is runtime error
2025-09-28 22:45:58 -07:00
catloversg
9c2a5c25cb CODEBASE: Add more debug info for troubleshooting corporation issues (#2327) 2025-09-28 14:34:35 -07:00
catloversg
bb8552fa81 UI: Prevent text from overflowing when script's args are too long in Active Scripts page (#2324) 2025-09-27 23:25:52 -07:00
David Walker
e1352e67b1 UI: Better status bar animations (#2317)
* UI: Better status bar animations

This is an alternate implementation of #2286. It does the same
wrap-around behaviour for when the progressbar crosses into the next
level, but it skips animation entirely if the effective skill level goes
down, or if more than one level is gained at a time.

The implementation uses the animate() DOM api instead of manipulating
styles, which completely avoids the issues of having CSS style buildup.
This API is designed for exactly what we're trying to do.

I also pushed rerender handling down from CharacterOverview to
StatsProgressBar, which simplifies things and is helpful for doing the
animation implementation.
2025-09-27 23:05:21 -07:00
David Walker
5f51f355c6 UI: Improve dev menu for augmentations (#2315)
* UI: Improve dev menu for augmentations

The button layout was confusing, there was no quick way to install augs,
and uninstalled augs didn't properly lose their stat effects.
2025-09-27 23:04:59 -07:00
catloversg
4c3c56623d BUGFIX: Stat levels are not recalculated after grafting augs or accepting Stanek's Gift (#2322) 2025-09-27 23:04:18 -07:00
Michael Taylor
dcd2f33f7c CODEBASE: Update api-documentor and api-extractor (#2320)
* Update api-documentor and api-extractor. #1566 follow-up.

I have verified that the HTML/markdown table generation bug in
[#4878](https://github.com/microsoft/rushstack/issues/4878) in rushstack
for api-documentor has been fixed as per rushstack#5256. The testcase
[repro](https://github.com/catloversg/api-documenter-bug-pr-4578) now
produces the correct expected output.

I have confirmed that the generated output in bitburner from
`npm run doc` now generated HTML tables, and correctly inserts
a blank line between the </table> and the follow line (e.g. Returns).

Stylisticly it could use some whitespace, but it is correctly rendered.

This commit is only the updated packages, not the updated generated
documentation. I assume that is automatically generated by the GitHub
workflow.

* Follow up to 5f732a6f35, include `npm run doc` changed docs.

* Add missing license info

* Fix React warning

---------

Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2025-09-26 14:52:39 -07:00
Michael Taylor
09ecd915c2 DEVENV: Update NodeJS to v22 (#2318)
* move to minimum nodejs 22 (from 18)
2025-09-23 11:46:26 -07:00
catloversg
b1bdfc4a9e WORKFLOW: Update NodeJs version in workflows (#2319) 2025-09-23 17:55:26 +07:00
catloversg
2637baffc7 CD: Split build-artifacts.yml into 2 workflows (#2309) 2025-09-06 11:41:39 -07:00
catloversg
9d5342732c JEST: Add Jest test to test migration from v2 to v3 (#2305) 2025-09-05 23:40:02 -07:00
Snarling
0c64c3620d ELECTRON: Build universal macOS binary (#2306) 2025-09-05 23:35:29 -07:00
Michael Ficocelli
cad38f015c IPVGO: Prevent tiny islands surrounded by offline nodes during initial board generation (#2310) 2025-09-05 23:26:57 -07:00
catloversg
21ddb99fd5 MISC: Export save data before migrating to v3 (#2304) 2025-09-02 22:55:44 -07:00
catloversg
f8329813e5 BUGFIX: Active Scripts page may mix up UI after prestige (#2303) 2025-08-29 12:19:44 -07:00
catloversg
8bd1c4af24 MISC: Update version number (#2300) 2025-08-27 17:33:18 -07:00
catloversg
bde1d95d88 MISC: Update changelog (#2299) 2025-08-27 17:32:24 -07:00
catloversg
af75bd96e7 UI: Add configurable option for auto-reconnecting to RFA client (#2297) 2025-08-26 23:58:38 -07:00
Adam Weeden
bd3c6c10ef EDITOR: Add the ability to Beautify on Save (optionally) (#2287) 2025-08-26 16:35:41 -07:00
catloversg
95e38164f7 GANG: Rename equipment that uses real brand names (#2293) 2025-08-26 15:12:46 -07:00
gmcew
15776e36e3 CONTRACTS: Clean up helpers, expand documentation, Hamming wording again (#2296) 2025-08-25 17:16:26 -07:00
Michael Ficocelli
ef8cbc3e0c IPVGO: Ensure that player promises are changed to "gameOver" once the game is over (#2198) 2025-08-24 13:13:27 -07:00
gmcew
b8e39fe05c DOC: Update 'Hacking Algorithms' page (#2288)
* Update hackingalgorithms.md

* Update src/Documentation/doc/en/programming/hackingalgorithms.md

d0s corrections

Co-authored-by: David Walker <d0sboots@gmail.com>

* Update src/Documentation/doc/en/programming/hackingalgorithms.md

d0s corrections

Co-authored-by: David Walker <d0sboots@gmail.com>

* Suggest changes

* Add heading for Proto-batcher

Co-authored-by: David Walker <d0sboots@gmail.com>

* Run prettier

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2025-08-23 11:14:16 -07:00
Michael Ficocelli
02f2f1be74 IPVGO: Ensure getValidMoves correctly handles playing as white (#2292) 2025-08-22 13:12:09 -07:00
acidduk
b025a4d0c1 Update NetscriptDefinitions.d.ts (#2289)
Improve function description
2025-08-15 23:37:13 -07:00
catloversg
c124c45270 UI: Close coding contract popup on prestige (#2285) 2025-08-11 02:30:44 -07:00
catloversg
f0ca10e1b1 CORPORATION: Prevent purchasing product-only research for material industries (#2283) 2025-08-06 04:07:04 -07:00
catloversg
82e3b3f9ae BUGFIX: Dropdown list appears behind modal when it's used in modal (#2282) 2025-08-06 04:04:08 -07:00
Adam Weeden
13e3ad190d BUGFIX: Refresh the server info after a contract promise returns (#2281) 2025-08-05 20:47:35 -07:00
Victor Oliveira
2d8401eaae Change alert to accept multiple args as other print functions (#2278) 2025-08-04 09:25:06 -07:00
acidduk
89b8497859 Update ArrayJumpingGame.ts (#2277)
Improve contract description
2025-08-04 09:00:44 -07:00
catloversg
970368d11d API: Expose gang's discount rate (#2272) 2025-08-01 09:32:51 -07:00
David Walker
d4cb50fbf1 BUGFIX: Fix calculateExp so that it won't return a too small result (#2274)
* BUGFIX: Fix calculateExp so that it won't return a too small result

Due to floating point rounding issues, when applying the inverse
operation and flooring, roughly half the time we would get the next
lower skill level. This quickly finds a slightly higher result that
gives the correct inverse.

* clearer test layout
2025-07-31 12:54:31 -07:00
catloversg
8976d54532 API: Add ns.singularity.getHackingLevelRequirementOfProgram (#2271) 2025-07-30 14:44:06 -07:00
gmcew
952fc28b67 UI: Corrected ns.tail examples to ns.ui.openTail (#2270)
Changed to ns.ui.openTail in the example text where needed.
2025-07-29 13:06:32 -07:00
catloversg
7928800bbc MISC: Update changelog (#2269) 2025-07-24 22:59:03 -07:00
catloversg
cd320c307d UI: Add tooltip for reputation/favor in page of faction's augmentation list (#2268) 2025-07-24 22:43:26 -07:00
catloversg
8729dc3d1b MISC: Update messages related to text files (#2266) 2025-07-24 22:39:55 -07:00
catloversg
fee75b44d4 BUGFIX: ns.mv writes to destination file even if it cannot delete source file (#2267) 2025-07-24 22:38:55 -07:00
Chris Farfan de los Godos
8f69a6c0ee COMMAND: Improving error message for mv when a script is Running
* Adjusted error message to include information about making sure scripts are not running when trying to use mv on them.

* nom run format

* Added behaviour info to NetscriptDefinitions.d.ts

* `npm run doc`

* un-nested/inversed the check

* `npm run format`
2025-07-23 16:27:01 -07:00
catloversg
ff106bb764 BUGFIX: Error message shows blob URL instead of script name (#2265) 2025-07-23 14:30:25 -07:00
Chris Farfan de los Godos
7019145f3b MISC: Fix typo in KARMA_1000000 achievement 2025-07-23 14:22:33 -07:00
catloversg
6bf501fb78 API: Make some APIs throw error when server is invalid (#2261) 2025-07-23 14:20:20 -07:00
catloversg
cfa8f59602 DOCUMENTATION: Update Remote API docs (#2258) 2025-07-23 14:16:24 -07:00
catloversg
85094d4fb4 DOCUMENTATION: Mention TypeScript support and update example in React docs (#2263) 2025-07-22 13:25:00 -07:00
catloversg
1ac95144be ELECTRON: Specify mime type when loading wasm files (#2262) 2025-07-22 13:24:00 -07:00
catloversg
902367d8b6 MISC: Add removal of API server to list of breaking changes (#2205) 2025-07-22 00:42:46 -07:00
catloversg
effa0ff17b DOCUMENTATION: Update infiltration docs (#2259) 2025-07-22 00:14:35 -07:00
Michael Ficocelli
dd128842af INFIL: Add stat requirements; Add market consequences for spamming infiltration (#2210)
The primary parts are changing the way stats affect infiltration difficulty, to make rewards more intuitive and balanced, and adding a "market demand" mechanism, which kicks in when doing lots of infils quickly. With current parameters, market demand shouldn't affect manual play at all, and won't affect most auto-infil terribly (it depends how they're implemented).

This was a complex change, see PR #2210 for the full context
2025-07-20 11:01:47 -07:00
David Walker
fdafa191ac BUGFIX: Fix ctrl-clicking after the doc_en refactor (#2256)
This refactors getPage so that the same code can be used as part of
openDocExternally. This is necessary, since looking things up in
AllPages is potentially required to determine which language-version of
the external page to link to.
2025-07-20 10:50:42 -07:00
David Walker
4059be3d8c DOC: Move all docs into en/ subdirectory (#1505)
* DOC: Move all docs into en/ subdirectory

PR #1502 is working on adding a Chinese translation to the docs. In
general, I encouraged this (in #1452) as a path towards getting useful
translated content in the game without requiring a massive
refactor/rearchitecting of everything.

To support this, this takes the first step of moving our docs into an
en/ subdirectory, so that other languages can live alongside. No effort
is made at this time to support or select between alternate languages;
this is a pure-rename refactor.
2025-07-19 19:15:56 -07:00
catloversg
a2a4a2a0b4 BUGFIX: Loading code discards entire Go data due to missing migration code for favor/rep (#2252) 2025-07-19 14:55:49 -07:00
catloversg
c02e985c07 BUGFIX: Go history page shows favor bonus instead of reputation bonus (#2251) 2025-07-19 14:51:07 -07:00
catloversg
581048a757 UI: Place tooltips and popups in front of log windows (#2253) 2025-07-19 14:49:46 -07:00
catloversg
e3ea611928 CORPORATION: Remove VeChain (#2245) 2025-07-17 14:24:19 -07:00
catloversg
3a67db7876 MISC: Update migration instruction for breaking change of ns.nFormat (#2247) 2025-07-17 14:22:10 -07:00
catloversg
b8398ba4c1 CODEBASE: Update dev dependencies (#2246) 2025-07-17 14:21:03 -07:00
catloversg
64ae5eb40c UI: Show money in exponential form instead of "0.000" for dividends when it's > 0 but still too small (#2243) 2025-07-17 13:53:32 -07:00
catloversg
4a2244d4e7 UI: Show terminal warning instead of popup for breaking changes (#2244)
* UI: Show terminal warning instead of popup for breaking changes

* Run prettier
2025-07-16 17:10:02 -07:00
catloversg
41548d8b7b DOCUMENTATION: Fix wrong param/return type and clarify ns.sleep, ns.asleep, ns.singularity.exportGame (#2242) 2025-07-16 17:06:34 -07:00
catloversg
5e3a2cce0f BUGFIX: Exporting game via menu of Steam app does not give export bonus (#2241) 2025-07-16 17:05:34 -07:00
catloversg
477d01652b CORPORATION: Remove Spring Water industry (#2240) 2025-07-16 01:07:55 -07:00
catloversg
d38a0b453a CORPORATION: Fix typo in #2237 (#2238) 2025-07-12 17:51:34 +07:00
catloversg
073dd43d94 DEVMENU: Reset hacknet server list properly when setting level of SF9 (#2177) 2025-07-11 12:57:38 -07:00
catloversg
f182030385 CORPORATION: Use different term for dividend modifier instead of tax (#2237) 2025-07-11 12:55:46 -07:00
gmcew
3fc65a2de4 CONTRACTS: Proposal for Contract Progression System (#2230) 2025-07-10 14:25:36 -07:00
catloversg
c5799616ce CODEBASE: Fix inconsistent generated pages.ts (#2236) 2025-07-10 14:21:08 -07:00
catloversg
46d4dc9725 DOCUMENTATION: Clarify condition of joining Daedalus faction (#2234) 2025-07-10 01:42:27 -07:00
catloversg
c1482de05b CORPORATION: Clarify advice about Smart Supply in round 1 (#2233) 2025-07-10 01:41:40 -07:00
catloversg
6c7783aa85 CORPORATION: Remove DreamSense upgrade (#2232) 2025-07-10 01:40:36 -07:00
gmcew
8deb34e64d BUGFIX: 'Connect' command tab completion does not list purchased servers (#2229)
Changes per comments in #1905
2025-07-06 10:28:39 -07:00
gmcew
f2e7babcf3 CONTRACTS: Fix nbsp rendering as text rather than a space (#2225) 2025-07-06 10:10:36 -07:00
catloversg
fe13c3e2ca DOCUMENTATION: Fix outdated description of Bladeburner interface (#2226) 2025-07-05 18:15:40 -07:00
catloversg
51246a5c24 DOCUMENTATION: Add BitNode recommendation (#2044) 2025-07-05 18:13:05 -07:00
catloversg
9b59fcbb5f BUGFIX: Running scripts may be loaded before main UI (#1726) 2025-07-05 18:10:51 -07:00
catloversg
970292bedb CODEBASE: Update build script to avoid unnecessary newline in generated script (#2224) 2025-07-05 18:08:15 -07:00
Paul Setzer
b5a2c38e56 DOCS: Update the recommended BN order in the documentation (#2041) 2025-07-04 23:11:23 -07:00
catloversg
d9c3b635b4 DOCUMENTATION: Fix typo in bitnodes.md (#2221) 2025-06-29 11:18:41 -07:00
hydroflame
407dad0d6b MISC: Update blood donations (#2216) 2025-06-26 15:15:57 -07:00
Emmanuel Ferdman
1ca181c4dd DOCUMENTATION: Update contribution guide (#2214) 2025-06-26 05:59:02 -07:00
catloversg
e3968a1fb9 UI: Scroll to top when opening new NS API doc page in popup mode (#2181) 2025-06-25 13:24:18 -07:00
catloversg
d7642b34d0 API: Rename FactionName.BachmanAssociates to FactionName.BachmanAndAssociates (#2183) 2025-06-25 13:11:37 -07:00
catloversg
78046ed21d DEVMENU: Auto expand last opened tools (#2182) 2025-06-25 13:11:12 -07:00
catloversg
5cd96cf797 DOCUMENTATION: Update links to CONTRIBUTING.md (#2213) 2025-06-25 13:09:30 -07:00
catloversg
86d5a023be MISC: Validate bet input of casino mini games (#1694) 2025-06-23 17:43:04 -07:00
catloversg
9ba1bc7cfb MISC: Change message of Singularity error and uncaught promise error (#2174) 2025-06-21 14:29:59 -07:00
catloversg
38d033368e CODEBASE: Refactor message handler of Remote API (#2211) 2025-06-21 13:51:09 -07:00
catloversg
a506554e04 BUGFIX: ns.bladeburner.getActionRepGain returns wrong value (#2186) 2025-06-21 13:35:00 -07:00
catloversg
30b8c0faee CORPORATION: Remove mention of unusable research "sudo.Assist" (#2187) 2025-06-21 13:33:24 -07:00
catloversg
8aa73b2c65 MISC: Detect circular dependencies when generating modules (#2194) 2025-06-21 13:32:47 -07:00
catloversg
510a9a6be5 BUGFIX: Documentation navigator does not handle external URL properly (#2202) 2025-06-21 13:31:52 -07:00
catloversg
f2e539bea5 WORKFLOW: Allow enabling dev mode when deploying dev build (#2184) 2025-06-20 12:35:43 -07:00
catloversg
ccc5cafaae CODEBASE: Make prettier ignore src/Documentation/pages.ts (#2185) 2025-06-20 12:34:34 -07:00
catloversg
1eca42c75e API: Make ns.codingcontract.createDummyContract throw error if type is invalid (#2188) 2025-06-20 12:08:49 -07:00
catloversg
00e2169c92 DOCUMENTATION: Specify param type of many Corporation APIs (#2190) 2025-06-20 12:06:37 -07:00
catloversg
bebee7b1ef BUGFIX: Current work is not shown in edge cases (#2208) 2025-06-20 11:27:19 -07:00
catloversg
098bf0ffce DOCUMENTATION: Support showing images in markdown docs (#2207) 2025-06-20 11:24:06 -07:00
Kevin Sandow
694581cb52 MISC: Fix NetscriptDefinitions.d.ts formatting/escaping warnings (#2189) 2025-06-20 11:19:58 -07:00
Kevin Sandow
e44414850e MISC: Update NetscriptDefinitions.d.ts to include typings for hightlightPoint() and clearPointHighlight() (#2175) 2025-06-20 11:16:23 -07:00
catloversg
5ac327697b CLI: Allow using E notation in expr CLI (#2209) 2025-06-20 11:12:37 -07:00
Michael Ficocelli
18f84396e2 FEATURE: Add "Recent Errors" tab and improved error modal (#2169) 2025-06-16 16:43:21 -07:00
catloversg
cf72937faf UI: Improve Recovery Mode screen (#2206) 2025-06-16 16:38:51 -07:00
catloversg
a0740d72a9 DOCUMENTATION: Move CONTRIBUTING.md (#2191) 2025-06-16 16:35:07 -07:00
catloversg
a794fddaf7 MISC: Add file metadata (timestamps) (#2199) 2025-06-16 16:34:06 -07:00
catloversg
e5bfa641e1 DOCUMENTATION: Remove mention of NS2 in NetscriptDefinitions.d.ts (#2200) 2025-06-15 00:00:54 -07:00
catloversg
3c8099dc6b MISC: Mention bug-report channel on Discord for reporting bugs (#2201) 2025-06-14 23:47:28 -07:00
catloversg
c717cf16f7 DOCUMENTATION: Fix minor problem in old changelog (#2203) 2025-06-14 11:17:22 -07:00
catloversg
78e3380b0a DOCUMENTATION: Remove unnecessary br tag in scripts.md (#2204) 2025-06-14 11:16:25 -07:00
catloversg
70ae3bb38b CORPORATION: Add UI hint about scripting tea/party and using Intern (#2179) 2025-06-03 01:23:11 -07:00
catloversg
2cabb98095 API: Rename BN multiplier RepToDonateToFaction to FavorToDonateToFaction (#2178) 2025-06-03 01:21:59 -07:00
catloversg
bdc08cf992 DOCUMENTATION: Fix missing and outdated info of optional parameter (#2176) 2025-06-03 01:13:54 -07:00
catloversg
7d2686ed1b API: Standardize names of Stock APIs (#2173) 2025-06-02 02:36:36 -07:00
catloversg
856ce9a5c9 BUGFIX: Coding contract UI does not handle error properly when answer format is invalid (#2171) 2025-06-02 02:33:57 -07:00
HansLuft778
67017c5782 TERMINAL: Add RAM usage and detailed file size to ls -l output (#2135) 2025-06-02 02:23:22 -07:00
catloversg
b17b0d710b BUGFIX: API break detector does not detect affected code in some cases (#2172) 2025-06-02 02:22:25 -07:00
catloversg
6a23c85e12 UI: Search and read NS API docs in editor tab and documentation tab (#2163) 2025-05-31 23:53:20 -07:00
catloversg
98f6cc9554 MISC: Make nuke and port cracking APIs return false instead of throwing error (#2153) 2025-05-31 21:28:50 -07:00
Michael Ficocelli
fdb3452763 IPVGO: fix score modal styling (#2166) 2025-05-30 03:39:36 -07:00
catloversg
e34a29c458 MISC: Add removal of fuzzy matching to list of breaking changes (#2149) 2025-05-30 03:38:56 -07:00
catloversg
296295b490 API: Add more enums to ns.enums (#2165) 2025-05-30 03:37:59 -07:00
catloversg
ca9aa5f0a1 BUGFIX: Fix typos in literature files (#2164) 2025-05-28 12:13:30 -07:00
catloversg
9824166dbf CORPORATION: Rename division.type to division.industry (#2152) 2025-05-28 04:47:26 -07:00
catloversg
e31b174137 MISC: Add versionNumber to ns.ui.getGameInfo() (#2155) 2025-05-25 16:56:22 -07:00
Boingostarr
bf7101c1b0 DOC: added missing empty space between (#2159) 2025-05-25 11:45:48 -07:00
Arjan-akkermans
551934ee25 IPVGO: Updated DocString for the gameState object to correctly state that a null move is returned when the opponent passes or when there is no previous move. (#2158) 2025-05-25 11:40:58 -07:00
Chris Farfan de los Godos
552d13ad6d SINGULARITY: Adding getUnlockedAchievements function (#2156) 2025-05-24 13:47:34 -07:00
catloversg
eaf4014516 MISC: Update blood donation (#2151) 2025-05-23 14:12:26 -07:00
catloversg
5a052e902c MISC: Remove mention of Netscript 1.0/2.0/JS in NetscriptDefinitions.d.ts (#2150) 2025-05-23 14:04:34 -07:00
catloversg
4e5044124c CORPORATION: Rename setAutoJobAssignment API to setJobAssignment (#2146) 2025-05-22 12:42:16 -07:00
catloversg
47153bd31c MISC: Print logs when ns.hacknet.spendHashes fails and update param type of APIs using hash upgrade (#2145) 2025-05-21 08:38:39 -07:00
catloversg
90555a64e6 MISC: Add achievements for BN14 (#2140) 2025-05-20 14:32:13 -07:00
catloversg
f1f7a50721 DEVMENU: Fix bugs in WD tools (#2141) 2025-05-19 20:35:28 -07:00
catloversg
1d48f64321 DOCUMENTATION: Update rewards of SF14 (#2142) 2025-05-19 20:29:28 -07:00
catloversg
37d9284d33 MISC: Remove deprecated tail-related APIs (#2143) 2025-05-19 20:10:15 -07:00
catloversg
197e7f79cb CODEBASE: Fix typo of "CorruptableText" (#2144) 2025-05-19 20:07:09 -07:00
catloversg
24b31975e7 MISC: Remove fuzzy matching when checking params (#2091) 2025-05-18 16:08:19 -07:00
David Walker
f4e70720a6 Revert "API: Renamed Division.type to Division.industry (#2079)" (#2138)
This reverts commit 7a3c18fcf2.
2025-05-17 22:58:02 -07:00
catloversg
43e5589e61 MISC: ns.hacknet.spendHashes handles invalid targets in same way as UI (#2102) 2025-05-17 22:39:10 -07:00
catloversg
f45f73c641 MISC: Add "--tail" to default autocomplete options (#2103) 2025-05-17 22:34:13 -07:00
whiskeyfur
7a3c18fcf2 API: Renamed Division.type to Division.industry (#2079) 2025-05-17 22:31:25 -07:00
G4mingJon4s
209a9c368b special trailing whitespaces (#2137) 2025-05-17 17:52:12 -07:00
Michael Ficocelli
4749acdd4f IPVGO: Improve favor gain from wins to balance around the rep value of favor (#2131) 2025-05-17 02:36:58 -07:00
G4mingJon4s
2b8c008be1 NETSCRIPT: Moved formatting functions to their own interface (#1635) 2025-05-14 09:13:35 -07:00
catloversg
69cc3b69b5 WORKFLOW: Build artifacts and upload to release (#2120) 2025-05-14 09:07:26 -07:00
whiskeyfur
5e2d038e05 MISC: Updated createRandomIP to use the full 32 bit space (#2113) 2025-05-14 01:17:52 -07:00
David Walker
48f6de9cf5 REFACTOR: Change repNeededToDonate to favorNeededToDonate (#2134)
It was wrong and confusing.
2025-05-13 14:13:00 -07:00
gmcew
be2b5fac10 CONTRACT: Addition of new "Total Number of Primes" contract (#2116) 2025-05-12 00:40:55 -07:00
catloversg
562142be9f UI: Show achievement lists in grids (#2109) 2025-05-12 00:40:44 -07:00
catloversg
37d471fb0d MISC: Show custom error message when player imports decompressed save file (#2108) 2025-05-12 00:27:48 -07:00
catloversg
19120b51b7 UI: Realign and update text in achievement icons (#2127) 2025-05-12 00:11:47 -07:00
Michael Ficocelli
fe1fc8ba14 IPVGO: Correctly end game & winstreak if a cheat attempt critically fails (#2130) 2025-05-11 12:02:56 -07:00
catloversg
eea6733e3b MISC: Export crash report when a fatal error occurs (#2106) 2025-05-10 22:45:37 -07:00
catloversg
b1b560b6c6 BUGFIX: BitVerse does not show all BN multipliers in some cases (#2045) 2025-05-10 22:40:28 -07:00
catloversg
3a6f85d684 MISC: Tweak "The Covenant" faction's rumor condition (#2110) 2025-05-10 22:36:40 -07:00
catloversg
6a0853ddf8 MISC: Prevent running multiple instances of Electron app (#2095) 2025-05-10 22:14:58 -07:00
catloversg
4044b4a223 MISC: Use FactionName enum in relevant APIs (#2101) 2025-05-10 22:13:22 -07:00
catloversg
178da0fb5a MISC: Add achievement for completing all BNs (#2128) 2025-05-10 22:11:55 -07:00
catloversg
b53180ff1e MISC: Remove APIs that were deprecated a long time ago (#2088) 2025-05-10 22:10:48 -07:00
catloversg
1a6c037c00 UI: Change min and step value of "Tail render interval" setting (#2129) 2025-05-10 19:15:10 -07:00
catloversg
849bcb2601 MISC: Add formulas API for calculating share power and move UI of sharing RAM (#2126) 2025-05-10 19:14:15 -07:00
catloversg
22ee7fca2c MISC: Change how enums are exposed in NetscriptDefinitions.d.ts (#1998) 2025-05-10 02:28:48 -07:00
catloversg
7db15a6bd2 CODEBASE: Remove wrong and irrelevant comments/code (#2111) 2025-05-10 02:22:47 -07:00
catloversg
494ef0dff3 UI: Add option to enable/disable syncing Steam achievements (#2117) 2025-05-10 02:13:41 -07:00
catloversg
290557332c BUGFIX: Electron app does not run on Linux due to incompatible glibc version and wrong usage of net.fetch (#2114) 2025-05-09 02:37:46 -07:00
catloversg
70343ca4c3 DOCUMENTATION: Make minor improvements in "Getting Started" page (#2112) 2025-05-09 02:35:34 -07:00
catloversg
81e1c26e7b DEVMENU: Add tools to set stat level and queue augmentations of faction (#2118) 2025-05-09 02:32:53 -07:00
catloversg
c633384de1 MISC: Add achievement for acquiring SF13.1 (#2107) 2025-05-09 02:04:13 -07:00
catloversg
3507501018 MISC: Update favicon files (#2122) 2025-05-09 01:55:09 -07:00
catloversg
7f8760d01a BUGFIX: Passive faction reputation gain applies Player.mults.faction_rep twice (#2125) 2025-05-09 01:52:48 -07:00
catloversg
db810dd938 BUGFIX: Mitigate crash in Terminal page in edge cases (#2099) 2025-04-20 13:45:28 -07:00
catloversg
1310be8c8a ELECTRON: Replace deprecated protocol.interceptFileProtocol with protocol.handle (#2100) 2025-04-19 15:02:31 -07:00
catloversg
43c3a257de UI: Add visual indicators for tooltips of reputation/favor (#2092) 2025-04-17 12:54:25 -07:00
catloversg
754c144a2c BUGFIX: Hacknet's RAM upgrade button is off-by-one (#2093) 2025-04-17 12:53:18 -07:00
catloversg
31e6e4d74b MISC: Enforce stricter param check on ns.getBitNodeMultipliers and ns.hacknet.spendHashes (#2085) 2025-04-14 16:20:36 -07:00
catloversg
44b8baa8ad ELECTRON: Use steamworks.js to integrate with Steamworks SDK (#1563) 2025-04-14 16:19:17 -07:00
gmcew
d592e07719 CONTRACT: Clarify applicibility of wiki entry in Hamming contracts (#2087) 2025-04-13 14:10:25 -07:00
gmcew
af6583cd26 DOCUMENTATION: Add getContractTypes to Coding Contracts documentation page (#2089) 2025-04-13 13:30:04 -07:00
Michael Ficocelli
376b561fed BIGFIX: IPvGO tutorial was getting stuck if you left the tab and returned (#2071) 2025-04-11 13:57:42 -07:00
mizmantle
73dc9f2ef9 DOCS: Fixed linking between markdown docs (#2082) 2025-04-11 13:45:27 -07:00
catloversg
a9900072da MISC: Remove support for running NS1 scripts (#2083) 2025-04-11 13:41:48 -07:00
catloversg
571cc8f886 MISC: Remove API server (#2084) 2025-04-11 13:35:34 -07:00
Naga
0aaa28054a NETSCRIPT: Add functionality and support to fully allow Players to use IP addresses in place of hostnames (#1990) 2025-04-10 18:41:37 -07:00
Shy
d28a06e764 API: dynamic imports with ns.dynamicImport() (#2036) 2025-04-09 18:49:01 -07:00
catloversg
cdb74e74dd BUGFIX: Game crashes when generating CCT in weird case (#2077) 2025-04-08 13:47:45 -07:00
Michael Ficocelli
ab0bacaf63 IPVGO: ensure offline nodes 2: electric boogaloo (#2072) 2025-04-07 13:54:21 -07:00
Snarling
3691e4b8d8 Initial 3.0 dev update (#2070) 2025-04-04 03:47:22 -04:00
Snarling
d0d7767003 RELEASE: 2.8.1 (#2069) 2025-04-04 03:35:54 -04:00
catloversg
5d23764316 MISC: Remove useless iframe in April Fool's Day popup (#2065) 2025-04-03 13:41:39 -07:00
catloversg
37e1f01efa MISC: Update changelog (#2064) 2025-04-01 16:40:31 -07:00
catloversg
61a7e30b29 DOCUMENTATION: Clarify Market-TA1, Market-TA2, MaxSalesVolume (#2014) 2025-03-31 13:56:19 -07:00
catloversg
b2093a2419 MISC: Clarify conditions of activating Gang, Bladeburner, Stanek's Gift (#2053) 2025-03-31 13:37:35 -07:00
Michael Ficocelli
f6e7ef082c IPVGO: Add support for highlighting nodes and adding small text (#1996) 2025-03-31 13:36:30 -07:00
Michael Ficocelli
5d486e3914 BUGFIX: fix exploit where favor limit from IPvGO was removed on augmentation (#2050)
* IPVGO: fix exploit where favor cap was reset on augmentation

* IPVGO: fix exploit where favor cap was reset on augmentation

* IPVGO: linting

* IPvGO: only reset No AI with ResetStats unless specified otherwise
2025-03-31 13:30:55 -07:00
catloversg
5dc80587a7 DOCUMENTATION: Clarify AutocompleteData.server and ns.formatNumber (#2062) 2025-03-31 13:24:48 -07:00
catloversg
187fbea073 UI: Show faction enemies even after joining (#2046) 2025-03-30 11:56:21 -07:00
catloversg
282bf87022 MISC: Clarify effect of Bladeburner augmentation and Stanek's Gift fragment (#2058) 2025-03-30 11:47:04 -07:00
catloversg
ef803280da UI: Add button for exporting save file in recovery screen (#2060) 2025-03-30 11:45:57 -07:00
catloversg
f69bac308c UI: Warn player if they enable territory clash when gang power is too low (#2061) 2025-03-30 11:42:34 -07:00
catloversg
0900f46edb UI: Do not close scripts in editor when their servers are deleted (#2049) 2025-03-29 20:26:45 -07:00
Michael Ficocelli
12d18c21f1 IPVGO: Clarify how favor is gained from wins (#2051) 2025-03-29 20:21:05 -07:00
Paul Dejean
6d3e111ea1 MISC: Make it so that restarting the tutorial doesn't soft reset your game (#1992) 2025-03-23 00:04:52 -07:00
Naga
1539c428bc NETSCRIPT: Add the 'cat' method to 'ns.singularity' (#1999) 2025-03-23 00:04:26 -07:00
Michael Ficocelli
70a083b34b IPVGO: Improve type checking and documentation (#2028) 2025-03-22 23:59:46 -07:00
catloversg
41c497161f UI: Make BN-hint popups harder to be dismissed accidentally (#2021) 2025-03-22 23:59:38 -07:00
Michael Ficocelli
17ffabdfa5 IPVGO: Add new analysis method to set a custom testing board state (#2029) 2025-03-22 23:52:26 -07:00
catloversg
de8c8691c2 BUGFIX: Player can win more than casino's limit (#2042) 2025-03-21 10:49:15 -07:00
Michael Ficocelli
d62a1f38ca BUGFIX: Add mathjax-full and csstype as direct dependencies, since we depend on them (#2037)
* [CHORE] Add mathjax-full as a direct dependency, since we depend on it

* [CHORE] Add csstype as a direct dependency, since we depend on it

* [CHORE] Tell TS that it's OK?

* [CHORE] Use correct csstype version
2025-03-20 15:53:40 -07:00
catloversg
97e9e13f12 BUGFIX: Player can manipulate internal state of coding contract (#2040) 2025-03-20 15:51:52 -07:00
catloversg
c251a23a0e BUGFIX: Cannot buy augmentations via UI when money is equal to cost (#2039) 2025-03-20 15:50: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
Michael Ficocelli
19f859ae87 IPVGO: Ensure there is always at least one offline node (#2030) 2025-03-17 15:59:19 -07:00
Michael Ficocelli
47b34c8563 BUGFIX: Ensure that IPvGO promises are initialized correctly on a new save and on fluming (#2032) 2025-03-17 15:55:32 -07:00
catloversg
88fef7d8a3 CI: Pin commit id of tj-actions/changed-files (#2031) 2025-03-16 14:44:56 -07:00
catloversg
e07339d016 BUGFIX: Game crashes when loading new save in edge cases (#2026) 2025-03-14 15:00:06 -07:00
wasniahC
76f614761d updated "getCornerMove" second "if" to correct coordinates for top left corner move (#2027) 2025-03-14 14:56:20 -07:00
catloversg
ae99055d5a REFACTOR: SF description in Augmentations tab and BitVerse may not be the same (#2013) 2025-03-12 18:44:37 -07:00
Naga
b0165d5c2c NETSCRIPT: Store the value of Player.money in the returned object's moneyAvailable property when ns.getServer is called with "home" (#2024) 2025-03-12 18:17:57 -07:00
catloversg
f5b12da0fe UI: Increase width of each job in "Job" tab (#2017) 2025-03-12 16:08:14 -07:00
catloversg
907b0a40ba CODEBASE: Fix React warnings in BitVerse (#2020) 2025-03-12 15:55:38 -07:00
catloversg
dcce966fb1 DOCUMENTATION: Update TSDoc of ns.purchaseServer and CodingContract types (#2023) 2025-03-12 15:46:38 -07:00
G4mingJon4s
6666a176ee MISC: Add support for getting the save file through the RFA (#2004) 2025-03-10 01:32:47 -07:00
David Walker
db74fae2b7 Fix first-time Go initialization (#2012)
Fixes #2010
It was intended that all the various codepaths call `resetAI()` to
initialize the promise handling. However, when there is no savegame at
all, `loadGo()` is not even called, so this is skipped, and the promises
remain not-fully-initialized. This puts the initialization as part of
the static construction, guaranteeing a fix.

Tested all 3 scenarios in #2010, as well as two more:
* Delete save, immediately "Find new subnet".
* Play a move, save game, ensure IPvGO works on reload.
* Play a move, save game *before the AI moves*, ensure that the AI plays
  different random moves on reload.
2025-03-09 16:16:24 -07:00
catloversg
7f443427ea CODEBASE: Suppress false-positive console errors caused by RamCalculation.test.ts (#2002) 2025-03-07 15:15:54 -08: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
Michael Ficocelli
a611c842e2 IPVGO: correctly initialize board from save when there are no prior moves (#1995) 2025-03-06 11:30:12 -08:00
Snarling
6530b43886 Initial changes for 3.0 dev cycle (#1994)
Update constants.ts
Update version numbers in package jsons
2025-03-05 05:46:02 -05:00
Snarling
02c4f9c68d 2.8 Release Prep (#1993)
Update constants.ts
Update version in package.jsons
Move changelog to documented changelog
2025-03-05 03:18:53 -05:00
catloversg
23ad55554e UI: Add "Run" action to run current script in editor (#1987) 2025-03-04 02:43:31 -08:00
David Walker
8cdafdc7b9 CODEBASE: Refactor duplicate code in updateSkillLevels (#1988) 2025-03-04 01:45:06 -08:00
David Walker
f16b6b92b8 CODEBASE: Version 2.8 stuff (#1989)
Change dev version from 2.7.1 to 2.8.0

Also adjust the save data migration code for the latest check to use "<"
instead of "<=" to agree with the style of everything else.
(I noticed this due to investistigating bumping the version, but that
happens as part of the release commit so it shouldn't be done yet.)
2025-03-01 15:25:22 -08:00
muesli4brekkies
f881bd1d9a DOCS: Add docs for autocomplete (#1981) 2025-03-01 09:10:35 -08:00
catloversg
ff724f3f06 DOCUMENTATION: Clarify values returned in range 0-1 (#1986) 2025-03-01 09:08:42 -08:00
catloversg
4ef597bd37 BUGFIX: Some calculations return NaN due to Player.playtimeSinceLastAug being 0 in edge cases (#1985) 2025-03-01 09:06:58 -08:00
catloversg
c0e01f304d CODEBASE: Refactor KeyBindingPage (#1984) 2025-02-28 12:56:00 -08:00
catloversg
91b68db1fe BUGFIX: Multiple problems with Job tab (#1976) 2025-02-28 12:52:08 -08:00
catloversg
f54f7b932c DOCUMENTATION: Clarify value of gang territory (#1978)
* DOCUMENTATION: Clarify decimal form of gang territory

* Update based on feedback
2025-02-28 12:45:36 -08:00
catloversg
2a544bbc15 MISC: Update changelog (#1983) 2025-02-28 12:43:30 -08:00
catloversg
8ed83f3d37 MISC: Add key binding feature (#1830) 2025-02-27 22:59:12 -08:00
catloversg
3ba89eb388 CODEBASE: Update api-extractor (#1982) 2025-02-27 22:39:58 -08:00
catloversg
5f29c5b043 CODEBASE: Update webpack and katex (#1975) 2025-02-27 10:43:33 -08:00
Michael Ficocelli
1982e7195b UI: Add disambiguation to the confusing "1s / ls" tutorial step (#1972)
* UI: Add disambiguation to the confusing "1s / ls" tutorial step, and a general "did you mean" to the terminal

* UI: Add disambiguation to the confusing "1s / ls" tutorial step, and a general "did you mean" to the terminal

* Prevent duplicate suggestions

* Update src/Terminal/Terminal.ts

Co-authored-by: David Walker <d0sboots@gmail.com>

* Prevent duplicate suggestions

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2025-02-27 10:34:16 -08:00
catloversg
6461d5f247 UI: Improve performance of April Fools Easter egg (#1977) 2025-02-27 10:14:17 -08:00
catloversg
fed3cf1af2 DOCUMENTATION: Clarify ns.singularity.quitJob (#1979) 2025-02-27 10:03:46 -08:00
catloversg
05f0ba1ac6 DOCUMENTATION: Clarify ns.singularity.softReset (#1980) 2025-02-27 10:02:04 -08:00
Adam Andreatta
a25ab3dd39 API: Added external api which returns gainExperience (#1955) 2025-02-20 15:57:06 -08:00
catloversg
3eadb0d18c BUGFIX: JetBrains Mono font shows wrong glyphs (#1971) 2025-02-17 13:18:10 -08:00
catloversg
3bb56efb34 DOCUMENTATION: Clarify ns.scan (#1965) 2025-02-16 18:27:10 -08:00
catloversg
63d7061fd8 UI: Warn player if they are editing and saving files on non-home servers (#1968) 2025-02-16 18:26:45 -08:00
catloversg
13990fbe4c MISC: Do not round return value of getBonusTime APIs (#1961) 2025-02-16 01:42:11 -08:00
catloversg
23bc4e8804 MISC: Show user-friendly error message when there is syntax error in scripts (#1963) 2025-02-16 01:27:26 -08:00
catloversg
0a4598a9a0 UI: Show Save ID in Options tab (#1964) 2025-02-16 01:24:46 -08:00
LJ
42a7941db7 Fix invalid filenames upon loading save (#1147) 2025-02-16 01:07:40 -08:00
catloversg
adc39ad825 BUGFIX: ns.corporation.bribe can bribe faction that player is not member of (#1966) 2025-02-16 01:05:22 -08:00
catloversg
26c5bb40e3 MISC: Clarify advanced options (#1962) 2025-02-16 01:03:55 -08:00
catloversg
31591da024 UI: Show exact reasons why player cannot bribe factions (#1967) 2025-02-16 01:02:50 -08:00
catloversg
2dfaca3db4 DOCUMENTATION: Clarify ns.nuke (#1969) 2025-02-16 00:58:00 -08:00
LJ
905d37ef93 Add donationToFavor() to docs (#1960) 2025-02-13 21:35:55 -08:00
LJ
30075f3c07 API: Add donationForRep() to Formulas (#1141) 2025-02-11 22:05:32 -08:00
G4mingJon4s
b61e93b246 CODINGCONTRACT: Move internals to a separate folder (#1932) 2025-02-11 22:04:23 -08:00
Femboy Fireball
5bc9068745 ACHIEVEMENTS: Support achievements with no matching Steam achievement (#1953) 2025-02-08 19:19:36 -08:00
catloversg
c99fa448fa BUGFIX: Cursor position in editor is moved undesirably in edge cases (#1952) 2025-02-07 15:19:54 -08:00
catloversg
48bced3484 MISC: Update changelog (#1948) 2025-02-07 15:18:38 -08:00
Michael Ficocelli
c8d2c9f769 IPVGO: Support scripts playing against each other as each color on "No AI" boards (#1917)
This is a big change with a *lot* of moving parts.

The largest part of it is enabling scripts to `playAsWhite` as a parameter to many Go functions. In the implementation, this involved a significant rewrite of `opponentNextTurn` promise handling.

A number of other changes and bugfixes are included:
* Fixes the issue where handicap stones are added on game load.
* Better typing for error callbacks.
* Throw errors instead of deadlocking on bad cheat usage.
* Return always-resolved gameOver promise after game end
* Added a new `resetStats` api function.

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2025-02-02 20:47:16 -08:00
catloversg
de6b202341 CODEBASE: Refactor Player.applyForJob (#1947) 2025-02-02 09:29:18 -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
d6ee16cdb3 API: Move tail-related APIs to another namespace (#1935)
* API: Move tail-related APIs to another namespace

* Add missing RAM cost config

* Remove setTailFontSize from NS namespace
2025-02-01 21:43:56 -08:00
catloversg
67aff2a6a0 BUGFIX: Wrong plural form in modal of coding contract (#1939) 2025-02-01 21:42:56 -08:00
catloversg
1cc0288cd8 BUGFIX: Sleeve takes on contracts without checking availability (#1946) 2025-02-01 21:41:07 -08:00
Michael Ficocelli
381310946a IPVGO: ensure def is treated the same as the other stats boosted by playing against tetrads (#1927) 2025-01-31 16:10:30 -08:00
TheAimMan
16022d36f4 MISC: Decrease factionInviteCheckInterval and check for Invites on faction page load (#1943) 2025-01-31 11:49:15 -08:00
catloversg
4a452b8aca DOCUMENTATION: Fix typo in proof of boost material optimizer (#1938) 2025-01-31 11:21:28 -08:00
catloversg
a4217b448a MISC: Standardize behavior of connect CLI and Singularity API (#1933) 2025-01-31 11:20:17 -08:00
catloversg
686bfe5aef BLADEBURNER: Show operation description in tooltip of completed BlackOps (#1941) 2025-01-31 11:16:39 -08:00
catloversg
822c55574d MISC: Allow using wss for RFA (#1942) 2025-01-31 11:07:38 -08:00
catloversg
40c696feb1 UI: Clarify availability of "buy" CLI (#1940) 2025-01-31 10:52:27 -08:00
Hihahahalol
f337de47df UI: In Operation Wallace. Reword so "The Dark Army" works, for grammar (#1931) 2025-01-30 10:39:31 -08:00
catloversg
956e3875e9 API: Add getSaveData API (#1390) 2025-01-30 10:36:59 -08:00
catloversg
934687d4b5 UI: Clarify "Disable ASCII art" setting (#1937) 2025-01-30 10:28:17 -08:00
catloversg
7d95400108 MISC: Fix typo in API break notice of v2.6.1 (#1936) 2025-01-30 10:27:40 -08:00
catloversg
85cda00538 DOCUMENTATION: Replace outdated links for v2 migration guide and changelog (#1934) 2025-01-30 10:27:13 -08:00
catloversg
ada903f356 CODEBASE: Refactor ns.singularity.purchaseAugmentation (#1879) 2025-01-28 10:42:25 -08:00
catloversg
2965f51879 API: Add a way to get the list of all factions (#1457) 2025-01-28 10:40:11 -08:00
G4mingJon4s
ffae0045a4 CODINGCONTRACT: Add support for other answer formats (#1892) 2025-01-26 09:35:04 -08:00
catloversg
b161142796 API: Add ns.renderTail (#1815) 2025-01-25 09:14:45 -08:00
Sphyxis
97d248419d BB: Allow API Usage in BN 6 without 7 - Grants Augment for BN 7 completion (#1926) 2025-01-25 09:12:51 -08:00
catloversg
6c7972dc60 CORPORATION: Fix wrong warning of sellAmt being negative (#1819) 2025-01-25 09:11:57 -08:00
David Walker
213c57f2f8 DOCS: Document shorts in terms of actual finance terms (#1908) 2025-01-25 08:41:16 -08:00
catloversg
5301f0f378 UI: Add reward info to intro page of infiltration (#1835) 2025-01-24 11:16:32 -08:00
catloversg
9bf408221c CODEBASE: Merge TypeAssertion files (#1922) 2025-01-24 11:06:39 -08:00
catloversg
f0a0d3095e CORPORATION: Show product production multiplier in research popup (#1919) 2025-01-24 09:16:23 -08:00
PerpetuaLux
1fa2c55860 BUGFIX: Changed no such file run command error to include all executable types (#1918) 2025-01-24 09:13:54 -08:00
catloversg
faf34ad45d BUGFIX: Static RAM calculator cannot process abstract methods (#1921) 2025-01-24 09:09:06 -08:00
catloversg
1a54be184e DOCUMENTATION: Make nuke and port opening functions return boolean (#1923) 2025-01-24 08:48:50 -08:00
catloversg
9920b6ae4d MISC: Add source map to transformed scripts (#1812)
* MISC: Add source map to transformed scripts

* Print error to console
2025-01-19 13:50:50 -08:00
Mathekatze
7b009991e5 DOCUMENTATION: improve documentation for atExit() (#1916) 2025-01-19 12:49:25 -08:00
esainane
93a1d6da53 DOCUMENTATION: Fix incorrectly documented BusinessFactor (#1915)
The advanced documentation incorrectly claims that the multiplier is
0.001. The actual code divides by 10000 (10e3), effectively
multiplying by 0.0001:

https://github.com/bitburner-official/bitburner-src/blob/dev/src/Corporation/Division.ts#L1085
2025-01-19 12:43:54 -08:00
Yichi Zhang
e6a1c344d3 NETSCRIPT: Log script kill immediately and identify the killing script. (#1907) 2025-01-12 21:07:01 -08:00
catloversg
0e8dca85e1 UI: Improve UX of Remote API setting page (#1870)
Co-authored-by: David Walker <d0sboots@gmail.com>
2025-01-12 10:58:24 -08:00
catloversg
fdb325bf66 CODEBASE: Remove unused type of parameter of Favor component (#1874) 2025-01-12 10:50:57 -08:00
catloversg
1d31e066f0 CODEBASE: Fix React warning when using StatsTable (#1875) 2025-01-12 10:49:52 -08:00
catloversg
1525e51cbb UI: Add grafting to sidebar (#1809) 2025-01-12 10:45:03 -08:00
catloversg
c37cdc76a4 CODEBASE: Minor change in TaskSelector of Sleeve (follow-up of #1807) (#1906) 2025-01-09 00:23:17 -08:00
catloversg
0f9144a059 CODEBASE: Validate theme, editor theme, and styles (#1789) 2025-01-08 19:20:05 -08:00
catloversg
320c852386 BUGFIX: Sleeves UI shows and sets wrong task (#1807) 2025-01-08 19:06:00 -08:00
catloversg
8c19165323 BUGFIX: Grow log shows invalid values in edge cases (#1872) 2025-01-08 18:48:45 -08:00
catloversg
5b6380a5c3 MISC: Add more error info to error dialog and tail log (#1813) 2025-01-08 18:22:13 -08:00
catloversg
1cb2a83b4f UI: Share RAM to boost reputation gain (#1862) 2025-01-07 22:35:29 -08:00
catloversg
077d8e7080 CODEBASE: Change signature of interpolate function in Infiltration code (#1843) 2025-01-07 22:28:02 -08:00
catloversg
6dd9230cc5 BUGFIX: Dynamically load imported scripts for editor (#1893) 2025-01-07 22:24:41 -08:00
catloversg
4bae9938bf BUGFIX: Editor shows "+1 overload" with all NS APIs (#1883) 2025-01-07 22:17:30 -08:00
catloversg
564889d3f2 BUGFIX: "Import Save Comparison" popup is shown after reloading (#1895) 2025-01-07 21:28:52 -08:00
esainane
0e5e20c2f1 UI: Fix migration doc typo (#1896)
`spc` -> `scp`
2025-01-07 21:24:44 -08:00
catloversg
a145ee74bc UI: Remove RAM usage percentage in "free" CLI if it's NaN (#1897) 2025-01-07 21:20:35 -08:00
catloversg
012ebb2616 UI: Change how hacking level requirement is shown in "Create program" tab (#1900)
* UI: Change how hacking level requirement is shown in "Create program" tab

* Remove "s" from "Unlocks at hacking levels"

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2025-01-07 21:18:37 -08:00
catloversg
3123ac9447 UI: Hide spoiler content in Soft Reset popup (#1898) 2025-01-07 21:18:25 -08:00
catloversg
a8bde3e14f UI: Change "overclock" to another phrase in Sleeves tab (#1901) 2025-01-07 21:13:47 -08:00
catloversg
f49d21cd71 UI: Clarify messages related to "buy" command (#1902) 2025-01-07 21:12:44 -08:00
catloversg
0c1f3756a2 UI: Show warning message for deprecated API Server feature (#1903) 2025-01-07 21:04:41 -08:00
romaswe
7fa85a926a MISC: Dockerized Bitburner (#1891) 2025-01-04 23:28:08 -08:00
catloversg
0d555f9347 UI: Remove mention of passive reputation gain when player is in BN2 (#1859)
* UI: Remove mention of passive reputation gain when player is in BN2

* Update based on feedback
2025-01-04 16:53:43 -08:00
catloversg
423a6ce110 BUGFIX: Saved running scripts are started before SWC is initialized (#1857)
* BUGFIX: Saved running scripts are started before SWC is initialized

* Update based on feedback
2025-01-04 16:52:56 -08:00
G4mingJon4s
c622291eff NETSCRIPT: Added changing tail font size through scripts (#1852) 2025-01-04 16:51:13 -08:00
catloversg
3db190c9a0 MISC: Consistently use ManualHackMoney in terminal hack and script hack (#1868) 2025-01-04 16:44:55 -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
catloversg
f2e014ba37 UI: Increase number of displayed digits for StaneksGiftExtraSize (#1871) 2025-01-04 16:34:35 -08:00
catloversg
93c07ac107 DOCUMENTATION: Clarify returned value of ns.bladeburner.getActionCountRemaining (#1873) 2025-01-04 16:33:45 -08:00
catloversg
43bca702c0 MISC: Clarify description of BN2 about gang and The Red Pill (#1878) 2025-01-04 16:33:08 -08:00
catloversg
bcbaf3e224 DOCUMENTATION: Clarify type of returned value of ns.gang.getOtherGangInformation (#1882) 2025-01-04 16:21:17 -08:00
Naga
ef87174e3f DOCUMENTATION: Clarify the return descriptions of 'getPurchasedServerCost' and 'getPurchasedServerUpgradeCost' to include the returns for invalid inputs. (#1884) 2025-01-04 16:20:20 -08:00
Daniel Perez Alvarez
e3eb08470b DOCUMENTATION: Add starter react documentation (#1888) 2025-01-04 16:19:49 -08:00
nanogyth
85fa15c5a5 BUGFIX: update weaken results to correctly reflect change when close to minSecurity (#1887) 2024-12-29 18:08:55 -08:00
catloversg
a6d6aa7410 UI: Add filter tool to list of installed augmentations (#1833) 2024-12-23 05:12:53 -08:00
catloversg
bc0dc15536 DOCUMENTATION: Fix typo of CrimeStats (#1850) 2024-12-18 03:32:21 -08:00
catloversg
b49c04d142 UI: Infiltration remembers faction choice for reputation reward (#1860) 2024-12-18 03:29:10 -08:00
catloversg
c2fe6108e1 DOCUMENTATION: Clarify getGraftableAugmentations API (#1858) 2024-12-18 03:23:56 -08:00
catloversg
40f3d6ea7b UI: Clarify "Company Favor" hash upgrade (#1861) 2024-12-18 03:23:11 -08:00
catloversg
ab17adf97a MISC: Show user-friendly error message when script is empty (#1848) 2024-12-18 03:17:48 -08:00
catloversg
bb7a1fbb22 MISC: Add raw command string to autocomplete data (#1846) 2024-12-18 03:16:38 -08:00
catloversg
cffd6d75a6 CORPORATION: Remove non-empty-string condition in sell modals (#1847) 2024-12-18 03:15:13 -08:00
catloversg
8aea99e5cd API: Add "No AI" to GoOpponent type (#1845) 2024-12-18 03:14:35 -08:00
catloversg
d75b0af6b2 CODEBASE: Update webpack and its plugins (#1825) 2024-12-18 03:14:01 -08:00
catloversg
e6078ab1df UI: Change description and add tooltip for HackMoney-related multipliers (#1823)
* UI: Change description and add tooltip for HackMoney-related multipliers

* Update based on feedback
2024-12-18 02:51:25 -08:00
catloversg
9c4b0c004c UI: Make minor changes in buttons and error messages of tutorial (#1837)
* UI: Make minor changes in buttons and error messages of tutorial

* Update

* Change "Skip Tutorial" to "Exit Tutorial"
2024-12-18 02:46:37 -08:00
catloversg
28da81f3f1 BLADEBURNER: Add visual cues to warn player of dangerous actions and status of population, chaos (#1856) 2024-12-18 02:44:19 -08:00
Naga
c49a507031 MISC: Convert Literature entries and helper functions to TSX (#1854) 2024-12-18 02:39:30 -08:00
catloversg
d9dba2a442 MISC: Clarify input and output of Square Root coding contract (#1839) 2024-12-12 03:13:18 -08:00
catloversg
74ede7d947 BUGFIX: Game takes too long to process crime work with large number of cycles (#1821) 2024-12-12 03:11:58 -08:00
catloversg
1c7230a799 DOCUMENTATION: Improve Infiltration docs (#1842) 2024-12-12 03:10:51 -08:00
Nerdpie
ff85394e02 BUGFIX: Fix Text Effect Preventing Company Name Updates (#1828) 2024-12-12 03:07:53 -08:00
catloversg
37ddb43b82 API: Allow passing 0 SkillPoints to skillMaxUpgradeCount (#1844) 2024-12-12 03:07:31 -08:00
catloversg
7c732689dd DOCUMENTATION: Fix typo in "Getting Started" page (#1836) 2024-12-12 03:06:19 -08:00
catloversg
bab5412fb7 BUGFIX: Tail log does not render multiline logs properly in edge cases (#1838) 2024-12-12 03:00:10 -08:00
catloversg
b66eff0379 JEST: Fix flaky stock market test (#1834) 2024-12-12 02:58:35 -08:00
catloversg
4137a0e522 DOCUMENTATION: Clarify isBusy and stopAction Singularity APIs (#1822) 2024-12-12 02:57:19 -08:00
catloversg
f07c442a92 CODEBASE: Fix React warning of missing keys in CovenantPurchasesRoot.tsx (#1824) 2024-12-12 02:55:28 -08:00
Snarling
bf095ea9e3 VERSION: Start dev branch 2.7.1 (#1832) 2024-12-08 16:41:53 -05:00
Snarling
a58eace23a RELEASE: Version 2.7.0 (#1829) 2024-12-08 15:51:46 -05:00
catloversg
933ec964cf CORPORATION: Print error message when player cannot create corporation (#1820) 2024-12-01 13:50:32 -08:00
catloversg
6e1848dd79 CORPORATION: Add new API to check if player can create corporation (#1598)
* CORPORATION: Add new API to check if player can create corporation
* Update description of createCorporation API
* Return enum instead of true/false
* Use throwIfReachable
* Fix typo in comment
2024-11-30 21:49:19 -08:00
catloversg
67704f2ab0 CODEBASE: Use "esnext" target when transforming code with swc (#1810) 2024-11-30 16:02:32 -08:00
catloversg
0caeb5c5ca DOCUMENTATION: Clarify prerequisites of augmentations when grafting (#1814) 2024-11-30 15:46:04 -08:00
catloversg
9efc091f8d CORPORATION: Improve FAQ and .lit file (#1808) 2024-11-30 15:36:02 -08:00
catloversg
7a4b3e23c1 CODEBASE: Show error dialog when finding out old bugs in pre-v2.4.0 (#1816)
* CODEBASE: Show error dialog when finding out old bugs in pre-v2.4.0

* Only show error dialog once
2024-11-30 15:31:44 -08:00
catloversg
9c7223f876 MISC: Enable new lint rules (#1806) 2024-11-27 13:56:58 -08:00
catloversg
fdcdf0e27a MISC: Add missing comma in changelog (#1805) 2024-11-27 13:55:51 -08:00
David Walker
b829f28f8c MISC: Update changelog (#1804)
Updated through c6865802
2024-11-27 01:42:34 -08:00
catloversg
c686580289 MISC: Update changelog (#1803) 2024-11-27 01:28:35 -08:00
catloversg
1e6c9d69e2 JEST: Move TerminalMatching.test.ts (#1801) 2024-11-27 01:23:51 -08:00
catloversg
88322a23a7 BUGFIX: Cannot load Bladeburner tasks of Sleeves from pre-v2.6.1 (#1800) 2024-11-27 01:23:20 -08:00
catloversg
22b6458c22 REFACTOR: Handle migration of ActionIdentifier in Bladeburner code instead of GenericReviver (#1799) 2024-11-27 01:22:23 -08:00
catloversg
3846c69204 BUGFIX: Infinite loop when migrating player's scripts from pre-v1.0.0 (#1798) 2024-11-27 01:18:43 -08:00
catloversg
55627d7212 CORPORATION: Fix wrong initial productionMult of new division (#1794) 2024-11-27 01:16:19 -08:00
catloversg
faed78cf2c CODEBASE: Validate AllGangs and StockMarket after loading with JSON.parse (#1783) 2024-11-27 01:13:47 -08:00
catloversg
7d03a9ef32 CODEBASE: Improve type checks in SaveObject.ts (#1774) 2024-11-27 00:35:09 -08:00
catloversg
6d2e106371 MISC: Change current version to 2.7.0 (#1795) 2024-11-27 00:07:16 -08:00
catloversg
bb0b857f71 JEST: Add tests for b1tflum3 and destroyW0r1dD43m0n API (#1802) 2024-11-27 00:06:11 -08:00
catloversg
9d8ac65aaf BUGFIX: Generic Reviver does not handle Message class (#1796) 2024-11-24 13:46:18 -08:00
catloversg
294c9cbf4d MISC: Accept "noscript" as parameter for skipping loading scripts (#1797) 2024-11-24 13:44:30 -08:00
catloversg
05da0efc81 REFACTOR: Mitigate cyclic dependency between Jsonable classes (#1792) 2024-11-23 15:53:31 -08:00
catloversg
45a6ca6b8e BUGFIX: Wrong usage of delete operator in Settings.load (#1791) 2024-11-23 15:23:57 -08:00
catloversg
596a621c62 BUGFIX: Missing migration code for v0.56.0 (#1790) 2024-11-21 22:57:36 -08:00
catloversg
8c4fcfe045 CODEBASE: Recheck all usages of typecasting with JSON.parse (#1775) 2024-11-20 23:47:02 -08:00
catloversg
70a231e421 BUGFIX: Hashserver UI shows wrong server list when purchasing upgrades (#1782) 2024-11-20 12:53:11 -08:00
catloversg
fe2c98e3cf BLADEBURNER: Deduct karma when successfully completing action involving killing (#1784) 2024-11-20 12:51:18 -08:00
Jon Hartnett
99aeecbd0e BUGFIX: Fix ramOverride check (#1787)
ramOverride currently prevents you from actually using exactly all of a server's memory due to a bug in the ram check. Simply replace ">=" with ">" to allow the new ram to equal the max ram.

Test script:
```js
/** @param {NS} ns */
export async function main(ns) {
  ns.tprint(ns.ramOverride(8));
}
```
Expected output (on fresh save):
```js
8
```
Output before this commit:
```js
1.6
```
2024-11-20 12:47:55 -08:00
catloversg
04611a30b6 MISC: Remove duplicate usages of special server's hostname (#1781) 2024-11-19 11:47:34 -08:00
David Walker
5faa418c74 REFACTOR: Better casting in JSONReviver.ts (#1780) 2024-11-19 11:45:26 -08:00
catloversg
d824cd4fa6 CODEBASE: Add comments to Generic_fromJSON (#1776) 2024-11-18 15:36:23 -08:00
gmcew
93a9475b8d Fix hashnet server list (#1779)
Remove WD if TRP isn't installed.
2024-11-18 14:23:01 -08:00
catloversg
75cf9c88b5 CODEBASE: Fix lint errors 3 (#1758)
This is a really big refactor because it actually *fixes* a lot of the lint errors instead of disabling them.
2024-11-14 08:18:57 -08:00
catloversg
97ca8c5f5e CODEBASE: Fix lint errors 4 (#1773)
Co-authored-by: Michael Ficocelli <ficocemt@gmail.com>
2024-11-14 07:47:35 -08:00
catloversg
4f84a894eb MISC: Add error cause to exceptionAlert and Recovery mode (#1772) 2024-11-12 19:27:18 -08:00
catloversg
246d668951 CORPORATION: Rewrite validation code for strings of price and quantity (#1753) 2024-11-12 07:39:21 -08:00
catloversg
9bba6a0a41 CORPORATION: Fix negative stored material (#1771) 2024-11-12 07:24:59 -08:00
catloversg
9013ea935a BUGFIX: nano and vim use wrong template for text files (#1770) 2024-11-12 07:22:17 -08:00
catloversg
48b25d2223 MISC: Update monaco-editor (#1769) 2024-11-12 07:20:42 -08:00
catloversg
5d26f4fa56 GANG: Show error popup when there are errors (#1763)
* GANG: Show error popup when there are errors

* Only show error once when it's in a hot code path
2024-11-11 07:41:38 -08:00
catloversg
72a63b15cb API: Return active SF levels in getOwnedSourceFiles and ResetInfo.ownedSF (#1761)
* DOCUMENTATION: Clarify getOwnedSourceFiles when player overrides active levels of SFs
* Return Player.activeSourceFiles instead of Player.sourceFiles
* Get rid of zeroes in the map
2024-11-10 22:56:57 -08:00
catloversg
cb9e281c45 UI: Auto focus hashnet upgrade modal (#1768) 2024-11-10 22:54:51 -08:00
catloversg
40651a757d CORPORATION: Clarify ns.corporation.bribe() (#1766) 2024-11-10 22:53:27 -08:00
catloversg
c638d858c6 DOCUMENTATION: Clarify FactionWorkRepGain multiplier (#1767) 2024-11-10 16:40:13 -08:00
catloversg
e825492319 CORPORATION: Expose valuation via ns.corporation.getCorporation() (#1765) 2024-11-10 16:32:25 -08:00
catloversg
daec7482fa UI: Change order of information in stats progress bar (#1764) 2024-11-10 16:30:47 -08:00
catloversg
650cf51acb DOCUMENTATION: Add more information for deprecated nFormat API (#1762) 2024-11-10 16:27:35 -08:00
catloversg
f4c2b29d40 GANG: Show confirmation popup if player enables territory clashes while being too weak (#1760) 2024-11-09 21:12:17 -08:00
G4mingJon4s
d6874d68aa UI: Added the ability to change the font size (#1703) 2024-11-09 16:50:18 -08:00
catloversg
90cb8a9551 MISC: Add proper type check to AST walking code (#1757) 2024-11-09 15:34:46 -08:00
catloversg
36c143b687 CODEBASE: Fix lint errors 2 (#1756) 2024-11-06 23:09:11 -08:00
catloversg
e3c10e9f0f MISC: Always add script's earnings to its parent (#1754) 2024-11-06 18:44:38 -08:00
catloversg
60c4be0496 MISC: Add generic type as returned type for action and checking (#1748) 2024-11-06 18:10:56 -08:00
catloversg
36eb12098f CORPORATION: Fix typo in documentation (#1752) 2024-11-06 18:03:04 -08:00
catloversg
c7cf0b853b MISC: Minor code change in SkillElem.tsx (#1751) 2024-11-04 16:24:15 -08:00
catloversg
81e068ba9c MISC: Include React component stack in Recovery Mode report (#1750) 2024-11-04 16:20:02 -08:00
catloversg
e5e4e2693f DOCUMENTATION: Clarify getSkillUpgradeCost and fix typo in BaseTask (#1749) 2024-11-03 23:27:59 -08:00
catloversg
772762493f BLADEBURNER: Change sleeveSize from property to getter (#1746) 2024-11-03 23:19:01 -08:00
catloversg
56c797e23f BLADEBURNER: Remove duplicate getRecruitmentSuccessChance (#1745) 2024-11-03 23:16:54 -08:00
catloversg
bc02d4f92f BLADEBURNER: Change skill.canUpgrade and Skills UI (#1744) 2024-11-03 23:08:19 -08:00
JMack6490
5786d7adcb DOCUMENTATION: Update NetscriptDefinitions.d.ts (#1743)
Added line 5934: using hackAnalyzeThreads on a server you cannot hack returns -1
2024-11-03 22:54:43 -08:00
catloversg
b388865317 UI: Fix typo in CovenantPurchasesRoot.tsx (#1740) 2024-11-03 22:38:19 -08:00
catloversg
c8183e55db BUGFIX: Crash in theme editor modal (#1735) 2024-11-03 22:38:01 -08:00
catloversg
f6502dd490 CODEBASE: Fix lint errors 1 (#1732) 2024-11-03 22:35:14 -08:00
catloversg
f7ee3a340f MISC: Remove or change popup shown when system clock moved backward (#1739) 2024-10-30 04:15:43 -07:00
catloversg
a12c48ed43 UI: Disable font ligatures by default (#1729) 2024-10-27 22:39:01 -07:00
ballardrog
0bf378a1b0 IPVGO: Add getCheatCount(). (#1734) 2024-10-27 18:52:23 -07:00
catloversg
b01527a9dc MISC: Update blood donation (#1736) 2024-10-27 18:40:23 -07:00
Michael Ficocelli
6df3dcdc82 IPVGO: Add optional board state argument to the go analysis functions (#1716) 2024-10-27 17:31:06 -07:00
Michael Ficocelli
ecc2d92edb IPVGO: uncheck the 'show prior move' feature when a new game is started (#1728) 2024-10-27 17:25:04 -07:00
catloversg
810cfc8b21 MISC: Validate hostname and port of RFA (#1721) 2024-10-23 18:12:04 -07:00
catloversg
f49d3b32a5 DOCUMENTATION: Clarify cyclesWorked of Task (#1725) 2024-10-23 16:18:18 -07:00
catloversg
9a0400d3df API: Improve built-in print APIs when printing objects containing Map or Set (#1723) 2024-10-23 16:01:58 -07:00
catloversg
d0022aac2b DEVMENU: Reset other gangs when leaving gang (#1715) 2024-10-23 01:55:22 -07:00
catloversg
b72c03acf0 DOCUMENTATION: Clarify "completion" property of GraftingTask (#1713) 2024-10-21 21:22:17 -07:00
catloversg
3ce2ae5fd7 API: Change type of skill name parameter of skillMaxUpgradeCount API (#1712) 2024-10-21 20:39:56 -07:00
catloversg
c5e50ba327 MISC: Improve discoverability of Corporation documentation (#1711) 2024-10-21 20:38:56 -07:00
catloversg
867f79c5ab API: Improve built-in print APIs when printing Promise objects (#1710) 2024-10-21 20:37:40 -07:00
catloversg
bc51733fbe MISC: Improve exception alert (#1709) 2024-10-21 20:36:29 -07:00
Denis Čahuk
8d1cfb2d97 BLADEBURNER: Test cover action completion (#1695) 2024-10-21 20:33:56 -07:00
catloversg
6d8084f40e MISC: Improve tutorial, documentation and discoverability of NS API documentation (#1697) 2024-10-20 20:37:42 -07:00
catloversg
a3e1b297ca MISC: Expose more information of HiveMind augmentation (#1701) 2024-10-20 20:36:42 -07:00
catloversg
97489629d9 CLI: Add warning when installing backdoor on backdoored server (#1705) 2024-10-20 20:36:02 -07:00
Denis Čahuk
2e6aa8989c BLADEBURNER: UI now shows tooltips on action success chance to indicate which stat it scales with (#1699) 2024-10-20 20:35:03 -07:00
catloversg
cc4c6d150b UI: Remove unnecessary newlines when augmentation does not have stats (#1698) 2024-10-20 01:09:30 -07:00
David Walker
424ae160ba NETSCRIPT: Fix dynamicRamUsage returned by getRunningScript() (#1704)
Fixes #1700
2024-10-20 00:52:57 -07:00
Pimvgd
24ab173d6c UI: Fix typo in field work description (#1691) 2024-10-09 21:18:57 -07:00
Alain Bryden
cd99006c4e NETSCRIPT: Update ScriptDeath to extend Error (#1685)
* Update ScriptDeath to extend Error

- Rename the "name" property to "hostname" so that it doesn't clash with inherited Error.name property.
- Extend Error, this way if a user ends up catching it they can:
  - Test the type of error caught (name) and ignore it if desired
  - Get a stack trace and find out where they went wrong
  - Not require special case error printing logic for catching things that are neither strings, nor Error objects.

It is possible (but unlikely) that this could make killing scripts slower in some circumstances.
2024-10-09 21:18:06 -07:00
catloversg
cace34d759 BUGFIX: Wrong calculation in team casualties of Bladeburner action (#1672) 2024-10-07 23:55:11 -07:00
catloversg
2fa8dd41ac BUGFIX: Missing tooltip when doing faction work (#1679) 2024-10-07 23:51:02 -07:00
egg362
dc328b14df MISC: Fixes to typos in augmentation descriptions (#1680) 2024-10-07 23:28:21 -07:00
catloversg
b829534067 BUGFIX: Scripts are killed too late when prestiging (#1683)
* Scripts are killed too late when prestiging
* Kill all scripts earlier
2024-10-07 23:20:58 -07:00
catloversg
e644c0e91e API: Make condition of donateToFaction consistent (#1686) 2024-10-07 23:14:09 -07:00
catloversg
3ef3821a08 DOCUMENTATION: Clarify condition of ns.corporation.bribe (#1687) 2024-10-07 23:12:35 -07:00
Caldwell
ccd9118b93 MISC: add stopFlag check before running main (#1689)
It's possible that before the script starts runn, the stopFlag is set.
2024-10-07 22:57:35 -07:00
catloversg
4d60c833cc MISC: Remove mention of Hacking Mission (#1684) 2024-10-06 22:58:24 -07:00
Ben Rog-Wilhelm
dad34a09dd CONTRACT: Fix incorrect description of Hamming Codes in Integer to Encoded Binary. (#1677) 2024-10-04 03:51:31 -07:00
Shy
7c3d71d21a MISC: remove google analytics config (#1676) 2024-10-03 16:12:51 -07:00
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
catloversg
32e00aff7a BUGFIX: Wrong parameter requirement of ns.bladeburner.setTeamSize (#1673) 2024-09-30 20:18:25 -07:00
lucebac
7513fec507 EDITOR: import resolution in code editor (#1661)
* FIX: import resolution in code editor
Since I did not find any callback where we could just load imports
on-demand, I opted for just loading all scripts from the server where
a given script was opened from command line. This does not include
scripts which are already open, only files which are not yet opened
will be loaded.
2024-09-26 11:36:42 -07:00
Yichi Zhang
2b4410739d HACKNET: Remove hacknet servers from ServerType.Foreign (#1665) 2024-09-25 16:19:25 -07:00
Denis Čahuk
6c81e1ac67 BLADEBURNER: test cover console commands (#1664) 2024-09-25 16:06:46 -07:00
Denis Čahuk
b86044bcc1 BLADEBURNER: Move bladeburner team losses to Casualties (#1654) 2024-09-23 17:03:01 -07:00
Marvin Sautter
cf2d9b8335 Update babel-plugin-transform-barrels to the official version 1.0.17 for improved stability (#1663) 2024-09-22 22:27:51 -07:00
catloversg
c2727b5127 BUGFIX: Change generation rate of CCTs (#1657) 2024-09-22 21:35:34 -07:00
catloversg
53c8296baf BUGFIX: Follow-up of #1658 (Wrong team size in Bladeburner) (#1662) 2024-09-22 21:33:01 -07:00
catloversg
ade92ed297 BUGFIX: Wrong size of table cell in Import Save Comparison UI (#1659) 2024-09-20 21:02:57 -07:00
catloversg
70e16bf349 BUGFIX: Wrong team size when all team members die in Bladeburner's action (#1658) 2024-09-20 02:31:15 -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
Denis Čahuk
cde5e3f6ae MISC: Refactor BLADEBURNER Identifier Lookup (#1646) 2024-09-14 17:39:18 -07:00
David Walker
f39402e8be BLADE: Use "grow" semantics for population estimate (#1624)
This changes the way percantage-based population estimates work, so that
they have a similar mechanism to grow(). This allows natural recovery
from 0, and also falling to 0 in finite steps.

This also changes the formula for reducing estimates to est / (1 + p)
instead of est * (1 - p). The latter becomes overpowered at large p,
we've seen this formula issue elsewhere (such as BN modifiers).
2024-09-13 23:41:10 -07:00
Marvin Sautter
3d7a6f70d8 JEST: Test faster by removing barrels (#1645) 2024-09-09 18:36:00 -07:00
Marvin Sautter
dd59612121 JEST: Decrease frequency of random Bladeburner Tests by ~59% for improved performance (#1648) 2024-09-09 18:33:37 -07:00
Michael Ficocelli
2a5b0ca4e9 IPVGO: Prevent issues caused by resetting the board while the go AI is in flight (#1608) 2024-09-07 18:33:49 -07:00
catloversg
4f426e1b20 UI: Change description of Documentation button in Script Editor (#1644) 2024-09-07 18:08:16 -07:00
G4mingJon4s
651b17739c NETSCRIPT: Add ns.self() as a free info function (#1636)
* added utility info

* moved info to running script

* fix for RAM cost

* description changes

Co-authored-by: David Walker <d0sboots@gmail.com>

* fixed wrong formatting

* Added parent to ignored fields

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2024-09-07 17:34:24 -07:00
catloversg
0ce5cd35dc DOCUMENTATION: Fix mangled NS API TSDoc (#1643) 2024-09-07 17:29:23 -07:00
nobody0
17e906cd76 Update NetscriptDefinitions.d.ts to match class BitNodeMultipliers (#1642) 2024-08-30 19:31:04 -07:00
Fireball5939
95394b5956 DOCUMENTATION: Improve ns.enableLog() docs to remove a missleading description (#1634)
Changed ns.enableLog documentation to be very similar to ns.disableLog, to remove possible confusion that it only undoes the effects of ns.disableLog
2024-08-26 19:49:44 -07:00
Tahvohck
47b261f520 STANEK: Typo fix in description (#1627)
Fixing a typo (missing space) in the CotMG faction info text.
2024-08-25 10:14:33 -07:00
Nicole
b4f2a5c641 set static information netscript costs to 0 (#1628) 2024-08-25 10:09:36 -07:00
catloversg
3750363d95 MISC: Show more information about documentation in last step of tutorial (#1630) 2024-08-25 10:04:55 -07:00
catloversg
e58a7d8eaa DEVMENU: Use Autocomplete instead of Select in more tools (#1631) 2024-08-25 10:02:28 -07:00
catloversg
2e42a1f781 DOCUMENTATION: Minor changes in index page (#1626) 2024-08-24 14:11:11 -07:00
catloversg
ac0c9bd7e8 BUGFIX: Missing error handler when calling libarg (#1625) 2024-08-24 14:08:42 -07:00
gmcew
49629d1d28 UI: Remove extra "label=" text from SmartSupply interface (#1622) 2024-08-23 21:27:36 -07:00
Yichi Zhang
028e779602 NETSCRIPT: Don't make dynamicLoadedFns entries for free functions. (#1617) 2024-08-23 21:23:41 -07:00
Nicole
2141032432 BLADE: Fix population estimate percent growth when estimate is 0 (#1620) 2024-08-23 21:22:41 -07:00
catloversg
be515cc195 BUGFIX: Crash in b1tflum3 and destroyW0r1dD43m0n API (#1619) 2024-08-23 21:06:53 -07:00
catloversg
329d8ca8e6 BUGFIX: Wrong skill multipliers in Bladeburner (#1615) 2024-08-23 21:04:13 -07:00
bupjae
95bb6a33df DOCUMENTATION: Clarify experience gain of sleeves (#1609) 2024-08-22 12:53:16 -07:00
Nicole
7f5c4e1fe0 API: Reduced RAM cost for ns.getPurchasedServers (#1614) 2024-08-22 00:44:21 -07:00
catloversg
614bec1e13 DOCUMENTATION: Fix wrong description of ns.corporation.createCorporation (#1612) 2024-08-21 17:50:47 -07:00
catloversg
4a3dcf8a26 MISC: Expose internal data in dev build (#1611) 2024-08-21 17:50:11 -07:00
Sol
8d9f63f49f UI: Fix incorrect information given in pserv upgrade error msg. (#1602) 2024-08-21 17:48:55 -07:00
catloversg
818d7446be MISC: Rename getRandomArbitrary (#1605) 2024-08-21 16:50:51 -07:00
Nicole
995e367432 DOCS: Correct function signature for hashUpgradeCost (#1603) 2024-08-21 16:47:26 -07:00
David Walker
f235513742 CHANGELOG: Update changelog for 2.6.3dev (#1601)
Commit d82247a4 was a lazy update, this finishes putting all the entries
in the changelog. The "last updated" date is not changed, since it is
only including changes up to the old date.

Reverts the html-ification introduced in the last changelog update.
2024-08-18 17:28:59 -07:00
Yichi Zhang
2563874acb MISC: Use indirect eval for terminal expr and corporation sell prices/amounts (#1599) 2024-08-17 18:13:31 -07:00
catloversg
94eef8ecde BUGFIX: Fix inconsistencies of error handling in promise-based API (#1377) 2024-08-17 14:23:08 -07:00
Fireball5939
701c5d8e64 API: Fixed ns.singularity.donateToFaction being able to donate to SoA (#1595)
Fixed ns.singularity.donateToFaction bug
Fixed a bug within singularity.donateToFaction where you could use it to donate to Shadows Of Anarchy
Also updated the Node version in package-lock.json to 18
2024-08-17 14:10:01 -07:00
catloversg
cacecda72f API: Add types for parameters of gym-university-bladeburner API (Fix merging error) (#1596)
* API: Add types for parameters of gym-university-bladeburner API
* Fix merging error
2024-08-17 14:08:55 -07:00
David Walker
5b2a4eafcb MISC: Improve several things relating to PID lookups (#1594)
findRunningScriptByPid needlessly took a "server" argument. This caused
there to be a "getRunningScriptByPid" version that did *not*, and it was
looping through all servers in order to function, which is needlessly
inefficient.

By removing the parameter and the needless inefficient helper method,
the following changes:
- Many Netscript functions such as isRunning() and getScript() become faster.
- The terminal "tail" command now works by pid regardless of the current
  server. Note that "kill" already worked this way.

I also improved the docs around "tail", since the pid argument wasn't
in the help.
2024-08-17 14:03:00 -07:00
David Walker
34db6e8b26 NETSCRIPT: Rework disableLog for efficiency (#1589)
The current implementation was naive; disableLog("ALL") was storing a
key for every function, and iterating over a different object to do it
(when iterating over objects is quite slow).

The common cases of Bitburner (and especially batching, where efficiency
matters most) are either never disabling anything, or disabling "ALL".
This optimizes for these two cases, at the expense of slightly more
complicated code to deal with the less-common edge cases.
2024-08-16 19:10:20 -07:00
Nicole
385a9dc11d BUGFIX: Fix Bladeburner city chaos reaching Infinity/NaN (#1588) 2024-08-16 16:28:43 -07:00
David Walker
79bb0d289a Revert "API: Add types for parameters of gym-university-bladeburner API (#1591)" (#1592)
This reverts commit da8870ed79.
2024-08-16 13:45:54 -07:00
catloversg
da8870ed79 API: Add types for parameters of gym-university-bladeburner API (#1591) 2024-08-16 13:29:24 -07:00
catloversg
289f60d8c8 BLADEBURNER: Add API to calculate max upgrade count of skill (#1475) 2024-08-16 13:15:20 -07:00
catloversg
3d15413619 MISC: Increase minimum node version (#1565) 2024-08-16 13:01:09 -07:00
catloversg
4a1506cf7e BUGFIX: Block hacking-related actions on player-owned servers (#1585) 2024-08-16 02:05:22 -07:00
catloversg
a9cb46606c DOCUMENTATION: Update documentation of Corporation API (#1587) 2024-08-16 02:02:23 -07:00
Snarling
d82247a404 Lazy changelog update
Just referencing commit history for changelog right now
2024-08-15 18:09:42 -04:00
catloversg
a48bfba536 BUGFIX: Wrong error message when failing to recruit gang member (#1580) 2024-08-15 13:15:05 -07:00
catloversg
8e278f9262 CI: Update Node version (#1578) 2024-08-15 13:08:21 -07:00
catloversg
9db1084b16 MISC: Cancel infiltration when player is hospitalized (#1579) 2024-08-14 22:20:17 -07:00
catloversg
440c074606 UI: Allow filtering graftable augmentations (#1570) 2024-08-14 22:18:27 -07:00
catloversg
dbeaef94a2 CORPORATION: Fix NaN Total Assets caused by bug in bulkPurchase API (#1573) 2024-08-14 22:09:41 -07:00
catloversg
1d9e026b6e DOCUMENTATION: Remove wrong information in ns.weaken (#1574)
* DOCUMENTATION: Remove wrong information in ns.weaken

* Update based on the feedback
2024-08-14 22:07:42 -07:00
catloversg
e3dc867e08 UI: Notify players about documentation tab after getting SF1.1 (#1571) 2024-08-13 16:04:08 -07:00
catloversg
e7cd2ee19b DEVMENU: Use Autocomplete instead of Select in augmentation tool (#1569) 2024-08-13 15:59:49 -07:00
catloversg
6c2d44b0fe DOCUMENTATION: Fix errors and warnings shown by api-extractor (#1566) 2024-08-13 15:57:15 -07:00
catloversg
5427ae71ca DOCUMENTATION: Fix wrong description of ns.singularity.applyToCompany (#1561) 2024-08-13 15:28:02 -07:00
catloversg
23f98c1ff6 UI: Add success chance of Bladeburner action to Sleeves UI (#1567) 2024-08-11 16:59:08 -07:00
Nicole
7029ac9bcc UI: Add apostrophe to stanek's gift strings (#1568) 2024-08-11 16:38:40 -07:00
David Walker
ff80847af6 MISC: Improve rep calculation accuracy (#1559) 2024-08-09 16:26:01 -07:00
Yichi Zhang
93eb9b0cef Add buyAmount and importAmount to Corporation Material API (#1553) 2024-08-08 18:13:03 -07:00
catloversg
685b7d51f7 ELECTRON: Update Electron to v29 (#1556) 2024-08-08 18:10:55 -07:00
Michael Ficocelli
e16ac34c15 IPVGO: add scoring rules explanations to how to play page and score modal (#1558) 2024-08-08 17:44:19 -07:00
catloversg
59bb58535e DEVMENU: Small change in augmentation tool (#1557) 2024-08-08 17:40:52 -07:00
catloversg
1fdb8bd352 UI: Always show description of faction price multiplier (#1555) 2024-08-08 17:39:53 -07:00
catloversg
ed01fb8e9e BUGFIX: Wrong success range of Bladeburner general action (#1552) 2024-08-08 17:37:22 -07:00
catloversg
75cacc36bc BUGFIX: Outdated formula of favor in tooltip (#1554) 2024-08-08 16:46:19 -07:00
gmcew
2d1747b3e9 CONTRACTS: Hamming Code parity sentence clarification, "Find All Valid Math Expressions" missing line breaks added, example formatting made consistent (#1550) 2024-08-06 15:02:54 -07:00
catloversg
1a8dcad02b BUGFIX: Duplicated program in edge case (#1549) 2024-08-05 13:43:56 -07:00
catloversg
180dae1d2c DOCUMENTATION: Add GoAnalysis and GoCheat (#1548) 2024-08-05 13:42:19 -07:00
catloversg
9a77b47241 MISC: Remove js-sha256 (#1278) 2024-08-05 13:40:16 -07:00
catloversg
eeac3f7dd1 BUGFIX: Duplicated augmentation when buying after grafting (#1536) 2024-08-04 13:11:00 -07:00
catloversg
e5a63b4116 MISC: Fix typos in NetscriptDefinitions.d.ts (#1546) 2024-08-04 13:09:50 -07:00
catloversg
986ac0b627 BUGFIX: Wrong countdown of remaining time for Bladeburner action (#1547) 2024-08-04 13:07:10 -07:00
catloversg
23f193c8eb MISC: Remove unnecessary dependency in Person class (#1534) 2024-08-04 00:04:06 -07:00
catloversg
1b9676c68e MISC: Clarify deprecation warning of ns.getTimeSinceLastAug() (#1535) 2024-08-04 00:01:34 -07:00
catloversg
7c7293b687 BUGFIX: Prompt does not reset text value (#1539) 2024-08-04 00:01:01 -07:00
catloversg
1ed47b4bc9 BUGFIX: Tab completion uses wrong command list (#1537) 2024-08-03 23:52:29 -07:00
catloversg
829eda2e5a MISC: Add help text for changelog command (#1540) 2024-08-03 23:43:14 -07:00
BaxoPlenty
3be9f9dfd7 BUGFIX: Fix link to non-existing page (#1541) 2024-08-03 23:42:43 -07:00
Yichi Zhang
0dd42a1d57 TERMINAL: Stop terminal scp from revealing and copying to unreachable servers (#1542) 2024-08-03 23:38:00 -07:00
catloversg
d9394db543 BUGFIX: Add missing BN multipliers in UI (#1545) 2024-08-03 23:17:50 -07:00
Tom Prince
935ac610d3 EDITOR: Support cross-language imports in editor. (#1518) 2024-08-01 23:59:31 -07: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
6483b5e7fe BUGFIX: Crash when accessing nonexist files with file protocol (#1529) 2024-08-01 23:09:49 -07:00
catloversg
06677a1306 MISC: Refactor Person.ts and Sleeve.ts (#1532) 2024-08-01 22:59:41 -07:00
catloversg
d4b73531f5 DOCUMENTATION: Remove unmaintained VS Code extension (#1531) 2024-08-01 22:45:47 -07:00
catloversg
9308301b12 UI: Fix misleading favor numbers (#1530) 2024-08-01 22:44:03 -07:00
catloversg
bcb4a3835b BLADEBURNER: Allow upgrading skill level over max safe integer (#1509) 2024-07-31 12:48:09 -07:00
Michael Taylor
0ceb478e32 DOC: Typo in ns2 migration doc (#1528) 2024-07-31 12:41:54 -07:00
mmjr-x
4d57d636af INFILTRATION: Minesweepergame minor bugfix, made rounding behavior for height, width and mine count consistent (#1526) 2024-07-30 15:23:55 -07:00
TheAimMan
6cae65fc0d BUGFIX: Cap Gang recruit member calculation (#1523) 2024-07-27 15:44:00 -07:00
gmcew
ad5e2b0fe5 CONTRACT: Remove "&nbsp;"s from .getDescription() result (#1525) 2024-07-27 15:42:28 -07:00
TheAimMan
d4f3cf7d81 BUGFIX: Stop current work when starting a program with Singularity (#1521) 2024-07-26 15:05:27 -07:00
Tom Prince
dd5fcc077a MISC: Add some more types to webpack.config.js. (#1511)
Also fix some errors detected when turning on checking for it.
2024-07-26 02:17:59 -07:00
Tom Prince
1e6e635ae3 BUGFIX: Correctly show remaining grafting/programming time left when cycles are skipped. (#1510) 2024-07-26 02:05:29 -07:00
Tom Prince
c3dc275d34 MISC: Show values of constants in type hints. (#1515) 2024-07-26 01:56:09 -07:00
Tom Prince
02538d6953 EDITOR: Enable strict typechecking of typescript. (#1493)
* EDITOR: Tweak typescript language server configuration to match use.

- We allow importing files with `.ts`/`.tsx` extensions.
- We use an file-at-a-time transpiler, so we don't support features
  that require understanding the full type system.
- We use the classic `React.createElement` transform.
2024-07-23 21:28:05 -07:00
Tom Prince
854c1a5921 MISC: Remove unsed attribues of internal ScriptDeath. (#1513) 2024-07-23 17:50:51 -07:00
robofinch
42bcfa1889 BUGFIX: Prevent runtime NotAllowedError on Safari (#1507)
Could occur when the browser’s window is resized.
2024-07-20 01:16:02 -07:00
David Walker
4502fd443e BUGFIX: Don't spin forever if IDB can't be loaded (#1500)
Our IndexDB handling did not have very good error handling. It wasn't
reporting the actual errors that occured, nor was it using actual Error
objects. In some cases it also had overly convoluted Promise use, and it
didn't need to be .tsx either.

The biggest issue was that if any problem occured during the main
load(), this would end up as an unhandled rejection and so it would only
be logged to the console. This extends the previous catch to also cover
this, so that the recovery screen is activated.
2024-07-19 19:27:04 -07:00
ngcthao
b73816f9db DOC: Update README.md (#1503) 2024-07-19 17:41:59 -07:00
Tom Prince
d1f190c894 BUGFIX: Fix mathjax path on dev server. (#1501) 2024-07-19 17:13:42 -07:00
Tom Prince
dc93d166f0 BUGFIX: Use mathjax from npm, rather than vendored copy. (#1491) 2024-07-18 16:27:01 -07:00
catloversg
ceaf27714b MISC: Remove testing code in ScriptTransformer (#1499) 2024-07-17 23:23:18 -07:00
Tom Prince
ea83138722 MISC: Add a type annotation to webpack configuration function. (#1497) 2024-07-17 16:08:32 -07:00
catloversg
cea0afe1f4 EDITOR: Follow-up of #1470 (Editor outline) (#1498) 2024-07-17 15:18:10 -07:00
David Walker
abe7a43eec MISC: Always include stack trace in Recovery Mode (#1487)
We are getting some more error reports coming in that don't have enough
info in them. It turns out that populating the stack trace was gated
behind the dev flag; in reality, production builds are where we need it
most. Even if it ends up being obfuscated (source maps should prevent
this), we can figure out the actual source lines with enough effort if
need be.

This also changes to using the actual stack trace, rather than the
"component" trace (the tree of JSX objects), since knowing where the
code failed is far more valuable. Also, it ensures we get the full error
details when things go wrong in savefile loading.
2024-07-14 22:51:18 -07:00
catloversg
864613c616 MISC: Support JSX, TS, TSX script files (#1216) 2024-07-14 14:47:10 -07:00
catloversg
783120c886 FEATURE: BitNode options (#1411) 2024-07-14 14:30:30 -07:00
catloversg
0e1e8a9862 MISC: Disable rumor of Bladeburners in BN8 (#1484) 2024-07-14 14:20:10 -07:00
catloversg
8d39c7d9fc UI: Only show relevant changes in "Purchased Augmentations" table (#1476) 2024-07-08 11:07:19 -07:00
David Walker
06553d9700 BUGFIX: Fix "Router called before initialization" race (#1474)
If the game takes long enough to load, certain counters can become
eligible to run as soon as Engine.start() runs. When this happens,
eventually Router.page() is called, which throws an Error since Router
isn't initialized yet. (Dropping a breakpoint before Engine.start() and
waiting at least 30 seconds is enough to reliably repro, but I have seen
this both live and in tests.)

This fixes it so that Router.page() is valid immediately, returning a
value of Page.LoadingScreen. It also removes the isInitialized field,
since this is now redundant. Trying to switch pages is still an error,
but that doesn't happen without user input, whereas checking the current
page is quite common.

This also consolidates a check for "should we show toasts" behind a
function in Router, making the logic central and equal for a few
usecases. This means (for instance) that the "autosave is disabled"
logic won't run during infiltration. (The toast should have already been
suppressed.)
2024-07-07 22:13:37 -07:00
catloversg
2b6ec5cd33 BLADEBURNER: Fix wrong behavior of ns.bladeburner.getSkillUpgradeCost (#1471) 2024-07-07 14:49:23 -07:00
jazzybones-www
1613eb38ed BUGFIX: fix a typo in the hamming code problem statement (#1472) 2024-07-07 14:41:22 -07:00
catloversg
8f0ea7c8c4 EDITOR: Work around bug in monaco-editor (#1470) 2024-07-07 14:38:22 -07:00
catloversg
b7a996718b UI: Tweak Hacknet summary (#1466) 2024-07-07 14:33:49 -07:00
Tom Prince
c4adbfc0ad EDITOR: Update monaco-editor to 0.50.0. (#1468) 2024-07-07 00:11:30 -07:00
Tom Prince
b277975656 EDITOR: Provide type definitions for React and ReactDOM in in-game editor. (#1458)
* Fix the type declaration of `!!raw-loader!` modules.

Instead of declaring them to export an object with a single key
`default` which is a string, the modules have a default export, which
is a string.

Note, that this doesn't actually change the generated code, just the
types that typescript sees. The code worked before because the only
thing done to the values was to coerce the values to a string, which
turned into a no-op.

* Switch from using `raw-loader` to using a source asset module.

`raw-loader` was deprecated in webpack v5.
2024-07-07 00:08:33 -07:00
catloversg
055b4bd7bc MISC: Add threshold for warning about system clock (#1463) 2024-07-06 22:24:51 -07:00
catloversg
f18d28fc6e DOCUMENTATION: Add link to NS API documentation (#1460) 2024-07-06 12:54:56 -07:00
catloversg
8ade4801a9 MISC: Remove redundant type of CONSTANTS (#1464) 2024-07-06 12:52:20 -07:00
David Walker
1f2e69631e EDITOR: Use ramOverride() to set compiled script RAM (#1446)
To use this, add a line like "ns.ramOverride(2);" as the first statement
in main(). Not only will it take effect at runtime, but it will now
*also* be parsed at compile time, changing the script's static RAM
limit. Since ns.ramOverride is a 0-cost function, the call to it on
startup then becomes a no-op.

This is an often-requested feature, and allows for scripts to set their
usage without it needing to be explicitly mentioned via args or options
when being launched. This also reduces pressure on the static RAM
analysis to be perfect all the time. (But certain limits, such as
"functions names must be unique across namespaces," remain.)

This also adds a tooltip to the RAM calculation, to make this slightly
discoverable.
2024-07-05 17:32:46 -07:00
catloversg
29c54df543 BLADEBURNER: Change formula of skill cost (#1443) 2024-07-05 14:27:28 -07:00
catloversg
02f5c5b727 MISC: Update description of source files (#1461) 2024-07-05 14:17:06 -07:00
Tom Prince
6fb6d38bd9 MISC: Update caniuse-lite to latest version. (#1459)
browserslist complains if caniuse-lite is more than 6 months old. This
updates to the latest version.

Note that there were no changes in supported versions based on this
update.
2024-07-05 14:02:33 -07:00
catloversg
26316c2494 BUGFIX: Fix wrong money source when traveling (#1456) 2024-07-04 14:19:36 -07:00
catloversg
313d6a28b6 MISC: Remove obsolete description of killall (#1453) 2024-07-04 00:03:18 -07:00
Snarling
8ee703760a Start 2.6.3 dev cycle 2024-07-03 19:39:21 -04:00
Snarling
633da38301 RELEASE: 2.6.2 (#1454) 2024-07-03 19:14:45 -04:00
catloversg
3c29757827 CORPORATION: Fix wrong product price calculation (#1451) 2024-07-02 15:11:32 -07:00
catloversg
960fe5aa8b BUGFIX: Wrong success chance in ns.bladeburner.getActionEstimatedSuccessChance (#1450) 2024-07-02 15:07:56 -07:00
catloversg
922f0bfcc5 BITVERSE: Fix React warning (#1449) 2024-07-01 13:17:30 -07:00
catloversg
e66a8e319f MISC: Remove debug code (#1448) 2024-07-01 13:16:47 -07:00
catloversg
3fafa23f28 GANG: Fix ns.gang.getRecruitsAvailable (#1442) 2024-06-28 20:18:29 -07:00
catloversg
b1c1fc24a9 GRAFTING: Add new api for checking ongoing grafting (#1435) 2024-06-28 19:59:18 -07:00
Tom Prince
32eb6324fd MISC: Simplify graftingIntBonus calculation. (#1445)
The weight of the intelligence bonus is a multiplier to the percentage increase. So, rather than calculate it with a weight of 3 and then divide by 3, we can just calculate it with a weight of 1.
2024-06-28 19:52:36 -07:00
Sphyxis
61ec7dde80 API: Get Sleeve Success at BB tasks through existing commands (#1428) 2024-06-28 19:49:52 -07:00
David Walker
9c9a69f2e2 NETSCRIPT: Add ramOverride() function (#1346)
This adds a way to dynamically change the static RAM limit of a script,
which is also its current RAM usage. This makes it possible for scripts
to dynamically change their memory footprint, opening up new strategies
beyond current ram-dodging.

Calling functions still permanently increases the *dynamic* memory
limit; RAM-dodging is still the optimal strategy for avoiding RAM costs,
in that sense.

This also adds dynamicRamUsage to the info returned by
`getRunningScript`, to allow introspection on the currently needed ram.
2024-06-28 18:42:20 -07:00
David Walker
1c20a24079 MISC: Make spawn able to have 0 delay (#1333)
This eliminates a hole where spawn was unrelaible, because other scripts
could jump in and steal the RAM. It's not an API break, because 0 used
to be an invalid value.
2024-06-28 18:41:41 -07:00
David Walker
06d742a7f3 BUGFIX: Fix rounding issues due to ramOverride edge cases (#1339)
*All* RAM calculations must take place in units of hundredths-of-a-GB in
order for there not to be issues.

Also adds slightly more verbose logging when the dynamic RAM check
fails.
2024-06-28 17:58:17 -07:00
muesli4brekkies
357cc568e9 TERMINAL: Tweaks and bugfixes to grep (#1431) 2024-06-28 15:13:49 -07:00
catloversg
21e984bda6 DOCUMENTATION: Clarify logging API (#1444) 2024-06-28 02:37:04 -07:00
catloversg
f620ec889c MISC: Update BitNode info and documentation (#1436) 2024-06-28 02:11:50 -07:00
catloversg
f162faf60a INFILTRATION: Improve accuracy of slash game UI (#1422) 2024-06-28 02:09:18 -07:00
catloversg
031b8b9cbb UI: Remember last position of documentation pages (#1434) 2024-06-28 02:08:10 -07:00
Snarling
64933419d6 Changelog update 2024-06-27 12:37:03 -04:00
Snarling
b597746343 TRAVEL: Unify implementation for Player and Sleeves (and some followup for #1365) (#1439) 2024-06-26 20:46:50 -04:00
catloversg
abdf5f52cd INFILTRATION: Handle automated infiltration (#1414) 2024-06-26 11:19:52 -04:00
Snarling
dc057d05fc minor package-lock update
Fixes an audit issue on a dev dependency
2024-06-25 19:30:30 -04:00
catloversg
cef789eb7c ELECTRON: Fix error with symbolic link (#1427) 2024-06-25 19:09:22 -04:00
catloversg
fd8eae5cf5 MISC: Cancel spawned scripts in Bitverse (#1429) 2024-06-24 22:20:08 -07:00
ilkecan
bf8c15332e CORPORATION: Don't check access for getConstants (#1430) 2024-06-24 22:18:57 -07:00
John Gietzen
819f877370 Update codingcontracttypes.ts to clarify '0' (#1433)
Fixes #1432
2024-06-24 22:02:11 -07:00
JamesWilcox-git
67cdd57728 BUGFIX: Hacknet level base cost multiplier fixed (#1412) 2024-06-24 21:40:50 -07:00
catloversg
5a8f0e99af SINGULARITY: Add ns.singularity.getFactionWorkTypes (#1425) 2024-06-24 20:43:36 -07:00
catloversg
0d8cc54c99 INFILTRATION: Fix React warnings (#1423) 2024-06-24 20:37:57 -07:00
catloversg
c0036b03d4 SINGULARITY: Allow being hospitalized while being busy (#1426) 2024-06-24 20:36:03 -07:00
catloversg
48bebeea2b MISC: Remove unused properties of source file (#1424) 2024-06-24 20:34:56 -07:00
Michael Ficocelli
49668f10b2 IPVGO: Fix displayed mult to match the actual bonus of SF 14.1 (#1419) 2024-06-24 20:31:09 -07:00
catloversg
847d45f4f4 GANG: Show equipments when there is not enough money (#1417) 2024-06-21 03:14:48 -07:00
catloversg
a62bdcafef BUGFIX: Fix a bug in ns.singularity.getAugmentationFactions (#1418) 2024-06-21 03:06:57 -07:00
catloversg
337fa4e274 GANG: Fix wrong wanted gain rate (#1415) 2024-06-21 03:05:33 -07:00
catloversg
eff834bfe9 BUGFIX: Fix wrong augmentation price (#1416) 2024-06-21 03:01:57 -07:00
David Walker
99b22a221c BUGFIX: Fix issues and edge-cases with rm (#1404) 2024-06-16 18:27:46 -07:00
catloversg
4382f860db CCT: Clarify empty string solution in UI (#1400) 2024-06-15 16:37:14 -07:00
catloversg
7a39a93fa9 MISC: Remove mention of re-sleeving (#1399) 2024-06-15 16:36:32 -07:00
catloversg
ceb58bc6b3 UI: Show BitNode multipliers in BN 5.1 (#1398) 2024-06-15 16:35:32 -07:00
Jesse Clark
f6de21ea18 UI: Clean up Hacknet UI (#1397) 2024-06-14 00:08:10 -07:00
muesli4brekkies
4936d14639 TERMINAL: Add grep command (#1381) 2024-06-14 00:00:48 -07:00
catloversg
a780880531 MISC: Add ns.enums to AutocompleteData (#1389) 2024-06-13 23:56:27 -07:00
Albert Llop
e9347fca76 DOCS: Fix example signature in IPvGO guide (#1396) 2024-06-13 23:55:46 -07:00
catloversg
417d420793 BLADEBURNER: Fix NaN in getSuccessRange (#1394) 2024-06-13 23:48:50 -07:00
catloversg
a12056a898 BLADEBURNER: Add remaining time for actions (#1391) 2024-06-12 19:21:23 -07:00
G4mingJon4s
bec6e82d7f EDITOR: changed editor tabs to have their own editor mode (#1372) 2024-06-12 19:19:40 -07:00
G4mingJon4s
805ca06922 TERMINAL: Added deleting entire directories using rm (#1378) 2024-06-12 19:17:39 -07:00
catloversg
344054f10d DOCUMENTATION: Clarify maximum number of ports (#1388) 2024-06-12 19:07:05 -07:00
catloversg
39b18e7659 BUGFIX: Fix wrong position name in ns.formulas.work.companyGains (#1393) 2024-06-12 14:34:13 -07:00
catloversg
2198a02152 MISC: Fix support of react-refresh-webpack-plugin (#1392) 2024-06-12 14:31:13 -07:00
catloversg
e76e254c3e BLADEBURNER: Fix wrong tooltip description in ActionLevel (#1384) 2024-06-12 01:24:57 -07:00
G4mingJon4s
ab80ee66c8 EDITOR: re-added vim notifications and register view (#1382) 2024-06-12 01:24:10 -07:00
G4mingJon4s
f25756916a GANG: added effective text to gang UI gains (#1379) 2024-06-12 01:21:27 -07:00
muesli4brekkies
7b3265346d ACCESSIBILITY: Wire cutting infil now prints colours of wire along the wire (#1380) 2024-06-09 16:49:34 -07:00
catloversg
9a2bb16548 MISC: Fix wrong help text of cd command (#1376) 2024-06-09 16:39:56 -07:00
Albert Llop
ba7d45362f bladeburner.getTeamSize: fix signature and documentation (#1383) 2024-06-09 16:39:01 -07:00
Albert Llop
995294a770 BUGFIX: bladeburner.getActionRepGain: mark level param as optional in signature (#1375) 2024-06-09 16:34:53 -07:00
catloversg
a0fc9cc713 UI: Automatically show Bitverse UI if BN is finished (#1358) 2024-06-08 13:54:44 -07:00
catloversg
a354867fc4 MISC: Refactor code of traveling and going to location (#1365) 2024-06-08 13:52:10 -07:00
catloversg
b8f03cb50b BLADEBURNER: Remove unused code (#1368) 2024-06-08 13:51:05 -07:00
catloversg
abcd6c545a BLADEBURNER: Remove obsolete fix (#1367) 2024-06-07 18:04:08 -07:00
catloversg
ebf08d5d1f BLADEBURNER: Improve terminal logging (#1361) 2024-06-07 13:41:42 -07:00
catloversg
8b3206e1c6 BLADEBURNER: Add Stop button and refactor code (#1363) 2024-06-07 13:34:47 -07:00
catloversg
d9efea0fe6 SLEEVES: Clarify augmentation condition (#1369) 2024-06-07 13:24:19 -07:00
catloversg
70383d9085 MISC: Change error message when spawning on an invalid server (#1370) 2024-06-07 13:23:04 -07:00
catloversg
16b9ad21ea MISC: Set copyright line for Electron app (#1371) 2024-06-07 13:21:26 -07:00
catloversg
e782b6fd7c DOCUMENTATION: Split changelog.md (#1374) 2024-06-07 13:20:18 -07:00
catloversg
e64247571d IPVGO: Add missing space characters in API documentation (#1373) 2024-06-07 13:15:46 -07:00
catloversg
7b3cf48453 CORPORATION: Refactor markup multiplier (#1362) 2024-06-06 23:10:16 -07:00
Michael Ficocelli
481938a2fb IPVGO: Balance and improvements for offline bonus time cycles (#1356) 2024-06-05 19:39:22 -07:00
G4mingJon4s
463d4cdb1d EDITOR: useVimEditor uses Material UI (#1332) 2024-06-05 18:30:03 -07:00
Michael Ficocelli
cf48d666f5 IPVGO: Add history, and details to status, to go API (#1348) 2024-06-05 18:24:48 -07:00
catloversg
30a6419b11 MISC: Use camel case for CSS properties (#1353) 2024-06-05 18:18:19 -07:00
catloversg
304a918cc9 BUGFIX: Fix negative elapsed time (#1354) 2024-06-05 18:11:59 -07:00
Michael Ficocelli
eeab6df718 IPVGO: Use tss-react makeStyles on the IPvGO board and UI (#1351) 2024-06-05 21:09:16 -04:00
Michael Ficocelli
fe3e8fb348 IPVGO: Fix crash caused by malformed previous move formatting (#1360) 2024-06-05 17:51:01 -07:00
Michael Ficocelli
d9e8161a64 IPVGO: Fix mismatch in board size options on save loader [save corruption bugfix] (#1355) 2024-06-05 18:27:27 -04:00
Kelenius
653d531d0a Remove sleeve message when quitting job from a script (#1357) 2024-06-05 18:25:54 -04:00
Michael Ficocelli
bd5c502f53 IPVGO: Support bonus cycles from offline time (#1345) 2024-06-04 18:43:29 -07:00
Michael Ficocelli
5f6a5c8785 IPVGO: Fix non-async promise-returning methods to be more consistent (#1327) 2024-06-04 18:37:00 -07:00
catloversg
7321d64383 BUGFIX: Fix manual hack exploit (#1324)
Formula is updated to be still relevant, but not crushing
2024-06-04 18:32:24 -07:00
Caldwell
2316bf5b69 BUGFIX: clamp bitnode mults (#1350) 2024-06-04 18:20:43 -07:00
Caldwell
c42d4143c9 BUGFIX: clamp Hackchance to prevent infinity / infinity (#1349) 2024-06-04 18:19:41 -07:00
Snarling
18ae6ce215 Changelog update 2024-06-04 10:21:44 -04:00
TheAimMan
101914b660 MISC: Add a potential of more than 1 core for initial servers (#963) 2024-06-04 09:50:28 -04:00
Snarling
3afafe4454 SLEEVE: Editorial followup on #1314 (#1347) 2024-06-04 09:49:23 -04:00
Caldwell
cb92643c7e IMPROVEMENT: partial migration @mui/styles to tss-react (#1338) 2024-06-03 12:27:13 -04:00
TheAimMan
e622b9b904 UI: change time elapsed to time remaining for programs and grafting (#1328) 2024-06-02 20:51:21 -07:00
Michael Ficocelli
d9f04203cf IPVGO: Record full history to avoid infinite ko capture loops on larger boards (#1299) 2024-06-02 20:19:26 -07:00
catloversg
2f7950b49c DOCUMENTATION: Clarify server's minimum security level (#1337) 2024-06-02 20:14:18 -07:00
gmcew
1f08724fea CORP: Products sell all at price of 0 (#1330)
Match material behaviour - price of 0 discards stored products
2024-06-02 18:01:03 -07:00
Michael Ficocelli
a28bb4bd99 IPVGO: Support playing manually as white against your scripts using the No AI type board (#1296) 2024-06-02 17:41:31 -07:00
Caldwell
f40d4f8e92 BUGFIX: fix relative imports (#1305)
Relative paths work in imports, at last.
2024-06-02 17:38:01 -07:00
Snarling
76ce2f9955 Hotfix changelog 2024-06-02 12:09:14 -04:00
catloversg
2ee548a140 BUGFIX: Fix corrupted save in Steam cloud (#1341) 2024-06-02 12:04:42 -04:00
Yichi Zhang
54d099e552 TERMINAL: Fix autocomplete for mixed case strings (#1323) 2024-05-29 11:34:46 -07:00
catloversg
bd6585617c UI: Reverse order of Black Operations list (#1322) 2024-05-29 01:31:44 -07:00
catloversg
f439352438 BUGFIX: Fix wrong HP after calling applyEntropy (#1313) 2024-05-28 12:15:12 -07:00
catloversg
c2a56a6150 MISC: Refactor favor code (#1321) 2024-05-28 12:04:16 -07:00
catloversg
b8d3109158 MISC: Change type of location parameter/property (#1316) 2024-05-28 11:49:48 -07:00
Sphyxis
bed66f980f BUGFIX: BB Sleeves cannot be assigned to contract programmatically (#1314) 2024-05-27 18:32:21 -07:00
Yichi Zhang
e674a177d6 BUGFIX: Check that the augmentation is available before installing it on a sleeve. (#1320) 2024-05-27 15:34:19 -07:00
catloversg
53f187fb89 MISC: Fix wrong text in Tutorial and NetscriptDefinitions.d.ts (#1319) 2024-05-27 15:30:32 -07:00
catloversg
ee4471e22c INFILTRATION: Change description of slash game (#1317) 2024-05-27 15:29:10 -07:00
Sphyxis
4b5e0b1f6a BUGFIX: Update GraftingWork.tsx (#1315)
Removed the purposeful structural typo as it was causing bug reports.
2024-05-27 15:22:31 -07:00
Kelenius
bf5c43daa2 UI: Add a stop button to bladeburner (#1312) 2024-05-27 15:02:56 -07:00
gmcew
30cdaa1a7a DOCS: Faction work description update (#1310)
- made it clear security gives hacking exp, and utilises it too
- clarified weighting of stats for hacking/field work.
2024-05-27 14:52:05 -07:00
catloversg
48a7eb364f DOCUMENTATION: Fix wrong examples in NetscriptDefinitions.d.ts (#1309) 2024-05-27 14:42:31 -07:00
catloversg
70521c9156 BUGFIX: Fix hidden debt of exp at level 1 (#1292) 2024-05-27 14:20:41 -07:00
Michael Ficocelli
efd4152eed IPVGO: Fix outdated docs (#1306) 2024-05-23 20:07:45 -04:00
Jesse Clark
23445a917d Give the player starting money and programs as declared in augmentation definitions (#1304) 2024-05-23 01:55:06 -07:00
catloversg
8703da4ab6 BUGFIX: Save position of cursor when switching tabs and unmounting editor (#1297) 2024-05-23 01:51:33 -07:00
gmcew
7f8757b536 SLEEVE: Add funds check for sleeve travel (#1298)
This makes it consistent with player behaviour. This also makes the function description more truthful in that it is now possible to return false.
2024-05-23 01:46:55 -07:00
catloversg
b42f775493 BUGFIX: Fix wrong money gain rate of Hacknet node (#1303) 2024-05-23 01:45:04 -07:00
catloversg
30c04f8152 DOCUMENTATION: Fix wrong examples in NetscriptDefinitions.d.ts (#1295) 2024-05-23 01:42:47 -07:00
catloversg
81a707123e BUGFIX: Engine does not send all faction invitations (#1277) 2024-05-23 01:40:23 -07:00
catloversg
cfa941ce58 DOCUMENTATION: Clarify multipliers of Hacknet server (#1291) 2024-05-23 00:49:06 -07:00
gmcew
c82b2e15a0 MISC: Additional clarity in 'HammingCodes: Encoded Binary to Integer' (#1289)
Should have done this in PR #1244
2024-05-23 00:45:25 -07:00
gmcew
fe14d4fef3 CCT: Minor simplification of 'Shortest Path' solver (#1288)
BFS shouldn't need some checks.
Also allows deletion of a helper file used by this function only.
2024-05-23 00:44:41 -07:00
G4mingJon4s
08eb60d21b EDITOR: Improved infinite loop checking (#1276) 2024-05-23 00:44:15 -07:00
Yichi Zhang
7ed64cbc9c Improve performance of checker for valid math contracts (#1286) 2024-05-23 00:41:52 -07:00
catloversg
819e9f3448 MISC: Embed JetBrainsMono font (#1246) 2024-05-22 21:50:09 -04:00
catloversg
7bb36ec111 MISC: Refactor InvitationModal and AlertManager (#1287) 2024-05-22 21:43:31 -04:00
Snarling
fe7e1c86bc Start 2.6.2 cycle (#1301) 2024-05-22 01:35:35 -04:00
Snarling
d2c7b2504c Release 2.6.1 (#1300) 2024-05-22 01:14:52 -04:00
catloversg
175af0bd28 BUGFIX: Improve implementation of getRandomInt (#1282) 2024-05-18 15:12:06 -07:00
TheAimMan
8deb907b89 BUGFIX: Correct BN10 Sleeve starting Shock (#1285) 2024-05-17 13:31:40 -07:00
gmcew
36e3dd73ac IPVGO: Tetrads do def (#1284) 2024-05-17 04:59:21 -07:00
catloversg
585e089976 DOCUMENTATION: Clarify 2 forms of flag in ns.flags (#1283) 2024-05-17 04:57:10 -07:00
Vilsol
7a4a973c06 DOC: remove redundant @remarks for sqlinject() function (#1281) 2024-05-17 04:55:50 -07:00
gmcew
1d8a1d5089 UI: Trigger RAM checking on tab closure (#1279)
Fixes UI bug described at https://discord.com/channels/415207508303544321/415213413745164318/1240361787564490854
2024-05-17 04:46:04 -07:00
gmcew
7113ee5425 UI: Hacknet terminology consistency (#1256)
* UI labels/Augment effects reworded to remove the "Node" parts
* No changes to API-facing labels/savedata/functions
2024-05-17 04:44:09 -07:00
David Walker
38d99ff15e IPVGO: Remove unneeded functions from boardState.ts (#1270) 2024-05-16 12:26:18 -07:00
Snarling
b7962ad8ab Increment version number early
This is needed to avoid API break spam every time the player loads the game.
2024-05-14 20:18:00 -04:00
Snarling
ed308b4fa6 Changelog update 2024-05-14 20:12:55 -04:00
Snarling
574c284321 API: Add API break utilities, and add an API break for bladeburner.getCurrentAction (#1248) 2024-05-14 19:24:03 -04:00
catloversg
9dc3b22919 BUGFIX: Tail window position does not update when being dragged (#1275) 2024-05-13 00:27:21 -07:00
catloversg
25afecc0ec CORPORATION: Rename functions in Actions.ts (#1272)
This should be a straight rename, no functionality changes.
2024-05-12 14:52:07 -07:00
catloversg
7f5bc5700e CORPORATION: Refactor bribery (#1268)
This also removes the useless restriction Player.hasGangWith(factionName). When the corporation is strong enough to bribe, the gang is useless. This problem was discussed on Discord.
2024-05-12 14:49:11 -07:00
Michael Taylor
da6262c856 Modify the source code TS file mode to be a regular (non-executable) file (#1269) 2024-05-11 21:57:21 -07:00
catloversg
1288d1c289 API: Update getInfiltration API (#1235) 2024-05-11 20:13:59 -04:00
catloversg
e478b9a224 MISC: Log invalid file request in Electron app (#1267) 2024-05-11 17:04:54 -07:00
catloversg
7ee7a79763 INFILTRATION: Fix a crash when rendering InfiltrationRoot with an invalid location (#1266) 2024-05-11 17:04:02 -07:00
gmcew
519b4fef44 MISC: Hamming Code Contract description clarification (#1244)
Rewording of the Hamming code contract wording based on suggestion at discord.
There's further scope on other contracts to clean up inconsistencies in example formatting.
2024-05-11 17:00:36 -07:00
Snarling
e23db93c8b GO: Alternate fix for race conditions (#1260) 2024-05-11 19:58:59 -04:00
gmcew
1b8205e9d5 UI: Bladeburner console to use Settings.TimestampsFormat for logging (#1265) 2024-05-11 19:10:55 -04:00
catloversg
52111f6e07 INFILTRATION: Format damage in Intro UI (#1264) 2024-05-10 18:56:24 -07:00
catloversg
8ebfcdb089 MISC: Fix bugs in useRerender hook and ns.moveTail (#1263) 2024-05-10 18:55:45 -07:00
catloversg
19984a6f22 UI: Fix clipped numbers when values are too big in Augmentations page (#1250) 2024-05-10 18:51:12 -07:00
catloversg
b88361921e MISC: Remove tsdoc-metadata.json (#1262) 2024-05-10 18:50:27 -07:00
Michael Ficocelli
591ad45154 IPVGO: Handle RNG seeding and visual board updating bugs (#1258) 2024-05-10 01:58:09 -07:00
Michael Ficocelli
b53c35126e IPVGO: Provide API for getting game stats per opponent (#1255)
Give users access to wins, losses, stat bonuses, and favor gained
2024-05-10 01:57:03 -07:00
catloversg
35c32e2871 BUGFIX: Fix unresolved promise in ns.prompt API (#1257) 2024-05-10 01:55:50 -07:00
catloversg
e55387df4d INFILTRATION: Rename variables in slash game (#1253)
This PR renames variables in the slash game to match the new description/wording in #1243.
2024-05-10 01:39:20 -07:00
catloversg
2414949c2c MISC: Update formatHashes function (#1252)
When hash/hashRate value is too small, formatHashes converts it to the useless string 0.000. This PR fixes that.
2024-05-10 01:38:38 -07:00
catloversg
309cd55085 UI: Change buttons in Tutorial (#1251) 2024-05-10 01:34:45 -07:00
catloversg
8289b23cff UI: Wrap long text in Active Scripts UI (#1247) 2024-05-09 17:07:41 -07:00
catloversg
aef362204d MISC: Handle error when getting save data (#1241) 2024-05-09 02:19:30 -07:00
TheAimMan
bfb9841832 DARKWEB: Update DarkWeb.tsx to buy all possible programs using buy -a (#1240) 2024-05-09 02:18:03 -07:00
catloversg
6f009679ad INFILTRATION: Add HP and damage to Intro UI (#1242) 2024-05-08 17:10:20 -07:00
catloversg
6a1691fe54 CORPORATION: Update tooltip of storage space (#1237)
The tooltip of the storage space only shows sizes of materials/products. This is confusing for newbies. They use "Unit" (number of material/product units) when buying materials, but that tooltip only shows sizes without any description.
2024-05-08 16:29:03 -07:00
catloversg
bc71b8e18f INFILTRATION: Update slash game wording / balance (#1243) 2024-05-06 14:07:27 -04:00
catloversg
a79d7f9e45 BUGFIX: Fix wrong zoom factor in Electron app (#1245) 2024-05-06 13:13:56 -04:00
catloversg
478646290e BUGFIX: Fix #795 (#1231) 2024-05-02 18:39:30 -04:00
catloversg
5696db2788 MISC: Fix ghost processes when Electron code crashes too early (#1238) 2024-05-02 18:38:39 -04:00
catloversg
d4bdb8de2b MISC: Rework reputation bonus after installing a backdoor (#1236) 2024-04-28 18:35:56 -07:00
catloversg
4d3dbf169d INFILTRATION: Increase timePreparing in SlashGame if players have WKSharmonizer (#1232) 2024-04-27 02:13:16 -07:00
catloversg
dc4a85e591 CORPORATION: Fix wrong error message in buyMaterial API (#1234) 2024-04-27 02:10:58 -07:00
catloversg
de8883ed0f BUGFIX: Fix #998 (#1233)
CorruptableText wasn't updating state properly
2024-04-27 02:10:17 -07:00
catloversg
3fac471d51 EDITOR: Add "arguments" to the keyword list (#1230) 2024-04-24 16:10:20 -04:00
Michael Ficocelli
0f23c95737 IPVGO: Remove opponent from react state (#1222) 2024-04-24 16:10:01 -04:00
Snarling
f4fcb5cde1 Changelog update 2024-04-23 21:03:58 -04:00
David Walker
e56ed353e5 (Partial) fix for #795 (#1223) 2024-04-23 20:40:59 -04:00
hydroflame
d3b9f32c3f MISC: Rename an aug (#1218) 2024-04-23 20:40:12 -04:00
David Walker
384d1c1a2b NETSCRIPT: A minorly breaking change around script launch, and refactoring. (#1213) 2024-04-23 20:21:05 -04:00
catloversg
7a1fce6f64 CORPORATION: Fix wrong average price of material (#1227) 2024-04-23 20:14:22 -04:00
catloversg
eba86e4bf0 BUGFIX: Fix #997 (#1226) 2024-04-23 20:05:24 -04:00
Caldwell
a3f9a5c21e update and fix (#1225)
Co-authored-by: Caldwell <15591472+Caldwell-74@users.noreply.github.com>
2024-04-23 20:00:28 -04:00
catloversg
703e7c52ae MISC: Remove unused constants (#1229) 2024-04-23 19:58:45 -04:00
catloversg
7b993f3550 MISC: Remove file-saver (#1217)
Also refactor to dedup our own download code
2024-04-19 13:38:44 -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
Michael Ficocelli
dd3975ab1d IPVGO: Fix formatting to avoid breaking external editors (#1215) 2024-04-11 14:28:06 -07:00
Michael Ficocelli
ed59f325ef IPVGO: Ensure full name of method is recorded in the possibleLogs list, to be matched later (#1207) 2024-04-09 18:24:57 -07:00
Michael Ficocelli
057ccc2a2b IPVGO: Improve error logging to include stacktraces (#1212) 2024-04-09 06:36:05 -07:00
catloversg
1ad6f9f310 CORPORATION: Update documentation (#1209)
New optimal strategy based on API tweaks.
2024-04-08 14:46:16 -07:00
Michael Ficocelli
104a97d711 DOCS: Link to stable instead of dev for player-facing docs (#1208)
* DOCS: Link to stable instead of dev for player-facing docs, to avoid confusion about features that are not yet released or finalized
2024-04-08 14:40:53 -07:00
Snarling
be437c83f6 BLADEBURNER: Allow unsafe positive integers for skill upgrade count (#1211) 2024-04-08 06:33:45 -04:00
catloversg
7ae309edda UI: Increase margin bottom for BitNode Multipliers in Stats page (BN1) (#1204) 2024-04-02 03:07:49 -07:00
p0n24
7ab4ad8174 fix documentation typo (#1203) 2024-03-31 13:53:51 -07:00
catloversg
524714601e CORPORATION: Add missing checks for Export API (#1202) 2024-03-31 13:53:02 -07:00
T.J. Eckman
da7f01cca9 DOCS: Fixed a typo in tutorial (#1201) 2024-03-31 13:51:48 -07:00
Michael Ficocelli
6c9555ba32 IPVGO: Tweak cheat success scaling so it is applicable even to endgame stats (#1194) 2024-03-30 16:22:53 -07:00
Snarling
6beb6e9f95 BLADEBURNER: Followup for #1154 (#1200) 2024-03-29 20:43:28 -04:00
catloversg
61274310d6 DEVMENU: Remove SaveFileDev (#1196)
It was broken and no one could be found who had used it.
2024-03-29 14:01:21 -07:00
Snarling
12f9a2b24d Bugfix
Fix Skill.maxLvl defaulting to 1
2024-03-29 14:27:36 -04:00
catloversg
c467daaf86 DOCUMENTATION: Fix wrong identification of inline mathematical expressions (#1195)
Applies backslashes to all relevant "$".
2024-03-29 01:42:18 -07:00
Snarling
a923041382 Changelog update 2024-03-29 01:20:49 -04:00
Paco Delozanne
ae1ca8f9a6 NETSCRIPT: Add Singularity.getFactionEnemies() (#1192) 2024-03-29 01:16:54 -04:00
Snarling
6669c4da6a BLADEBURNER: Typesafety / refactoring (#1154) 2024-03-28 21:52:37 -04:00
adeilt
5f1a94a9d3 DEV: improve "git blame" for contributors (#1092) 2024-03-28 21:28:05 -04:00
Michael Ficocelli
fe87f1f628 IPVGO: Bugfixes (#1193)
* IPVGO: Explicitly link the generated API documentation in the algorithm design doc
* IPVGO: Fix missing factions in netscript docs
* IPVGO: Linting
* IPVGO: Ensure resetBoardState() logs that a new game has started
2024-03-27 22:02:53 -07:00
catloversg
8553bcb8fc MISC: Support compression of save data (#1162)
* Use Compression Streams API instead of jszip or other libraries.
* Remove usage of base64 in the new binary format.
* Do not convert binary data to string and back. The type of save data is SaveData, it's either string (old base64 format) or Uint8Array (new binary format).
* Proper support for interacting with electron-related code. Electron-related code assumes that save data is in the base64 format.
* Proper support for other tools (DevMenu, pretty-save.js). Full support for DevMenu will be added in a follow-up PR. Check the comments in src\DevMenu\ui\SaveFileDev.tsx for details.
2024-03-27 21:08:09 -07:00
David Walker
75dabd10be NETSCRIPT: add formulas.hacking.growAmount() (#1090)
Also, improve docs.
2024-03-26 03:26:50 -07:00
Michael Ficocelli
d8de22a273 IPVGO: Nerf overly-difficult handicap, [issue #1169] misc bugfixes (#1188)
* IPVGO: Nerf overly-difficult handicap on 5x5 board

* IPVGO: Tweak 5x5 handicap
2024-03-25 16:12:35 -07:00
catloversg
714c1cc9d6 CORPORATION: Update documentation (#1191) 2024-03-25 14:49:43 -07:00
adeilt
08097aaf09 CORPORATION: more granular office size upgrades (#1179)
Allows corporation.upgradeOfficeSize to increase the size of a Corporation office by a non-multiple of 3 and also be charged a corresponding amount of corporate funds. See #1166 for details of current behavior.
2024-03-24 17:37:08 -07:00
catloversg
db226ce0b8 MISC: Remove isString utility function (#1185) 2024-03-23 02:46:52 -07:00
catloversg
c5581e92bc MISC: Make text file (txt, json) clickable when using ls (#1172) 2024-03-23 02:45:48 -07:00
catloversg
7c4cd7ef86 MISC: Update devDependencies (#1186)
Removing unused dependencies
2024-03-22 16:52:34 -07:00
Snarling
28a4af0ddc Changelog update (#1184) 2024-03-21 21:36:18 -04:00
Snarling
0c2a59bb6c CREDITS: Add d0sboots as documented maintainer (#1183) 2024-03-21 18:32:02 -04:00
catloversg
99f7a4cc7b IPvGO: Fix API documentation (#1171)
Proper fix for table pre layout
2024-03-21 14:39:37 -07:00
catloversg
35a34470a2 CORPORATION: update documentation (#1182)
Tweak several formulas
2024-03-21 14:37:50 -07:00
catloversg
c637d0e4e4 SINGULARITY: Fix API documentation (#1181) 2024-03-21 14:27:13 -07:00
Caldwell
803afc5244 SLEEVES: add nextCompletion to SleeveInfiltrationWork (#1177)
* add nextCompletion to InfilWork

and make nextCompletion in BladeburnerWork uniform with other promisePairs
2024-03-20 23:11:12 -07:00
catloversg
bbd942ceca MISC: Suggest automatic translation systems not translate our game (#1180) 2024-03-20 20:39:23 -04:00
Michael Ficocelli
1e5f7184a2 IPVGO: Remove current game history from savefile, re-implement superko (#1175) 2024-03-20 20:37:20 -04:00
catloversg
fc8958af83 MISC: Remove jquery (#1167)
Changes wget, which was the only thing using it.
2024-03-20 14:20:29 -07:00
Michael Ficocelli
6b9f9ef7fa IPVGO: Balance: Reduce base bonuses, increase SF 14.1 to compensate (#1176)
* IPVGO: Balance: Reduce base bonuses, increase SF 14.1 to compensate

* Fix ts doc format

* Do not show "No AI" opponent in stat summary page
2024-03-20 14:12:35 -07:00
Michael Ficocelli
dd4b54406c IPVGO: Bugfix: Require special opponent to be on the fixed size board (#1170) 2024-03-19 14:23:50 -04:00
Michael Ficocelli
d81358c80f IPVGO: Add support to netscript API for game state, current player, and alternate ways to check/wait on AI turn (#1142) 2024-03-19 14:07:15 -04:00
LJ
6aaeb6b59e Fix sing function for bn14 (#1168) 2024-03-18 00:54:20 -04:00
Michael Ficocelli
edf8e24046 IPvGO: Bugfix: ensure the 'No Ai' white player can still pass, and fix missing dead nodes (#1165) 2024-03-17 14:15:53 -07:00
gmcew
c0662599b3 MISC: Stanek UI description corrections (#1161)
Corrected description on charging efficacy against threadcount and time

From https://github.com/bitburner-official/bitburner-src/issues/689, description has been corrected to reflect the scaling for highestCharge and numCharge
2024-03-14 18:51:32 -07:00
catloversg
7ef7b692d0 MISC: Filter servers in autocomplete data (#1164) 2024-03-14 17:55:06 -04:00
FoGsesipod
25ac8432fc BUGFIX: spawn() log reads "seconds" instead of "milliseconds" (#1158) 2024-03-11 15:25:02 -07:00
Snarling
0457081908 Changelog + generate docs 2024-03-11 13:14:33 -04:00
Snarling
162310f005 UI: Fix go colors for light theme (#1155) 2024-03-11 13:13:22 -04:00
Michael Ficocelli
c703b71871 IPVGO: Ensure that the player has the prerequisites to face the secret opponent (#1157) 2024-03-11 12:57:44 -04:00
Snarling
e9d1ddfaf3 SAVEGAME: Reduce size of savefile (#1148)
Storing less info in the save for Factions/Companies if it's still the default info
2024-03-11 08:58:10 -04:00
LJ
4d5401f62e 4 (#1152) 2024-03-10 07:36:20 -04:00
adeilt
de5c1bbf98 DOC: Add namespaced example to disableLog doc. (#1150)
It probably won't be used that often, but "ui.setTheme" seemed the least spoilery function name to use as an example.
2024-03-09 15:25:48 -08:00
User670
c93205fec6 MISC: add a missing word in a comment in crime.ts (#1145) 2024-03-08 11:53:14 -08:00
LJ
09c5ec7769 GANG: Correctly display effects of justice tasks on wanted gain rate (#1144) 2024-03-07 23:46:25 -05:00
Michael Ficocelli
33af6685f8 IPVGO: Fix displayed maximum favor in tooltip to update with player bitnode status (#1143) 2024-03-07 23:46:08 -05:00
Shy
d2dd6916b1 allow json (#1137)
Allow creating .json files.
Also added the json language server so syntax highlighting and validation works with the ingame editor
2024-03-06 15:52:32 -08:00
Snarling
863ac2c8c0 Historical changelog update for hotfix 2024-03-06 16:33:21 -05:00
Michael Ficocelli
1547581c24 IPVGO: Fix self-capture move evaluation (#1140) 2024-03-06 16:23:16 -05:00
Snarling
1755b7cd7f 2.6.1dev initial state 2024-03-05 20:54:11 -05:00
Snarling
0bf01aacab RELEASE: 2.6.0 (#1136) 2024-03-05 20:46:46 -05:00
Snarling
69babf02b2 Changelog before 2.6.0 2024-03-05 20:18:22 -05:00
Snarling
d61e12fdd1 API: Minor followup changes for #1059 (#1135) 2024-03-05 19:42:55 -05:00
Shy
4aaf845fca API: make ns.atExit add the callback to an array instead of setting it (#1059) 2024-03-05 19:22:45 -05:00
Snarling
4f4c6fe7e5 Move heart.break out of Extra.ts (#1133) 2024-03-04 18:36:14 -05:00
Snarling
d801743842 Generate missing docs 2024-03-04 09:51:34 -05:00
LJ
a5f5c81912 API: Add karma to ns.getPlayer() & document ns.heart.break() (#1131) 2024-03-04 09:35:54 -05:00
LJ
65082f677e Update rm command help text (#1132) 2024-03-04 09:30:03 -05:00
catloversg
ffc34387f0 CORPORATION: Add documentation (#1121)
This ports the PDF manual by @catloversg into .md form, so it can be used in-game and via browsing on GitHub.

It also adds MathJax rendering to in-game docs, so that the math formulas can be rendered. (GitHub already supports this natively.)
2024-03-04 03:10:18 -08:00
Bart Kuijper
6a3d22d7bd CONTRACTS: createDummyContract returns filename (#1129) 2024-03-01 23:12:04 -05:00
LJ
4c7f192645 UI: Infiltration rewards default to the faction you're currently working for (#1114)
* Better infiltration victory faction default
* Better condition for "none" default
* Fix default faction type.
2024-02-28 16:37:27 -08:00
Yichi Zhang
6288eec6d7 HACKNET: Disallow negative count argument for spendHashes (#1127)
* disallow buying a negative amount of an upgrade
* allow 0 silently
2024-02-27 12:34:36 -08:00
Caldwell
3d6692b292 MISC: clamping numbers (#1104) 2024-02-27 09:47:00 -05:00
Snarling
153dbfff12 Changelog + doc update 2024-02-26 09:51:48 -05:00
hydroflame
483d554fc2 MISC: Update donation counter (#1118) 2024-02-26 09:42:31 -05:00
Snarling
91105c6d8c TESTS: Prevent some test spam (#1126) 2024-02-26 08:22:33 -05:00
Snarling
373ced2efe GO: Various changes before 2.6.0 (#1120) 2024-02-26 08:05:10 -05:00
LJ
f6871f0911 GANG: Clarify install behavior & add getInstallResult() (#1119)
New function returns post-install ascension ratios.

* Add ascension penalty to Gang constants
* Improve wording of Gang install message
* Add GangMember#getInstallResults()
* Update prestiging to use getInstallResults()
* Add ns.gang.getInstallResults(memberName)
* Update definitions
* Add ram cost for ns.gang.getInstallResult()
* Fix typo
* More specific wording in documentation
* Fix another typo
* Run prettier
* Rename getInstallResults to getPostInstallPoints
* Update Prestige.ts
* Update Gang.ts
2024-02-23 12:58:22 -08:00
hydroflame
d00fad472e Merge pull request #1117 from bitburner-official/hydroflame-patch-1
Update package.json
2024-02-21 16:11:48 -05:00
hydroflame
b655b7a44e Update package.json 2024-02-21 16:11:22 -05:00
LJ
1577467fe1 BUGFIX: Prevent renaming servers to hacknet. (#1112)
* Add hacknet check to renaming
* Handle manual server purchases
* Handle automated server purchases
* Remove unnecessary parenthesis

fixes #1111
2024-02-20 18:22:24 -08:00
Michael Ficocelli
ac05135f59 IPVGO: Ensure favor text is only shown for even-numbered winstreaks, not even loss streaks (#1110)
closes #1109

Ensure that loss streak tracking does not display the favor gain text, to avoid misleading players
2024-02-20 14:36:06 -08:00
Caldwell
47cf5c1610 SETTINGS: add tailRenderInterval (#1107)
currently tails are on a static rerender time of 1000ms
there are ways to force a rerender with ns.moveTail / ns.resizeTail
but i dont know why this shouldnt be a setting set by the player

currently its static set on creation of the tail window but that could be expanded to allow setting it per script
and maybe through a ns function
2024-02-19 11:19:03 -08:00
David Walker
e6755afcb3 Changelog (#1106) 2024-02-17 20:28:19 -08:00
LJ
27a8abbdec PORTS: Support all serializable data. (#1089)
A significant portion of players who use ports are passing objects through them. Currently they are required to handle that themselves via JSON serialization. This PR adds better support for passing objects; which is more convenient, extensive, and optimized (probably, more on this one later).

This adds zero overhead to existing (or when passing any primitive types) port usage, and also isn't a breaking change. The questions to debate here are:

Should objects be supported in the first place?
If so, how exactly do we want to serialize objects?
Based on an extensive discussion in Discord, the overwhelming majority answered "yes" to question one. As for question two, that has been much more hotly contested.

Ultimately, `structuredClone` was used, despite less-than-stellar performance, because other options were worse either in safety, speed, error-handling, or multiple of the above.
2024-02-17 19:15:17 -08:00
Shy
aba2336093 add purchasedPlayer to RFA server data (#1103) 2024-02-17 00:11:29 -05:00
Snarling
9b483bdd8a Servers are sorted on Active Scripts page (#1102) 2024-02-16 21:06:18 -05:00
Caldwell
8c8af38a3a MISC: refactor weaken effect calculation (#1076)
so far we calculate the effect of weaken in three +1 places
ns.weaken
ns.weakenAnalyze
terminal weaken

and server.weaken where the bn mult is applied

i extracted the logic into a new netscript helper function getWeakenEffect
this gives us one place if we want to change the formula

a side effect i added the server.cpuCores to the terminal weaken to future proof it if the npc server core pr (#963) is merged
2024-02-16 17:18:16 -08:00
adeilt
93b9a10e41 UI: Improve theme support. (#1079) 2024-02-15 23:51:07 -05:00
adeilt
22aec2a8b9 DOC: Fix outdated example for ns.spawn() (#1101) 2024-02-15 23:44:25 -05:00
Shy
ef334cb851 BUGFIX: make hacknet node a bit bigger and change unit to em (#1094)
PR #1070 caused some overflow when having hacknet servers.
2024-02-15 16:33:08 -08:00
Shy
c894aba8f5 BUGFIX: fix double stringify on server array (#1100)
The server array that the RFA currently sends is stringified twice. I fixed that and also added a proper ResultType for the new data
2024-02-15 16:27:03 -08:00
LJ
ddb10f833c TERMINAL: Add --ram-override flag to the run command (#1055)
* Add --ram-override flag to run command
* Update help command
* Fix whitespace
* Update run usage message
* Update autocomplete for run command
* Format
2024-02-15 05:51:37 -08:00
catloversg
733f2ccb5b CORPORATION: Improve performance of cycle valuation (#1088)
This PR is an alternative for PR #1085. It includes these changes:

* Create a new property: numberOfOfficesAndWarehouses. It's used for calculating cycle valuation.
* Hardcode 1.0079741404289038 instead of calculating Math.pow(1.1, 1 / 12).
2024-02-15 05:43:37 -08:00
LJ
dc7c9bb065 BUGFIX: Attach hostname to script links in ls command (#1062)
fixes #1051

* Add hostname to script editor page options
* Add hostname option to script editor page
* Attach hostname to script links in ls
* Fix script editor page option type
2024-02-15 05:39:50 -08: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
LJ
078f94cbc0 BUGFIX: Fix script editor documentation button using wrong URL (#1099)
* Fix script editor documentation button
* Fix lint and import url
2024-02-15 04:55:36 -08:00
Caldwell
0ba337f091 BUGFIX: few bandaids for Bladeburner (#1093)
bandaids for 3 bugs in bladeburner
this really needs proper fixes and a alot of refactoring!

the manual action start didnt start tasks the right way, modifying an existing action object instead of creating a new one
therefore the current action wasnt shown on the stats overview

the api start action didnt check for the BladesSimulacrum Aug and didnt stop current Player tasks
so the next time Bladeburner proccessed it stopped the bladeburner tasks again
when the player was doing something else like crimes

sometimes blops had an action.count of 0 even when they wherent done in that bladeburner instance yet

this happends because the BlackOps class instances are only initialized on game load
and then later on BlackOps completion manipulated
this change doesnt reset on a bitnode change or when bladeburner is deleted through the dev Menu
as a quick fix i added a new resetBlackOps function that always runs when Bladeburner processes
this isnt the best solution but any proper fix i came up with requires a refactor that i couldnt do at this moment

credits to @TheAimMan for finding the clue that the count is the problem not the rank!

edit,;
added a 4th bandaid to avoid NaN Stamina Penalty when stamina is infinite
2024-02-15 04:48:04 -08:00
Snarling
fca414e7c9 changelog
Also undid a weird style change from #1083 that I accidentally included.
2024-02-10 08:24:05 -05:00
Michael Ficocelli
ca374076b8 [IPvGO] Remove testing flag (#1016) 2024-02-10 08:04:21 -05:00
Caldwell
84c4dba1e2 UI: fix scripts recorded offline income (#1025) 2024-02-10 07:24:55 -05:00
Caldwell
fccc27fe58 MISC: HGWOptions accepts non integer (#1035) 2024-02-10 07:24:11 -05:00
catloversg
65214c0322 Change the calculation of valuation (#1056) 2024-02-10 06:48:52 -05:00
Shy
903f812424 REMOTE: add 'getAllServers' method to RFA (#1058) 2024-02-10 06:31:35 -05:00
Rinne
e8311d4f05 Changing color of stocks going up (#1065) 2024-02-10 06:28:18 -05:00
Caldwell
8c2a23f2ba MISC: change all nextUpdates to use one Promise (#1069) 2024-02-10 06:27:47 -05:00
Shy
fbc41d0278 make hacknet node grid dynamic (#1070) 2024-02-10 04:15:27 -05:00
TheAimMan
e966e78b72 MISC: Add an option to run b1t_flume with a "quick" option (#1072) 2024-02-10 04:14:11 -05:00
Caldwell
4d551915b3 MISC: move server constants into their own constant (#1075) 2024-02-10 04:13:42 -05:00
LJ
fd5b0f8241 MISC: Use structuredClone() for deep cloning (#1077) 2024-02-10 04:10:19 -05:00
Rinne
6bd50e6f24 BUGFIX: Fixed bug that returned Infinity cost for most skills (#1084) 2024-02-10 04:01:42 -05:00
Snarling
9697a82e0c UI: Active Scripts changes (followup to #933) (#1083) 2024-02-10 03:59:20 -05:00
Snarling
187226a30f Changelog 2024-02-01 18:20:36 -05:00
LJ
2f2355942f Kill all scripts upon entering the bitverse (#1042) 2024-01-31 19:44:31 -05:00
TheAimMan
330a32e1d0 MISC: Don't include temporary scripts into Recently Killed (#1045) 2024-01-31 19:43:48 -05:00
LJ
011d5e8fd6 BUGFIX: Properly deep copy array data for coding contracts (#1064) 2024-01-31 19:43:04 -05:00
Rinne
5277db2c65 API: Changing return value of ns.bladeburner.getSkillUpgradeCost to return Infinity when the skill's level overshoot the maximum level (#1060) 2024-01-31 19:40:27 -05:00
Snarling
497618dc2f Generate missing docs 2024-01-31 19:37:08 -05:00
Snarling
0ded11af53 TERMINAL: Fix inconsistent / janky scrolling behavior (#1063) 2024-01-31 19:32:42 -05:00
Michael Ficocelli
cf45981cd2 [PATCH][IPVGO] Use colors from theme for white and black, to support lower-contrast options (#1074) 2024-01-31 19:32:28 -05:00
David Walker
55e21d1e19 Make grow formulas faster and more accurate. (#1044) 2024-01-31 19:27:31 -05:00
LJ
b6b4788845 GANG: Reuse one promise for ns.gang.nextUpdate() (#1068) 2024-01-27 17:25:30 -05:00
LJ
05295598a4 BUGFIX: Format money requirement in fl1ght.exe (#1061) 2024-01-25 01:45:39 -05:00
deansvendsen
cb7c75a3ce MISC: Gang Expenses category in MoneySource (#1043) 2024-01-23 18:18:56 -05:00
catloversg
51ac4d009c Fix wrong demandRange of Minerals (#1053) 2024-01-23 16:18:32 -05:00
deansvendsen
f79470148e DOCS: Adding information to CONTRIBUTING.md (#1049) 2024-01-23 16:18:00 -05:00
Snarling
788a7549da Update Constants.ts 2024-01-15 06:18:55 -05:00
Justin
39c5a356b1 BUGFIX: Fix writePort() error where deconstructing the Port class caused the reduce() function to lose its 'this' reference (#1037) 2024-01-15 06:14:13 -05:00
LJ
157ff8ea88 PORTS: Add ns.nextPortWrite() as a safer option (#1036) 2024-01-15 06:10:39 -05:00
Snarling
d0e66d5be2 Changelog update 2024-01-14 16:48:14 -05:00
Caldwell
2ac0470cea adding int stat to sleeve overview and more stats overview (#1030) 2024-01-14 16:34:48 -05:00
Jesse Clark
c5ca30d796 add descriptions for hacknet_node_level_cost and hacknet_node_core_cost (#1032) 2024-01-14 16:12:49 -05:00
Shockwave
63574bca0c MISC: Several typo fix in corporation modals (#1029) 2024-01-14 16:12:28 -05:00
Snarling
44f0a77c4e PORTS: One promise, one resolver (test) (#1022) 2024-01-14 16:05:57 -05:00
Michael Ficocelli
87c4cbbc57 [IPvGO] Performance enhancement: async move option lookup (#1028) 2024-01-09 18:46:01 -05:00
Caldwell
6f8a59593a EDITOR: fix disposing models (#1026) 2024-01-09 18:45:31 -05:00
TheAimMan
82511e5030 BUGFIX: Update formatPercent to not use a suffixStart of 0 (#1024) 2024-01-08 10:25:20 -05:00
Shockwave
7017f3c2f8 API: Fix serverExists() return true for not revealed servers (#1013) 2024-01-07 11:40:07 -05:00
Snarling
f0f335e09a changelog update, regenerate docs 2024-01-07 08:37:38 -05:00
LJ
a433c8284c NETSCRIPT: Add .script deprecation notice & migration guide (#1007) 2024-01-07 08:15:24 -05:00
TheAimMan
9827fda4a4 BUGFIX: formatNumber throws an error if suffixStart is too low (#957) 2024-01-07 08:14:02 -05:00
TheAimMan
dd9ace7891 PROGRAMS: Change flight.exe to easily display unmet requirements (#939) 2024-01-07 08:12:16 -05:00
Miłosz Giera
1b03618555 REMOTE: Added possibility to change target IP of remote API (#943) 2024-01-07 07:57:54 -05:00
Shy
68a8427838 EDITOR: Add file URI's to monaco to improve intellisense (#1017) 2024-01-07 07:13:52 -05:00
Michael Ficocelli
7e721c144e [IPvGO] Docs improvements and other feedback (#1011) 2024-01-05 20:50:28 -05:00
Collin Pearce
0da9d9d3c0 fix player input parsing for coding contracts that accept arrays of strings (#937) 2024-01-02 09:26:34 -05:00
Jesse Clark
8742df9588 fix for stanek.acceptGift not working (#1001) 2024-01-02 09:12:14 -05:00
catloversg
4db4b77954 Change import declaration of arg library (#962) 2023-12-28 02:00:12 -05:00
Jesse Clark
1dac133ef4 Align columns in warehouse storage breakdown (#970) 2023-12-28 00:25:57 -05:00
Shockwave
e096456c29 Update StaneksGiftRoot.tsx (#987) 2023-12-27 06:10:35 -05:00
Rinne
eba840dcd3 API: Updating typing for ns.singularity.getCurrentWork() (#989) 2023-12-27 06:06:45 -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
Snarling
e7b68676f5 UI: Hash upgrade descriptions use number formatting options (#996) 2023-12-27 03:26:40 -05:00
Snarling
498bb6128a Handle br tag in tables (#995) 2023-12-27 02:04:52 -05:00
Snarling
a42b72d31a INFILTRATION: Different visual rework for CheatCodeGame (#994) 2023-12-27 00:45:40 -05:00
Snarling
489ba595f3 VERSION: Begin 2.6.0 dev cycle (#992) 2023-12-26 11:53:27 -05:00
Michael Ficocelli
7ef12a0323 BITNODE: IPvGO territory control strategy game (#934) 2023-12-26 11:45:27 -05:00
Snarling
c6141f2adf RELEASE: 2.5.2 (#990) 2023-12-26 10:59:33 -05:00
Snarling
2b7f6381eb Changelog update 2023-12-22 06:54:53 -05:00
Kelenius
5789003d46 Gave bit fluming its own message (#974) 2023-12-19 05:28:34 -05:00
Snarling
3a7ff7880d COMPANY: Show unqualified direct promotion (followup) (#983) 2023-12-19 05:27:26 -05:00
Snarling
09b74a3868 BLADEBURNER: Different solution for Enter key support in team member modal (#984) 2023-12-19 05:21:25 -05:00
Shockwave
28d1610bac Update Prestige.ts (#985) 2023-12-19 05:21:05 -05:00
Tibo De Peuter
1ce22e9788 MISC: Fix various typos (#982) 2023-12-18 08:21:47 -05:00
Jesse Clark
28ef5df880 COMPANY: Much better job location interface (#927) 2023-12-18 07:23:47 -05:00
Snarling
97d679bdac MISC: Protect against reassigning certain globals (#972) 2023-12-16 05:03:52 -05:00
Kelenius
da1b8533e0 Added "prev" and "next" buttons to job screen (#932) 2023-12-16 05:00:19 -05:00
Jesse Clark
417671ecb8 CORPORATION: Account for CapEx and Cap Gains differently (#977) 2023-12-16 04:56:57 -05:00
DJMatch3000
a6436ca4b3 MISC: Revert default HGW threads from 1 to number of script threads (#978) 2023-12-16 04:38:39 -05:00
Jesse Clark
473217ef31 API: Programming-friendly interface to getFactionInviteRequirements (#953) 2023-12-16 04:27:22 -05:00
TheAimMan
e957864c4b Fix missing check on singularity.getCurrentWork (#971) 2023-12-09 06:11:46 -05:00
Snarling
c6434e2297 Quick changelog update 2023-12-09 06:06:14 -05:00
Snarling
a3c26caf2c npm run doc 2023-12-07 21:26:28 -05:00
TheAimMan
5482848eeb SLEEVE: Add task counter to Crimes and BladeBurner (#930) 2023-12-07 21:24:50 -05:00
Jesse Clark
902306530c CORPORATION: Use accounting methods for all funds transactions (#949) 2023-12-07 21:22:21 -05:00
Snarling
b114fb9eed Changelog update 2023-12-07 21:20:58 -05:00
Jesse Clark
ecc63eb07e FACTIONS: Fix for faction names staying scrambled after joining (#968) 2023-12-07 20:53:28 -05:00
Kelenius
107b4e90e9 Changed message when buying tor router (#948) 2023-12-07 20:51:29 -05:00
David Walker
61ffed9b3a BUGFIX: Fix additionalMsec overflow issue (#941) 2023-12-07 20:34:49 -05:00
Sphyxis
21c7f56d23 TERMINAL: Updated Alias/Unalias (#914) 2023-12-07 20:15:55 -05:00
TheAimMan
89fc22f28f IMPROVEMENT: Apply core bonus for share and stanek (#913) 2023-12-07 20:10:21 -05:00
Jesse Clark
544c38065e DOC: Create factions-list documentation page (#904) 2023-12-07 20:07:01 -05:00
LJ
1ce0584b25 MISC: Switch port.nextWrite() from LIFO to FIFO (#965) 2023-12-07 18:00:01 -05:00
TheAimMan
375cf453b3 BUGFIX: Properly apply entropy to hacknet multiplers (#969) 2023-12-07 17:57:54 -05:00
catloversg
4dd4f920c3 Remove unused code in OfficeSpace (#961) 2023-12-07 07:55:30 -05:00
David Walker
019f2d6a11 DOCS: Add type of return for 3 formulas functions. (#967) 2023-12-07 07:33:15 -05:00
draughtnyan
b46b6e62bc Fix script autocompletion bug w/ subdirectories (#947) 2023-12-04 14:39:08 -05:00
Sphyxis
79b0f83b5f DEVMENU: Easier to add/remove sleeves (#908) 2023-12-04 14:36:00 -05:00
Kelenius
76f0f3d6d3 Remove inter-fragment borders in Stanek's gift (#929) 2023-12-03 04:55:13 -05:00
Sphyxis
3b4cac5584 BITVERSE: Updated BN 3 from easy to hard (#909) 2023-12-03 04:21:24 -05:00
Kelenius
aee353a54e Fix warehouse not updating after product sale (#925) 2023-12-03 04:13:06 -05:00
Shockwave
1dc4d01d64 Fix bug in SF9.3 reward server cpuCores (#938) 2023-12-03 04:12:20 -05:00
Jesse Clark
99383eb1c7 Only show "joining this faction will prevent you from joining enemies" for factions that have enemies (#921) 2023-12-03 04:07:59 -05:00
Jesse Clark
7fc46649f9 FACTIONS: fix unstable display order (#920) 2023-12-03 04:06:30 -05:00
Jesse Clark
34cc0441c2 Remove cooldown from "Sell corporation and start over" (#919) 2023-12-03 04:03:30 -05:00
Trambelus
f2baa04f45 CCT: Fewer money coding contracts if the reward would be $0 (#918) 2023-12-03 04:00:15 -05:00
Caldwell
8b6caeb68b STOCKMARKET: Added slight randomization to when stock forecasts can flip (#911) 2023-12-03 03:45:42 -05:00
Snarling
997ae8c176 Changelog reset for 2.5.2 dev cycle 2023-11-30 17:21:31 -05:00
Snarling
05875e4f3e Bump version number
Missed this in previous release update
2023-11-30 17:01:56 -05:00
Snarling
f93bbfbd5d UPDATE: 2.5.1 Release (#952) 2023-11-30 16:46:56 -05:00
Snarling
6a76e1a9ab Changeog 2023-11-07 19:38:50 -05:00
Snarling
aaf80a9a33 SLEEVE: Add a nextCompletion promise to SleeveBladeburnerWork (#916) 2023-11-05 20:09:34 -05:00
Sphyxis
0c4cf81f66 FIX: #896 - Establish a base growth in Bladeburner (#899) 2023-11-05 04:43:33 -05:00
Snarling
99afd2ff2a Fix FactionsDev issue
Receive all invites button was only setting the alreadyInvited flag for the selected faction, instead of all factions.

Also some slight refactoring / variable name improvements.
2023-11-05 04:40:30 -05:00
Jesse Clark
9585913e0a FACTIONS: fix invite requirement for slum snakes (#915) 2023-11-05 01:07:05 -04:00
Sphyxis
b06b8bbdde BLADEBURNER: Updated descriptions (#906) 2023-11-03 21:48:46 -04:00
Caldwell
4e8c43fdbe install latest eslint (#912) 2023-11-03 21:20:32 -04:00
TheAimMan
14b4722210 Clear Stanek before applying entropy on prestige (#907) 2023-11-03 21:12:08 -04:00
Sphyxis
2df04bc567 SLEEVES: Set to Idle in UI (#903) 2023-11-03 21:01:53 -04:00
omuretsu
e56e3dddf1 Fix stuff I broke in #910 2023-11-02 18:57:22 -04:00
Snarling
2997384403 FACTIONS: Followup changes for Rumors PR (#910) 2023-11-02 11:02:12 -04:00
Jesse Clark
fdcb8306d9 FACTIONS: Add "Rumors" system for learning about faction join requirements (#888) 2023-11-02 10:20:24 -04:00
Shockwave
023f32bce3 FORMULAS: Removing the possible exception when gymGains/universityGains is called (#898) 2023-11-01 20:22:17 -04:00
François Gannaz
87e2f5c23b TERMINAL: Fix autocompletion when running scripts with the "./" command (#900) 2023-10-30 12:32:11 -04:00
TheAimMan
6f67224146 BUGFIX: Add effect definition to fragmentObject (#891) 2023-10-30 04:00:31 -04:00
Caldwell
009622069f add size property to getProduct (#893) 2023-10-30 03:56:54 -04:00
TheAimMan
2a149df13e BUGFIX: Contracts now fail if there are 0 of them remaining (#889) 2023-10-30 03:11:51 -04:00
Caldwell
0bdab7bec8 CORPORATION: move product productionCost into cityData (#887) 2023-10-30 03:10:45 -04:00
TheAimMan
ca12bddaf5 BUGFIX: Check Corp Research pre-reqs in research api call (#884) 2023-10-30 03:09:34 -04:00
Zonoia
bc5789af60 MISC: Readthedocs configuration that redirects to this repo (#833) 2023-10-24 05:11:14 -04:00
Snarling
cb2f530b88 dedupe + audit fix (#890) 2023-10-24 04:32:48 -04:00
omuretsu
d58e2ec7cf Changelog 10/23/23 2023-10-23 08:34:11 -04:00
omuretsu
e608e07879 Doc update 2023-10-23 07:32:46 -04:00
Snarling
87925f1900 EDITOR: Reorganization and minor efficiency improvements (#886) 2023-10-23 07:02:33 -04:00
David Walker
e339b5dc5f Tweak Illuminati .lit to provide a join hint (#883) 2023-10-23 05:34:04 -04:00
Squirlll
62be77b3f4 UI: grammar/typo fixes (#878) 2023-10-23 05:31:27 -04:00
TheAimMan
848fc9905a BUGFIX: SleeveCrimeWork.ts works through all cyclesWorked if its greater than cyclesNeeded (#881) 2023-10-23 05:31:11 -04:00
TheAimMan
5d266e01a6 Fix rm on .cct files (#880) 2023-10-23 05:19:49 -04:00
alutman
445c0c3134 Offline hacking income now shown for scripts (#873) 2023-10-23 05:00:16 -04:00
alutman
36a8b35cfb Prevent faction invitations appearing after prestige (#872) 2023-10-23 04:55:08 -04:00
TheAimMan
71e37823dd BUGFIX: Update warehouseSizeUsed after bulk purchase (#871) 2023-10-23 04:54:43 -04:00
Snarling
36312c660d CODE: Enable es2023 features (#870) 2023-10-23 04:49:12 -04:00
Caldwell
e992cb966a CORPORATION: adding prevState and changed state display in the warehouse UI (#861) 2023-10-23 04:48:06 -04:00
TheAimMan
eed2c5d6d4 BUGFIX: Update NetscriptHelpers.tsx to verify servers are on network when getServer is called (#855) 2023-10-23 04:37:19 -04:00
Jesse Clark
61c311a126 API: Add nextUpdate() promise for systems with bonus time (#845) 2023-10-23 04:24:30 -04:00
Snarling
daa7a22786 UI: General devmenu followup changes (#885) 2023-10-23 04:22:11 -04:00
missymae#2783
ff0118f2f4 UI: Update general devmenu page (#835) 2023-10-23 04:01:21 -04:00
Daniele Basso
9dd8275be1 Replace electron-config with electron-store. (#813) 2023-10-23 02:43:18 -04:00
Jesse Clark
62ab9f33be UI: Clarify wording in Corporation (#866) 2023-10-17 09:59:52 -04:00
omuretsu
d4120fa688 Update changelog date 2023-10-17 09:00:57 -04:00
omuretsu
45cf414e9c Changelog update 10/17 2023-10-17 07:20:35 -04:00
Snarling
38f693e2c1 ENUMS: Followup for #859 (#868) 2023-10-17 07:19:32 -04:00
Caldwell
9c41995e59 increment employees the right way (#869)
move the incrementation of employees after the avg calc
2023-10-17 07:07:26 -04:00
Warrobot10
ad03e4ee82 Update CONTRIBUTING.md (#862) 2023-10-17 07:06:50 -04:00
alutman
1a052a7daf API: Change singularity.applyToCompany() to use an enum for job field (#859) 2023-10-17 05:33:16 -04:00
Tyasuh
686d2e2b9b Remove territory warfare toggle from main gang management page (#849) 2023-10-17 03:47:54 -04:00
missymae#2783
1007ce5e68 API: Add ns.bladeburner.getNextBlackOp() (#815) 2023-10-17 02:18:54 -04:00
omuretsu
7e94a8653e Fix electron w/ unsupported arch for greenworks 2023-10-09 19:14:53 -04:00
Caldwell
6fa149ff08 CORPORATION: remove unneeded "state" property from Divisions (#857) 2023-10-07 23:25:46 -04:00
Jesse Clark
2f40b66789 CORPORATION: UI to display production and sales multipliers (#838) 2023-10-07 23:22:28 -04:00
Caldwell
269a74d5c0 CODEBASE: update dependencies (#852) 2023-10-07 18:52:48 -04:00
Warrobot10
79cfbb5f2e Fix a doc typo (#858) 2023-10-07 18:44:28 -04:00
Snarling
1b271d6e29 Update electron to latest (#850) 2023-10-04 19:46:08 -04:00
omuretsu
feb3f1a5db Dev changelog 2023-10-04 10:50:14 -04:00
omuretsu
32197e024d Actually fix faction invite spam 2023-10-04 10:32:33 -04:00
omuretsu
7226a9effa Update changelog.md 2023-10-04 10:30:06 -04:00
Snarling
74fe6af595 Hotfix: Popups no longer show up during infiltration (#847) 2023-10-04 09:52:04 -04:00
Noah Harris
e22527e7b7 fix: check for purchased program before enough money (#839) 2023-10-03 02:02:28 -04:00
Jesse Clark
f4cd4b3362 Fix check for "True Recursion" achievement (#827) 2023-10-03 01:29:09 -04:00
omuretsu
a4e9fd9705 Update SourceFilesDev.tsx
Remove unused sfData state variable
Removed the custom coloring for the SF buttons from #830.
Added a text indicator for the current SF level.
Other minor organizational changes
2023-10-03 01:19:10 -04:00
missymae#2783
aa5d37c7c1 UI: Make Source-Files devmenu page reactive (#830) 2023-10-03 00:36:51 -04:00
missymae#2783
673efb427f UI: Fix some DevMenu react errors, add number of exploits to savegame comparison (#825) 2023-10-02 23:28:16 -04:00
Michael Ficocelli
7b00fcc5b1 MISC: spelling and consistency fixes in the NetscriptDefinitions.ts file (#821) 2023-10-02 20:14:44 -04:00
Jesse Clark
7f575eb34c UI: Clean up typesetting of Corp ingredient formulas (#819) 2023-10-02 20:13:41 -04:00
Yichi Zhang
3f0c10adf4 STANEK: Re-apply stanek boosts when applying entropy (#816) 2023-10-02 20:11:22 -04:00
omuretsu
7f82ceaf24 npm audit fix 2023-10-02 20:07:22 -04:00
missymae#2783
3c52984d61 UI: Add a Credits button in options menu (#836) 2023-10-02 20:00:52 -04:00
omuretsu
a8e48ddb12 2.5.1 dev start 2023-10-02 19:46:57 -04:00
omuretsu
5c738919fc Update changelog.md for 2.5.0 2023-10-02 19:30:37 -04:00
Snarling
223d9b9cdb 2.5.0 as release version (#842) 2023-10-02 19:18:10 -04:00
omuretsu
6a63f8a02c Final dev changelog for 2.5.0 cycle? 2023-09-29 21:32:36 -04:00
Jesse Clark
ad6f919d64 CORPORATION: Dramatically lower API RAM costs (#818) 2023-09-27 17:38:30 -04:00
muesli4brekkies
c5e2f65cb0 API: Added spawnDelay parameter to ns.spawn options, allowing user defined delay (#807) 2023-09-27 01:31:47 -04:00
Michael Ficocelli
7fad6e0778 UI: Rename Territory Warfare gang status to avoid confusion with gang member task of the same name (#790) 2023-09-26 21:04:43 -04:00
Snarling
6d3495d05f Changelog update for 2.5.0 (#828) 2023-09-24 09:11:49 -04:00
David Walker
875bddbbdb BUGFIX: Patch a minor hole in RAM calculation (#820) 2023-09-21 21:44:32 -04:00
Snarling
648c180952 UI: Modals no longer update content and become inert while closing (#817) 2023-09-21 21:33:18 -04:00
Jesse Clark
3ae3f947ac CORPORATION: Rework share price calculation + UI improvements (#782) 2023-09-20 00:36:48 -04:00
Michael Ficocelli
f6e1c171ae MISC: Add configuration to eslintrc to fix the warning thrown when linting (#814) 2023-09-19 12:24:12 -04:00
Yichi Zhang
1b81fe8766 CORPORATION: Rework valuation calculation (#789) 2023-09-19 08:47: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
Jesse Clark
b9d13063ac Format time in ns.sleep and ns.asleep (#806) 2023-09-17 15:40:25 -04:00
missymae#2783
47176b7809 Workout achievement requires work in gym (#805) 2023-09-17 15:38:52 -04:00
Caldwell
d914040ae7 CORPORATION: Remove Market TA string in sell dialog text fields (#784) 2023-09-12 19:49:51 -04:00
omuretsu
cb93f4d108 Changelog update 12sep 2023-09-12 06:09:18 -04:00
omuretsu
fe0f8cad4d Import changes
Just some import changes in a couple files.
2023-09-12 05:38:25 -04:00
Caldwell
b6eafce563 CORPORATION: remove TA modals and integrate into sell modal (#796) 2023-09-12 05:30:45 -04:00
Zelow79
99e5c5e6b0 Added BB Training to sleeve actions (#713) 2023-09-12 05:07:36 -04:00
Caldwell
bf5e638891 CORPORATION: Fix "Use same 'Sell Amount' for all cities" toggle for products (#775) 2023-09-12 04:31:51 -04:00
Caldwell
d2b3659512 DOC: Add CorporationDivisions multiplier to BitNodeMultipliers API interface (#798) 2023-09-12 04:30:19 -04:00
aschmider
a6ff0d3e14 CORPORATION: Fix additive value in party result message (#793) (#794) 2023-09-12 03:56:59 -04:00
aschmider
c4482a70f9 HACKNET: Fix spendHashes ignoring count for Company Favor upgrade (#791) (#792) 2023-09-12 03:55:43 -04:00
missymae#2783
3c42880185 DOCS: Updates to basic documentations (#788) 2023-09-12 02:07:04 -04:00
Noah Harris
7b2e8e5312 UI: clear search suggestions on clearall modification (#787) 2023-09-12 02:00:20 -04:00
Michael Ficocelli
b844593e22 UI: Add filter to faction augmentation purchase page (#783) 2023-09-12 01:36:47 -04:00
Caldwell
624a0a5b02 CORPORATION: improve State description (#778) 2023-09-12 01:25:51 -04:00
Caldwell
bba2ccd83a CORPORATION: add issueNewSharesCooldown and makesMaterial (#774) 2023-09-12 01:23:36 -04:00
Michael Ficocelli
25dae7ec8b UI: Basic Map and Set support in ns.print/tprint (#756) 2023-09-12 01:07:41 -04:00
omuretsu
f95ca64e01 Changelog update 5 sep 2023-09-05 18:34:26 -04:00
Caldwell
0ed88a4317 UI: Stats page uses same number format as overview for skills. (#776) 2023-09-05 18:13:41 -04:00
missymae#2783
8d3f2bd750 GANG: Updates to Docs, UI, API (#773)
API Changes:
Adds ns.gang.getRecruitsAvailable: Gets the number of additional gang members that can currently be recruited
Adds ns.gang.respectForNextRecruit: Gets the respect threshold for recruiting the next gang member
Adds ns.gang.renameMember: Renames a gang member

Plus many doc and ui improvements
2023-09-05 18:07:19 -04:00
missymae#2783
bec737a253 DOCS: Add documentation descriptions for GangMemberInfo properties (#779) 2023-09-03 16:50:24 -04:00
muesli4brekkies
66ac31ee99 DOCS: Improve/correct some API docs related to ports (#772) 2023-09-02 10:57:31 -04:00
Michael Ficocelli
52769706d2 UI: Keep tail windows and dialogs mounted but hidden on pages where they are not shown (#769) 2023-08-31 21:31:59 -04:00
Michael Ficocelli
ae87851889 Improve pagination for Active Scripts page (#763) 2023-08-31 20:31:48 -04:00
Caldwell
7c82221a13 CORP: Change some number formatting to look better (#764)
changed formatCorpStat to formatBigNumber to make big numbers readable
2023-08-31 20:29:04 -04:00
VictorS
b7fdcdf35d DOCS: Improved documentation for functions that take a FilenameOrPID (#759) 2023-08-30 16:36:34 -04:00
missymae#2783
ad9bde40e0 DOCS: Improve documentation for ns.bladeburner.getActionRepGain (#760) 2023-08-30 16:28:21 -04:00
Caldwell
8c86e1e07a fix NaN in Bladeburner success Chance (#761) 2023-08-30 14:51:16 -04:00
Valentin Dewilde
1ea555f572 UI: Move pagination to top of active scripts, improve filtering (#494) 2023-08-30 14:45:27 -04:00
omuretsu
bc7482b0a2 Changelog update 2023-08-28 15:47:59 -04:00
missymae#2783
12de5505b5 DOCS: Bladeburner in-game documentation update (#755) 2023-08-28 15:36:49 -04:00
Michael Ficocelli
62058a7f78 UI: Suppress confusing reputation-earned dialog on augment install (#739) 2023-08-28 15:12:13 -04:00
Michael Ficocelli
9a0d688909 NETSCRIPT: Add more helpful error messages to getPurchasedServerCost (#757) 2023-08-28 15:03:16 -04:00
Eli Doran
b4f33fe655 Remove an unnecessary for loop in HacknetServer upgradeRam (#754) 2023-08-28 14:51:20 -04:00
missymae#2783
4b627cde1e DOCS: ns.getScriptLog update to use "FilenameOrPID" and related ns.tail change (#753) 2023-08-28 14:49:37 -04:00
Caldwell
101fb21c58 UI: Faction augmentation page rerenders automatically (#744) 2023-08-28 14:40:34 -04:00
Michael Ficocelli
79b677973b MESSAGES: Re-implement limit on Icarus messages after a bitnode is completed (#742) 2023-08-28 14:38:15 -04:00
Michael Ficocelli
93235570d0 TERMINAL: Prevent recursive aliases from being resolved. (#741) 2023-08-28 14:26:25 -04:00
omuretsu
51b03003f6 Fix changelog 2023-08-26 18:35:44 -04:00
omuretsu
281e22c90c 2.4.2dev Start 2023-08-26 18:32:14 -04:00
Snarling
de5ebc993b RELEASE: 2.4.1 (#752) 2023-08-26 18:07:09 -04:00
zornlemma
aaaa980d10 fix: ActiveScripts Page map scripts with same arguments correctly (#748) 2023-08-25 15:03:08 -04:00
Michael Ficocelli
7b05bed0d4 FIX: update white-space style to function on electron app (#745) 2023-08-23 17:11:27 -04:00
omuretsu
42d70506cc Fix urls for ctrl-clicking documentation links 2023-08-21 22:48:57 -04:00
omuretsu
d5525f39bc Update changelog (probably last iteration of 2.4.1dev) 2023-08-21 06:56:11 -04:00
Michael Ficocelli
86b0bd5ac7 TERMINAL: Add option for partial history search (#736) 2023-08-21 06:50:17 -04:00
Zelow79
7ea0725a39 UI: Fixed Preview for 2 themes (#737)
Noticed 2 themes had preview screenshots that weren't from a fresh save.
2023-08-19 15:42:01 -04:00
omuretsu
fbdd8aee58 changelog update 2023-08-16 17:47:32 -04:00
missymae#2783
633f3ef07e UI: BladeBurner successes to next level tooltip fix (#728) 2023-08-16 17:32:04 -04:00
Zelow79
b7ad3395ae API: Added CompanyName to NetscriptDefinitions (#731) 2023-08-16 17:31:41 -04:00
missymae#2783
7500ef0da2 DOCUMENTATION: ns.share and getSharePower definition updates (#734) 2023-08-16 17:08:55 -04:00
Zelow79
cef452d35e add new theme zerenity (#722)
Added a calm purple and grey theme with some vivid colors here and there.
2023-08-07 02:41:01 -04:00
Snarling
4ca598defb API: Fix removed functions (#720) 2023-08-07 02:38:38 -04:00
omuretsu
d637828759 Changelog update 2023-08-06 09:42:36 -04:00
Caldwell
5c7b30ef15 BUGFIX: fix NFG buying current Level instead of next Level (#718) 2023-08-06 09:24:04 -04:00
myCatsName
647b78c9f7 CCT: accept IP solutions with matched single or double quotes, or none (#712) 2023-08-06 09:13:01 -04:00
omuretsu
c4fe88e0c7 Update changelog 2023-08-06 00:13:07 -04:00
hydroflame
931d7e588a Remove more rtd references (#702) 2023-08-06 00:05:03 -04:00
myCatsName
aed01b0979 NETSCRIPT: added ns.singularity.getAugmentationFactions (#706) 2023-08-06 00:04:36 -04:00
myCatsName
9e55d00b4f UI: "Contract in Progress" window can no longer get lost (#716) 2023-08-05 23:48:00 -04:00
myCatsName
6b7cab6ac4 IssueNewShares Modal spacing typo fix (#715) 2023-08-05 20:58:26 -04:00
myCatsName
2e84512881 update helper message for killall (#709) 2023-08-05 20:26:37 -04:00
hydroflame
2c0f7f1eda Merge pull request #694 from bitburner-official/moreResetInfo
NETSCRIPT: Add owned aug and SF info to getResetInfo
2023-08-01 09:45:50 -04:00
omuretsu
e5b1fd6b58 Fix wiregame, update changlog
WireGame had been reworked to refer to wires using their index, not the wire number, but the aug highlight display was still referring to the wire number, leading to an off-by-one.
2023-08-01 02:42:43 -04:00
omuretsu
3ced0575a4 Generate doc 2023-08-01 01:53:10 -04:00
omuretsu
75579a2ff1 Add owned aug and SF info to getResetInfo 2023-08-01 01:40:30 -04:00
Snarling
83b7c380ff DOCUMENTATION: Better npm run doc, plus minor folder reorganization (#693) 2023-08-01 00:59:33 -04:00
omuretsu
e624db5238 Update changelog 2023-07-31 23:13:38 -04:00
Snarling
1c6369ffa4 NETSCRIPT: Add ns.stock.getConstants (#692) 2023-07-31 23:08:42 -04:00
Caldwell
a85efbc4da STOCKMARKET: Move and Reorganize Constants (#688) 2023-07-31 22:12:49 -04:00
omuretsu
e9bbe57902 Changelog update 2023-07-31 10:38:13 -04:00
omuretsu
888e5f9c8a Fix bug with sleeve.setToFactionWork
Function was not checking that the player was actually in the faction, which allowed sleeves to work for factions the player was not part of.
2023-07-31 10:36:24 -04:00
omuretsu
e7312d97e6 Start 2.4.1 dev
* Set isDevBranch back to true
* Updated version number
* Updated changelog in constants
2023-07-31 04:40:46 -04:00
omuretsu
fc86895c30 Some quick 2.4.0 fixes
* No longer tells player it is a dev version and shows changelog every load
* Updated snapshot for player save format continuity test (changed due to number of donations changing)
* Fixed some display issues surrounding augmentations page (newlines were not displaying in tooltip, and NFG is sorted at the top again)
2023-07-31 04:26:15 -04:00
Your Name
1e0d3a7747 Merge branch 'dev' of github.com:bitburner-official/bitburner-src into dev 2023-07-30 22:08:44 -04:00
Your Name
b4836e5329 v2.4.0 2023-07-30 22:08:36 -04:00
hydroflame
f5cdb48497 Merge pull request #681 from azoxey/doc-cleanup
DOC: clean up documentation
2023-07-30 18:21:41 -04:00
Azoxey
ac753dd17f correct more grammatical issues, be more consistent with shortcuts in guide, clean up formatting 2023-07-27 18:49:43 -05:00
Azoxey
2815bf22eb improve readability (in an editing context) of documentation 2023-07-27 16:05:26 -05:00
Azoxey
438568e882 fix editorconfig for markdown 2023-07-27 06:47:55 -05:00
Azoxey
d8a5f038e9 fix typos, grammatical errors, remove outdated info 2023-07-27 06:44:13 -05:00
omuretsu
fb542a596c Fix scan-analyze box drawing
Non-matching up-and-right character made some fonts display scan-analyze oddly.
2023-07-13 08:12:16 -04:00
omuretsu
8b008e1b7a Fix ctrl-click for docs
ctrl-clicking doc links leads to dev branch docs if you are playing on dev branch. Makes this behavior usable before stable branch gets updated.
2023-07-12 19:41:00 -04:00
omuretsu
d943f39401 Update changelog 12 July 2023 2023-07-12 19:28:58 -04:00
omuretsu
5da79d5107 Fix broken link 2023-07-12 19:02:34 -04:00
hydroflame
1a8b9a96ec Documentation added ingame (#667) 2023-07-12 17:10:52 -04:00
G4mingJon4s
6bd5ce38d5 Fixed ram evaluation to include more edge-cases (#665) 2023-07-11 14:09:23 -04:00
omuretsu
61a27fb9c7 Fix default value for hireEmployee
Not providing a position now hires unassigned just like the documentation says
2023-07-11 11:50:55 -04:00
omuretsu
05651aa7f5 Fix faction augmentations screen
* Buying an augmentation rerenders the augmentations page (rerender function passed down through props)
* Each unowned purchasable augmentation rerenders periodically to re-check whether it can be bought.
2023-07-11 11:28:23 -04:00
omuretsu
993f234f48 Fix sleeve faction work from ui
Bandaid fix. I have a much better fix in mind for this, but it will need to wait until 2.4 since it will include some breaking changes.
2023-07-11 11:03:49 -04:00
Snarling
e2655793f4 TYPESAFETY: CompanyName (#650) 2023-07-11 09:23:17 -04:00
G4mingJon4s
e4d3a9020e Fix static ram calculation when exports are renamed (#664) 2023-07-09 08:08:43 -04:00
omuretsu
351a7fc5f8 Update dev changelog 7/7/23 2023-07-07 18:55:25 -04:00
Snarling
006fbd528f DOCS: Add printRaw and tprintRaw docs (#663) 2023-07-07 18:23:26 -04:00
Snarling
3981f72149 Add investment info to API representation of product (#661) 2023-07-05 19:50:29 -04:00
Snarling
312e3eb71f Fix for invalid materials in warehouse (#660) 2023-07-05 19:36:22 -04:00
Snarling
26cdc502bf Fix backwards name for indent option (#659) 2023-07-05 18:18:53 -04:00
Rodney Gauna
e6eb35fabc Fix URL for Speaking JavaScript (#658) 2023-07-04 20:46:06 -04:00
David Walker
babefc5477 BUGFIX: Fix potential double-free in atExit() (#655)
Fixes #654
2023-06-30 18:15:37 -04:00
Snarling
48e7bd6471 CODEBASE: Follow-up for lint rules PR + address some eslint disables (#651) 2023-06-29 13:22:10 -04:00
Meggal
bc00a1c134 Fix bug smaller than a tardigrate (#653) 2023-06-28 16:21:15 -04:00
Aleksei Bezrodnov
1d5a735941 MISC: enforce eslint react checks (#640) 2023-06-26 22:29:44 -04:00
Snarling
91bfb154b6 Better docs for ascension result (#649) 2023-06-26 04:56:58 -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
9a0a843ffc TYPESAFETY: FactionName (#644) 2023-06-25 22:53:35 -04:00
Snarling
1de676972f TEST: Add savegame continuity test (#645) 2023-06-24 10:08:21 -04:00
omuretsu
4c9ca49904 Prettier 2023-06-23 10:14:18 -04:00
omuretsu
6f26fb81e8 Fix NFG display text 2023-06-23 10:13:45 -04:00
Nils Ramstöck
4560fb7250 QUICKFIX: Issue #630 (#635) 2023-06-20 19:00:06 -04:00
omuretsu
21b04bdec0 Regenerate docs 2023-06-20 18:25:27 -04:00
htmlh4cker
d4113e325a DOCS: fix issue in scp .md (#636) 2023-06-20 18:04:06 -04:00
omuretsu
aecdbe8e8f Fix bad aug reinitialization point
This is just a quick fix. Also added some savegame fix code that will soon be removed once the better fix is in.
2023-06-20 07:57:46 -04:00
omuretsu
4b8a4d739b Revert "quickfix: aug list (#629)"
This reverts commit c059c35bca.
2023-06-20 07:35:54 -04:00
Aleksei Bezrodnov
c059c35bca quickfix: aug list (#629) 2023-06-20 07:31:45 -04:00
omuretsu
92c41e60e2 Update changelog 19 Jun 2023 2023-06-19 06:31:39 -04:00
Aleksei Bezrodnov
78ca279df7 FIX: singularity faction donation formula (#619) 2023-06-19 03:55:03 -04:00
Aleksei Bezrodnov
08e3afd125 FIX: show ram calculation error reason to player (#627) 2023-06-19 03:49:32 -04:00
Aleksei Bezrodnov
9e75621cd2 UI: add cursor options to the script editor (#615) 2023-06-18 21:17:15 -04:00
Aleksei Bezrodnov
709875d9ca FIX: script options modal issue #625 (#626) 2023-06-17 17:58:56 -04:00
Snarling
c2dacedcb3 Fix UI regression for crime in progress (#621) 2023-06-16 22:24:32 -04:00
Snarling
a4b826683e TYPESAFETY: Strict internal typing for AugmentationName (#608) 2023-06-16 17:52:42 -04:00
Aleksei Bezrodnov
12b5c00d14 fix RAM calculation on a different server (#612) 2023-06-13 17:19:42 -04:00
Aleksei Bezrodnov
192c1947a6 fix enum value deserialization (#609) 2023-06-13 15:04:56 -04:00
rqzcho
2537ded3c2 TERMINAL: Allow new lines in terminal when empty (#605) 2023-06-13 14:04:21 -04:00
omuretsu
c7d05cae58 Add parens to replacement for IINV and EINV 2023-06-12 16:04:21 -04:00
Aleksei Bezrodnov
61c8026bd0 fix sleeve university job (#604) 2023-06-12 15:19:35 -04:00
omuretsu
70eda40bb6 Changelog update 2023-06-12 01:20:24 -04:00
omuretsu
01e7b2a6a9 Fix possible crash on invalid aug name
Fixes error from #591
2023-06-12 01:13:25 -04:00
Aleksei Bezrodnov
969f3170f1 fix WorkInProgress component warnings (#600)
Also improves WorkInProgress performance by reducing unnecessary rerenders
2023-06-12 01:04:56 -04:00
Aleksei Bezrodnov
b52284806f UI: show all skills in import save comparison tool (#599) 2023-06-12 00:46:54 -04:00
Snarling
6732549196 ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Thomas P
6ed8ea9796 DOCS: Fixed broken link (#593) 2023-06-12 00:28:17 -04:00
omuretsu
762f8a23ef Dev changelog 2023-06-10 16:38:09 -04:00
Aleksei Bezrodnov
d0f2398f01 fix: do not scroll log on scroll log window drag (#592) 2023-06-10 16:31:29 -04:00
Aleksei Bezrodnov
174f10d1f5 MISC: tiny corp code style improvement (#586) 2023-06-09 19:34:35 -04:00
tdnzr
8f312ba616 Update renamePurchasedServer.rst (#585) 2023-06-09 04:35:55 -04:00
tdnzr
4fc5a23bf1 Update rm.rst (#584) 2023-06-09 04:34:51 -04:00
omuretsu
325224df27 2.3.2dev start 2023-06-07 15:06:47 -04:00
omuretsu
f55551c0cd 2.3.1 release 2023-06-07 14:41:36 -04:00
Kateract
cc5247ac89 Update exportMaterial amount to number | string (#583) 2023-06-07 13:48:23 -04:00
Snarling
c67f32cdc1 CORP: Validate city with office for product development (#579) 2023-06-07 00:30:10 -04:00
Snarling
cbff2a420b CORP: Robotics industry NaN fix + better exports validation (#578) 2023-06-06 23:50:23 -04:00
quacksouls
4c4c4a0335 DOC: additionalMsec is no longer experimental (#576)
The attribute `additionalMsec` of the object `BasicHGWOptions` was experimental in v2.2.2.  It is now a stable feature.
2023-06-06 17:19:07 -04:00
Snarling
40b89baca1 MISC: Various small fixes (#574)
* ns.ls filter can include leading slash in filename
* scp from terminal accepts multiple filenames
* terminal displays root / instead of ~ as base
* cd with no args returns to root
2023-06-06 08:46:07 -04:00
HiEv
ed93fea141 DOC: Remove invalid use of const in example code (#573) 2023-06-06 01:49:48 -04:00
Aleksei Bezrodnov
027db7e867 MISC: optimize corp affordable upgrade level calculation (#570) 2023-06-06 01:45:28 -04:00
omuretsu
abbf99f2cb Dev changelog update 2023-06-04 12:12:55 -04:00
Aleksei Bezrodnov
7050c90378 UI: Fix several issues with script editor tabs (#554) (#567) 2023-06-04 12:01:06 -04:00
zerbosh
bda1daf49f CORPORATION: parse material Sell field once (#562) 2023-06-04 10:28:35 -04:00
zerbosh
d8fee8e25a CORPORATION: fixed Sell Buttons (#564) 2023-06-04 00:13:26 -04:00
David Walker
3c6b5a1a83 BUGFIX: Fix corp issues relating to imports (#568)
Also clarify the Smart Supply options to be more clear on what they do.
2023-06-04 00:11:07 -04:00
Snarling
403beef69e PRESTIGE: Make bitnode reset synchronous again (#566)
* Make prestige synchronous
2023-06-03 18:04:45 -04:00
Snarling
ec9e7ffa3a GANG: Fix respectGainRate being stored incorrectly (#565) 2023-06-03 16:44:35 -04:00
Aleksei Bezrodnov
dd9849f53d BUGFIX: script tab reordering (#563) 2023-06-03 14:26:55 -04:00
Aleksei Bezrodnov
99954ebd1e REFACTORING: ScriptEditor (#560) 2023-06-03 13:55:25 -04:00
omuretsu
886f402a43 Fix infinite time to hack on 0-difficulty servers 2023-06-02 12:32:06 -04:00
omuretsu
68405b2873 Changelog update 2023-06-01 15:27:07 -04:00
Kateract
10215a924c CORP: Add maxProducts property to division, consolidate maxProducts logic (#551) 2023-06-01 15:20:54 -04:00
David Walker
0d6015104e BUGFIX: Proper default title for loaded RunningScripts (#557) 2023-06-01 06:42:55 -04:00
David Walker
4d1cdaad32 UI: Add title tooltips to tail window elements (#558) 2023-06-01 06:42:06 -04:00
omuretsu
7240bbe8b7 Fix hotfix 2023-05-30 20:47:01 -04:00
omuretsu
8bc67f542a Satisfy lint 2023-05-30 20:06:13 -04:00
omuretsu
b65bd62345 More hotfixes...
* Script editor theme could be corrupted leading to a recovery screen, this should fix that.
* Because script filepath changes were moved before the detection of .ns files, a check was added for .ns files in BaseServer so they get the better name.
2023-05-30 20:00:43 -04:00
Snarling
1aa53739cc Hotfix 30 May 2023 (#555) 2023-05-30 18:48:16 -04:00
omuretsu
469c70ed4b Update dev changelog 2023-05-29 18:43:16 -04:00
bezrodnov
606b4bee95 UI: Prevent terminal scroll on progress bar update (fix #94) (#544) 2023-05-29 14:59:17 -04:00
ttvasterikx
becca87224 Update gettingstartedguideforbeginnerprogrammers.rst (#548) 2023-05-29 14:53:47 -04:00
bezrodnov
ea8f5cede7 add close modal button (#546) 2023-05-29 11:54:14 -04:00
David Walker
e51527aa86 BUGFIX: More savegame loading fixes (#543)
* Fix loading issues back to pre-1.0
* Be more robust about issues with files not being maps
* Avoid non-fatal error when there's no LastExportBonus
2023-05-29 07:10:26 -04:00
Snarling
5f2a1c3f27 TERMINAL: Fix original alias syntax (#545) 2023-05-29 06:54:51 -04:00
omuretsu
7f852373d8 Fix test
Was using old method of saving scripts which is now removed (was removing possible sources of the script hostname mismatch error)
2023-05-28 05:43:09 -04:00
omuretsu
ae8f26f03b More hotfix
* Fix empty solution for all valid math expressions
2023-05-28 05:25:44 -04:00
Snarling
8e4492685d Fix scan analyze display (#539) 2023-05-27 19:30:24 -04:00
omuretsu
72a631d4ed Another lint fix 2023-05-27 08:46:28 -04:00
omuretsu
8bf13b6fd3 fileExists no longer case sensitive for programs 2023-05-27 08:39:29 -04:00
omuretsu
ad3b217b8f lint fix
Fix sloppy unlinted hotfix code
2023-05-27 01:58:47 -04:00
omuretsu
e03a366f12 hotfix broken spring water 2023-05-27 01:53:13 -04:00
David Walker
db26d054fc Various fixes to our upgrade logic (#536)
Stuff broke over time, especially with the major changes we made leading
up to 2.3. We should test with older saves if/when we make large changes
in the future.

Fixes #532
2023-05-27 00:16:31 -04:00
omuretsu
ab207ce36c Fix more terminal usage error text 2023-05-26 15:45:49 -04:00
omuretsu
40babcb2ee more hotfixing
Hotfixed usage tips for alias
Hotfixed prestigeHomeComputer to avoid crashing prestige
Added checking at startWorkerScript to try and find instances where script is launched on wrong server
Fixed corp issue with multibuy not providing multibenefits
2023-05-26 14:59:42 -04:00
omuretsu
912fc98d3a Fix ls clickable links in directory 2023-05-26 12:09:59 -04:00
David Walker
4503da6226 UI: LogBox overhaul (#508) 2023-05-26 08:07:37 -04:00
G4mingJon4s
113af6e711 Add ns.getFunctionRamCost (#526) 2023-05-26 07:46:08 -04:00
bezrodnov
294603fff8 Fix getAugmentationGraftPrice bug (#530) 2023-05-26 04:14:11 -04:00
omuretsu
396e71955e Fix scp logs
Hostname was not being displayed correctly
2023-05-26 04:04:17 -04:00
Snarling
573a714fc6 Delete electronbuild.yaml 2023-05-25 19:49:58 -04:00
omuretsu
4f83d6a58a 2.3.1 dev start 2023-05-25 18:55:04 -04:00
omuretsu
7f6b96fda0 Hotfix
Prevent crash due to renamed files not being able to re-launch automatically
2023-05-25 18:16:10 -04:00
omuretsu
f75c185d39 Final 2.3.0 2023-05-25 16:45:51 -04:00
David W
97ea35bd5b Clarify exec needs script to be on remote server (#512) 2023-05-25 16:27:56 -04:00
Nikolai Korolev
b72eb125f2 DOC: Fix parameter name in documentation (#525) 2023-05-25 16:26:43 -04:00
omuretsu
f3c32d70f2 Fix order of operations for electron build script 2023-05-24 12:10:29 -04:00
Nikolai Korolev
708950350a DOC: Fix link on main page of documentation (#520) 2023-05-22 05:41:05 -04:00
Snarling
87f2ae459d UI: Better support for custom player React content (#513) 2023-05-22 05:28:24 -04:00
omuretsu
0d55b957f1 Small cat fix
cat no longer shows error message for no file found when a message or literature file was found
2023-05-22 01:52:01 -04:00
Aloït R
8dad2e746f Fix missing bracket (#519) 2023-05-21 10:07:29 -04:00
Nikolai Korolev
7cbde69da8 DOC: Fix typos (#517) 2023-05-21 10:06:29 -04:00
David Walker
9d9f6b4dcd Fix incorrect progress (#516) 2023-05-21 10:04:40 -04:00
Nikolai Korolev
2e9dc32deb DOC: Specify optional parameters in hacknet functions (#515) 2023-05-18 01:28:56 -04:00
omuretsu
75706d273a Build fix
Two files somehow missed saving their renaming.
2023-05-17 18:36:49 -04:00
omuretsu
c1f842e5c7 More corporation renaming
Just renaming files / functions. Industries are the static categories that divisions can operate within, divisions are the actual branches of the company. A lot of stuff was still written as if Industries are the actual branches of the company, which is even less accurate now that a corporation is allowed to have multiple divisions operating in the same industry.

Also removed the incorrect tooltip description of what tea does (it's now just a flat +2 increase)
2023-05-17 17:28:24 -04:00
omuretsu
27a6b619eb Lint fix
Also reduce unnecessary imports
2023-05-16 11:41:55 -04:00
omuretsu
00522fb8f3 Fix infinite loop detection
Also debounce it with the ram calc to improve performance
2023-05-16 11:27:11 -04:00
omuretsu
b44050cfec Fix oldcorp loading 2023-05-16 08:36:14 -04:00
omuretsu
f4655b8e1b Typo fix 2023-05-15 23:12:17 -04:00
omuretsu
6c730d46f4 Dev branch always show changelog regardless of location 2023-05-15 23:05:36 -04:00
omuretsu
df237b0842 Fix Stanek fix 2023-05-15 23:01:19 -04:00
omuretsu
21162c8cdd Fix stanek not recalculating stats immediately on game load 2023-05-15 22:55:57 -04:00
omuretsu
ce9ceb05a3 Revert hostname in tail titlebar 2023-05-15 20:26:18 -04:00
omuretsu
48396bf8cb Changelog update 2.3 2023-05-15 18:39:01 -04:00
Snarling
2ae3ac52f1 CORPORATION: Corp changes prior to 2.3 finalization (#503) 2023-05-15 18:06:57 -04:00
David Walker
e2e9b084bc SETTINGS: Add an autoexec setting (#505) 2023-05-09 00:13:05 -04:00
omuretsu
4e07900c5a Fix hacknet level base cost constant 2023-05-05 23:22:54 -04:00
Snarling
ebae35b1fb CODEBASE: Expand lint rules, and Aliases are stored as maps (#501) 2023-05-05 03:55:59 -04:00
Snarling
d25254caf1 BUGFIX: Prevent crash that could occur with server named runningScripts (#502) 2023-05-03 20:19:56 -04:00
omuretsu
003be33886 Lint fix 2023-05-03 07:31:29 -04:00
omuretsu
3c996a47ea Fully remove formatCode function (trim on script save) 2023-05-03 07:21:23 -04:00
David Walker
ad5a1c4bac NETSCRIPT: Revert FormattedCode type (#500) 2023-05-03 07:13:35 -04:00
Ryan McEntire
6e028a0744 DOC: Grammar and spelling fixes (#499) 2023-05-02 11:49:42 -04:00
David Walker
8b7166e4ed UI: Fix (most) perf issues in Active Scripts (#498) 2023-04-30 19:31:29 -04:00
Ryan McEntire
2f46831ad1 DOC: Grammar & language fixes for v2.0.0 migration (#495) 2023-04-30 17:37:28 -04:00
Snarling
802f2f1c66 Blacklist some more special characters
Also improved readability of the valid character section by using escapeRegExp
2023-04-28 15:33:05 -04:00
Snarling
8f684fa74c Changelog and markdown update 2023-04-28 14:45:55 -04:00
Snarling
e1aff1a315 Lint fix 2023-04-28 11:49:05 -04:00
Snarling
350679bc83 Program path bugfix + wget use contentFile 2023-04-28 11:42:35 -04:00
Snarling
8fd4eee8e9 Fix wget with text file target 2023-04-28 11:14:29 -04:00
David Walker
aa7facd4ba NETSCRIPT: Greatly speed up script launching, and remove the limitation unique args per script (#440)
* Remove the limitation unique args per script
* Internal changes to how runningScripts are stored on the server, to make common usage faster.
2023-04-27 18:21:06 -04:00
Snarling
f81297dcd6 ls display is responsive (#492) 2023-04-26 15:18:26 -04:00
Snarling
d9ef53e2e8 Fix SF12 wrong multipliers applied 2023-04-25 09:31:53 -04:00
Snarling
ae2b8cf87e Fix build test passing on failed builds 2023-04-25 09:12:17 -04:00
Snarling
6024c81113 NETSCRIPT: add ns.getResetInfo(#490)
* Move lastAugReset and lastNodeReset back to main API under getResetInfo, also included currentNode.
* The associated properties are deprecated on getPlayer()
2023-04-25 05:22:36 -04:00
Snarling
62adaf3006 Various bugfix/cleanup (#489)
* parseCommands no longer removes excess whitespace (it was unneeded and also had a bug in it relating to commands that ended in a quote mark)
* more documentation and some variable renaming
* Fix script editor focus bug on navigating to the editor from sidebar
* Fix initialization for lastNodeReset and lastAugReset
2023-04-24 15:48:49 -04:00
omuretsu
9004b12256 Actually fix quoted string args 2023-04-24 13:21:58 -04:00
omuretsu
c4776753f1 Fix quoted section detection 2023-04-24 13:05:50 -04:00
omuretsu
3106c03b5b Fix broken run command 2023-04-24 12:54:09 -04:00
David Walker
be4b0267a6 TERMINAL: Greatly improve ANSI handling (#485)
- Add support for 2;r;g;b color codes (much easier to deal with
  than 5;x256 style codes)
- Fix 40-47 (standard background colors) so that they work
- Add support for italic
- Add support for empty arguments interpreted as 0
  (0 is still not supported for "reset style", since it's not needed
  with our non-standard usage of resetting styles on every escape
  sequence, and it might cause compat issues)
- Fix ordering of 0-15 in the x256 colors to match the standard. The
  "main" colors (selected via 30-37 for FG and 40-47 for BG) are still
  artificially bright for FG, kept for compatibility, but there's no
  reason to screw up the x256 colors. (Hopefully usage of that section
  should be small anyway.)
2023-04-24 11:04:37 -04:00
David Walker
b3c0027b66 NETSCRIPT: Change error return of hackAnalyzeThreads (#482)
Fixes #102
2023-04-24 11:04:19 -04:00
Arron Chapman
e7fcda19c1 UI: Added hostname to LogBox title (#478) 2023-04-24 10:33:16 -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
6f56f35943 Add deprecation messages (#486)
Add back getPlayer().playtimeSinceLastX, but with deprecation messages applied
2023-04-24 10:21:43 -04:00
hydroflame
72037b5dab Update Constants.ts (#481) 2023-04-20 01:55:00 -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
c44bdc1018 Remove unreachable code 2023-04-12 21:05:53 -04:00
G4mingJon4s
d01ba91654 SINGULARITY: Added aug and node identifiers (timestamps of last resets) (#472) 2023-04-12 13:13:42 -04:00
Snarling
f761eed377 NETSCRIPT: Type correctness for getServer (#476) 2023-04-11 15:12:55 -04:00
Steven Proctor
561b5cbf75 debugAccelerator: (#471)
- Added the F12 accelerator for Debug->Activate (DevTools) for faster access in Electron. Matches the shortcut for Chrome browsers.
2023-04-11 15:10:07 -04:00
T.J. Eckman
751fe82f92 HASHNET: Company Favor (#469) 2023-04-08 23:24:09 -04:00
David Walker
ed9e6d5ea3 NETSCRIPT: Compiled modules will be even more shared (#468) 2023-04-07 21:08:39 -04:00
omuretsu
f74002cce0 Fix and rebuild doc 2023-04-07 07:49:11 -04:00
quacksouls
4ade263ae8 DOC: typo fixes in sleeves API (#467)
A bunch of typographical fixes in the documentation of the Sleeve API.
2023-04-07 07:45:14 -04:00
omuretsu
482a04d757 Fix broken devServer config 2023-04-07 07:43:39 -04:00
Snarling
a6dfdff3ba Fix build issue 2023-04-07 02:45:19 -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
omuretsu
f5cddb6984 Fix index.html file location
Was being created at wrong location on `npm run build:dev`
2023-04-06 20:42:26 -04:00
T.J. Eckman
677686fa20 SINGULARITY: getCompanyPositionInfo (#460) 2023-04-04 12:00:54 -04:00
Eric
8d52e1b510 Small text fix (#462) 2023-04-03 00:21:37 -04:00
T.J. Eckman
df334ea6de SINGULARITY: Added getCompanyPositions (#459)
Also workForCompany will throw an error if provided a bad company name, instead of returning false
2023-04-01 21:30:46 -04:00
mjz19910
8b83791515 BUGFIX: Fix npm audit for webpack 5.75.0 (#457) 2023-04-01 07:58:18 -04:00
David Walker
8c4b992d59 TEST: Add a NS2 test (finally) (#458) 2023-04-01 07:45:23 -04:00
Tyasuh
c730d6ed82 Fix a bug introduced in #454 (#456) 2023-03-31 04:18:58 -04:00
Snarling
b9e227509e Minor gang stuff (#454)
* Fix a weird mismatch between gangFormulas and actual gang for calculating wanted penalty
* Gang respect will not fall below 1. Previously, ascension did clamp this at 1 but members dying in warfare allowed respect to reach 0.
* Gang member earned respect is now calculated correctly. Previously the actual gains were calculated, then the respect was added to the gang, and then the member earnedRespect was incorrectly being re-calculated using the increased respect. Now the respect is recorded on the member during the first/actual calculation.
2023-03-30 16:31:50 -04:00
David Walker
8445af5f2b Moved Player initialization point (#452)
Now initialized as side effect in PlayerObject, instead of in Player file that is imported everywhere.
2023-03-29 00:30:27 -04:00
omuretsu
798da75d83 renameServer changes
* Update doc error, regenerate docs
* Update a bad error message in renamePurchasedServer@serverPurchases.ts
* restore true/false return (removed in #450 due to miscommunication)
2023-03-28 16:10:24 -04:00
Zelow79
eb8bcd00e3 NETSCRIPT: reduce RAM cost for renamePurchasedServer to 0 (#450) 2023-03-28 16:01:09 -04:00
Minzenkatze
a1441b31f2 UI: Improvements to Create Program tab (#449)
* Progress indicator for programs that are in progress
* Button for a program that is currently being worked (unfocused) is just a refocus button
2023-03-28 11:23:36 -04:00
Snarling
dadf42bfe8 Fix hackAnalyzeThreads again
But actually this time
2023-03-26 02:56:01 -04:00
Minzenkatze
3c18fd7a51 fixed issue with duplicate programs (#447) 2023-03-26 02:42:15 -04:00
David Walker
9353129e84 BUGFIX: Fix the return of weaken() to account for BN mult (#448) 2023-03-26 02:16:51 -04:00
Snarling
6290ce562a Prevent errors thrown from terminal (#443)
At least from getFilepath function
2023-03-23 12:01:58 -04:00
David Walker
07b18edb5c REFACTOR: Post-PR changes to NetscriptHelpers.runOptions() (#442) 2023-03-23 12:01:20 -04:00
David Walker
2b54c6c9b9 NETSCRIPT: Add ramOverride as a RunOption (#441)
Allows overriding the static ram calculation. Dynamic ram limit still applies.
2023-03-22 10:09:12 -04:00
omuretsu
a03a441906 Merge branch 'dev' of https://github.com/bitburner-official/bitburner-src into dev 2023-03-21 21:25:33 -04:00
omuretsu
4934801073 quick docfix 2023-03-21 21:25:24 -04:00
Snarling
a774592e64 fix crash when renaming server while connected to that server (#438) 2023-03-21 21:21:15 -04:00
Eric
39d26673c4 Refactor flipForecastForecast (#437)
Algebraic reduction of Stock.flipForecastForecast() to make it more readable.
2023-03-21 20:36:54 -04:00
David Walker
98f7f473b4 NETSCRIPT: Add "temporary" as a RunOption to run/exec/spawn (#432) 2023-03-21 18:54:49 -04:00
omuretsu
042a476f78 Update electron package version info 2023-03-20 23:38:18 -04:00
hydroflame
7ee36cf22c Fix inconsistent magic number in skill/exp calculation (#434) 2023-03-20 05:16:26 -04:00
Mughur
1ef99f0c35 my bad 2023-03-18 12:15:00 +02:00
David Walker
c77b89d4d9 PERFORMANCE: Improve speed of saving when there are lots of scripts (#430) 2023-03-17 23:59:27 -04:00
Mughur
be5bba8ad6 small fixes (#429) 2023-03-18 03:34:28 +02:00
Mughur
1f98eecb57 CORP: rework (#428)
* corp overhaul: Corp production quality now depends on materials

* corp overhaul: Product price can be set separately for each city

* corp overhaul: export uses relatives

* corp overhaul: ignore energy in quality

* corp overhaul: getProduct() is city dependant

* corp overhaul: bulkbuy available from start

* corp overhaul: add multibuy for leveled upgrads

* corp overhaul: changes to UI

* corp overhaul: base quality 1, reqmat changes

* corp overhaul: puchased material quality is 1

* corp overhaul: get rid of the text box from ta2

* corp overhaul: sold shares limitations

* corp overhaul: coffee -> tea, training -> intern

* corp overhaul: smartsupply has multiple options

* corp overhaul: restart, literature, investore, ui

* corp overhaul: nerf advertising

* corp overhaul: bunch of stuff
2023-03-18 03:12:43 +02:00
Zelow79
5ffefcca80 Show on tooltip that bladeburner augs can be grafted (#427) 2023-03-17 07:57:38 -04:00
Zelow79
4723984bf8 MISC: More Bladeburner Dev menu options (#414) 2023-03-15 21:41:18 -04:00
David Walker
b92e0f1468 BUGFIX: Allow (attempting) importing the same save filename twice in a row (#424) 2023-03-15 21:10:48 -04:00
David Walker
028d9f9462 BUGFIX: Fix order-of-ops issue with SCRIPT_32GB achievement (#422) 2023-03-13 21:20:56 -04:00
David Walker
02a436dc79 ENGINE: Use setTimeout() instead of requestAnimationFrame() (#421) 2023-03-12 18:31:58 -04:00
omuretsu
f2e1a67ec1 Changelog update and steam dev updater v2
Attempting to build using ubuntu 20.04 to possibly fix Linux issue.
2023-03-11 17:07:08 -05:00
LiamGeorge1999
e84e734171 Updated "next equipment unlock" text for gang equipment (#418) 2023-03-10 23:51:33 -05:00
omuretsu
057aeaea83 Doc update
* Added notes about whether ns API layers contain spoilers.
* Add some more info to checkFactionInvitation doc
2023-03-08 01:39:05 -05:00
Zelow79
d7380a9243 Sleeve crime kills add to numPeopleKilled (#413) 2023-03-07 19:35:01 -05:00
omuretsu
b9ffb9e42e Add triggers for faction invite check
Manually check for faction invites whenever a server is backdoored, and whenever the player uses ns.singularity.checkFactionInvites
2023-03-07 19:31:54 -05:00
Snarling
401bfe9f31 Sleeve work type changes (#412) 2023-03-07 18:03:13 -05:00
Snarling
51bf0d1904 Stanek performance boost + bonus time rework (#410) 2023-03-07 14:45:22 -05:00
Zelow79
701f063642 Blade Contracts/Operations now reduce count on fails. (#411) 2023-03-07 14:45:05 -05:00
omuretsu
c2cd5845b2 Refactor ls 2023-03-07 08:04:08 -05:00
omuretsu
0442f3d5e9 Rework roughlyIs internal function
Now named missingKey, is much faster (approx 4x faster based on testing), and provides better error info when it fails (which property was missing from the provided object).
2023-03-07 06:33:24 -05:00
Snarling
e74dfe9b79 NETSCRIPTSLEEVE: Add cyclesWorked to ns.sleeve.getTask return (#409) 2023-03-07 05:30:15 -05:00
omuretsu
4ebfdcc4a8 Changelog + misc minor changes
Recovery textarea no longer spellchecks, fixed some "as" type assertions that were not necessary.
2023-03-06 11:45:36 -05:00
Snarling
759f86d6e5 NETSCRIPT: Rework script ram updates (#408) 2023-03-05 22:39:42 -05:00
zerbosh
14aafbe0a3 SLEEVES: fix typo in MoneySourceTracker call (#405) 2023-03-03 01:03:09 -05:00
Tyasuh
a01da24c10 Complete partial revert of infinite loop detection (#406) 2023-03-03 01:02:45 -05:00
Snarling
ea8ee743cc NETSCRIPT: Revert infinite loop detection (#404) 2023-03-02 17:29:18 -05:00
Snarling
59389b164a Update electronbuild.yaml 2023-03-01 01:00:35 -05:00
Snarling
89baa19bbf Update package-electron.sh 2023-03-01 00:50:53 -05:00
Snarling
26c7556091 Create test workflow for linux electron build 2023-03-01 00:45:52 -05:00
omuretsu
75481aa195 Fix growthAnalyzeSecurity doc
Also a format fix from a previous sloppy commit
2023-02-28 09:57:02 -05:00
omuretsu
f16246f939 Fix Math Expressions contract
Previously player could submit as many wrong answers in the solution as they wanted, as long as all correct answers were included. Fixed by ensuring length matches actual answer.
2023-02-28 09:14:12 -05:00
omuretsu
45ca94b1dc Fix hackAnalyzeThreads
It was previously returning infinity any time a single thread was calculated to hack less than $1, due to an improper use of Math.floor.
2023-02-28 09:02:14 -05:00
Aditya Hegde
2f4c29fdf0 Clarifying that netscript ports are across servers (#268) 2023-02-28 06:59:37 -05:00
Snarling
ee3c412933 SETTINGS: Add infinite loop detection setting (#402) 2023-02-28 06:54:01 -05:00
lucebac
ae92ea0f94 ns.scp: strip leading slashes from filenames if file is in root (#263) 2023-02-28 06:53:42 -05:00
David Walker
f1793b187b SOURCEFILE: Fix calculation of decMult (#385)
Changed SF1 to apply a 1/incMult multiplier to hacknet costs to match how NFG, SF12, etc. handle it. Previously was calculated as a %reduction.
Changed wording on SF9 to include a %reduction in hacknet costs.
Buffed SF9 effect to 12% base from 8%, to make up for weaker hacknet cost mults from SF1.
2023-02-27 20:41:42 -05:00
T.J. Eckman
33f0150d25 BUGFIX: Memory Leak in NetscriptPorts (#399)
Co-authored-by: Snarling <84951833+Snarling@users.noreply.github.com>
2023-02-27 19:54:04 -05:00
Mughur
9d504b0dfb updated node starting messages actually show up (#397) 2023-02-27 21:46:01 +02:00
CJ Bok
5cef60cd21 Fixed the year for v2.2.2 (#398) 2023-02-26 19:20:04 -05:00
omuretsu
93939431e9 Remove some unused electron code
Verified that steam exits the game even when a link has been opened, no need for utils.openExternal or tracking app_playerOpenedExternalLink.
Also removed some unneeded eslint override comments
2023-02-26 19:18:54 -05:00
Snarling
b9b5a62105 Fix electron link handling (#396) 2023-02-25 17:42:26 -05:00
LiamGeorge1999
3d9993215c Fix double percentage sign in product creation (#395) 2023-02-25 08:20:59 -05:00
LiamGeorge1999
b1af58d6a6 Fixed speechmarks not making numeric terminal arguments into strings (#391) 2023-02-25 08:17:01 -05:00
quacksouls
f50b731846 Fix doc typo for "Sanitize Parentheses in Expression" contract (#389) 2023-02-24 22:31:10 -05:00
quacksouls
18eeb7c4e1 Fix doc typo for ns.stock.getPosition (#390) 2023-02-24 22:27:55 -05:00
Snarling
4166c09bd4 More script editor options (#386)
* Options are responsive again (fix from previous changes)
* Better height control on the monaco container using flexbox.
* Added options for tab size, auto-detect indentation per-file, font family, and font ligatures.
2023-02-24 07:37:29 -05:00
Mughur
ee3b220858 fix typo (#388) 2023-02-24 14:10:57 +02:00
Mughur
6839a456ac doc function updates and additions (#387) 2023-02-24 13:57:17 +02:00
Snarling
71051cde9c Upgrade monaco and bump game version to 2.3.0dev (#369) 2023-02-23 21:43:29 -05:00
omuretsu
211e2bcb95 Fix Electron API server
VSCode integration fix for Electron version
2023-02-23 21:18:29 -05:00
Mughur
57302c953f Merge pull request #376 from Zelow79/BN9-buff
BN9: QoL improvements.
2023-02-23 17:29:52 +02:00
omuretsu
37d2f57e53 Fix atExit loop
atExit clears itself from the WorkerScript before being executed.
2023-02-23 08:39:47 -05:00
Zelow79
eb7b00a688 Update BitNode.tsx 2023-02-22 15:50:29 -05:00
Zelow79
3fde3a1a22 Update BitNode.tsx
Removed PI from BN modifiers and set them back to base/original values as per Mughur request.
2023-02-22 15:47:32 -05:00
Mughur
3c7b0622a5 Merge pull request #375 from Tyasuh/Int-Shock-Recovery-Buff
MISC: Sleeve Int applies to active/passive shock recovery
2023-02-22 14:40:51 +02:00
Snarling
d3f9554a6e 2.2.2 Release (#378) 2023-02-21 09:44:18 -05:00
tyasuh.taeragan@gmail.com
7963158470 Requested Correction 2023-02-20 21:40:47 -05:00
omuretsu
bba6b26ac1 Fix ram<1GB display bug 2023-02-20 06:31:52 -05:00
Zelow79
f573092090 Update Prestige.ts
updated comment to be a little more clear
2023-02-19 21:51:06 -05:00
Zelow79
b950c6540f bn9 QoL improvements
Increased BN multipliers for HacknetNodeMoney and WorldDaemonDifficulty to PI (3.14159...). This brings WD required hack to 9424.77796076938 (now the 2nd highest ^-^).
Bn9 now starts with the same node bn9.3 rewards (the idea here is it helps showcase the BNs new feature and just speeds up a lot of what made it so slow early on)
2023-02-19 21:14:22 -05:00
omuretsu
6b8ae1b351 Change high% display to mult form
Also includes some documentation updates from a previous PR (sleeve.setToIdle)
2023-02-19 15:24:27 -05:00
tyasuh.taeragan@gmail.com
b6433786e3 formatter 2023-02-19 05:27:09 -05:00
tyasuh.taeragan@gmail.com
012c5d4f86 Int Buff to shock recovery speed 2023-02-19 01:43:38 -05:00
Mughur
2bd5741b22 Merge pull request #371 from d0sboots/hacking
NETSCRIPT: Add `additionalMsec` to BasicHGWOptions
2023-02-19 07:42:11 +02:00
Mughur
79eca93ade Merge pull request #373 from Mughur/uptodate
BUGFIX: new servers check reserved names properly
2023-02-19 07:28:30 +02:00
Zelow79
028199aa7d SLEEVE: Add sleeve.setToIdle function (#374) 2023-02-19 00:13:23 -05:00
omuretsu
bd4fe19fde Fix percent display at large values 2023-02-18 08:03:16 -05:00
Mughur
d55395491c BUGFIX: new servers check reserved names properly 2023-02-18 03:34:09 +02:00
David Walker
dc9b1050bf Result of npm run doc
Includes my change and a bunch of prior changes
2023-02-17 00:14:20 -08:00
David Walker
53755dd573 NETSCRIPT: Add additionalMsec to BasicHGWOptions
This option adds additional time to the sleep in hack/grow/weaken before
the command takes effect. The critical difference between this and doing
your own sleep is that it creates a single, uninterruptible sleep: This
opens up multiple new avenues of gameplay for batching.

Note that use of this new feature is theoretically always suboptimal,
since extending the sleep time wastes RAM.
2023-02-17 00:01:41 -08:00
Snarling
af0ed1dbb0 Fix some inaccuracies
Removed line about bugfix only
Removed line about merging to master branch because that's not how we have it set up at this repo.
2023-02-16 22:22:54 -05:00
omuretsu
07397874c0 Revert "CODEBASE: Steam development branch updating action (#370)"
This reverts commit 56ce1df0c8.
2023-02-16 15:35:31 -05:00
Snarling
56ce1df0c8 CODEBASE: Steam development branch updating action (#370) 2023-02-15 17:10:45 -05:00
David Walker
ed59f4bfe7 NETSCRIPT: Add growThreads to formulas, improve docs for hacking functions (#330) 2023-02-14 17:38:51 -05:00
Snarling
b9a2953fa6 Add totalExperience property to getOffice (#367) 2023-02-14 01:38:22 -05:00
Snarling
08e71c732b Threads are a positive integer (#366)
* Added new positive integer ns validation helper
* `run`, `exec`, and `spawn` verify threads as a positive integer.
* `run` terminal command also fails if the provided threadcount is not a positive integer.
* Removed some references to .script files in various documentation, and removed some of the NS1 example blocks
2023-02-14 01:32:01 -05:00
Snarling
b0bdf0c7ad DOC: Improve ns.kill documentation (#365) 2023-02-13 21:50:38 -05:00
Mughur
571f1eb8ef Merge pull request #362 from d0sboots/corpsell
CORP: Change/fix TA.II to use configured sell amounts
2023-02-14 03:38:58 +02:00
Snarling
f16a4f1a4e fix setTheme 2023-02-13 19:49:07 -05:00
Snarling
f916007f2d CODEBASE: Combine the title and dist checks (#361) 2023-02-12 02:22:07 -05:00
David Walker
4dd093606c CORP: Change/fix TA.II to use configured sell amounts
It used to set prices based on current production only.
2023-02-11 23:08:39 -08:00
omuretsu
af8528c777 Fix action
Attempt to fix check for generated files action to actually make a new comment if one doesn't exist
2023-02-11 15:31:49 -05:00
omuretsu
dba6773375 Add back lint:report 2023-02-11 15:18:32 -05:00
omuretsu
e9bdc29c8c Some dev updates
* Bump electron version to 22.2.1
* Fix npm run electron command (needed the electron-packager-all command which I had removed)
* Improve the npm run format command, no longer floods terminal with all file names
* Updated start command to serve the built version of the game in .app
* Remove some unused commands and unused workflows. Combined the ci and ci-pr workflows.
* Modify check for generated files logic. Attempt to fix so it will edit its own comment instead of posting a new one on every commit.
2023-02-11 15:12:55 -05: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
Zelow79
1f5546b721 UI: Revealed faction augments remaining in faction invite. (#357) 2023-02-11 10:41:50 -05:00
omuretsu
07b1eefe33 Run prettier 2023-02-07 21:16:18 -05:00
Mughur
814e837983 Merge pull request #355 from Mughur/docupdate
link at the end of tutorial now opens another window
2023-02-08 03:50:12 +02:00
Mughur
88eb85da00 fix tFormat.rst filename capitalization 2023-02-08 03:47:42 +02:00
Mughur
67fde6167b Fix tutorial getting started link
change tformat.rst file name
2023-02-08 03:46:42 +02:00
Mughur
e7588de19c Merge branch 'uptodate' of https://github.com/Mughur/bitburner-src into docupdate 2023-02-08 03:23:22 +02:00
Mughur
6590fa1c97 small doc fixes 2023-02-07 16:26:02 +02:00
omuretsu
6459b1ab48 Change tests
* Try to fix check for generated files to create a comment on a PR.
* Check for generated files does not count as a failure.
* Lint doesn't fail based on stuff in dist. Prettier and lint no longer use the "diff" version.
* Removed some commands that weren't really used (specific version electron packager commands that require you to have already ran npm run electron to generate .package folder)
2023-02-04 07:42:35 -05:00
Zelow79
37f41c89bc MISC: Added features to DevMenu (#353)
* More blade devmenu functions
* Custom money field, set money to 0 option
* Options for removing blade/gang/corp
* Better dev menu responsiveness (dev menu rerenders after adding or removing blade/gang/corp)
* Some general code style changes
2023-02-02 10:09:38 -05:00
Mughur
35d590b25d Merge pull request #347 from jeek/corp-states
CORP: Move Sale after Export in Corp States
2023-01-31 15:21:27 +02:00
omuretsu
e8e107254d Update build commands
build:dev now works
2023-01-30 19:45:24 -05:00
T.J. Eckman
a141431e08 CORP: Move Sale after Export in Corp States 2023-01-30 19:15:56 -05:00
Mughur
d5707931c6 Merge pull request #342 from MattiYT/dev
UI: Added iron man theme.
2023-01-30 22:53:56 +02:00
Mughur
741f4a0d1e Update index.ts 2023-01-30 22:50:40 +02:00
Mughur
6d7fba4930 Merge pull request #344 from Mughur/docupdate
fix previous commit, improve argument page on docs, ran lint&format
2023-01-30 21:46:22 +02:00
Mughur
23199ee705 fix previous commit, improve argument page on docs 2023-01-30 21:42:46 +02:00
Mughur
0c7b6a8ad8 Merge pull request #343 from Mughur/docupdate
DOC: Doc changes
2023-01-30 21:02:43 +02:00
Mughur
6369ab434b Doc changes 2023-01-30 20:51:00 +02:00
omuretsu
867236e153 autoAssignJob streamlining 2023-01-29 08:14:12 -05:00
Matti
f8f8c8c517 Add files via upload 2023-01-29 12:51:46 +00:00
Matti
caf65c4d63 Update index.ts
Added iron man theme to the list.
2023-01-29 12:49:12 +00:00
Christian Roy
d7439aae52 Fix setAutoAssignJob parameter validation. (#339) 2023-01-29 07:39:01 -05:00
David Walker
c1d3664955 CORP: Revert mandatory coffeeparty (#333) 2023-01-27 08:15:54 -05:00
Zelow79
707508a8cc MISC: Further BB UI number updates (#340) 2023-01-27 08:04:17 -05:00
Mughur
c42303c1f5 Merge pull request #337 from Mughur/uptodate
MISC: small fixes
2023-01-24 23:32:13 +02:00
Mughur
9c365d0da5 small fixes 2023-01-24 23:28:53 +02:00
Zelow79
d6a0d5fcaa BUGFIX: Corrected error in formatReallyBigNumber and updated BB UI to be more large number friendly (#331) 2023-01-20 08:06:50 -05:00
Tyasuh
ac8ea6b5ef split hacknet node from server in name, with SF9 (#327) 2023-01-16 15:59:33 -05:00
hydroflame
80061b1f81 Remove donation section under options (#328) 2023-01-16 15:51:47 -05:00
Zelow79
5f923a348c NETSCRIPT: Added cyclesWorked to certain sleeve.getTask returns, and added bladeburner.getActionSuccesses (#324) 2023-01-15 23:50:54 -05:00
Tyasuh
6f0b3d07b8 GRAFTING: Bladeburner augs can be grafted if player is in Bladeburner faction (#321) 2023-01-14 18:24:45 -05:00
omuretsu
41451280ab Update build process
`npm run build` now generates a .app folder with the minimal run files
`npm run electron` now uses the .app contents as a base
deploy-dev.yml should upload just the .app folder after building (not tested yet)
2023-01-10 20:51:14 -05:00
Snarling
f266906f6f ELECTRON: security fix (#319) 2023-01-10 19:12:23 -05:00
Mughur
bb3a248b34 Merge pull request #317 from d0sboots/bugfix
BUGFIX: Fix rendering of GenericLocation
2023-01-10 06:37:13 +02: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
Mughur
54e8875dd0 Merge pull request #310 from Mughur/docupdate
DOC: small doc fixes
2023-01-07 11:08:15 +02:00
Mughur
dc85850435 small doc fixes 2023-01-07 11:03:43 +02:00
zerbosh
65f22e7931 CORPORATION: prevent "Unassigned" as job in setAutoJobAssignment (#308) 2023-01-06 22:28:22 -05:00
omuretsu
c593d3bce3 better dev server fix
webmanifest was still erroring
2023-01-06 18:20:29 -05:00
omuretsu
20f405a32c Fix dev server 2023-01-06 18:16:17 -05:00
zerbosh
b4743a9841 CORPORATION: added Checks to setAutoJobAssignment (#307) 2023-01-06 14:52:40 -05:00
David Walker
593b860241 New version of Electron, v22.0.0 (#302)
Fixes the blinking text bug!
2023-01-06 14:01:27 -05:00
Mughur
4a5cf623fa Merge pull request #303 from teauxfu/patch-1
DOC: mention port capacity, fix typo, formatting
2023-01-06 15:33:43 +02:00
Mughur
f47a588419 Merge branch 'dev' into patch-1 2023-01-06 15:31:19 +02:00
Mughur
018c344554 Merge pull request #306 from Mughur/docupdate
MISC: Updated ReadTheDocs links
2023-01-06 15:27:18 +02:00
Mughur
7e183c4e4a Updated ReadTheDocs links 2023-01-06 15:24:10 +02:00
Mughur
b5297a0b7b Merge pull request #305 from Mughur/docupdate
DOC: Massive doc update
2023-01-06 14:58:54 +02:00
Mughur
fd3655a2fa Massive doc update 2023-01-06 14:43:09 +02:00
alex
53018341aa DOC: add info about netscript ports, fix typo
also changed some code blocks to use the newer code block style with js syntax highlighting https://sphinx-themes.org/sample-sites/sphinx-rtd-theme/kitchen-sink/blocks/#code-block
2023-01-05 23:06:34 -06:00
David Walker
4eef9eec03 NETSCRIPT: More ns Proxy changes (#297) 2023-01-05 20:41:24 -05:00
Mughur
3281b785ce properly fix leading '/' script bug (#296) 2023-01-05 20:33:30 -05:00
David Walker
aa32e235fa MULTS: Make BitNodeMultipliers.ServerMaxMoney more sensible (#280) 2023-01-05 20:31:54 -05:00
David Walker
7b5080a42b NETSCRIPT: Add undocumented function printRaw() (#277)
This is analagous to tprintRaw (enabled by ns.iKnowWhatImDoing()), but
for logs instead of the terminal. This provides a supported* method of
creating complicated UIs for scripts.

*No actual support, expressed or implied, is provided for use of this
function.
2023-01-05 20:30:34 -05:00
David Walker
c42fde9379 INFRA: Update Webpack to @latest, along with other dev packages (#290) 2023-01-05 20:29:02 -05:00
omuretsu
a76e281349 Bump to 2.2.2dev
About to merge some PRs, already added to changelog
2023-01-05 20:28:01 -05:00
omuretsu
237f9037bf Better error on fail to import save 2023-01-05 13:04:26 -05:00
omuretsu
494bc25794 Merge branch 'dev' of https://github.com/bitburner-official/bitburner-src into dev 2023-01-04 09:45:56 -05:00
Snarling
31bf0c43d1 v2.2.1 (#293)
* handle enums differently
* Enums are frozen and fed directly to the proxy
* Enums are not included in the NSFull definition, allowing samekeys for RamCostTree<API>, InternalAPI<API>, and ExternalAPI<API>
* Rewrote a lot of the ramcalc test, with better typing thanks to the samekeys above
* Fix ns1 for proxy (args, pid, and enums after above changes were not being added to ns1 scripts.)
* Fixed an overview issue where the bars could display inaccurately.
Update changelog and bump version to 2.2.1
2023-01-04 09:45:17 -05:00
Snarling
b90849e9fd v2.2.1 (#293)
* handle enums differently
* Enums are frozen and fed directly to the proxy
* Enums are not included in the NSFull definition, allowing samekeys for RamCostTree<API>, InternalAPI<API>, and ExternalAPI<API>
* Rewrote a lot of the ramcalc test, with better typing thanks to the samekeys above
* Fix ns1 for proxy (args, pid, and enums after above changes were not being added to ns1 scripts.)
Update changelog and bump version to 2.2.1
2023-01-04 09:23:20 -05:00
David Walker
5f18b87323 New ns implementation using Proxy (#292) 2023-01-04 08:56:29 -05:00
Snarling
3d3a9e8682 Update README.md 2023-01-03 22:17:21 -05:00
lucebac
1ec5ab9898 reduce level of jumper3 to 325 (#291) 2023-01-03 18:39:41 -05:00
omuretsu
bb566dc57c hotfix
* Fix ramcost for corporation.bonusTime (must be 0 because other getBonusTime functions exist).
* Fix ui hook names for overview.
2023-01-03 12:23:38 -05:00
omuretsu
1670be1573 Changelog updates for latest hotfix 2023-01-03 12:04:47 -05:00
omuretsu
4ab29e9c60 Fix minimum corp employee stat
* minEmployeeDecay is now part of CorpConstants and has a value of 10. This replaces Office.minEne/minMor/minHap
* Also removed some unnecessary files in dist/ext for MathJax
* Rebuilt documentation to remove minHap/minMor/minEne from getOffice, and add minEmployeeDecay to corporation.getConstants
2023-01-03 11:55:50 -05:00
omuretsu
b2ecd82acc Update changelog 2023-01-03 10:25:05 -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
omuretsu
77894cd9e5 Update changelog for hotfixes 2023-01-03 02:50:08 -05:00
omuretsu
c9920f35ac Fix crazy faction XP rates 2023-01-03 02:40:06 -05:00
omuretsu
f8af04e5b3 Fix broken HP 2023-01-03 02:16:48 -05:00
omuretsu
855cedfa7f Merge branch 'dev' of https://github.com/bitburner-official/bitburner-src into dev 2023-01-03 02:14:44 -05:00
omuretsu
7c6d7206dd Fix broken HP 2023-01-03 02:14:00 -05:00
omuretsu
4b41e15ca3 Fix broken HP 2023-01-03 02:13:01 -05:00
David Walker
7021b905b7 Remove some old references to BigD. (#284) 2023-01-02 18:48:50 -05:00
omuretsu
e891b06260 Safe load sleeve class work 2023-01-02 18:18:59 -05:00
omuretsu
70b8be9988 Fix args for ns1 2023-01-02 17:56:11 -05:00
Snarling
9820f9e24a changelog formatting fix pt2 2023-01-02 17:20:49 -05:00
Snarling
7a69639e8e fix changelog formatting 2023-01-02 17:14:41 -05:00
omuretsu
6d72861304 Fix graceful load for type changes 2023-01-02 15:25:43 -05:00
omuretsu
3f850d71ba fix graceful material load? 2023-01-02 15:06:44 -05:00
omuretsu
2cb989243f Format fix... 2023-01-02 13:59:31 -05:00
Mughur
1baa615def MISC: small fixes (#270)
* infiltration gain bug fix
* fix corp division description
* avoid some issues with Infinity at super high NFG levels
Co-authored-by: Daniel Perez Alvarez <danielpza@protonmail.com>
2023-01-02 13:51:59 -05:00
omuretsu
dfa691784c Fix test for removedFunction in singularity 2023-01-02 13:47:04 -05:00
omuretsu
80d751e32b fix getActionRepGain 2023-01-02 13:28:31 -05:00
omuretsu
0ec4ef31ab 2.2 2023-01-02 13:20:25 -05:00
omuretsu
93aab87a16 Fix inaccurate HP on SF prestige 2023-01-02 10:35:52 -05:00
David Walker
fe5344f232 UI: Make tooltips for CoffeeParty better reflect reality (#269) 2023-01-02 09:49:36 -05:00
zerbosh
aa50378e18 CORPORATION: Give Full Api Access on BN3 (#276) 2023-01-02 09:48:02 -05:00
Mughur
e90224c63d CORP: Industry descriptions shows what each division uses and makes (#272) 2023-01-02 09:46:53 -05:00
zerbosh
7d98c680e5 SLEEVE: added storedCycles to getSleeve() (#279) 2023-01-02 09:45:51 -05:00
omuretsu
d00ed1f4ee sync overview updates
Using EventEmitter. Also get rid of ShownContext as it is no longer needed with this event based rerender.
2023-01-02 08:54:18 -05:00
omuretsu
90fc82b86f Fix bad memoization in blade overview 2023-01-02 08:00:45 -05:00
David Walker
71bae01fd4 BUG: Fix console error about bad ref use. (#278) 2023-01-01 04:10:06 -05:00
omuretsu
313f6ada94 Fix more overview issues
Previous changes had overview become empty when collapsing it, which broke the collapse animation. It also would have broken use of the player-visible hooks, because those would have been removed from the document on collapse.
Now a context is used to store whether the overview is being shown or not, and components that update themselves will only do so when they are being shown.
2022-12-30 15:42:58 -05:00
Snarling
62a2532d05 UI: Fix broken overview (#273)
Fixes the broken overview where improper hook use was causing React errors for certain prop changes.
Overview no longer rerenders itself on a timer. Instead individual items that need to check for state updates do so themselves on a timer.
2022-12-30 14:28:49 -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
zerbosh
24ad342203 getCorporation() returns division names (#266) 2022-12-29 04:30:16 -05:00
Mughur
5c80655d62 NETSCRIPT: Added ns.corporation.issueNewShares function (#261) 2022-12-25 03:35:18 -05:00
Mughur
556fe8dd33 NETSCRIPT: Added ns.corporation.getConstants, replacing many other corporation getter functions (#260) 2022-12-25 03:33:13 -05:00
David Walker
018053d79e NETSCRIPT: Reduce cost of two multipliers functions (#254) 2022-12-21 18:30:27 -05:00
David Walker
149d687fd6 UI: Memoize character overview (#247) 2022-12-21 18:27:51 -05:00
Mughur
addcee73fc Tutorial: Remove NS1 tutorial, change getting started guide to .js (#258) 2022-12-21 17:49:12 -05:00
Mughur
b004b7203d GENERAL: Reorganizing and grouping node multipliers (#259) 2022-12-21 17:39:12 -05:00
lucebac
5a86be8714 Update doc for ns.scp (#262) 2022-12-21 14:56:08 -05:00
David Walker
303c54c85c NETSCRIPT: Fix a typo in scp (#256) 2022-12-19 14:39:03 -05:00
omuretsu
5a66045e1d format fix 2022-12-13 09:13:15 -05:00
omuretsu
1dec0d00bd Add documentation for ns.pid 2022-12-13 09:09:12 -05:00
omuretsu
75d2d8b7e8 Add documentation for ns.pid 2022-12-13 09:08:23 -05:00
T.J. Eckman
52034ccedc NETSCRIPT: Add ns.pid variable for accessing the current script's PID (#255) 2022-12-13 09:07:15 -05:00
David Walker
f943e5d603 INFILTRATION: Change "slash" to "attack", less potential confusion (#251) 2022-12-13 08:28:56 -05:00
hydroflame
45221ead06 MISC: Remove google analytics (#253) 2022-12-13 08:28:08 -05:00
hydroflame
f039760690 Update blood donation counter 2022-12-09 15:46:56 -05:00
omuretsu
2489ec43fe Sidebar tweaks 2022-12-04 23:04:33 -05:00
David Walker
a46d34bd60 UI: Break SidebarRoot into smaller components, and memoize (#246) 2022-12-04 21:05:55 -05:00
David Walker
8d793ea271 Internal refactoring of Router (#241) 2022-12-04 03:14:06 -05:00
G4mingJon4s
897a1fbc8e Changed skill formatting from numeral to localeStr (#244) 2022-12-03 23:32:39 -05:00
G4mingJon4s
633296da15 Added check if factionWork is from faction of gang (#243) 2022-12-03 22:58:40 -05:00
David Walker
49f732d1ee Revert "Revert "Add keycode table and switch to event.code in select places" (#224)" (#242) 2022-12-03 22:56:42 -05:00
omuretsu
680027cd4b Fix update text for dev branch 2022-12-01 16:37:51 -05:00
Snarling
5ff2cd5357 VERSION: Update game version to 2.2 (#240)
Includes some bug fixes:
* Fix sleeve shock internal/display discrepancy (0-100 vs 0-100)
* Special error message if ns function called without a this
* Change whitespace to pre-wrap for dialog box.
* Fix bug where idle sleeves do not consume cycles but still recover shock from those cycles. Now they do not recover during idle.
* attempted to tag commit as v2.2.0
2022-12-01 16:07:46 -05:00
quacksouls
6034e1c3fa DOC: CORP: typo fixes in hire AdVert functions (#237) 2022-12-01 11:41:52 -05:00
Snarling
14e50e5533 Some corp fixes (#236) 2022-11-29 08:24:04 -05:00
David Walker
ce1879fb62 Add a test for basic Netscript functionality. (#235) 2022-11-29 07:32:08 -05:00
omuretsu
6a4d40ce2b Update docs 2022-11-28 10:44:04 -05:00
Snarling
0fb7200b4b STOCK: ns.stock.getOrganization added for getting org from stock symbol (#234)
Authored-by: SamuraiNinjaGuy <branmiller+bitburner@gmail.com>
2022-11-28 10:33:28 -05:00
Snarling
837c6bd1c2 CONTRACT: codingcontract.attempt always returns a string (#231)
* ns.codingcontract always returns a string (reward on success, empty on fail), simplifying usage and documentation of function.
* Because of the above, return value still works when used as a boolean, as long as no direct equality comparison to true/false.
* Documentation expanded and examples added.
Co-authored by @quacksouls
2022-11-28 09:15:09 -05:00
Snarling
6af36e3b29 NETSCRIPT: Faster API wrapping on script launch. (#229)
* ns API is wrapped once
* when a new workerscript is created, each layer of ns is stamped with a private workerscript field that allows the functions to work.
* Test has been refactored to account for new method of wrapping
* BREAKING: ns functions need access to `this` value of their parent ns layer (or any ns layer)
* Enums are passed directly to player (no cloning) but are frozen.
2022-11-28 09:11:55 -05:00
Burhanuddin Mustafa Lakdawala
675c2a0456 DOC: Update documentation for limitMaterialProduction and limitProductProduction (#221) 2022-11-26 21:06:47 -05:00
quacksouls
1ee71cea19 CORP: fix typos in research descriptions (#232)
Fix various typographical errors in the descriptions of research.
2022-11-26 21:05:01 -05:00
David Walker
70fadde222 Revert "Add keycode table and switch to event.code in select places" (#224)
Using code instead of key is strongly warned against at MDN and causes issues with nonstandard layouts:
https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event#keyboardevent.code

This also fixes ScriptEditorRoot.tsx, where some code snuck in that
wasn't using *any* of the constants.

This reverts commit 016a9a873f.
2022-11-26 08:51:09 -05:00
Burhanuddin Mustafa Lakdawala
f70a25d755 Fix spacing on 'Trade for reputation` button (#222) 2022-11-25 08:00:26 -05:00
Snarling
e17380549d Add ctrl-a support for logs (#228)
And prevent double line returns when copying logs
2022-11-24 13:04:06 -05:00
TheMas3212
533d8a4332 GANG: Fix Gang UI to correctly report the bonus time multiplier as 25x
Add Tooltop to Corporation UI to explain bonus time (matching the one in
Gang UI)
Move corporation.process to the correct location
2022-11-25 00:45:30 +11:00
Snarling
e7fc0fbb03 Fix documentation for ns.sleeve (#227) 2022-11-24 08:19:51 -05:00
Snarling
6616f7ba15 DOCS: Update documentation for ns.args (#220) 2022-11-21 12:19:16 -05:00
Snarling
79fd5f6089 Fix ansi background spacing (#219) 2022-11-21 11:08:36 -05:00
omuretsu
387c0c2786 Fix save corruptions from invalid types 2022-11-20 12:39:08 -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
629d610532 Update and rename deploy.yml to deploy-dev.yml 2022-11-20 08:16:22 -05:00
Snarling
c929806307 fix broken party math again 2022-11-20 07:56:58 -05:00
omuretsu
673c2d9f82 Fix broken partyMult default 2022-11-19 22:42:34 -05:00
Snarling
c669e473d1 SLEEVE: Fixed inconsistencies in how sleeve work rewards are handled. (#211) 2022-11-10 21:56:46 -05:00
Snarling
426ad5f296 Sleeve criming fix (#209)
Also simplify usage of findCrime
2022-11-10 11:05:42 -05:00
Snarling
82ba5f1f13 Ignore monaco cancellation errors (#208)
Also updated monaco-editor and @monaco-editor/react to latest versions since there were no conflicts.
2022-11-10 10:08:59 -05:00
Matt Garretson
3ec4f0c98c Fix HP gaining logic from defense skill levels (#205) 2022-11-09 22:06:27 -05:00
Snarling
b275f88053 NETSCRIPT: Expose more enums for player use (#198)
* Add support for enums at other ns layers
* APIWrapper: simplified wrapping algorithm and modified to just use cloneDeep to copy enums instead of recursively wrapping enums as if they were new API layers
* Improve APIWrapper typing
* Changed some typings at RamCostGenerator to allow for enums at different levels without enums needing a ram cost
* Added enums to ns.corporation, removed getter functions that were being used instead.
* Add FactionWorkType for player use
* Add ClassType and CompanyWorkPos enums
* Change netscriptDefinitions to expect members of these new enums where appropriate.
2022-11-09 13:46:21 -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
6f08aee8f6 Fix zombie scripts (#203)
Also made installAugmentations synchronously perform reset, but added a short timeout to the callback script launch for balance.
2022-11-08 12:17:34 -05:00
Snarling
01b131526a Rework coffee/party (#201)
* Removed unused partyEmployees and coffeeEmployees members of OfficeSpace
* Reworked formula for performance loss per market cycle.
* Rework both coffee and party formulas to allow easier recovery from low values.
2022-11-07 09:09:53 -05:00
quacksouls
8367b68f46 CORPORATION: typo fixes in modals to sell materials and products (#197) 2022-11-06 21:36:38 -05:00
Rai
c17af3ad35 UI: SoftResetButton.tsx Tooltip changed to make more sense (#186) 2022-11-06 17:30:01 -05:00
quacksouls
83730d89fd UI: use newline to separate sentences in popup message (#188) 2022-11-06 17:27:40 -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
5205ff2837 Remove unused error blocks (#194) 2022-11-04 08:08:06 -04:00
Snarling
7ef2675e2c Make writePort synchronous (#193) 2022-11-04 07:56:20 -04:00
quacksouls
55b2cbb549 UI: cat: proper line breaks when showing .js, .script, or .txt files (#192)
Currently, the HTML line break sequence `<br /><br />` is hardcoded into the dialog box message when showing the content of these file types: ".js", ".script", and ".txt".  By default, the function `dialogBoxCreate()` currently assumes that its first parameter is not HTML, but a text string, so whatever is in the string will appear in the dialog box.  Use the newline character instead for line break.
2022-11-04 07:23:33 -04:00
omuretsu
6ac04717fe Add missing line breaks on showMessage 2022-11-03 11:31:25 -04:00
omuretsu
e42b1c2edd lint 2022-11-03 08:46:01 -04:00
omuretsu
b057e2e5f2 Fix sleeves unable to commit crime 2022-11-03 08:39:34 -04:00
omuretsu
442a4f0198 update html-webpack-plugin version 2022-11-03 08:02:39 -04:00
LJ
9eb5f7ef23 NETSCRIPT: added portHandle.nextWrite() (#187) 2022-11-03 06:17:29 -04:00
Snarling
3ce4dcf612 DOC: Update documentation for workForFaction and workForCompany (#180)
* DOC: `ns.singularity.workForFaction()`: update doc and examples
* Additional Doc Fixes
* Remove unnecessary fluff in singularity.workForFaction examples
* Fix documentation for singularity.workForCompany similar to fixes already applied to workForFaction
* Correct some inaccuracies in workForFaction and workForCompany remarks sections
* Shorten some comment lines that are over 120 characters in NetscriptDefinitions.d.ts, for consistency.

Co-authored-by: Duck McSouls <quacksouls@gmail.com>
2022-11-01 12:24:25 -04:00
quacksouls
634611f9db DOC: Improve CCT documentation for HammingCodes (#167) 2022-10-30 04:24:09 -04:00
LJ
0519b6adf7 De-uglify ns.print examples (#164) 2022-10-28 17:20:01 -04:00
omuretsu
4bf215f241 Fix documentation build error 2022-10-27 07:04:46 -04:00
jaculler
a40aa1bab2 Fix Tutorial Ram Text (#162)
This updates the tutorial (and tests) to match the updated value of 8GB starting ram.
2022-10-27 06:25:45 -04:00
quacksouls
279d18d65f DOC: sleeve: typo fix (#161)
Some typographical fixes in the documentation of sleeves.
2022-10-26 23:30:40 -04:00
Snarling
239834dba6 Connect to owned servers from anywhere (#159)
* purchasedByPlayer allows connect-from-anywhere as if the server was backdoored.
* Also added optional backdoorInstalled variable to type for BaseServer. This has no runtime effect, but it allows accessing that variable without TS needing us to verify whether it's instanceof Server first.
2022-10-25 17:48:46 -04:00
omuretsu
8837c01d21 Tolerate & recover from null player money 2022-10-25 14:56:47 -04:00
omuretsu
d0820c81ce Recover from null moneyTracker
There shouldn't be any way to get null, but it was reported to occur and this will recover when this happens.
2022-10-25 14:37:25 -04:00
Snarling
959307aa13 CORP: Better fix for MP validation (#158)
* Prevent negative profit selling
* Update validation strings for MP
* Allow negative MP formula price
2022-10-25 12:51:03 -04:00
Snarling
5b2a96fa0c CORPORATION: Happiness/Energy/Morale trend down even for productive corps (#157) 2022-10-25 10:32:20 -04:00
Snarling
a79621612f Only allow one reference to MP in sell price (#156) 2022-10-25 08:51:37 -04:00
quacksouls
3f0a7786f8 DOC: cleanup in doc of Netscript functions (#155)
* A bunch of typographical fixes in the documentation of various Netscript functions.  A main fix is standardizing the use of "hostname".
* Cross-reference the documentation of various Netscript functions.  This makes it clear that we are referring to a particular Netscript function.
* Clarify the return values of various Netscript functions.  Clarify the documentation of other functions.
2022-10-25 07:17:53 -04:00
Snarling
5fe89d5599 CORPORATION: Reorganize Industry data (#154) 2022-10-24 21:54:54 -04:00
Snarling
d7193ca8ff fix negative time display (#153) 2022-10-24 20:09:10 -04:00
Snarling
df70458e4f CORPORATION: Give Employees some RNG (#152)
Authored-by: zerbosh <115591472+zerbosh@users.noreply.github.com>
2022-10-24 16:33:25 -04:00
G4mingJon4s
6dc5990b63 CORPORATION: Added check to buy amount (#149) 2022-10-24 16:09:53 -04:00
Snarling
d22d0a25ef DEV: Attempt new yml for deploy to gh pages (#150) 2022-10-24 09:51:22 -04:00
G4mingJon4s
3861e56ced CORPORATION: Check there is room to make a new product before opening popup. (#147) 2022-10-24 08:58:51 -04:00
quacksouls
e9e9ac1def DOC: CCT: typo fixes (#145)
Fixes #144.  Some typographical fixes in the description of a Coding Contract.
2022-10-24 08:46:26 -04:00
Snarling
0a3ff56331 WIP: Remove corp employees as objects (#143)
* Removed employees as objects from corporations
* Remove employees from office JSON after loading / convert to new parameters
* Showed down morale/etc gain; added optional position to hireEmployee
* enum support for corp employee positions

Mostly authored-by: Kelenius <kelenius@ya.ru>
2022-10-24 08:44:01 -04:00
Snarling
6095e63369 Remove bundle files (#140)
* bitburner-src is not running github pages, so a built version of the web app is not needed in git.
2022-10-24 08:05:30 -04:00
hydroflame
3d0bceb9ff round4 2022-10-22 00:48:31 -04:00
hydroflame
4a33ed87dd round3 2022-10-22 00:41:03 -04:00
hydroflame
1c9d97fe35 Trying more auto deploy 2022-10-22 00:35:12 -04:00
hydroflame
317c3c3fc4 Update NetscriptDefinitions.d.ts 2022-10-22 00:27:29 -04:00
hydroflame
7784c2f8b2 Update NetscriptDefinitions.d.ts 2022-10-22 00:23:10 -04:00
hydroflame
b4c791afe6 Delete deploy_dev.yml 2022-10-22 00:18:15 -04:00
hydroflame
7f5d887506 Trying to deploy on build 2022-10-22 00:17:58 -04:00
hydroflame
82caadfac6 Rename job 2022-10-21 23:59:07 -04:00
hydroflame
b94e3cd9d9 Update deploy_dev.yml
rm dev as onpush
2022-10-21 23:58:00 -04:00
hydroflame
353043347c Create deploy_dev.yml 2022-10-21 23:57:21 -04: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
omuretsu
06a985bdf8 Revert "Remove markdown from git tracking (#139)"
This reverts commit bbb6e3f309.
2022-10-21 11:16:00 -04:00
Snarling
dab8c1a976 fix paths 2022-10-21 10:49:44 -04:00
Snarling
bbb6e3f309 Remove markdown from git tracking (#139)
* Will attempt to add as build artifacts using workflow.
2022-10-21 10:46:21 -04:00
Snarling
f5c8bec139 Create build.yml 2022-10-21 10:35:22 -04:00
Snarling
19e8946d9a fix Stock Initializer (#137)
* stock symbols initializer is called by stockmarket initializer
* remove redundant second initStockMarketFn function
2022-10-20 00:38:19 -04:00
Snarling
1d0d4f8da6 fix grow doc (#136) 2022-10-19 17:25:54 -04:00
Snarling
3af6e7db45 Remove incorrect note about disableLog (#135) 2022-10-19 17:20:31 -04:00
Snarling
2cc6e41a7e uncaught promises no longer spam console (#134) 2022-10-19 17:13:15 -04:00
Snarling
124e64379a Improve unexpected error message (#133)
* Add ws details if available
* Add likely cause of error
* Attempt to display error
2022-10-19 16:32:39 -04:00
Snarling
b6efe46d4c slashGame fix (#132)
* difficulty scales correct phase
* player loses game immediately after guard attacks
2022-10-19 15:24:29 -04:00
Snarling
ab70591a35 Merge pull request #2 from bitburner-official/fix-test
MISC: Fix alias not working in test suite
2022-10-19 13:39:39 -04:00
Olivier Gagnon
af1a1ac58d Rename lots of reference from old to new repo 2022-10-20 03:56:59 +11:00
Olivier Gagnon
887f57f460 Fix alias not working in test suite 2022-10-19 12:45:40 -04:00
hydroflame
cb45034a24 Merge pull request #4241 from quacksouls/ns-lint
NETSCRIPT: remove unused variables
2022-10-19 11:46:23 -04:00
hydroflame
0f46d72a01 Merge pull request #4245 from dbachran/4239-adjust-write-documentation
MISC: Adjust write() documentation, only accepts strings now
2022-10-19 11:46:08 -04:00
hydroflame
51f8d29e7a Merge pull request #4247 from quacksouls/doc-prompt
DOC: `ns.prompt()`: some cleanup and examples
2022-10-19 11:45:49 -04:00
hydroflame
532b32c51a Merge pull request #4248 from borisflagell/hospital
UI: #4242 Fix hospital ReactComponent
2022-10-19 11:45:20 -04:00
hydroflame
1b7b4fa466 Merge pull request #4249 from Snarling/typeAssertion
NETSCRIPT: Fix ns.prompt typechecking
2022-10-19 11:44:59 -04:00
hydroflame
b25b4b5e27 Merge pull request #4255 from quacksouls/doc-gang-canRecruitMember
DOC: `gang.canRecruitMember()`: typo fix and elaboration
2022-10-19 11:44:03 -04:00
Duck McSouls
6f1822bf4d DOC: gang.canRecruitMember(): when this returns true or false
Elaborate on the conditions under which the function would return true or false.  In particular, after a gang is successfully created the function always return true so the player can recruit a number of founding members to their gang.  When the gang is at capacity, the function always return false.  In between, the function returns true or false depending on the amount of respect the player has.
2022-10-16 18:34:34 +11:00
Duck McSouls
ac0e7c9595 DOC: gang.canRecruitMember(): typo fixes
Some typographical fixes.
2022-10-16 17:56:45 +11:00
Duck McSouls
93090691b5 DOC: ns.prompt(): some examples
Add some examples to illustrate the use of the various options.  As per suggestion by @Snarling, simplify the examples on free-form text box and drop-down list.
2022-10-15 11:27:56 +11:00
Duck McSouls
473e6a2674 DOC: ns.prompt(): explain the various options
Elaborate on the effects of `options.type` and `options.choices`.  Break the explanation into bullet points for clearer presentation.  Thanks to @Snarling for pointing out that the default is to create a boolean dialog box.
2022-10-15 11:03:36 +11:00
omuretsu
9908f4aaa5 Error message fixes 2022-10-14 11:08:24 -04:00
omuretsu
7683990d17 format and lint 2022-10-14 11:03:50 -04:00
omuretsu
ad0be471ce fix ns.prompt typechecking
Introduced some new type assertion functions, initial step in larger type safety rework.
2022-10-14 11:00:29 -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
Duck McSouls
a368c6904e DOC: ns.prompt(): a typo fix
A simple typographical fix.
2022-10-14 14:50:35 +11:00
Daniel Bachran
5acd5e84a3 #4239 Adjust write() documentation
write() only accepts strings now.
2022-10-13 17:45:40 +02:00
Duck McSouls
67062bceab NETSCRIPT: remove unused variables
Running `npm run lint` shows that 2 variables are unused: `MoneySource as IMoneySource` and `MoneySources as IMoneySources`.  Remove these unused variables.
2022-10-13 20:18:42 +11:00
3677 changed files with 188082 additions and 440781 deletions

View File

@@ -1,14 +1,12 @@
node_modules/
.git
.gitattributes
.gitignore
test/
dist/
.app/
.github
.editorconfig
.dockerignore
Dockerfile
docker-compose.yml
*.md
Quotes.txt
netscript_tests/

View File

@@ -6,5 +6,5 @@ indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
[md]
[*.md]
trim_trailing_whitespace = false

View File

@@ -1,26 +1,17 @@
node_modules/
.dist
.tmp
.package
.build
.cypress/
.app
dist/
input/
assets/
doc/
markdown/
dist
input
assets
coverage
doc
markdown
electron
tools
src/ThirdParty
test/netscript/
electron/lib
electron/greenworks.js
src/ThirdParty/*
src/JSInterpreter.js
tools/engines-check/
editor.main.js
main.bundle.js
webpack.config.js

View File

@@ -7,6 +7,8 @@ module.exports = {
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@typescript-eslint/strict",
],
@@ -17,10 +19,9 @@ module.exports = {
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
project: ["./tsconfig.json", "./test/tsconfig.json", "./tools/tsconfig.json", "./test/cypress/tsconfig.json"],
project: ["./tsconfig.json", "./test/tsconfig.json", "./tools/tsconfig.json"],
},
plugins: ["@typescript-eslint"],
extends: ["plugin:@typescript-eslint/recommended"],
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
@@ -32,5 +33,37 @@ module.exports = {
],
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-explicit-any": "off",
"react/no-unescaped-entities": "off",
"@typescript-eslint/restrict-template-expressions": "off",
"@typescript-eslint/no-unsafe-enum-comparison": "off",
},
settings: {
react: {
version: "detect",
},
},
overrides: [
/**
* Some enums are subsets of other enums. For example, UniversityLocationName contains locations of 3 universities.
* With each member, we refer to the respective LocationName's member instead of using a literal string. This usage
* is okay, but it triggers the "prefer-literal-enum-member" rule. This rule is not useful in this case, so we
* suppress it in NetscriptDefinitions.d.ts.
*/
{
files: ["src/ScriptEditor/NetscriptDefinitions.d.ts"],
rules: {
"@typescript-eslint/prefer-literal-enum-member": ["off"],
},
},
/**
* TypeScript requires the "var" keyword within "declare global" to correctly merge variables into the global
* namespace.
*/
{
files: ["**/*.d.ts"],
rules: {
"no-var": "off",
},
},
],
};

191
.git_blame_ignore_revs Normal file
View File

@@ -0,0 +1,191 @@
## What is this?
## Some git commits contain mostly prettier/lint changes and aren't as valuable when
## using `git blame`. This file contains a list of hashes that identify such commits
## in a way that git can use.
## Tell git to use this file with:
## git config --local blame.ignoreRevsFile .git_blame_ignore_revs
## This file was created by cleaning up and filtering the output of this command line:
## git log --grep "[Pp]rettier"
## All that's really needed here are the actual 40-digit hashes of
## the commits. I left the author/date info in as it helped when I
## was filtering this list to just formatting changes.
4c9ca4990450740785a4dc95a75de53aeac724df
# Author: omuretsu
# Date: Fri Jun 23 10:14:18 2023 -0400
07b1eefe33b16251e0e67ae3231db2059defb1cc
# Author: omuretsu
# Date: Tue Feb 7 21:16:18 2023 -0500
bbe6421b067b0d0b876c42e49dafcbbb6458ef8d
# Author: borisflagell
# Date: Tue Oct 11 15:33:55 2022 +0300
ed0a28d29272ba2d5716618b73d231bca1ad79d1
# Author: hydroflame
# Date: Sun Oct 9 00:22:25 2022 -0400
a1f90d77ce708efb968d7e7ddb804b9862f2f460
# Author: Snarling
# Date: Tue Sep 27 19:58:14 2022 -0400
6be884a9ad42e9920be233302a066dea01766c8e
# Author: borisflagell
# Date: Sat May 28 01:15:05 2022 +0200
51ba358464ce5787ef472531e0bdb2b6b239955e
# Author: Markus-D-M
# Date: Wed May 25 21:27:58 2022 +0200
9091441389182a261438ec16ea17edcf11ab6f39
# Author: borisflagell
# Date: Mon May 23 19:43:46 2022 +0200
5bc1d293ca14f717d967ff4a345fe1ace1ffdd4c
# Author: borisflagell
# Date: Sun May 22 11:59:14 2022 +0200
d44d71712f066518321cefed18e145141ea23818
# Author: borisflagell
# Date: Sun May 22 06:40:32 2022 +0200
bd2d5396a60f31c1bd9837786fb10586cbcc6eda
# Author: phyzical
# Date: Thu Apr 28 19:22:37 2022 +0800
ad4c84be937224297f6745b6df3d433466b047c1
# Author: borisflagell
# Date: Sat Apr 23 15:18:43 2022 +0200
d4f8f2d0354832101f48d60f0b3445cc1f43dd23
# Author: borisflagell
# Date: Sat Apr 23 15:01:24 2022 +0200
a7045a234353de795494c0b3f378808b4a6d32aa
# Author: borisflagell
# Date: Thu Apr 21 19:20:16 2022 +0200
421e7b8c74eb85238ccf45b1a83225a452024058
# Author: borisflagell
# Date: Thu Apr 21 18:51:04 2022 +0200
9850b56711b29c254102ad8694b1610b4d5adc81
# Author: Snarling
# Date: Sun Apr 17 17:23:14 2022 -0400
567fcf8fb63bc469ae61013cca511a76eb6f9086
# Author: violet
# Date: Wed Apr 13 14:42:07 2022 -0500
f6af85a38d8286aec702556f1296565de5a5067f
# Author: violet
# Date: Sun Apr 10 15:57:34 2022 -0500
57f04d3911b5a384c379dcfb2d0bcb18b25c37ea
# Author: violet
# Date: Thu Apr 7 11:45:21 2022 -0500
720e2112c6766b581e43e1f9e712c47300b22dcd
# Author: violet
# Date: Mon Mar 21 14:40:17 2022 -0500
ecffc8655a70e6e3c7bd03ba5723b437d7857dfa
Merge: 8506dcfed 00d1d294e
# Author: hydroflame
# Date: Sun Mar 20 22:21:00 2022 -0400
901ee92fe97606bd27840900512b0fa760ba428e
# Author: Olivier Gagnon
# Date: Sun Mar 20 22:02:36 2022 -0400
b3f9380ebd3feb3b6ef91873a1c6a3a1ddc56654
# Author: Billy Vong
# Date: Fri Dec 17 12:56:48 2021 -0500
# I *really* didn't want to include this one because it has a few tiny, actual
# code changes, but it reformats tens of thousands of lines of code. Argh.
8f13363466c2e825bbfb7e4b66d853c4805eda61
# Author: Olivier Gagnon
# Date: Mon Oct 11 16:38:50 2021 -0400
66a2adaeb4b12a48fc8fdafe5e5169919f8d46a5
# Author: Olivier Gagnon
# Date: Wed Sep 22 12:56:55 2021 -0400
## Additional changes that should be ignored for blame.
2e7f164b5f251ce457f0d3b9a42cfa0f08ef200e
# Author: tyasuh.taeragan
# Date: Fri Oct 22 16:35:05 2021 -0400
a18bdd6afc77752bded2f0794bf35ad9d6455fa1
# Author: Olivier Gagnon
# Date: Sat Sep 4 19:09:30 2021 -0400
# from a search for "lint"; many more of these had significant code changes than
# Prettier, so I'm only vetting the largest for inclusion
48f80f25d6fb90edc292481905814c0d5593b5a9
# Author: Olivier Gagnon
# Date: Wed Apr 6 19:30:08 2022 -0400
b0f20c8c8f4859f01cfc79bc3945a8e7272d6592
# Author: Olivier Gagnon
# Date: Sat Sep 25 01:26:03 2021 -0400
d745150c45979ab251b51447a0847e28966346a6
# Author: Olivier Gagnon
# Date: Sat May 1 03:17:31 2021 -0400
3fad5050961a3259b0158763f48016174a2a690e
# Author: Olivier Gagnon
# Date: Thu Apr 29 23:52:56 2021 -0400
#
# The commits listed below showed up on a search for "[Pp]rettier", but
# weren't just Prettier/lint changes.
#
# 6459b1ab483cf66ae1e6e50518424311c6bbbd8b
# Author: omuretsu
# Date: Sat Feb 4 07:42:35 2023 -0500
# 5b4addbb212411aa1de27ba0ee16ebaabedbc6a1
# Author: borisflagell
# Date: Sun May 22 01:08:53 2022 +0200
# 705a56f3bdcb859179144cdafab7eeb8832f7eb9
# Author: borisflagell
# Date: Sat May 7 12:55:56 2022 +0200
# 4fa65322fe770dc3d79cd0301521d230694a1fc7
# Author: borisflagell
# Date: Thu Apr 21 18:37:47 2022 +0200
# 81d1c02fdfe087c3bd0a2a8a2a41c2f82a6fef56
# Author: hydroflame
# Date: Sun Mar 20 22:50:42 2022 -0400
# 4a7fcda86f5d3d05638b4a9f3a61e5937dde52c6
# Author: hydroflame
# Date: Sat Sep 4 19:03:05 2021 -0400
# 7ee2612c17a90a80e5a0a7793a4c81465e212c0c
# Author: Martin Fournier
# Date: Sun Jan 9 11:15:09 2022 -0500
# c59806c87d543c7cc78d1d68af9599d118c0cb2b
# Author: Martin Fournier
# Date: Fri Dec 17 09:54:32 2021 -0500
# 306facc0d10104d543974d5cb01b6ff419c9acb2
# Author: David Edmondson
# Date: Sat Sep 4 22:17:30 2021 -0700
# 1e42f73e2a1b7ac9489a7287c7be99298f412ac0
# Author: David Edmondson
# Date: Sat Sep 4 13:18:08 2021 -0700commit 2e7f164b5f251ce457f0d3b9a42cfa0f08ef200e

View File

@@ -1,5 +1,3 @@
# Only bugfix are accepted
# DELETE THIS AFTER READING
# READ CONTRIBUTING.md
@@ -7,10 +5,10 @@
# PR title
Formatted as such:
SECTION: PLAYER DESCRIPTION
CATEGORY: Change Description
SECTION is something like "API", "UI", "MISC", "STANEK", "CORPORATION"
PLAYER DESCRIPTION is what you'd tell a non-contributor to convey what is changed.
CATEGORY is something like "API", "UI", "MISC", "STANEK", etc, and must be uppercase.
Change Description is what you'd tell a non-contributor to convey what is changed.
# Linked issues
@@ -24,8 +22,8 @@ It'll automate the process.
# Documentation
- DO NOT CHANGE any markdown/\*.md, these files are autogenerated from NetscriptDefinitions.d.ts and will be overwritten
- DO NOT re-generate the documentation, makes it harder to review.
- If your PR includes ns API function changes, do not manually modify markdown files.
- Instead, you can run `npm run doc` to autogenerate new markdown files that reflect your submitted API changes.
# Bug fix

97
.github/workflows/build-artifacts.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
name: Build artifacts
on:
workflow_dispatch:
workflow_call:
env:
GH_TOKEN: ${{ github.token }}
jobs:
build-windows:
name: Build Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
shell: bash
run: npm run build
- name: Build the Electron app
shell: bash
run: npm run electron-win
- name: Upload x64 artifact
uses: actions/upload-artifact@v4
with:
name: bitburner-win32-x64
include-hidden-files: true
path: .build/bitburner-win32-x64/*
if-no-files-found: error
- name: Upload arm64 artifact
uses: actions/upload-artifact@v4
with:
name: bitburner-win32-arm64
include-hidden-files: true
path: .build/bitburner-win32-arm64/*
if-no-files-found: error
build-linux:
name: Build Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
run: npm run build
- name: Build the Electron app
run: npm run electron-linux
- name: Upload x64 artifact
uses: actions/upload-artifact@v4
with:
name: bitburner-linux-x64
include-hidden-files: true
path: .build/bitburner-linux-x64/*
if-no-files-found: error
- name: Upload arm64 artifact
uses: actions/upload-artifact@v4
with:
name: bitburner-linux-arm64
include-hidden-files: true
path: .build/bitburner-linux-arm64/*
if-no-files-found: error
build-mac:
name: Build macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
run: npm run build
- name: Build the Electron app
run: npm run electron-mac
- name: Upload darwin-universal artifact
uses: actions/upload-artifact@v4
with:
name: bitburner-darwin-universal
include-hidden-files: true
path: .build/bitburner-darwin-universal/*
if-no-files-found: error

View File

@@ -0,0 +1,40 @@
name: Build and upload artifacts
on:
release:
types: [published]
env:
GH_TOKEN: ${{ github.token }}
jobs:
build:
name: Build artifacts
uses: ./.github/workflows/build-artifacts.yml
upload:
name: Upload
runs-on: ubuntu-latest
permissions:
contents: write
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v7
with:
path: .build
pattern: bitburner-*
merge-multiple: false
- name: List files
run: ls -la .build
- name: Zip
run: cd .build; for i in bitburner-*; do cd "$i"; zip -r "../$i.zip" *; cd ../; done; cd ../;
- name: List files
run: |
ls -la .build
- name: Upload to release
env:
GH_REF_NAME: ${{ github.ref_name }}
run: |
for i in .build/*.zip; do gh release upload "$GH_REF_NAME" "$i" --clobber; done;

View File

@@ -39,13 +39,13 @@ jobs:
- name: Install pandoc dependency
run: sudo apt-get install -y pandoc
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install NPM dependencies for version updater
working-directory: ./tools/bump-version

View File

@@ -1,85 +0,0 @@
name: Check for Generated Files
on:
# Triggers the workflow on push or pull request events but only for the dev branch
pull_request:
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
checkFiles:
name: Check Files
runs-on: ubuntu-latest
steps:
- name: Checkout files
uses: actions/checkout@v2
- name: Check bundle files
id: changed-bundle-files
uses: tj-actions/changed-files@v18.4
with:
files: |
dist/*
index.html
main.bundle.js
main.bundle.js.map
- name: Check documentation changes
id: changed-markdown-doc-files
uses: tj-actions/changed-files@v18.4
with:
files: |
markdown/*.md
- name: Warn when bundle files were changed
id: warn-bundles-changed
if: steps.changed-bundle-files.outputs.any_changed == 'true'
run: |
echo "One or more files in the bundle files were changed." >> warnings.txt
- name: Warn when documentation markdown files were changed
id: warn-markdown-changed
if: steps.changed-markdown-doc-files.outputs.any_changed == 'true'
run: |
echo "One or more files in the markdown documentation were changed." >> warnings.txt
- name: Print Warnings
id: get-warnings
run: |
if [ -f warnings.txt ]
then
echo "::set-output name=has_warnings::true"
else
echo "::set-output name=has_warnings::false"
touch warnings.txt
fi
- name: Get Comment Body
id: get-comment-body
if: steps.get-warnings.outputs.has_warnings == 'true'
run: |
cat warnings.txt > comment.txt
echo "" >> comment.txt
echo "Please do not commit files generated by webpack or generated markdown" >> comment.txt
echo "" >> comment.txt
echo "See [CONTRIBUTING.md](https://github.com/danielyxie/bitburner/blob/dev/doc/CONTRIBUTING.md) for details." >> comment.txt
body=$(cat comment.txt)
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo ::set-output name=body::$body
- name: Add github comment on problem
if: steps.get-warnings.outputs.has_warnings == 'true'
uses: peter-evans/commit-comment@v1
with:
body: ${{ steps.get-comment-body.outputs.body }}
- name: Flag as error
if: steps.get-warnings.outputs.has_warnings == 'true'
run: |
COMMIT_WARNINGS=$(cat warnings.txt)
echo "::warning:: $COMMIT_WARNINGS"
exit 1

View File

@@ -1,71 +0,0 @@
name: CI Pull Request
on:
# Triggers the workflow on pull request events but only for the dev branch, checking only diffs
pull_request:
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
run: npm run build
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run linter
run: npm run lint:report-diff
prettier:
name: Prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run prettier check
run: npm run format:report-diff
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run tests
run: npm run test

View File

@@ -1,9 +1,11 @@
name: CI
on:
# Triggers the workflow on push events but only for the dev branch
# Triggers the workflow on push events and pull requests but only for the dev branch
push:
branches: [dev]
pull_request:
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -13,11 +15,11 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
@@ -27,11 +29,11 @@ jobs:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
@@ -41,11 +43,11 @@ jobs:
name: Prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
@@ -55,13 +57,30 @@ jobs:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run tests
run: npm run test
check-docs:
name: Check docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 24
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Generate docs
run: npm run doc
- name: Check generated docs
run: |
test -z "$(git status --porcelain)" || (echo "::error title=Documentation is outdated::You need to run 'npm run doc'";exit 1;)

46
.github/workflows/deploy-dev.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: "Deploy new pages build"
on:
workflow_dispatch:
inputs:
enable_dev_mode:
description: Enable dev mode (enable dev menu, disable minification, etc.)
type: boolean
required: false
default: false
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm ci
- env:
ENABLE_DEV_MODE: ${{ github.event.inputs.enable_dev_mode }}
run: |
if [[ "$ENABLE_DEV_MODE" == 'true' ]]; then
npm run build:dev
else
npm run build
fi
- uses: actions/upload-pages-artifact@v3
with:
path: ".app"
- name: Deploy to gh pages
id: deployment
uses: actions/deploy-pages@v4

View File

@@ -12,11 +12,11 @@ jobs:
fetchChangelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node v16.13.1
uses: actions/setup-node@v2
- uses: actions/checkout@v4
- name: Use Node 22
uses: actions/setup-node@v4
with:
node-version: 16.13.1
node-version: 24
cache: "npm"
- name: Install NPM dependencies
working-directory: ./tools/fetch-changelog
@@ -38,7 +38,7 @@ jobs:
echo
echo "You may want to go to https://gist.github.com/ to upload the final changelog"
echo "The next step will require an url because we can't easily pass multiline strings to actions"
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: bitburner_changelog___DRAFT.md
path: ./tools/fetch-changelog/changes.md

29
.github/workflows/steamDev.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
# update the steam development version
name: "Steam dev update"
on:
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-20.04
steps:
- name: Setup steamcmd
uses: CyberAndrii/setup-steamcmd@v1
- name: Checkout dev branch
uses: actions/checkout@v4
with:
ref: dev
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 24
- name: Build and deploy
run: |
npm ci
npm run build
npm run electron
steamcmd +login ${{ secrets.STEAM_BUILD_USERNAME }} ${{ secrets.STEAM_BUILD_PASSWORD }} +run_app_build ../tools/steamdev.vdf +quit

View File

@@ -0,0 +1,72 @@
name: Validate Title and Check for Dist Changes
on:
# Triggers the workflow on a few types of pull request events but only for the dev branch
pull_request:
branches: [dev]
types: [opened, edited, synchronize, reopened]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
checkFiles:
name: Check Files and Title
runs-on: ubuntu-latest
steps:
- name: Checkout files
uses: actions/checkout@v4
- name: Check bundle files
id: changed-bundle-files
uses: tj-actions/changed-files@c65cd883420fd2eb864698a825fc4162dd94482c
with:
files: |
dist/**
files_ignore: |
dist/icons/achievements/*.svg
- name: Warn when dist was changed or title is invalid
id: warn-bundles-changed
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "Creating labels for dist modification and for invalid title"
LABELDIST="warning: includes dist changes"
LABELTITLE="error: invalid title"
gh --repo "${{ github.repository }}" label create "$LABELDIST" --description "Dist changes should not normally be included" --color EBAE34 || true
gh --repo "${{ github.repository }}" label create "$LABELTITLE" --description "PR title must follow specific format" --color D93F0B || true
echo "Determine dist portion of comment text, and add/remove dist label as appropriate"
if [ "${{ steps.changed-bundle-files.outputs.any_changed }}" == "false" ]; then
echo "No forbidden files included, removing warning"
gh --repo "${{ github.repository }}" pr edit "${{ github.event.number }}" --remove-label "$LABELDIST" || true
distText="### No dist changes are detected."
else
echo "Forbidden files included, generating warning"
gh --repo "${{ github.repository }}" pr edit "${{ github.event.number }}" --add-label "$LABELDIST"
distText="## Dist changes were included. PRs should not normally contain any changes in the dist folder.\n\nReview the changes and ensure that the included dist changes were necessary."
fi
echo "Validate title"
PR_TITLE=$(gh --repo "${{ github.repository }}" pr view "${{ github.event.number }}" --json title --jq .title)
TITLE_REGEX="^[0-9A-Z\-]*: .*$"
PR_TITLE_VALID=$(echo "$PR_TITLE" | grep -Eq "$TITLE_REGEX" && echo "true" || echo "false")
echo "Determine title portion of comment text, and add/remove title label as appropriate"
if [ "$PR_TITLE_VALID" == "true" ]; then
gh --repo "${{ github.repository }}" pr edit "${{ github.event.number }}" --remove-label "$LABELTITLE" || true
commentText="$distText \n\n### Title is valid."
makeNewComment="${{ steps.changed-bundle-files.outputs.any_changed }}"
else
gh --repo "${{ github.repository }}" pr edit "${{ github.event.number }}" --add-label "$LABELTITLE" || true
commentText="$distText \n\n## The title \`$PR_TITLE\` should match \`$TITLE_REGEX\`\n\nCATEGORY: Change Description\n\nCATEGORY is something like 'API', 'UI', 'MISC', 'STANEK', etc.\n\nChange Description is what you'd tell a non-contributor to convey what is changed."
makeNewComment="true"
fi
echo "Edit existing comment or make a new one (if no comment present and one of the tests failed)"
if [ "$makeNewComment" == "true" ]; then
gh --repo "${{ github.repository }}" pr comment "${{ github.event.number }}" --body "$(echo -e $commentText)" --edit-last || gh --repo "${{ github.repository }}" pr comment "${{ github.event.number }}" --body "$(echo -e $commentText)"
exit 1
else
gh --repo "${{ github.repository }}" pr comment "${{ github.event.number }}" --body "$(echo -e $commentText)" --edit-last || true
fi

View File

@@ -1,64 +0,0 @@
name: Validate PR
on:
pull_request:
branches: [dev]
types: [opened, edited, synchronize, reopened]
jobs:
checkTitle:
name: Check Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Validate Title
id: validate-pr-title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "Creating label (if it does not exist)"
LABEL="validation: invalid title"
gh --repo "${{ github.repository }}" \
label create "$LABEL" --description "Modifications to this pull request are requested" --color D93F0B || true
PR_TITLE=$(\
gh --repo "${{ github.repository }}" \
pr view "${{ github.event.number }}" --json title --jq .title)
echo "::set-output name=title::$PR_TITLE"
echo "PR Title: $PR_TITLE"
TITLE_REGEX="^[0-9A-Z\-]*: .*$"
PR_TITLE_VALID=$(echo "$PR_TITLE" | grep -Eq "$TITLE_REGEX" && echo "true" || echo "false")
if [ "$PR_TITLE_VALID" == "true" ]; then
echo "Title is valid, removing label"
gh --repo "${{ github.repository }}" \
pr edit "${{ github.event.number }}" --remove-label "$LABEL" || true
else
echo "Invalid Title"
ERROR_MSG="$PR_TITLE -> should match -> $TITLE_REGEX"
echo "$ERROR_MSG"
echo "::set-output name=invalid::true"
echo "::set-output name=errorMessage::$ERROR_MSG"
touch comment.txt
echo "## The title \`$PR_TITLE\` should match \`$TITLE_REGEX\`" >> comment.txt
echo "" >> comment.txt
echo "SECTION: FIX #xzyw PLAYER DESCRIPTION" >> comment.txt
echo "" >> comment.txt
echo 'SECTION is something like "API", "UI", "MISC", "STANEK", "CORPORATION"' >> comment.txt
echo 'FIX #xyzw is the issue number, if any' >> comment.txt
echo "PLAYER DESCRIPTION is what you'd tell a non-contributor to convey what is changed." >> comment.txt
echo "Add pr label"
gh --repo "${{ github.repository }}" \
pr edit "${{ github.event.number }}" --add-label "$LABEL"
echo "And comment on the pr"
gh --repo "${{ github.repository }}" \
pr comment "${{ github.event.number }}" --body-file comment.txt
fi
- name: Flag workflow error
if: steps.validate-pr-title.outputs.invalid == 'true'
run: |
echo "${{ steps.validate-pr-title.outputs.errorMessage }}"
exit 1

15
.gitignore vendored
View File

@@ -3,6 +3,7 @@
.vscode
Changelog.txt
Netburner.txt
/coverage
/doc/build
/node_modules
/electron/node_modules
@@ -10,9 +11,18 @@ Netburner.txt
/test/*.bundle.*
/test/*.css
/input/bitburner.api.json
dist/bitburner.d.ts
.cypress
# tmp folder for electron
# folder for bundles images / fonts that are generated by webpack
dist/assets
dist/mathjax
# Monaco bundle files
dist/*.worker.*
# tmp folder for build and electron
.app
.package
.build
@@ -20,3 +30,6 @@ Netburner.txt
.vscode
.idea/
*.bundle.*
index.html
tsdoc-metadata.json

View File

@@ -1,10 +1,12 @@
node_modules
package.json
dist
doc/build/
doc/build
doc/source
coverage
.build
.package
.app
editor.main.js
main.bundle.js
@@ -13,3 +15,11 @@ markdown
package.json
package.lock.json
tsdoc-metadata.json
.git_blame_ignore_revs
# This file is generated by tools/bundle-doc/index.mjs
src/Documentation/pages.ts
# This file is generated by tools/bundle-doc/generate-math-notation-output.mjs
src/Documentation/data/MathNotationOutput.json

16
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,16 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: doc/conf.py

276
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,276 @@
# Contributing to Bitburner
## In General
The game is made better because the community as a whole speaks up about
ways to improve the game. Here are some of the ways you can make your voice
heard:
- [Discord](https://discord.gg/XKEGvHqVr3).
There is a dedicated Discord instance set up for more free-form chats
between all members of the community. Regular players, heavy scripters,
Bitburner contributors, and everyone in between can be found on the
server.
- [Github Issues](https://github.com/bitburner-official/bitburner-src/issues).
Although the term "issues" can have a negative connotation, they are a
means of communicating with the community. A new Issue can be an
interesting new feature that you feel would improve the game. It could be
an unexpected behavior within the game. Or because the game is about
scripting perhaps there is something that is conflicting with the
browser's JavaScript interaction. So please do not be afraid to open a
[new Issue](https://github.com/bitburner-official/bitburner-src/issues/new).
## Reporting Bugs
The recommended method for reporting a bug is by opening a [Github Issue](https://github.com/bitburner-official/bitburner-src/issues)
or contacting us on the [#bug-report channel](https://discord.com/channels/415207508303544321/415213413745164318).
Alternatively, you can post a bug by creating a post on the
[game's subreddit](https://www.reddit.com/r/Bitburner/).
Before submitting a bug report, please check to make sure the bug has not
already been reported as an [Issue](https://github.com/bitburner-official/bitburner-src/issues).
#### How to Submit a Good Bug Report
- **Use a clear and descriptive title** for the Issue.
- **State your browser, your browser's version, and your computer's OS.**
- **Attach your save file**, if you think it would help solve the Issue.
Zip your save file first, then attach the zipped save file.
- **Provide instructions on how to reproduce the bug** in as much detail
as possible. If you cannot reliably reproduce the bug, then just try
your best to explain what was happening when the bug occurred.
- **Provide any scripts** that triggered the bug if the Issue is Netscript-related.
- **Open your browser's Dev Console and report any error-related output**
that may be printed there. The Dev Console can be opened on most modern
browsers by pressing F12.
## As a Developer
Anyone is welcome to contribute to Bitburner code. However, please read
the [license](./license.txt)
and the [readme](./README.md)
before doing so.
To contribute to Bitburner code, you will need to have
[NodeJS](https://nodejs.org) installed. When installing NodeJS, a utility
called `npm` is installed as well.
#### What are you Allowed to Contribute?
Not all code contributions will be accepted. The safest way to ensure
that you don't waste time working on something that gets rejected is to
run your idea(s)/plan(s) past the developers first.
You can contact him through Discord.
Otherwise, here are some general guidelines for determining what types of
changes are okay to contribute:
##### Contributions that Will Most Likely Be Accepted
- Bug fixes
- Quality-of-life changes
- Adding a new, commonly-requested Netscript function
- Fixing or improving UI elements
- Adding game settings/options
- Adding a new Terminal command
- Code refactors that conform to good/standard practices
##### Contributions that will not be Accepted without prior approval
- Changes that directly affect the game's balance
- New gameplay mechanics
---
## How to setup fork properly
Clone and fork the game's repository by using one of these methods: web browser, GitHub
Desktop, or command line.
- Web browser. Log in to your GitHub account, navigate to the
[game's repository](https://github.com/bitburner-official/bitburner-src), and fork the
repository. Refer to
[this page](https://docs.github.com/en/get-started/quickstart/fork-a-repo) for more
detail.
- GitHub Desktop. Click on `File`, then click `Clone repository`. Click on the `URL`
tab and type `bitburner-official/bitburner-src` into the text box for repository URL. Choose
the path where you want to clone the repository and click the `Clone` button.
Refer to [this page](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop)
for more detail.
- Command line.
```sh
# This clones the game's code repository. The output you get might vary.
$ git clone https://github.com/bitburner-official/bitburner-src.git
Cloning into 'bitburner'...
remote: Enumerating objects: 57072, done.
remote: Counting objects: 100% (404/404), done.
remote: Compressing objects: 100% (205/205), done.
remote: Total 57072 (delta 210), reused 375 (delta 199), pack-reused 56668
Receiving objects: 100% (57072/57072), 339.11 MiB | 5.42 MiB/s, done.
Resolving deltas: 100% (43708/43708), done.
Updating files: 100% (2561/2561), done.
# Change to the directory that contains your local copy.
$ cd bitburner-src
# The upstream is the repository that contains the game's source code. The
# upstream is also the place where proposed changes are merged into the game.
$ git remote rename origin upstream
Renaming remote references: 100% (8/8), done.
# The origin is your own copy or fork of the game's source code. Assume that
# your fork will be on GitHub. Change "myname" to your GitHub username. Change
# "myfork" to the name of your forked repository.
$ git remote add origin https://github.com/myname/myfork
# Now "origin" is your fork and "upstream" is where changes should be merged.
$ git remote show
origin
upstream
# You can now download all changes and branches from the upstream repository.
# The output you get might vary.
$ git fetch upstream
# Make sure you always start from "upstream/dev" to avoid merge conflicts.
$ git branch
* dev
$ git branch -r
upstream/BN14
upstream/HEAD -> upstream/dev
upstream/dev
upstream/folders
upstream/master
```
## Development Workflow Best Practices
- Work in a new branch forked from the `dev` branch to isolate your new code.
- Keep code-changes on a branch as small as possible. This makes it easier for code review. Each branch should be its own independent feature.
- Regularly rebase your branch against `dev` to make sure you have the latest updates pulled.
## Running locally
Install
- NodeJS (maybe via `nvm`). When installing NodeJS, you also get a tool called `npm`. You can update `npm` to the latest version by running `npm install -g npm@latest`.
- Github Desktop (Windows only)
- Visual Studio Code (optional)
Inside the root of the repository run:
- `npm install` to install all the dependencies; and
- `npm run start:dev` to launch the game in dev mode.
After that you can open any browser and navigate to `localhost:8000` and play the game.
Saving a file will reload the game automatically.
### How to build the electron app
Tested on Node 24.13.0 (LTS) on Windows.
These steps only work in a Bash-like environment, like MinGW for Windows.
```sh
# Install the main game dependencies & build the app in debug mode.
$ npm install
$ npm run build:dev
# Use electron-packager to build the app to the .build/ folder.
$ npm run electron
# And run the game...
$ .build/bitburner-win32-x64/bitburner.exe
```
### Submitting a Pull Request
When submitting a pull request with your code contributions, please abide by
the following rules:
- Work in a branch forked from `dev` to isolate the new code.
- Ensure you have the latest from the [game's main
repository](../../tree/dev).
- Rebase your branch if necessary.
- Run the game locally to test out your changes.
- When submitting the pull request, make sure that the base fork is
_bitburner-official/bitburner-src_ and the base is _dev_.
- If your changes affect the game's UI, attach some screenshots or GIFs showing
the changes to the UI.
- If your changes affect Netscript, provide some
scripts that can be used to test the Netscript changes.
- Ensure you have run `npm run lint` to make sure your changes conform to the
rules enforced across the code base. The command will fail if any of the
linters find a violation.
- Ensure you have run `npm run format` to make sure your changes conform to the
style guide.
- Also, ensure you have run `npm run test` to make sure your changes pass
the automated tests.
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
in the root of the repository. These will be updated as part of official
releases.
- The title of your Pull Request will need to be formatted like
`MISC: Reticulated the splines`, where the first word must be capitalised
and relate to the kind of change being implemented. Possible examples
are UI, BUGFIX, SERVERS, NETSCRIPT... You get the idea.
## Troubleshooting common issues
### Unrelated changes in `package-lock.json`
After running `npm install`, if you do not change anything in `package.json` and `package-lock.json` is still changed, you need to update `npm` to the latest version. After that, discard the changes in `package-lock.json`, delete the `node_modules` folder, and run `npm install` again.
### Lots of `peer: true` lines added in `package-lock.json`
npm version 11.6.2 has a bug that causes this. Unfortunately, this is the current LTS (stable) release as of this writing. Use a newer or older npm version, and re-run `npm install`.
See https://github.com/npm/cli/pull/8671 and https://github.com/npm/cli/issues/8690 for details.
### Unrelated failed Jest tests
Some Jest tests fail to run in Node versions older than v24. On those versions, these tests show a small difference between the expected value ("Snapshot") and the actual value ("Received"). You need to use Node v24+ to run these tests.
## As a Documenter
To contribute to and view your changes to the BitBurner documentation in-game, you will
need to edit the files in [this folder](https://github.com/bitburner-official/bitburner-src/tree/dev/src/Documentation/doc/en)
To make change to the [in-game documentation](./markdown/bitburner.md), you will need to modify the [TypeScript definitions](./src/ScriptEditor/NetscriptDefinitions.d.ts), not the Markdown files.
We are using [API Extractor](https://api-extractor.com/pages/tsdoc/doc_comment_syntax/) (tsdoc hints) to generate the Markdown doc. Make your changes to the TypeScript definitions and then run `npm run doc`.
Before submitting your code for a pull request, please try to follow these
rules:
- Work in a branch forked from `dev` to isolate the new code.
- Ensure you have the latest from the [game's main
repository](../../tree/dev).
- Rebase your branch if necessary.
- When submitting the pull request, make sure that the base fork is
_bitburner-official/bitburner-src_ and the base is _dev_.
## Deploying a new version
Update the following:
- `src/Constants.ts` `Version` and `LatestUpdate`
- `package.json` `version`
- `doc/source/conf.py` `version` and `release`
- `doc/source/changelog.rst`
- post to Discord
- post to reddit.com/r/Bitburner
## Adding a BN guidelines
Promote:
- New mechanic.
- Coding problems based on NP problems. This makes solutions that are easy to implement inefficient and solutions that are hard to implement efficient. (e.g., Stanek)
- Inter-mechanic synergy.
- Simplicity (e.g., Stanek, Hashnet. Bad example: Corp)
Avoid:
- Failure conditions. It's very frustrating to lose several days' worth of progress.
- Making existing mechanics harder. This makes it hard to port the content to other BNs.

50
Dockerfile Normal file
View File

@@ -0,0 +1,50 @@
# Stage 1: Build the application
FROM node:lts-alpine AS builder
# Set working directory
WORKDIR /app
# Install necessary tools, including git
RUN apk update && \
apk add --no-cache git && \
apk add bash
# Copy dependencies
COPY package.json package-lock.json ./
COPY tools/ ./tools
# Install dependencies
RUN npm ci
# Copy source code
COPY . .
# Build the application
# Pass the build mode as a build argument
ARG BUILD_MODE
# Use shell logic to determine which version to install
RUN if [ "$BUILD_MODE" = "dev" ]; then \
echo "Installing development version"; \
npm run build:dev; \
else \
echo "Installing production version"; \
npm run build; \
fi
# Stage 2: Serve the application using Nginx
FROM nginx:stable-alpine AS runtime
# Security optimizations
RUN chmod -R 644 /etc/nginx/nginx.conf
# Copy the built application from the builder stage
COPY --from=builder /app/.app /usr/share/nginx/html
# Set permissions for security
RUN chmod -R 755 /usr/share/nginx/html
# Expose port
EXPOSE 80
# Start Nginx
CMD ["nginx", "-g", "daemon off;"]

37
FixJSDOMEnvironment.ts Normal file
View File

@@ -0,0 +1,37 @@
import JSDOMEnvironment from "jest-environment-jsdom";
import { cloneDeep } from "lodash";
// https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string
export default class FixJSDOMEnvironment extends JSDOMEnvironment {
constructor(...args: ConstructorParameters<typeof JSDOMEnvironment>) {
super(...args);
// TODO Tests aren't polyfilled.
this.global.structuredClone = cloneDeep;
// FIXME https://github.com/nodejs/node/issues/35889
// Add missing importActual() function to mirror requireActual(),
// which lets us work around the ESM bug.
// Wrap the construction of the function in eval, so that transpilers
// don't touch the import() call.
this.global.importActual = eval("url => import(url)");
/**
* By default, Jest only passes a limited number of global objects to the test environment. We need these global
* objects when testing code that loads save data.
*/
this.global.Uint8Array = Uint8Array;
this.global.Blob = Blob;
this.global.CompressionStream = CompressionStream;
this.global.DecompressionStream = DecompressionStream;
this.global.TextDecoderStream = TextDecoderStream;
this.global.URL = URL;
this.global.Response = Response;
/**
* https://github.com/jsdom/jsdom/issues/3766
* https://github.com/jsdom/jsdom/issues/3444
*/
this.global.document.adoptedStyleSheets = [];
this.global.CSSStyleSheet.prototype.replaceSync = () => {};
}
}

View File

@@ -2,31 +2,32 @@
[![Join Discord](https://img.shields.io/discord/415207508303544321)](https://discord.gg/TFc3hKD)
[![Build Status](https://github.com/danielyxie/bitburner/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/danielyxie/bitburner/actions/workflows/ci.yml)
[![Build Status](https://github.com/bitburner-official/bitburner-src/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/bitburner-official/bitburner-src/actions/workflows/ci.yml)
Bitburner is a programming-based [incremental game](https://en.wikipedia.org/wiki/Incremental_game)
that revolves around hacking and cyberpunk themes.
The game can be played at https://danielyxie.github.io/bitburner or installed through [Steam](https://store.steampowered.com/app/1812820/Bitburner/).
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](https://store.steampowered.com/app/1812820/Bitburner/).
The location of the release build may change in the near future.
See the [frequently asked questions](./doc/FAQ.md) for more information . To discuss the game or get help, join the [official Discord server](https://discord.gg/TFc3hKD).
See the [frequently asked questions](/src/Documentation/doc/en/help/faq.md) for more information. To discuss the game or get help, join the [official Discord server](https://discord.gg/TFc3hKD).
# Documentation
The game's official documentation can be found on [Read The
Docs](http://bitburner.readthedocs.io/). Please note that this is still a work-in-progress.
There are 2 types of documentation:
The [in-game documentation](./markdown/bitburner.md) is generated from the [TypeScript definitions](./src/ScriptEditor/NetscriptDefinitions.d.ts).
- In-game documentation: It can be found in the Documentation tab. This is the best place to get up-to-date information. You can also read the web version at [Documentation](./src/Documentation/doc/en/index.md).
- NS API documentation: It's generated from the [TypeScript definitions](./src/ScriptEditor/NetscriptDefinitions.d.ts). You can read it at [API Documentation](./markdown/bitburner.md).
Anyone is welcome to contribute to the documentation by editing the [source
files](/doc/source) and then making a pull request with your contributions.
files](/src/Documentation/doc/en) and then making a pull request with your contributions.
For further guidance, please refer to the "As A Documenter" section of
[CONTRIBUTING](./doc/CONTRIBUTING.md).
[CONTRIBUTING](./CONTRIBUTING.md#as-a-documenter).
# 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](./doc/CONTRIBUTING.md) document.
please refer to the [CONTRIBUTING](./CONTRIBUTING.md) 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
@@ -36,4 +37,5 @@ 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 to @danielyxie to help coordinate the effort.
collaborator, please reach out in #suggestions or #development on Discord to
help coordinate the effort.

View File

@@ -88,9 +88,18 @@
*
* DEFAULT VALUE: no overrideTsconfig section
*/
// "overrideTsconfig": {
// . . .
// }
/**
* We need to override TsConfig, otherwise api-extractor will read our tsconfig.json and process every files, not
* just NetscriptDefinitions.d.ts.
*/
"overrideTsconfig": {
"compilerOptions": {
// Without enabling this option, api-extractor will report unrelated warnings of jsdom. Check this link for more
// information: https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/57467.
"skipLibCheck": true
},
"include": ["src/ScriptEditor/NetscriptDefinitions.d.ts"]
}
/**
* This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended
* and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when

View File

@@ -1,12 +0,0 @@
#!/bin/bash
export INKSCAPE=/Applications/Inkscape.app/Contents/MacOS/inkscape
mkdir ${TMPDIR}real
for filename in real/*.svg; do
#./MyProgram.exe "$filename" "Logs/$(basename "$filename" .txt)_Log$i.txt"
cp "$filename" $TMPDIR${filename}
sed -i '' 's/00ff00/808080/g' $TMPDIR${filename}
$INKSCAPE --export-type png --export-filename tmp/${filename}-.png -w 256 $TMPDIR${filename}
$INKSCAPE --export-type png --export-filename tmp/${filename}.png -w 256 "$filename"
done

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="$1Q.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.380726"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="96"
inkscape:window-y="79"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:29.9861px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.308159"
x="33.551872"
y="43.962086"
id="text8876"><tspan
sodipodi:role="line"
id="tspan8874"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.9861px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.308159"
x="33.551872"
y="43.962086">$1Q</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="-1b.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.380726"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="96"
inkscape:window-y="79"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:28.2222px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.313633"
x="33.618622"
y="43.368233"
id="text8876"><tspan
sodipodi:role="line"
id="tspan8874"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:28.2222px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.313633"
x="33.618622"
y="43.368233">-$1b</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="1H.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:38.8056px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.819298"
y="47.812428"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:38.8056px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.819298"
y="47.812428"
id="tspan17808">1H</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="2DAYS.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="34.056576"
y="39.544613"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="34.056576"
y="39.544613"
id="tspan17808">2 DAYS</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="4S.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:38.8056px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="34.454056"
y="47.746109"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:38.8056px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="34.454056"
y="47.746109"
id="tspan16668">4S</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BLADE.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="39.548489"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="39.548489"
id="tspan16415">BLADE</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BLADE100K.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="29.457327"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="29.457327"
id="tspan16415">BLADE</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="49.445869"
id="tspan16668">100000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BLADEOVERCLOCK.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="29.457327"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="29.457327"
id="tspan16415">BLADE</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.68063"
y="49.445869"
id="tspan16668">OC</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN1+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.47345"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.47345"
id="tspan20241">BN1+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN10+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.097988"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.097988"
id="tspan20241">BN10+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN12+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.205647"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.205647"
id="tspan20241">BN12+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN13+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="29"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.097988"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.591061"
y="40.097988"
id="tspan20241">BN13+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN14+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">BN14+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN15+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.591061"
y="40.205647"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.591061"
y="40.205647">BN15+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN2+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.47345"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.47345"
id="tspan20241">BN2+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN3+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.344257"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.344257"
id="tspan20241">BN3+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN6+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.344257"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.344257"
id="tspan20241">BN6+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN7+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.442444"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.442444"
id="tspan20241">BN7+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN8+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.339092"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.339092"
id="tspan20241">BN8+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="BN9+.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:21.1667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.339092"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.1667px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
x="33.535938"
y="41.339092"
id="tspan20241">BN9+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CORP.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:19.4028px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="40.811127"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="40.811127"
id="tspan14497">CORP</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CORP1000.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:19.4028px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.595892"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.595892"
id="tspan14497">CORP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="53.02636"
id="tspan15347">1000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CORPCITY.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:19.4028px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.595892"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.595892"
id="tspan14497">CORP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="53.02636"
id="tspan15347">3000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CORPLOBBY.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.250423"
y="29.55422"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.250423"
y="29.55422"
id="tspan14497">CORP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.250423"
y="49.542763"
id="tspan15347">LOBBY</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CORPRE.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:19.4028px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.714317"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="28.714317"
id="tspan14497">CORP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.4028px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.852455"
y="53.144783"
id="tspan15347">RE</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="CSEC.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.254082;stroke-opacity:1"
x="31.388172"
y="42.889858"
id="text2505"
transform="scale(1.0801483,0.9257988)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.254082;stroke-opacity:1"
x="31.388172"
y="42.889858">CSEC</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="GANG.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="40.17981"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="40.17981"
id="tspan11415">GANG</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="GANG100%.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="28.928638"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="28.928638"
id="tspan11415">GANG</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="51.138145"
id="tspan14185">100%</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="GANG10000.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="29.075056"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="29.075056"
id="tspan14185">GANG</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.978626"
y="51.284561"
id="tspan14497">10000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="GANGMAX.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="29.182714"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="29.182714"
id="tspan11415">GANG</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.97863"
y="51.39222"
id="tspan14185">MAX</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="HASHNET.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="37.904324"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="37.904324"
id="tspan16668">HASHNET</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="HASHNETALL.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.868937"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.868937"
id="tspan16668">HASHNET</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="45.083027"
id="tspan17808">ALL</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="HASHNETCAP.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.706327"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.706327"
id="tspan16668">HASHNET</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="44.920418"
id="tspan17808">100%</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="HASHNETMAX.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.868937"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.868937"
id="tspan16668">HASHNET</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="45.083027"
id="tspan17808">MAX</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="HASHNETMONEY.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.30394"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="30.30394"
id="tspan16668">HASHNET</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.569012"
y="44.518028"
id="tspan17808">$1B</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="INT255.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:24.6944px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.932983"
y="27.007704"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24.6944px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.932983"
y="27.007704"
id="tspan15347">INT</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24.6944px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.932983"
y="58.100937"
id="tspan16415">255</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="NiteSec.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:14.1111px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.432976"
y="40.039101"
id="text2505"
transform="scale(1.0332295,0.96783918)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.1111px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.432976"
y="40.039101">NiteSec</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="OUCH.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="34.273617"
y="39.548489"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="34.273617"
y="39.548489"
id="tspan11415">OUCH!</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF-1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.254082;stroke-opacity:1"
x="32.803677"
y="44.78252"
id="text2505"
transform="scale(1.0801483,0.9257988)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.254082;stroke-opacity:1"
x="32.803677"
y="44.78252">SF -1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF1.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.69091"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="335"
inkscape:window-y="29"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF1.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF10.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858"
id="text2505"
transform="scale(1.0801483,0.9257988)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858">SF10.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF11.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858"
id="text2505"
transform="scale(1.0801483,0.9257988)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858">SF11.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF12.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858"
id="text2505"
transform="scale(1.0801483,0.9257988)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.204338;stroke-opacity:1"
x="32.46907"
y="42.889858">SF12.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF13.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.24922"
x="33.015541"
y="42.263199"
id="text1"
transform="scale(1.0616446,0.94193481)"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.24922"
x="33.015541"
y="42.263199">SF13.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF14.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="34.982018"
y="40.175503"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="34.982018"
y="40.175503">SF14.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF15.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="34.982018"
y="40.175503"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="34.982018"
y="40.175503">SF15.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF2.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF2.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF3.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF3.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF4.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF4.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF5.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF5.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF6.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF6.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF7.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="270"
inkscape:window-y="58"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF7.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF8.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF8.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SF9.1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161"
id="text2505"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="35.316624"
y="42.068161">SF9.1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="SLEEVE8.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.910591"
y="37.651955"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.153084"
x="33.910591"
y="37.651955"
id="tspan17808">8 SLEEVES</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="TBH.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2907448"
inkscape:cx="116.99479"
inkscape:cy="121.09721"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="1.7801921e-06"
y="1.7801921e-06" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.273643"
y="20.592304"
id="text2505"
transform="scale(1.0332295,0.96783918)"><tspan
sodipodi:role="line"
id="tspan2503"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.273643"
y="20.592304">The</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.273643"
y="40.580845"
id="tspan5436">Black</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.178394;stroke-opacity:1"
x="32.273643"
y="60.569389"
id="tspan5438">Hand</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="TOR.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:24.6944px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.667713"
y="42.705044"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24.6944px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.200782"
x="33.667713"
y="42.705044"
id="tspan11415">TOR</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="TRAVEL.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:14.1111px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="34.193951"
y="38.917171"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.1111px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="34.193951"
y="38.917171"
id="tspan11415">WORLD</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="WORKOUT.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="33.9571"
y="37.654537"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="33.9571"
y="37.654537"
id="tspan11415">WORKOUT</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="bigcost.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:17.6389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.17877"
x="33.905426"
y="40.17981"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.6389px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.17877"
x="33.905426"
y="40.17981"
id="tspan5330">32GB+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="bitrunners.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.380726"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.132095"
x="33.734894"
y="37.592525"
id="text8876"><tspan
sodipodi:role="line"
id="tspan8874"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.132095"
x="33.734894"
y="37.592525">BitRunners</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="bn-destroyer.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:12.3472px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#55d400;stroke-width:0.264583"
x="33.342152"
y="29.269625"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.3472px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.342152"
y="29.269625">BitNode</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.3472px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.264583"
x="33.342152"
y="44.703625"
id="tspan2">Destroyer</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="broker.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:29.9861px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.277337"
x="34.298595"
y="42.505241"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.9861px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.277337"
x="34.298595"
y="42.505241"
id="tspan5330">$1q</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="combat3000.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:14.8167px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.606216"
y="29.841707"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.606216"
y="29.841707"
id="tspan2495">Combat</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.606216"
y="48.497723"
id="tspan3127">3000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="daedalus.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.380726"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="101"
inkscape:window-y="106"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.4056px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.160262"
x="33.706299"
y="38.586117"
id="text8876"><tspan
sodipodi:role="line"
id="tspan8874"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.4056px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.160262"
x="33.706299"
y="38.586117">Daedalus</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="darknet-backdoor.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="svg5"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<path
style="font-weight:bold;font-size:38.8056px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.264583"
d="m 48.845096,31.384471 q 0.606337,0.170533 1.098986,0.568442 0.511598,0.397909 0.87161,0.928454 0.360013,0.511597 0.549494,1.117935 0.208428,0.606337 0.208428,1.231623 v 16.333216 q 0,0.852662 -0.322116,1.591636 -0.322117,0.738973 -0.890559,1.288467 -0.549493,0.568441 -1.288467,0.890558 -0.738974,0.322117 -1.591636,0.322117 H 20.252493 q -0.852662,0 -1.591635,-0.322117 -0.738974,-0.322117 -1.307416,-0.890558 -0.549493,-0.549494 -0.87161,-1.288467 -0.322117,-0.738974 -0.322117,-1.591636 V 35.230925 q 0,-0.644234 0.189481,-1.250571 0.18948,-0.606338 0.549493,-1.098987 0.360013,-0.492649 0.852662,-0.87161 0.511598,-0.397909 1.117935,-0.625286 v -4.320154 q 0,-2.065338 0.530545,-3.97909 0.549494,-1.913753 1.515844,-3.581181 0.985299,-1.667428 2.349558,-3.031687 1.383207,-1.36426 3.031687,-2.33061 1.667428,-0.985299 3.581181,-1.515844 1.913753,-0.549493 3.97909,-0.549493 2.065337,0 3.97909,0.549493 1.913752,0.530545 3.58118,1.515844 1.667429,0.96635 3.031688,2.33061 1.364259,1.364259 2.33061,3.031687 0.985298,1.667428 1.515843,3.581181 0.549494,1.913752 0.549494,3.97909 z m 0,20.17967 V 35.230925 q 0,-0.549494 -0.416857,-0.947403 -0.397909,-0.416857 -0.947403,-0.416857 H 20.252493 q -0.568441,0 -0.96635,0.397909 -0.397909,0.397909 -0.397909,0.966351 v 16.333216 q 0,0.568441 0.397909,0.96635 0.397909,0.397909 0.96635,0.397909 h 27.36098 q 0.435805,0 0.644233,-0.227377 0.227377,-0.227376 0.435805,-0.549493 l 0.07579,-0.113688 q 0.07579,-0.246325 0.07579,-0.473701 z M 21.597805,27.064317 h 2.728518 q 0,-1.970597 0.738974,-3.69487 0.757922,-1.74322 2.046389,-3.031687 1.288467,-1.307415 3.031688,-2.046389 1.74322,-0.757922 3.713817,-0.757922 1.970597,0 3.694869,0.757922 1.74322,0.738974 3.031687,2.046389 1.307416,1.288467 2.046389,3.031687 0.757922,1.724273 0.757922,3.69487 v 5.438089 h 2.728519 v -5.438089 q 0,-1.686377 -0.435805,-3.259064 -0.435805,-1.572688 -1.231623,-2.936948 -0.795818,-1.364259 -1.913753,-2.482194 -1.117935,-1.117934 -2.482194,-1.913752 -1.364259,-0.795818 -2.936947,-1.231623 -1.572688,-0.435806 -3.259064,-0.435806 -1.686376,0 -3.259064,0.435806 -1.572688,0.435805 -2.936947,1.250571 -1.345312,0.795818 -2.463246,1.913752 -1.117935,1.117935 -1.932701,2.482194 -0.795818,1.345312 -1.231623,2.918 -0.435805,1.572687 -0.435805,3.259064 z"
id="text1"
aria-label="🔓" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733325 67.733325"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="darknet-depths.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:current-layer="svg5"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid1"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect1"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0.27560617,7.2846654)">
<path
style="font-weight:bold;font-size:38.8056px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.264583"
d="M 55.381314,14.095238 44.258811,25.217742 h 5.665466 v 2.728518 q 0,1.781117 -0.416857,3.486441 -0.397909,1.705324 -1.193727,3.29696 l 2.747467,2.747467 q 0.890558,0 1.667428,0.341065 0.795818,0.341064 1.383207,0.928454 0.587389,0.587389 0.928454,1.364259 0.341065,0.77687 0.341065,1.686376 0,0.871611 -0.341065,1.64848 -0.322117,0.795818 -0.928454,1.402156 l -2.254818,2.254817 q -0.606337,0.606338 -1.402155,0.928455 -0.77687,0.341065 -1.64848,0.341065 -0.890558,0 -1.686376,-0.341065 -0.77687,-0.341065 -1.36426,-0.928455 -0.587389,-0.587389 -0.928454,-1.383207 -0.341065,-0.77687 -0.341065,-1.667428 l -2.747466,-2.747467 q -1.212675,0.606338 -2.292714,0.928454 -1.080039,0.341065 -2.160077,0.49265 -1.080039,0.151584 -2.197974,0.170532 -1.117934,0.0379 -2.406402,0.0379 h -0.454753 q -1.781116,0 -3.48644,-0.416857 -1.705324,-0.416857 -3.29696,-1.212675 L 22.695934,44.0521 q 0,0.909506 -0.341065,1.686376 -0.341065,0.77687 -0.928454,1.345311 -0.568442,0.58739 -1.36426,0.909507 -0.776869,0.341064 -1.686376,0.341064 -0.852662,0 -1.64848,-0.322116 -0.795818,-0.303169 -1.402155,-0.909507 -0.568442,-0.549493 -1.136883,-1.117934 -0.549493,-0.568442 -1.117935,-1.136883 -0.606337,-0.606338 -0.947402,-1.402156 -0.322117,-0.776869 -0.322117,-1.64848 0,-0.890558 0.341065,-1.667428 0.341065,-0.795818 0.928454,-1.383207 0.58739,-0.58739 1.36426,-0.928454 0.795818,-0.341065 1.686376,-0.341065 l 2.747467,-2.747467 q -0.606338,-1.212675 -0.947403,-2.292714 -0.322117,-1.080038 -0.473701,-2.160077 -0.151584,-1.080038 -0.18948,-2.197973 -0.01895,-1.117935 -0.01895,-2.406402 V 25.217742 H 22.92331 L 11.800807,14.095238 V 4.7917476 h 9.303491 L 33.591061,17.27851 46.077823,4.7917476 h 9.303491 z M 52.652795,7.5202663 h -5.438089 q -5.419141,5.4191417 -10.857231,10.8193347 -5.438089,5.400193 -10.819334,10.857231 0.18948,1.023194 0.68213,1.9327 0.492649,0.909506 1.193726,1.629532 0.720026,0.701078 1.629532,1.193727 0.909507,0.492649 1.932701,0.68213 5.43809,-5.400193 10.838283,-10.819335 5.419141,-5.438089 10.838282,-10.85723 z M 27.186621,25.615651 32.62471,20.177561 19.967415,7.5202663 h -5.438089 v 5.4380897 z m 20.028085,2.330609 h -4.092778 q 0,1.686377 -0.644234,3.183272 -0.625285,1.477948 -1.74322,2.595883 -1.098987,1.098986 -2.595882,1.74322 -1.477948,0.644233 -3.183272,0.644233 v 4.092779 q 2.539038,0 4.774908,-0.947403 2.235869,-0.96635 3.884349,-2.633778 1.667428,-1.667428 2.633779,-3.903298 0.96635,-2.235869 0.96635,-4.774908 z m -27.247291,0 q 0,1.686377 0.435805,3.259064 0.435805,1.572688 1.231623,2.936948 0.814766,1.345311 1.932701,2.463246 1.117935,1.117934 2.463246,1.9327 1.364259,0.795818 2.936947,1.231623 1.572688,0.435806 3.259064,0.435806 v -4.092779 q -1.686376,0 -3.183272,-0.644233 -1.477947,-0.644234 -2.595882,-1.74322 -1.098987,-1.117935 -1.74322,-2.595883 -0.644234,-1.496895 -0.644234,-3.183272 z m 20.028085,-0.397909 -5.438089,5.43809 1.64848,1.64848 q 1.023195,-0.189481 1.932701,-0.68213 0.909506,-0.492649 1.610584,-1.193727 0.720026,-0.720026 1.212675,-1.629532 0.492649,-0.909506 0.682129,-1.9327 z M 47.214706,44.0521 q 0,0.663182 0.454753,1.117935 0.454753,0.473701 1.117935,0.473701 0.68213,0 1.136883,-0.454753 0.568441,-0.549494 1.136883,-1.117935 0.587389,-0.568441 1.136882,-1.136883 0.454753,-0.492649 0.454753,-1.136883 0,-0.682129 -0.473701,-1.136882 -0.454753,-0.454753 -1.117934,-0.454753 -0.227377,0 -0.454754,0.05684 -0.227376,0.05684 -0.416857,0.18948 -0.07579,0.05684 -0.303168,0.246325 -0.208429,0.208428 -0.511598,0.492649 -0.28422,0.284221 -0.606337,0.606337 -0.322117,0.322117 -0.606338,0.606338 -0.265272,0.284221 -0.473701,0.492649 -0.18948,0.227377 -0.227376,0.284221 -0.132637,0.18948 -0.189481,0.416857 -0.05684,0.227376 -0.05684,0.454753 z M 16.13991,40.205647 q -0.663182,0 -1.136883,0.454753 -0.473701,0.473701 -0.473701,1.136882 0,0.265273 0.09474,0.549494 0.09474,0.303169 0.303169,0.511597 l 2.311662,2.33061 q 0.454753,0.454753 1.136882,0.454753 0.322117,0 0.606338,-0.132636 0.303169,-0.113689 0.511597,-0.322117 0.227377,-0.208429 0.341065,-0.492649 0.132636,-0.284221 0.132636,-0.625286 0,-0.625286 -0.435805,-1.098987 Q 19.34213,42.763633 19.001065,42.40362 18.66,42.043607 18.281039,41.645698 17.902078,41.266737 17.542065,40.925672 17.201,40.603555 16.992572,40.451971 q -0.170533,-0.132636 -0.416857,-0.18948 -0.227377,-0.05684 -0.435805,-0.05684 z m 29.710537,-4.092779 q -1.174779,1.572688 -2.728519,2.728519 l 3.372752,3.372752 q 0.113689,-0.170532 0.49265,-0.568441 0.37896,-0.397909 0.814766,-0.833714 0.454753,-0.435805 0.852662,-0.814766 0.397909,-0.397909 0.568441,-0.511597 z m -21.790254,2.728519 q -1.572688,-1.155831 -2.728518,-2.728519 l -3.372753,3.372753 q 0.170533,0.113688 0.568442,0.511597 0.397909,0.378961 0.833714,0.814766 0.435805,0.435805 0.814766,0.833714 0.397909,0.397909 0.511597,0.568441 z"
id="text1"
aria-label="⚔️" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="discount.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:22.9306px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.218986"
x="33.7603"
y="41.883419"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.9306px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.218986"
x="33.7603"
y="41.883419"
id="tspan5330">-10%</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="donation.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="33.908009"
y="37.654537"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.13337"
x="33.908009"
y="37.654537"
id="tspan11415">DONATION</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="drain.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:38.8056px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.403166"
x="34.160362"
y="46.931343"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:38.8056px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.403166"
x="34.160362"
y="46.931343"
id="tspan5330">$0</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="folders.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:14.1111px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.142242"
x="33.87011"
y="37.611481"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.1111px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.142242"
x="33.87011"
y="37.611481"
id="tspan5330">/scripts/</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="formulas.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.380726"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="96"
inkscape:window-y="79"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:35.2778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#00ff00;fill-opacity:1;stroke-width:0.365827"
x="34.57291"
y="42.996178"
id="text8876"><tspan
sodipodi:role="line"
id="tspan8874"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.2778px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.365827"
x="34.57291"
y="42.996178">f(x)</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="frozen.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:14.1111px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.174244"
x="33.911453"
y="38.917171"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.1111px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.174244"
x="33.911453"
y="38.917171"
id="tspan3127">FROZEN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg5"
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
sodipodi:docname="hack100000.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="2.326908"
inkscape:cx="86.81048"
inkscape:cy="111.09163"
inkscape:window-width="2423"
inkscape:window-height="1341"
inkscape:window-x="146"
inkscape:window-y="51"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid824"
originx="0"
originy="0"
spacingy="1"
spacingx="1"
units="px" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="background">
<rect
style="fill:#000000;stroke:none;stroke-width:7.02745"
id="rect849"
width="67.73333"
height="67.73333"
x="0"
y="0" />
</g>
<g
inkscape:label="main"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:bold;font-size:15.875px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.630245"
y="29.457327"
id="text8876"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.630245"
y="29.457327"
id="tspan2003">Hack</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.875px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.196363"
x="33.630245"
y="49.445869"
id="tspan2495">100000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Some files were not shown because too many files have changed in this diff Show More