DNET: Player feedback (#2545)

This commit is contained in:
Michael Ficocelli
2026-03-19 21:07:43 -07:00
committed by GitHub
parent 73b7921ef0
commit 1b6b07faae
38 changed files with 248 additions and 108 deletions

View File

@@ -1,7 +1,6 @@
import { Player } from "@player";
import type { DarknetServerData, Person as IPerson } from "@nsdefs";
import { AugmentationName, CompletedProgramName, LiteratureName } from "@enums";
import { generateContract } from "../../CodingContract/ContractGenerator";
import {
commonPasswordDictionary,
notebookFileNames,
@@ -20,7 +19,7 @@ import { populateDarknet } from "../controllers/NetworkGenerator";
import { getDarknetServer } from "../utils/darknetServerUtils";
import {
getAllMovableDarknetServers,
getBackdooredDarkwebServers,
getBackdooredDarknetServers,
getNearbyNonEmptyPasswordServer,
getStasisLinkServers,
} from "../utils/darknetNetworkUtils";
@@ -41,14 +40,9 @@ export const handleSuccessfulAuth = (server: DarknetServer, threads: number, pid
server.hasAdminRights = true;
addClue(server);
const cctChance = Math.min(0.12, 0.02 * (server.difficulty - 1));
if (Math.random() < cctChance) {
generateContract({ server: server.hostname });
}
const chance = 0.1 * 1.05 ** server?.difficulty;
if (Math.random() < chance && !isLabyrinthServer(server.hostname)) {
addCacheToServer(server);
addCacheToServer(server, false);
}
};
@@ -110,7 +104,7 @@ export const calculateAuthenticationTime = (
};
export const getBackdoorAuthTimeDebuff = () => {
const backdooredServerCount = getBackdooredDarkwebServers().length;
const backdooredServerCount = getBackdooredDarknetServers().length;
const serverCount = getAllMovableDarknetServers().filter((s) => s.hasAdminRights).length;
const safeBackdoors = Math.max(serverCount / (NET_WIDTH * 3), 2);
const backdoorSurplus = Math.max(0, backdooredServerCount - safeBackdoors);
@@ -132,7 +126,7 @@ export const getMultiplierFromCharisma = (scalar = 1) => {
export const calculatePasswordAttemptChaGain = (server: DarknetServerData, threads: number = 1, success = false) => {
const baseXpGain = 3;
const difficultyBase = 0.8;
const difficultyBase = 1.1;
const xpGain = baseXpGain + difficultyBase ** server.difficulty;
const alreadyHackedMult = server.hasAdminRights ? 0.2 : 1;
const successMult = success && !server.hasAdminRights ? 10 : 1;
@@ -264,7 +258,7 @@ export const setStasisLink = (ctx: NetscriptContext, server: DarknetServer, shou
export const chargeServerMigration = (server: DarknetServer, threads = 1) => {
const chargeIncrease = ((Player.skills.charisma + 500) / (server.difficulty * 200 + 1000)) * 0.01 * threads;
const xpGained = Player.mults.charisma_exp * 50 * ((200 + Player.skills.charisma) / 200) * threads;
const xpGained = Player.mults.charisma_exp * 5 * threads * server.difficulty;
Player.gainCharismaExp(xpGained);
const currentCharge = DarknetState.migrationInductionServers.get(server.hostname) ?? 0;
const newCharge = Math.min(currentCharge + chargeIncrease, 1);
@@ -292,4 +286,9 @@ export const getDarkscapeNavigator = () => {
populateDarknet();
};
export const cctCooldownReached = () => {
const timeSinceLastCCT = new Date().getTime() - DarknetState.lastCctRewardTime.getTime();
return timeSinceLastCCT > 10 * 60 * 1000;
};
export const hasFullDarknetAccess = (): boolean => Player.bitNodeN === 15 || Player.activeSourceFileLvl(15) > 0;