import { IPlayer } from "../../PersonObjects/IPlayer"; import { IEngine } from "../../IEngine"; import React from "react"; import { StdButton } from "../../ui/React/StdButton"; import Grid from "@material-ui/core/Grid"; interface IProps { Player: IPlayer; Engine: IEngine; Location: string; Difficulty: number; MaxLevel: number; start: () => void; cancel: () => void; } function arrowPart(color: string, length: number): JSX.Element { let arrow = ""; if (length <= 0) length = 0; else if (length > 13) length = 13; else { length--; arrow = ">"; } return ( {"=".repeat(length)} {arrow} {" ".repeat(13 - arrow.length - length)} ); } function coloredArrow(difficulty: number): JSX.Element { if (difficulty === 0) { return ( {">"} {" ".repeat(38)} ); } else { return ( <> {arrowPart("white", difficulty * 13)} {arrowPart("orange", (difficulty - 1) * 13)} {arrowPart("red", (difficulty - 2) * 13)} ); } } export function Intro(props: IProps): React.ReactElement { return ( <>

Infiltrating {props.Location}

Maximum level: {props.MaxLevel}

[{coloredArrow(props.Difficulty)}]
{` ^            ^            ^           ^`}
{` Trivial    Normal        Hard    Impossible`}

Infiltration is a series of short minigames that get progressively harder. You take damage for failing them. Reaching the maximum level rewards you with intel you can trade for money or reputation.


The minigames you play are randomly selected. It might take you few tries to get used to them.


No game require use of the mouse.


Spacebar is the default action/confirm button.


Everything that uses arrow can also use WASD


Sometimes the rest of the keyboard is used.

); }