mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-08 08:43:53 +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_BN13",
|
||||
Condition: () =>
|
||||
Player.bitNodeN === 13 &&
|
||||
bitNodeFinishedState() &&
|
||||
!Player.augmentations.some((a) => a.name === AugmentationNames.StaneksGift1),
|
||||
},
|
||||
{ ID: "BYPASS", Condition: () => Player.exploits.includes(Exploit.Bypass) },
|
||||
{ ID: "PROTOTYPETAMPERING", Condition: () => Player.exploits.includes(Exploit.PrototypeTampering) },
|
||||
{ ID: "UNCLICKABLE", Condition: () => Player.exploits.includes(Exploit.Unclickable) },
|
||||
|
@ -24,10 +24,15 @@ interface IProps {
|
||||
rerender: () => void;
|
||||
}
|
||||
|
||||
const serversMap: { [key: string]: string } = {};
|
||||
|
||||
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 {
|
||||
setSelectedServer(event.target.value);
|
||||
serversMap[props.upg.name] = event.target.value;
|
||||
}
|
||||
|
||||
function purchase(): void {
|
||||
|
@ -114,6 +114,7 @@ const ITutorial: {
|
||||
|
||||
function iTutorialStart(): void {
|
||||
ITutorial.isRunning = true;
|
||||
ITutorial.currStep = iTutorialSteps.Start;
|
||||
}
|
||||
|
||||
// Go to the next step and evaluate it
|
||||
|
@ -507,16 +507,15 @@ export class Terminal implements ITerminal {
|
||||
if (s.hasAdminRights) {
|
||||
c = "YES";
|
||||
}
|
||||
let out = `${dashes}Root Access: ${c}${
|
||||
!isHacknet ? ", Required hacking skill: " + (s as any).requiredHackingSkill : ""
|
||||
}`;
|
||||
this.print(
|
||||
`${dashes}Root Access: ${c}${!isHacknet ? ", Required hacking skill: " + (s as any).requiredHackingSkill : ""}`,
|
||||
);
|
||||
|
||||
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);
|
||||
out += "\n" + " ";
|
||||
this.print(out);
|
||||
this.print(dashes + "RAM: " + numeralWrapper.formatRAM(s.maxRam));
|
||||
this.print(" ");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,11 +3,18 @@ import React from "react";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import Link from "@mui/material/Link";
|
||||
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 (
|
||||
<>
|
||||
<Typography variant="h4">Tutorial / Documentation</Typography>
|
||||
<Box m={2}>
|
||||
<Button onClick={props.reactivateTutorial}>Soft reset and Restart tutorial</Button>
|
||||
<Link
|
||||
color="primary"
|
||||
target="_blank"
|
||||
|
@ -9,7 +9,7 @@ import { onExport } from "../ExportBonus";
|
||||
import { LocationName } from "../Locations/data/LocationNames";
|
||||
import { Location } from "../Locations/Location";
|
||||
import { Locations } from "../Locations/Locations";
|
||||
import { ITutorial } from "../InteractiveTutorial";
|
||||
import { ITutorial, iTutorialStart } from "../InteractiveTutorial";
|
||||
import { InteractiveTutorialRoot } from "./InteractiveTutorial/InteractiveTutorialRoot";
|
||||
import { ITutorialEvents } from "./InteractiveTutorial/ITutorialEvents";
|
||||
|
||||
@ -349,7 +349,13 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme
|
||||
) : page === Page.Milestones ? (
|
||||
<MilestonesRoot player={player} />
|
||||
) : page === Page.Tutorial ? (
|
||||
<TutorialRoot />
|
||||
<TutorialRoot
|
||||
reactivateTutorial={() => {
|
||||
prestigeAugmentation();
|
||||
Router.toTerminal();
|
||||
iTutorialStart();
|
||||
}}
|
||||
/>
|
||||
) : page === Page.DevMenu ? (
|
||||
<DevMenuRoot player={player} engine={engine} router={Router} />
|
||||
) : page === Page.Gang ? (
|
||||
|
Loading…
Reference in New Issue
Block a user