From e6b973d04e9e58784b6b4406b2e5e60a1e3f5d7e Mon Sep 17 00:00:00 2001 From: CatLover <152669316+catloversg@users.noreply.github.com> Date: Wed, 11 Dec 2024 20:57:25 +0700 Subject: [PATCH] DOCUMENTATION: Improve Infiltration docs --- src/Documentation/doc/basic/infiltration.md | 45 ++++++++++++++++----- src/Infiltration/formulas/victory.ts | 20 ++++++--- src/Infiltration/ui/Intro.tsx | 2 +- 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/src/Documentation/doc/basic/infiltration.md b/src/Documentation/doc/basic/infiltration.md index ac4006394c..9cd8291676 100644 --- a/src/Documentation/doc/basic/infiltration.md +++ b/src/Documentation/doc/basic/infiltration.md @@ -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 diff --git a/src/Infiltration/formulas/victory.ts b/src/Infiltration/formulas/victory.ts index f5041c1371..065b6eeebd 100644 --- a/src/Infiltration/formulas/victory.ts +++ b/src/Infiltration/formulas/victory.ts @@ -4,12 +4,16 @@ 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) * @@ -17,12 +21,16 @@ export function calculateSellInformationCashReward(reward: number, maxLevel: num ); } -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) * @@ -30,12 +38,12 @@ export function calculateTradeInformationRepReward(reward: number, maxLevel: num ); } -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) diff --git a/src/Infiltration/ui/Intro.tsx b/src/Infiltration/ui/Intro.tsx index 8826687b73..a9c08c501e 100644 --- a/src/Infiltration/ui/Intro.tsx +++ b/src/Infiltration/ui/Intro.tsx @@ -68,7 +68,7 @@ export function Intro(props: IProps): React.ReactElement { - Maximum Level: + Maximum clearance level: {props.MaxLevel}