mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-10-23 10:13:13 +02:00
52a80ad236
* Make command `cd` without arguments an alias for `cd /` (#853) In most shells `cd` without arguments takes you to the home directory of the current user. I keep trying to do this due to muscle memory from working in terminals, so I figured I'd make it do something useful. There is no home directory in the game, but going to / is the closest thing we have, since that is the starting point for the user in the game. * Add new `backdoor` terminal command (#852) * Add the backdoor command to the terminal This command will perform a manual hack without rewarding money. It will be used for the story, mainly for faction hacking tests * Add tab completion for backdoor command * Add help text for backdoor command * Change condition syntax to be more consistent with others * Extract reused code block so it is always called after actions * Update documentation for new backdoor command Modified references to manual hack as it isn't for factions anymore * Remove extra parenthesis * Rename manuallyHacked to backdoorInstalled * Fix typo * Change faction test messages to use backdoor instad of hack * Rename more instances of manuallyHacked * fixed typo in helptext of darkweb buy (#858) * Fix typos and unify descriptions of augmentations (#859) Made an attempt to... - give all "+rep% company/faction" the same text - make all augmentations with a single effect use a single line to describe the effect - make all effects end with a period * Made Cashroot starter kit display its tooltip with the money formatted properly and in gold * fix typo in docs (#860) * Initial code for Casino Card Deck implementation * Casino Blackjack Implementation * Update some tools (eslint, typescript) * Blackjack code cleanup * Update README_contribution * Update ScriptHelpers.js (#861) expand error message * More augmentation typo fixes (#862) * Add Netscript function getCurrentScript (#856) Add netscript function that returns the current script. * Added milestones menu to guide new players. (#865) Milestone menu * fix typos in milestones (#866) Co-authored-by: sschmidTU <s.schmid@phonicscore.com> * Corrupt location title when backdoor is installed (#864) * Add corruptableText component * Corrupt location title if backdoor is installed * Formatting * Add helper to check value of backdoorInstalled Helper could be oneline but it would make it less readable * Fix some formatting * Add settings option to disable text effects * Import useState * getRunningScript (#867) * Replaced getCurrentScript with getRunningScript * Bunch of smaller fixes (#904) Fix #884 Fix #879 Fix #878 Fix #876 Fix #874 Fix #873 Fix #887 Fix #891 Fix #895 * rework the early servers to be more noob friendly (#903) * v0.51.6 Co-authored-by: Andreas Eriksson <2691182+AndreasTPC@users.noreply.github.com> Co-authored-by: Jack <jackdewinter1@gmail.com> Co-authored-by: Teun Pronk <5228255+Crownie88@users.noreply.github.com> Co-authored-by: Pimvgd <Pimvgd@gmail.com> Co-authored-by: Daniel Xie <daniel.xie@flockfreight.com> Co-authored-by: Simon <33069673+sschmidTU@users.noreply.github.com> Co-authored-by: sschmidTU <s.schmid@phonicscore.com>
80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
/**
|
|
* React Subcomponent for displaying a location's UI, when that location is a hospital
|
|
*
|
|
* This subcomponent renders all of the buttons for hospital options
|
|
*/
|
|
import * as React from "react";
|
|
|
|
import { CONSTANTS } from "../../Constants";
|
|
import { IPlayer } from "../../PersonObjects/IPlayer";
|
|
import { getHospitalizationCost } from "../../Hospital/Hospital";
|
|
|
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
|
import { AutoupdatingStdButton } from "../../ui/React/AutoupdatingStdButton";
|
|
import { Money } from "../../ui/React/Money";
|
|
|
|
import { dialogBoxCreate } from "../../../utils/DialogBox";
|
|
|
|
type IProps = {
|
|
p: IPlayer;
|
|
}
|
|
|
|
type IState = {
|
|
currHp: number;
|
|
}
|
|
|
|
export class HospitalLocation extends React.Component<IProps, IState> {
|
|
/**
|
|
* Stores button styling that sets them all to block display
|
|
*/
|
|
btnStyle: object;
|
|
|
|
constructor(props: IProps) {
|
|
super(props);
|
|
|
|
this.btnStyle = { display: "block" };
|
|
|
|
this.getCost = this.getCost.bind(this);
|
|
this.getHealed = this.getHealed.bind(this);
|
|
|
|
this.state = {
|
|
currHp: this.props.p.hp,
|
|
}
|
|
}
|
|
|
|
getCost(): number {
|
|
return getHospitalizationCost(this.props.p);
|
|
}
|
|
|
|
getHealed(e: React.MouseEvent<HTMLElement>): void {
|
|
if (!e.isTrusted) { return; }
|
|
|
|
if (this.props.p.hp < 0) { this.props.p.hp = 0; }
|
|
if (this.props.p.hp >= this.props.p.max_hp) { return; }
|
|
|
|
const cost = this.getCost();
|
|
this.props.p.loseMoney(cost);
|
|
this.props.p.hp = this.props.p.max_hp;
|
|
this.props.p.recordMoneySource(-1 * cost, 'hospitalization');
|
|
|
|
// This just forces a re-render to update the cost
|
|
this.setState({
|
|
currHp: this.props.p.hp,
|
|
});
|
|
|
|
dialogBoxCreate(<>You were healed to full health! The hospital billed you for {Money(cost)}</>);
|
|
}
|
|
|
|
render() {
|
|
const cost = this.getCost();
|
|
|
|
return (
|
|
<AutoupdatingStdButton
|
|
onClick={this.getHealed}
|
|
style={this.btnStyle}
|
|
text={<>Get treatment for wounds - {Money(cost)}</>}
|
|
/>
|
|
)
|
|
}
|
|
}
|