Skip to content

Commit

Permalink
DOCUMENTATION: Improve Infiltration docs
Browse files Browse the repository at this point in the history
  • Loading branch information
catloversg committed Dec 11, 2024
1 parent bf095ea commit e6b973d
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 16 deletions.
45 changes: 36 additions & 9 deletions src/Documentation/doc/basic/infiltration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,46 @@ To try and infiltrate a [Company](companies.md), visit a [Company](companies.md)
There will be an option that says 'Infiltrate [Company](companies.md)'.

When infiltrating a [Company](companies.md), you will be presented with short active challenges.
None of the challenges use the mouse.

The difficulty at the top lowers with better combat stats and charisma.
It is not recommended to attempt infiltrations above mid-normal.
- None of the challenges uses the mouse.
- Most challenges use spacebar as the `action`.
- Some challenges use WASD or arrows interchangeably.
- A few others use the rest of the keyboard.

The `maximum level` is the number of challenges you will need to pass to receive the infiltration reward.
Each location that can be infiltrated has 3 important values:

Every time you fail an infiltration challenge, you will take damage based on the difficulty of the infiltration.
If you are reduced to `0` hp or below, the infiltration will immediately end.
- Difficulty: It affects how difficult the challenges are. This value depends on your "common" stats (combat stats and charisma). It's reduced when you improve your stats. It is not recommended to attempt infiltrations when the difficulty is above normal.
- Max clearance level: It is the number of challenges you need to pass to receive the infiltration reward.
- Starting security level: It affects the difficulty and rewards.

- Most use spacebar as `action`
- Some use WASD or arrows interchangeably.
- A few others use the rest of the keyboard.
Every time you successfully complete an infiltration challenge and go to the higher clearance level, the "effective" difficulty is increased. The difficulty value in the introduction screen is the initial value for the first clearance level. When you go to higher levels, this value will be increased, so the challenges will become harder.

Every time you fail an infiltration challenge, you will take damage based on the starting security level of the location.
If your HP is reduced to 0, you will be hospitalized, and the infiltration will immediately end.

Infiltration rewards depend on:

- Max clearance level. Higher max clearance level = Higher rewards.
- Starting security level. Higher starting security level = Higher rewards.
- Your stats' **multipliers** (**NOT** skill levels). **Lower** multipliers = Higher rewards.
- "SoA - phyzical WKS harmonizer" augmentation.
- An endgame stat [1]. You will know what it is when you reach the endgame.
- An endgame multiplier [2]. You will know what it is when you reach the endgame.

The most common misconception of infiltration rewards is that they depend on skill levels. This is wrong. The rewards do **NOT** depend on skill levels. They depend on stats' multipliers. When you install augmentations that improve stats' multipliers, the rewards are reduced.

In some special cases, you may observe this behavior: When you install augmentations or soft reset, your skill levels drop to 1 and infiltration rewards are increased. Some players mistakenly think that this is why infiltrations should be done with low stats to optimize the rewards. This is totally wrong. Again, infiltration rewards do **NOT** depend on skill levels. In these special cases, the rewards are increased because stats' **multipliers** are reduced due to losing bonuses from other mechanics (IPvGO and some endgame mechanics).

Raising raw values of stats (skill levels) is one of the proper ways to optimize the infiltration. Having higher stats does not increase the rewards, but it allows you to infiltrate harder locations (higher max clearance level, higher starting security level, easier to complete more infiltrations in the same time frame, etc.).

Proper ways to optimize the infiltration (with the same [2] and the same stats' multipliers) are:

- Raise stats. Do NOT purposely keep them low. Having higher stats does not increase the rewards, but it allows you to infiltrate harder locations. Training at gyms, committing crimes, and working for companies/factions are good and easy ways to raise stats without changing stats' multipliers.
- Infiltrate harder locations after getting higher stats (higher max clearance level, higher starting security level, easier to complete more infiltrations in the same time frame, etc.).
- Increase [1].
- Buy SoA augmentations (especially "SoA - phyzical WKS harmonizer").

## Challenge list

### Attack the distracted sentinel

Expand Down
20 changes: 14 additions & 6 deletions src/Infiltration/formulas/victory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,46 @@ import { LocationsMetadata } from "../../Locations/data/LocationsMetadata";
import { AugmentationName } from "@enums";
import { Faction } from "../../Faction/Faction";

export function calculateSellInformationCashReward(reward: number, maxLevel: number, difficulty: number): number {
export function calculateSellInformationCashReward(
reward: number,
maxLevel: number,
startingSecurityLevel: number,
): number {
const levelBonus = maxLevel * Math.pow(1.01, maxLevel);

return (
Math.pow(reward + 1, 2) *
Math.pow(difficulty, 3) *
Math.pow(startingSecurityLevel, 3) *
3e3 *
levelBonus *
(Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 1.5 : 1) *
currentNodeMults.InfiltrationMoney
);
}

export function calculateTradeInformationRepReward(reward: number, maxLevel: number, difficulty: number): number {
export function calculateTradeInformationRepReward(
reward: number,
maxLevel: number,
startingSecurityLevel: number,
): number {
const levelBonus = maxLevel * Math.pow(1.01, maxLevel);

return (
Math.pow(reward + 1, 1.1) *
Math.pow(difficulty, 1.2) *
Math.pow(startingSecurityLevel, 1.2) *
30 *
levelBonus *
(Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 1.5 : 1) *
currentNodeMults.InfiltrationRep
);
}

export function calculateInfiltratorsRepReward(faction: Faction, difficulty: number): number {
export function calculateInfiltratorsRepReward(faction: Faction, startingSecurityLevel: number): number {
const maxStartingSecurityLevel = LocationsMetadata.reduce((acc, data): number => {
const startingSecurityLevel = data.infiltrationData?.startingSecurityLevel || 0;
return acc > startingSecurityLevel ? acc : startingSecurityLevel;
}, 0);
const baseRepGain = (difficulty / maxStartingSecurityLevel) * 5000;
const baseRepGain = (startingSecurityLevel / maxStartingSecurityLevel) * 5000;

return (
baseRepGain * (Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 2 : 1) * (1 + faction.favor / 100)
Expand Down
2 changes: 1 addition & 1 deletion src/Infiltration/ui/Intro.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export function Intro(props: IProps): React.ReactElement {
</Typography>

<Typography variant="h6">
<b>Maximum Level: </b>
<b>Maximum clearance level: </b>
{props.MaxLevel}
</Typography>
<Typography
Expand Down

0 comments on commit e6b973d

Please sign in to comment.