mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-09-21 13:20:56 +02:00
fix augmentation side effect for bribe game
fix double tick for wire cutting game
This commit is contained in:
parent
a0d845ffae
commit
d94f391dc6
@ -50,9 +50,23 @@ export function BribeGame(props: IMinigameProps): React.ReactElement {
|
|||||||
const hasAugment = Player.hasAugmentation(AugmentationNames.AmuletOfPersuasion, true);
|
const hasAugment = Player.hasAugmentation(AugmentationNames.AmuletOfPersuasion, true);
|
||||||
|
|
||||||
if (hasAugment) {
|
if (hasAugment) {
|
||||||
upColor = correctIndex < index ? upColor : disabledColor;
|
const upIndex = index + 1 >= choices.length ? 0 : index + 1;
|
||||||
downColor = correctIndex > index ? upColor : disabledColor;
|
let upDistance = correctIndex - upIndex;
|
||||||
choiceColor = correctIndex == index ? Settings.theme.success : disabledColor;
|
if (upIndex > correctIndex) {
|
||||||
|
upDistance = choices.length - 1 - upIndex + correctIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
const downIndex = index - 1 < 0 ? choices.length - 1 : index - 1;
|
||||||
|
let downDistance = downIndex - correctIndex;
|
||||||
|
if (downIndex < correctIndex) {
|
||||||
|
downDistance = downIndex + choices.length - 1 - correctIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
const onCorrectIndex = correctIndex == index;
|
||||||
|
|
||||||
|
upColor = upDistance <= downDistance && !onCorrectIndex ? upColor : disabledColor;
|
||||||
|
downColor = upDistance >= downDistance && !onCorrectIndex ? downColor : disabledColor;
|
||||||
|
choiceColor = onCorrectIndex ? defaultColor : disabledColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
function press(this: Document, event: KeyboardEvent): void {
|
function press(this: Document, event: KeyboardEvent): void {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import Grid from "@mui/material/Grid";
|
import Grid from "@mui/material/Grid";
|
||||||
import Typography from "@mui/material/Typography";
|
import Typography from "@mui/material/Typography";
|
||||||
import { IMinigameProps } from "./IMinigameProps";
|
import { IMinigameProps } from "./IMinigameProps";
|
||||||
@ -70,6 +70,21 @@ export function WireCuttingGame(props: IMinigameProps): React.ReactElement {
|
|||||||
return questions.some((q) => q.shouldCut(wires[wireNum - 1], wireNum - 1));
|
return questions.some((q) => q.shouldCut(wires[wireNum - 1], wireNum - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// check if we won
|
||||||
|
const wiresToBeCut = [];
|
||||||
|
for (let j = 0; j < wires.length; j++) {
|
||||||
|
let shouldBeCut = false;
|
||||||
|
for (let i = 0; i < questions.length; i++) {
|
||||||
|
shouldBeCut = shouldBeCut || questions[i].shouldCut(wires[j], j);
|
||||||
|
}
|
||||||
|
wiresToBeCut.push(shouldBeCut);
|
||||||
|
}
|
||||||
|
if (wiresToBeCut.every((b, i) => b === cutWires[i])) {
|
||||||
|
props.onSuccess();
|
||||||
|
}
|
||||||
|
}, [cutWires]);
|
||||||
|
|
||||||
function press(this: Document, event: KeyboardEvent): void {
|
function press(this: Document, event: KeyboardEvent): void {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const wireNum = parseInt(event.key);
|
const wireNum = parseInt(event.key);
|
||||||
@ -82,19 +97,6 @@ export function WireCuttingGame(props: IMinigameProps): React.ReactElement {
|
|||||||
props.onFailure();
|
props.onFailure();
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if we won
|
|
||||||
const wiresToBeCut = [];
|
|
||||||
for (let j = 0; j < wires.length; j++) {
|
|
||||||
let shouldBeCut = false;
|
|
||||||
for (let i = 0; i < questions.length; i++) {
|
|
||||||
shouldBeCut = shouldBeCut || questions[i].shouldCut(wires[j], j);
|
|
||||||
}
|
|
||||||
wiresToBeCut.push(shouldBeCut);
|
|
||||||
}
|
|
||||||
if (wiresToBeCut.every((b, i) => b === next[i])) {
|
|
||||||
props.onSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
return next;
|
return next;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user