mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-21 23:23:51 +01:00
few bugfix
This commit is contained in:
parent
7b8e486e3a
commit
1b42b51e5f
70
assets/Steam/achievements/real/BN13+.svg
Normal file
70
assets/Steam/achievements/real/BN13+.svg
Normal 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.733332 67.733335"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
|
||||||
|
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:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid824" />
|
||||||
|
</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:16.0737px;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="34.276661"
|
||||||
|
y="40.084541"
|
||||||
|
id="text8876"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="text-align:center;text-anchor:middle;fill:#00ff00;fill-opacity:1;stroke-width:0.215272"
|
||||||
|
x="34.276661"
|
||||||
|
y="40.084541"
|
||||||
|
id="tspan20241">BN13+</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
BIN
assets/Steam/achievements/tmp/real/BN13+.svg-.png
Normal file
BIN
assets/Steam/achievements/tmp/real/BN13+.svg-.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
assets/Steam/achievements/tmp/real/BN13+.svg.png
Normal file
BIN
assets/Steam/achievements/tmp/real/BN13+.svg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
@ -341,6 +341,13 @@ const achievements: Achievement[] = [
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{ ID: "CHALLENGE_BN12", Condition: () => Player.sourceFileLvl(12) >= 50 },
|
{ ID: "CHALLENGE_BN12", Condition: () => Player.sourceFileLvl(12) >= 50 },
|
||||||
|
{
|
||||||
|
ID: "CHALLENGE_BN13",
|
||||||
|
Condition: () =>
|
||||||
|
Player.bitNodeN === 13 &&
|
||||||
|
bitNodeFinishedState() &&
|
||||||
|
!Player.augmentations.some((a) => a.name === AugmentationNames.StaneksGift1),
|
||||||
|
},
|
||||||
{ ID: "BYPASS", Condition: () => Player.exploits.includes(Exploit.Bypass) },
|
{ ID: "BYPASS", Condition: () => Player.exploits.includes(Exploit.Bypass) },
|
||||||
{ ID: "PROTOTYPETAMPERING", Condition: () => Player.exploits.includes(Exploit.PrototypeTampering) },
|
{ ID: "PROTOTYPETAMPERING", Condition: () => Player.exploits.includes(Exploit.PrototypeTampering) },
|
||||||
{ ID: "UNCLICKABLE", Condition: () => Player.exploits.includes(Exploit.Unclickable) },
|
{ ID: "UNCLICKABLE", Condition: () => Player.exploits.includes(Exploit.Unclickable) },
|
||||||
|
@ -24,10 +24,15 @@ interface IProps {
|
|||||||
rerender: () => void;
|
rerender: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const serversMap: { [key: string]: string } = {};
|
||||||
|
|
||||||
export function HacknetUpgradeElem(props: IProps): React.ReactElement {
|
export function HacknetUpgradeElem(props: IProps): React.ReactElement {
|
||||||
const [selectedServer, setSelectedServer] = useState("ecorp");
|
const [selectedServer, setSelectedServer] = useState(
|
||||||
|
serversMap[props.upg.name] ? serversMap[props.upg.name] : "ecorp",
|
||||||
|
);
|
||||||
function changeTargetServer(event: SelectChangeEvent<string>): void {
|
function changeTargetServer(event: SelectChangeEvent<string>): void {
|
||||||
setSelectedServer(event.target.value);
|
setSelectedServer(event.target.value);
|
||||||
|
serversMap[props.upg.name] = event.target.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function purchase(): void {
|
function purchase(): void {
|
||||||
|
@ -114,6 +114,7 @@ const ITutorial: {
|
|||||||
|
|
||||||
function iTutorialStart(): void {
|
function iTutorialStart(): void {
|
||||||
ITutorial.isRunning = true;
|
ITutorial.isRunning = true;
|
||||||
|
ITutorial.currStep = iTutorialSteps.Start;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Go to the next step and evaluate it
|
// Go to the next step and evaluate it
|
||||||
|
@ -507,16 +507,15 @@ export class Terminal implements ITerminal {
|
|||||||
if (s.hasAdminRights) {
|
if (s.hasAdminRights) {
|
||||||
c = "YES";
|
c = "YES";
|
||||||
}
|
}
|
||||||
let out = `${dashes}Root Access: ${c}${
|
this.print(
|
||||||
!isHacknet ? ", Required hacking skill: " + (s as any).requiredHackingSkill : ""
|
`${dashes}Root Access: ${c}${!isHacknet ? ", Required hacking skill: " + (s as any).requiredHackingSkill : ""}`,
|
||||||
}`;
|
);
|
||||||
|
|
||||||
if (s.hasOwnProperty("numOpenPortsRequired")) {
|
if (s.hasOwnProperty("numOpenPortsRequired")) {
|
||||||
out += "\n" + dashes + "Number of open ports required to NUKE: " + (s as any).numOpenPortsRequired;
|
this.print(dashes + "Number of open ports required to NUKE: " + (s as any).numOpenPortsRequired);
|
||||||
}
|
}
|
||||||
out += "\n" + dashes + "RAM: " + numeralWrapper.formatRAM(s.maxRam);
|
this.print(dashes + "RAM: " + numeralWrapper.formatRAM(s.maxRam));
|
||||||
out += "\n" + " ";
|
this.print(" ");
|
||||||
this.print(out);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,11 +3,18 @@ import React from "react";
|
|||||||
import Typography from "@mui/material/Typography";
|
import Typography from "@mui/material/Typography";
|
||||||
import Link from "@mui/material/Link";
|
import Link from "@mui/material/Link";
|
||||||
import Box from "@mui/material/Box";
|
import Box from "@mui/material/Box";
|
||||||
export function TutorialRoot(): React.ReactElement {
|
import Button from "@mui/material/Button";
|
||||||
|
|
||||||
|
interface IProps {
|
||||||
|
reactivateTutorial: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TutorialRoot(props: IProps): React.ReactElement {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Typography variant="h4">Tutorial / Documentation</Typography>
|
<Typography variant="h4">Tutorial / Documentation</Typography>
|
||||||
<Box m={2}>
|
<Box m={2}>
|
||||||
|
<Button onClick={props.reactivateTutorial}>Soft reset and Restart tutorial</Button>
|
||||||
<Link
|
<Link
|
||||||
color="primary"
|
color="primary"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
|
@ -9,7 +9,7 @@ import { onExport } from "../ExportBonus";
|
|||||||
import { LocationName } from "../Locations/data/LocationNames";
|
import { LocationName } from "../Locations/data/LocationNames";
|
||||||
import { Location } from "../Locations/Location";
|
import { Location } from "../Locations/Location";
|
||||||
import { Locations } from "../Locations/Locations";
|
import { Locations } from "../Locations/Locations";
|
||||||
import { ITutorial } from "../InteractiveTutorial";
|
import { ITutorial, iTutorialStart } from "../InteractiveTutorial";
|
||||||
import { InteractiveTutorialRoot } from "./InteractiveTutorial/InteractiveTutorialRoot";
|
import { InteractiveTutorialRoot } from "./InteractiveTutorial/InteractiveTutorialRoot";
|
||||||
import { ITutorialEvents } from "./InteractiveTutorial/ITutorialEvents";
|
import { ITutorialEvents } from "./InteractiveTutorial/ITutorialEvents";
|
||||||
|
|
||||||
@ -349,7 +349,13 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme
|
|||||||
) : page === Page.Milestones ? (
|
) : page === Page.Milestones ? (
|
||||||
<MilestonesRoot player={player} />
|
<MilestonesRoot player={player} />
|
||||||
) : page === Page.Tutorial ? (
|
) : page === Page.Tutorial ? (
|
||||||
<TutorialRoot />
|
<TutorialRoot
|
||||||
|
reactivateTutorial={() => {
|
||||||
|
prestigeAugmentation();
|
||||||
|
Router.toTerminal();
|
||||||
|
iTutorialStart();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
) : page === Page.DevMenu ? (
|
) : page === Page.DevMenu ? (
|
||||||
<DevMenuRoot player={player} engine={engine} router={Router} />
|
<DevMenuRoot player={player} engine={engine} router={Router} />
|
||||||
) : page === Page.Gang ? (
|
) : page === Page.Gang ? (
|
||||||
|
Loading…
Reference in New Issue
Block a user