bitburner-src/src/PersonObjects/Sleeve/ui/StatsElement.tsx

95 lines
3.3 KiB
TypeScript
Raw Normal View History

import { Sleeve } from "../Sleeve";
import { numeralWrapper } from "../../../ui/numeralFormat";
import * as React from "react";
import { convertTimeMsToTimeElapsedString } from "../../../../utils/StringHelperFunctions";
import { CONSTANTS } from "../../../Constants";
interface IProps {
sleeve: Sleeve;
}
export function StatsElement(props: IProps): React.ReactElement {
2021-09-05 01:09:30 +02:00
let style = {};
style = { textAlign: "right" };
return (
<>
<table>
<tbody>
<tr>
<td className="character-hp-cell">HP: </td>
<td className="character-hp-cell" style={style}>
{numeralWrapper.formatHp(props.sleeve.hp)} / {numeralWrapper.formatHp(props.sleeve.max_hp)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td>City: </td>
<td style={style}>{props.sleeve.city}</td>
2021-09-05 01:09:30 +02:00
</tr>
<tr>
<td className="character-hack-cell">Hacking: </td>
<td className="character-hack-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.hacking_skill)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-combat-cell">Strength: </td>
<td className="character-combat-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.strength)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-combat-cell">Defense: </td>
<td className="character-combat-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.defense)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-combat-cell">Dexterity: </td>
<td className="character-combat-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.dexterity)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-combat-cell">Agility: </td>
<td className="character-combat-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.agility)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-cha-cell">Charisma: </td>
<td className="character-cha-cell" style={style}>
{numeralWrapper.formatSkill(props.sleeve.charisma)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-int-cell">Shock: </td>
<td className="character-int-cell" style={style}>
{numeralWrapper.formatSleeveShock(100 - props.sleeve.shock)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-int-cell">Sync: </td>
<td className="character-int-cell" style={style}>
{numeralWrapper.formatSleeveSynchro(props.sleeve.sync)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
<tr>
<td className="character-int-cell">Memory: </td>
<td className="character-int-cell" style={style}>
{numeralWrapper.formatSleeveMemory(props.sleeve.memory)}
2021-09-05 01:09:30 +02:00
</td>
</tr>
{props.sleeve.storedCycles > 15 && (
<tr>
<td>Bonus time: </td>
<td style={style}>
{convertTimeMsToTimeElapsedString((props.sleeve.storedCycles / (1000 / CONSTANTS._idleSpeed)) * 1000)}
</td>
</tr>
)}
2021-09-05 01:09:30 +02:00
</tbody>
</table>
</>
);
}