Merge pull request #4139 from Mughur/Sleeve

MISC: crime gains, sleeve gang augs and faq
This commit is contained in:
hydroflame 2022-09-23 12:32:15 -03:00 committed by GitHub
commit 2cce14a95b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 20 deletions

@ -2,12 +2,14 @@ import { FactionNames } from "../../Faction/data/FactionNames";
import { Sleeve } from "./Sleeve"; import { Sleeve } from "./Sleeve";
import { IPlayer } from "../IPlayer"; import { IPlayer } from "../IPlayer";
import { Player } from "../../Player";
import { Augmentation } from "../../Augmentation/Augmentation"; import { Augmentation } from "../../Augmentation/Augmentation";
import { StaticAugmentations } from "../../Augmentation/StaticAugmentations"; import { StaticAugmentations } from "../../Augmentation/StaticAugmentations";
import { Faction } from "../../Faction/Faction"; import { Faction } from "../../Faction/Faction";
import { Factions } from "../../Faction/Factions"; import { Factions } from "../../Faction/Factions";
import { Multipliers } from "../Multipliers"; import { Multipliers } from "../Multipliers";
import { getFactionAugmentationsFiltered } from "../../Faction/FactionHelpers";
export function findSleevePurchasableAugs(sleeve: Sleeve, p: IPlayer): Augmentation[] { export function findSleevePurchasableAugs(sleeve: Sleeve, p: IPlayer): Augmentation[] {
// You can only purchase Augmentations that are actually available from // You can only purchase Augmentations that are actually available from
@ -65,8 +67,9 @@ export function findSleevePurchasableAugs(sleeve: Sleeve, p: IPlayer): Augmentat
// has enough reputation for (since that gang offers all augs) // has enough reputation for (since that gang offers all augs)
if (p.inGang()) { if (p.inGang()) {
const fac = p.getGangFaction(); const fac = p.getGangFaction();
const gangAugs = getFactionAugmentationsFiltered(Player, fac);
for (const augName of Object.keys(StaticAugmentations)) { for (const augName of gangAugs) {
const aug = StaticAugmentations[augName]; const aug = StaticAugmentations[augName];
if (!isAvailableForSleeve(aug)) { if (!isAvailableForSleeve(aug)) {
continue; continue;

@ -71,15 +71,8 @@ export function FAQModal({ open, onClose }: IProps): React.ReactElement {
<br /> <br />
<Typography> <Typography>
Only one of your sleeves can work for a given company/faction a time. To clarify further, if you have two Only one of your sleeves can work for a given company/faction a time. To clarify further, if you have two
sleeves they can work for two different companies, but they cannot both work for the same company. sleeves they can work for two different companies/factions, but they cannot both work for the same
</Typography> company/faction.
<br />
<br />
<Typography variant="h4">Why did my Sleeve stop working?</Typography>
<br />
<Typography>
Sleeves are subject to the same time restrictions as you. This means that they automatically stop working at a
company after 8 hours, and stop working for a faction after 20 hours.
</Typography> </Typography>
<br /> <br />
<br /> <br />
@ -92,13 +85,16 @@ export function FAQModal({ open, onClose }: IProps): React.ReactElement {
<br /> <br />
<Typography> <Typography>
Certain Augmentations, like {FactionNames.Bladeburners}-specific ones and NeuroFlux Governor, are not Certain Augmentations, like {FactionNames.Bladeburners}-specific ones and NeuroFlux Governor, are not
available for sleeves. available for sleeves. You also need enough current reputation on some faction that offers that Augmentation.
</Typography> </Typography>
<br /> <br />
<br /> <br />
<Typography variant="h4">Do sleeves get reset when installing Augmentations or switching BitNodes?</Typography> <Typography variant="h4">Do sleeves get reset when installing Augmentations or switching BitNodes?</Typography>
<br /> <br />
<Typography>Sleeves are reset when switching BitNodes, but not when installing Augmentations.</Typography> <Typography>
Sleeves are reset when switching BitNodes, but not when installing Augmentations. However installing
Augmentations on a sleeve does reset their stats.
</Typography>
<br /> <br />
<br /> <br />
<Typography variant="h4">What is Memory?</Typography> <Typography variant="h4">What is Memory?</Typography>

@ -108,7 +108,7 @@ export class CrimeWork extends Work {
let karma = crime.karma; let karma = crime.karma;
const success = determineCrimeSuccess(player, crime.type); const success = determineCrimeSuccess(player, crime.type);
if (success) { if (success) {
player.gainMoney(gains.money * player.mults.crime_money, "crime"); player.gainMoney(gains.money, "crime");
player.numPeopleKilled += crime.kills; player.numPeopleKilled += crime.kills;
player.gainIntelligenceExp(gains.intExp); player.gainIntelligenceExp(gains.intExp);
} else { } else {

@ -1,17 +1,18 @@
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers"; import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
import { Crime } from "src/Crime/Crime"; import { Crime } from "src/Crime/Crime";
import { newWorkStats, scaleWorkStats, WorkStats } from "../WorkStats"; import { newWorkStats, scaleWorkStats, WorkStats } from "../WorkStats";
import { Player } from "../../Player";
export const calculateCrimeWorkStats = (crime: Crime): WorkStats => { export const calculateCrimeWorkStats = (crime: Crime): WorkStats => {
const gains = scaleWorkStats( const gains = scaleWorkStats(
newWorkStats({ newWorkStats({
money: crime.money, money: crime.money * Player.mults.crime_money,
hackExp: crime.hacking_exp * 2, hackExp: crime.hacking_exp * 2 * Player.mults.hacking_exp,
strExp: crime.strength_exp * 2, strExp: crime.strength_exp * 2 * Player.mults.strength_exp,
defExp: crime.defense_exp * 2, defExp: crime.defense_exp * 2 * Player.mults.defense_exp,
dexExp: crime.dexterity_exp * 2, dexExp: crime.dexterity_exp * 2 * Player.mults.dexterity_exp,
agiExp: crime.agility_exp * 2, agiExp: crime.agility_exp * 2 * Player.mults.agility_exp,
chaExp: crime.charisma_exp * 2, chaExp: crime.charisma_exp * 2 * Player.mults.charisma_exp,
intExp: crime.intelligence_exp * 2, intExp: crime.intelligence_exp * 2,
}), }),
BitNodeMultipliers.CrimeExpGain, BitNodeMultipliers.CrimeExpGain,