bitburner-src/src/Bladeburner/ui/BlackOpList.tsx

43 lines
1.2 KiB
TypeScript
Raw Normal View History

2021-08-19 07:45:26 +02:00
import React from "react";
2021-06-18 22:22:12 +02:00
import { BlackOperations } from "../BlackOperations";
import { BlackOperation } from "../BlackOperation";
import { BlackOpElem } from "./BlackOpElem";
import { IBladeburner } from "../IBladeburner";
2021-08-16 07:35:05 +02:00
import { IPlayer } from "../../PersonObjects/IPlayer";
2021-06-18 22:22:12 +02:00
interface IProps {
2021-09-05 01:09:30 +02:00
bladeburner: IBladeburner;
player: IPlayer;
2021-06-18 22:22:12 +02:00
}
export function BlackOpList(props: IProps): React.ReactElement {
2021-09-05 01:09:30 +02:00
let blackops: BlackOperation[] = [];
2022-01-16 01:45:03 +01:00
for (const blackopName of Object.keys(BlackOperations)) {
2021-09-05 01:09:30 +02:00
if (BlackOperations.hasOwnProperty(blackopName)) {
blackops.push(BlackOperations[blackopName]);
2021-06-18 22:22:12 +02:00
}
2021-09-05 01:09:30 +02:00
}
blackops.sort(function (a, b) {
return a.reqdRank - b.reqdRank;
});
2021-06-18 22:22:12 +02:00
2021-09-05 01:09:30 +02:00
blackops = blackops.filter(
2021-09-22 18:56:55 +02:00
(blackop: BlackOperation, i: number) =>
!(
2021-09-05 01:09:30 +02:00
props.bladeburner.blackops[blackops[i].name] == null &&
i !== 0 &&
props.bladeburner.blackops[blackops[i - 1].name] == null
),
);
2021-06-18 22:22:12 +02:00
2021-09-05 01:09:30 +02:00
blackops = blackops.reverse();
2021-06-18 22:22:12 +02:00
2021-09-05 01:09:30 +02:00
return (
<>
{blackops.map((blackop: BlackOperation) => (
2021-09-27 23:09:48 +02:00
<BlackOpElem key={blackop.name} bladeburner={props.bladeburner} action={blackop} player={props.player} />
2021-09-05 01:09:30 +02:00
))}
</>
);
}