diff --git a/src/Infiltration/ui/Game.tsx b/src/Infiltration/ui/Game.tsx index 855d80961..eb64cef43 100644 --- a/src/Infiltration/ui/Game.tsx +++ b/src/Infiltration/ui/Game.tsx @@ -1,6 +1,6 @@ import { Button, Container, Paper, Typography } from "@mui/material"; import React, { useCallback, useState } from "react"; -import { AugmentationName, FactionName } from "@enums"; +import { FactionName } from "@enums"; import { Router } from "../../ui/GameRoot"; import { Page } from "../../ui/Router"; import { Player } from "@player"; @@ -14,6 +14,7 @@ import { MinesweeperGame } from "./MinesweeperGame"; import { SlashGame } from "./SlashGame"; import { Victory } from "./Victory"; import { WireCuttingGame } from "./WireCuttingGame"; +import { calculateDamageAfterFailingInfiltration } from "../utils"; type GameProps = { StartingDifficulty: number; @@ -94,7 +95,7 @@ export function Game(props: GameProps): React.ReactElement { // it's clear they're not meant to const damage = options?.automated ? Player.hp.current - : props.StartingDifficulty * 3 * (Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 0.5 : 1); + : calculateDamageAfterFailingInfiltration(props.StartingDifficulty); if (Player.takeDamage(damage)) { Router.toPage(Page.City); return; diff --git a/src/Infiltration/ui/InfiltrationRoot.tsx b/src/Infiltration/ui/InfiltrationRoot.tsx index 049c1117b..302c9e531 100644 --- a/src/Infiltration/ui/InfiltrationRoot.tsx +++ b/src/Infiltration/ui/InfiltrationRoot.tsx @@ -33,6 +33,7 @@ export function InfiltrationRoot(props: IProps): React.ReactElement { ) : ( setStart(true)} diff --git a/src/Infiltration/ui/Intro.tsx b/src/Infiltration/ui/Intro.tsx index aab3843d3..1317640bf 100644 --- a/src/Infiltration/ui/Intro.tsx +++ b/src/Infiltration/ui/Intro.tsx @@ -3,10 +3,13 @@ import { Box, Button, Container, Paper, Tooltip, Typography } from "@mui/materia import React from "react"; import { Location } from "../../Locations/Location"; import { Settings } from "../../Settings/Settings"; -import { formatNumberNoSuffix } from "../../ui/formatNumber"; +import { formatHp, formatNumberNoSuffix } from "../../ui/formatNumber"; +import { Player } from "@player"; +import { calculateDamageAfterFailingInfiltration } from "../utils"; interface IProps { Location: Location; + StartingDifficulty: number; Difficulty: number; MaxLevel: number; start: () => void; @@ -56,6 +59,14 @@ export function Intro(props: IProps): React.ReactElement { Infiltrating {props.Location.name} + + + HP: {`${formatHp(Player.hp.current)} / ${formatHp(Player.hp.max)}`} + + + Lose {calculateDamageAfterFailingInfiltration(props.StartingDifficulty)} HP for each failure + + Maximum Level: {props.MaxLevel} diff --git a/src/Infiltration/utils.ts b/src/Infiltration/utils.ts index 1bdcc2bdc..724e3a585 100644 --- a/src/Infiltration/utils.ts +++ b/src/Infiltration/utils.ts @@ -1,4 +1,6 @@ import { KEY } from "../utils/helpers/keyCodes"; +import { Player } from "@player"; +import { AugmentationName } from "@enums"; export function random(min: number, max: number): number { return Math.random() * (max - min) + min; @@ -27,3 +29,7 @@ export function getArrow(event: KeyboardEvent): Arrow | undefined { return rightArrowSymbol; } } + +export function calculateDamageAfterFailingInfiltration(startingDifficulty: number): number { + return startingDifficulty * 3 * (Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 0.5 : 1); +}