From e8b4d15078448fae83dd02320b2437bc98c79b25 Mon Sep 17 00:00:00 2001 From: MageKing17 Date: Fri, 17 Dec 2021 00:35:23 -0800 Subject: [PATCH 1/6] Update TutorialRoot.tsx Correct "NS1 vs NS1" typo. --- src/Tutorial/ui/TutorialRoot.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tutorial/ui/TutorialRoot.tsx b/src/Tutorial/ui/TutorialRoot.tsx index b2606a395..e7b290547 100644 --- a/src/Tutorial/ui/TutorialRoot.tsx +++ b/src/Tutorial/ui/TutorialRoot.tsx @@ -108,7 +108,7 @@ export function TutorialRoot(props: IProps): React.ReactElement { target="_blank" href="https://bitburner.readthedocs.io/en/latest/netscript/netscriptlearntoprogram.html#netscript-1-0-vs-netscript-2-0" > - NS1 vs NS1 (or .script vs .js) + NS1 vs NS2 (or .script vs .js) From 217b94d0a07949ae991139677fc2ae032708bc15 Mon Sep 17 00:00:00 2001 From: Martin Fournier Date: Fri, 17 Dec 2021 05:35:17 -0500 Subject: [PATCH 2/6] Fix #1863: Add getHashUpgrades hacknet function Adds a new functions ofr hacknet servers that returns the list of available hash upgrades. --- input/bitburner.api.json | 28 +++++++++++++++ markdown/bitburner.hacknet.gethashupgrades.md | 34 +++++++++++++++++++ markdown/bitburner.hacknet.md | 1 + src/NetscriptFunctions/Hacknet.ts | 8 +++++ src/ScriptEditor/NetscriptDefinitions.d.ts | 16 +++++++++ 5 files changed, 87 insertions(+) create mode 100644 markdown/bitburner.hacknet.gethashupgrades.md diff --git a/input/bitburner.api.json b/input/bitburner.api.json index 4148c530c..b6823c8e8 100644 --- a/input/bitburner.api.json +++ b/input/bitburner.api.json @@ -12012,6 +12012,34 @@ ], "name": "getHashUpgradeLevel" }, + { + "kind": "MethodSignature", + "canonicalReference": "bitburner!Hacknet#getHashUpgrades:member(1)", + "docComment": "/**\n * Get the list of hash upgrades\n *\n * @remarks\n *\n * RAM cost: 0 GB\n *\n * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node).\n *\n * Returns the list of all available hash upgrades that can be used in the spendHashes function.\n *\n * @returns An array containing the available upgrades\n *\n * @example\n * ```ts\n * const upgrades = hacknet.getHashUpgrades(); // [\"Sell for Money\",\"Sell for Corporation Funds\",...]\n * ```\n *\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "getHashUpgrades(): " + }, + { + "kind": "Content", + "text": "string[]" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isOptional": false, + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "getHashUpgrades" + }, { "kind": "MethodSignature", "canonicalReference": "bitburner!Hacknet#getLevelUpgradeCost:member(1)", diff --git a/markdown/bitburner.hacknet.gethashupgrades.md b/markdown/bitburner.hacknet.gethashupgrades.md new file mode 100644 index 000000000..4ae3ffef2 --- /dev/null +++ b/markdown/bitburner.hacknet.gethashupgrades.md @@ -0,0 +1,34 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [Hacknet](./bitburner.hacknet.md) > [getHashUpgrades](./bitburner.hacknet.gethashupgrades.md) + +## Hacknet.getHashUpgrades() method + +Get the list of hash upgrades + +Signature: + +```typescript +getHashUpgrades(): string[]; +``` +Returns: + +string\[\] + +An array containing the available upgrades + +## Remarks + +RAM cost: 0 GB + +This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + +Returns the list of all available hash upgrades that can be used in the spendHashes function. + +## Example + + +```ts +const upgrades = hacknet.getHashUpgrades(); // ["Sell for Money","Sell for Corporation Funds",...] +``` + diff --git a/markdown/bitburner.hacknet.md b/markdown/bitburner.hacknet.md index 6f931bd93..68e36c9e7 100644 --- a/markdown/bitburner.hacknet.md +++ b/markdown/bitburner.hacknet.md @@ -23,6 +23,7 @@ Not all these functions are immediately available. | [getCacheUpgradeCost(index, n)](./bitburner.hacknet.getcacheupgradecost.md) | Calculate the cost of upgrading hacknet node cache. | | [getCoreUpgradeCost(index, n)](./bitburner.hacknet.getcoreupgradecost.md) | Calculate the cost of upgrading hacknet node cores. | | [getHashUpgradeLevel(upgName)](./bitburner.hacknet.gethashupgradelevel.md) | Get the level of a hash upgrade. | +| [getHashUpgrades()](./bitburner.hacknet.gethashupgrades.md) | Get the list of hash upgrades | | [getLevelUpgradeCost(index, n)](./bitburner.hacknet.getlevelupgradecost.md) | Calculate the cost of upgrading hacknet node levels. | | [getNodeStats(index)](./bitburner.hacknet.getnodestats.md) | Get the stats of a hacknet node. | | [getPurchaseNodeCost()](./bitburner.hacknet.getpurchasenodecost.md) | Get the price of the next hacknet node. | diff --git a/src/NetscriptFunctions/Hacknet.ts b/src/NetscriptFunctions/Hacknet.ts index 4626a50c5..4f0564f14 100644 --- a/src/NetscriptFunctions/Hacknet.ts +++ b/src/NetscriptFunctions/Hacknet.ts @@ -16,6 +16,8 @@ import { } from "../Hacknet/HacknetHelpers"; import { HacknetServer } from "../Hacknet/HacknetServer"; import { HacknetNode } from "../Hacknet/HacknetNode"; +import { HashUpgrades } from "../Hacknet/HashUpgrades"; +import { HashUpgrade } from "../Hacknet/HashUpgrade"; import { GetServer } from "../Server/AllServers"; import { Hacknet as IHacknet, NodeStats } from "../ScriptEditor/NetscriptDefinitions"; @@ -166,6 +168,12 @@ export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, he } return purchaseHashUpgrade(player, upgName, upgTarget); }, + getHashUpgrades: function(): string[] { + if (!hasHacknetServers(player)) { + return []; + } + return Object.values(HashUpgrades).map((upgrade: HashUpgrade) => upgrade.name); + }, getHashUpgradeLevel: function (upgName: any): number { const level = player.hashManager.upgrades[upgName]; if (level === undefined) { diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index d463d68a7..8172e733a 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -2290,6 +2290,22 @@ export interface Hacknet { */ spendHashes(upgName: string, upgTarget?: string): boolean; + /** + * Get the list of hash upgrades + * @remarks + * RAM cost: 0 GB + * + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Returns the list of all available hash upgrades that can be used in the spendHashes function. + * @example + * ```ts + * const upgrades = hacknet.getHashUpgrades(); // ["Sell for Money","Sell for Corporation Funds",...] + * ``` + * @returns An array containing the available upgrades + */ + getHashUpgrades(): string[]; + /** * Get the level of a hash upgrade. * @remarks From 6d94ee0c2c74d87d0cf1227f018710e2384b38ec Mon Sep 17 00:00:00 2001 From: Martin Fournier Date: Fri, 17 Dec 2021 05:50:45 -0500 Subject: [PATCH 3/6] Fix #1902: Set default electron color to black If loading of the index.html is slow, there should be no white background anymore. --- electron/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/electron/main.js b/electron/main.js index b9ef428b4..6723dbd01 100644 --- a/electron/main.js +++ b/electron/main.js @@ -14,6 +14,7 @@ function createWindow(killall) { win = new BrowserWindow({ show: false, backgroundThrottling: false, + backgroundColor: '#000000', }); win.removeMenu(); From c59806c87d543c7cc78d1d68af9599d118c0cb2b Mon Sep 17 00:00:00 2001 From: Martin Fournier Date: Fri, 17 Dec 2021 09:54:32 -0500 Subject: [PATCH 4/6] Set default editorconfig to indent_size=2 Prettier already formats the code like that, so it causes a mismatch for devs using editorconfig as well. --- .editorconfig | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index eba264699..82cfa5425 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,12 +2,9 @@ root = true [*] indent_style = space -indent_size = 4 +indent_size = 2 trim_trailing_whitespace = true insert_final_newline = true -[package.json] -indent_size = 2 - [md] trim_trailing_whitespace = false From da0cc6d8f192d872393254e4d8e1b2f85f6477d3 Mon Sep 17 00:00:00 2001 From: Martin Fournier Date: Fri, 17 Dec 2021 11:00:00 -0500 Subject: [PATCH 5/6] Fix #1974: Change default input to deferred The value does not change automatically now, there's a "Set" button in the popup to trigger the onColorChange event. --- src/ui/React/ThemeEditorModal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/React/ThemeEditorModal.tsx b/src/ui/React/ThemeEditorModal.tsx index 4937a5c23..b8b1f204d 100644 --- a/src/ui/React/ThemeEditorModal.tsx +++ b/src/ui/React/ThemeEditorModal.tsx @@ -40,6 +40,7 @@ function ColorEditor({ name, onColorChange, color, defaultColor }: IColorEditorP <> onColorChange(name, "#" + newColor.hex)} /> From 659211e1ff607bb5e063a72236207f39fc193489 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Fri, 17 Dec 2021 12:35:47 -0500 Subject: [PATCH 6/6] Prevent `ctrl+alt+j` from navigating to Jobs This is a browser hot key to open the Chrome Developer Tools. --- src/Sidebar/ui/SidebarRoot.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Sidebar/ui/SidebarRoot.tsx b/src/Sidebar/ui/SidebarRoot.tsx index 6f87cee3c..e11819923 100644 --- a/src/Sidebar/ui/SidebarRoot.tsx +++ b/src/Sidebar/ui/SidebarRoot.tsx @@ -291,7 +291,8 @@ export function SidebarRoot(props: IProps): React.ReactElement { } else if (event.keyCode === KEY.W && event.altKey) { event.preventDefault(); clickCity(); - } else if (event.keyCode === KEY.J && event.altKey) { + } else if (event.keyCode === KEY.J && event.altKey && !event.ctrlKey && !event.metaKey) { + // ctrl/cmd + alt + j is shortcut to open Chrome dev tools event.preventDefault(); clickJob(); } else if (event.keyCode === KEY.R && event.altKey) {