few bugfix

This commit is contained in:
Olivier Gagnon 2021-12-13 18:44:52 -05:00
parent 7b8e486e3a
commit 1b42b51e5f
9 changed files with 106 additions and 11 deletions

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

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 ? (