mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-05-04 06:37:49 +02:00
DNET: Player feedback (#2545)
This commit is contained in:
committed by
GitHub
parent
73b7921ef0
commit
1b6b07faae
@@ -30,6 +30,7 @@ export const calculateEntropy = (stacks = 1): Multipliers => {
|
||||
|
||||
crime_money: Player.mults.crime_money * nerf,
|
||||
crime_success: Player.mults.crime_success * nerf,
|
||||
dnet_money: Player.mults.dnet_money * nerf,
|
||||
|
||||
hacknet_node_money: Player.mults.hacknet_node_money * nerf,
|
||||
hacknet_node_purchase_cost: Player.mults.hacknet_node_purchase_cost / nerf,
|
||||
|
||||
@@ -25,6 +25,7 @@ export interface Multipliers {
|
||||
work_money: number;
|
||||
crime_success: number;
|
||||
crime_money: number;
|
||||
dnet_money: number;
|
||||
bladeburner_max_stamina: number;
|
||||
bladeburner_stamina_gain: number;
|
||||
bladeburner_analysis: number;
|
||||
@@ -59,6 +60,7 @@ export const defaultMultipliers = (): Multipliers => {
|
||||
work_money: 1,
|
||||
crime_success: 1,
|
||||
crime_money: 1,
|
||||
dnet_money: 1,
|
||||
bladeburner_max_stamina: 1,
|
||||
bladeburner_stamina_gain: 1,
|
||||
bladeburner_analysis: 1,
|
||||
@@ -94,6 +96,7 @@ export const mergeMultipliers = (m0: Multipliers, m1: Multipliers): Multipliers
|
||||
work_money: m0.work_money * m1.work_money,
|
||||
crime_success: m0.crime_success * m1.crime_success,
|
||||
crime_money: m0.crime_money * m1.crime_money,
|
||||
dnet_money: m0.dnet_money * m1.dnet_money,
|
||||
bladeburner_max_stamina: m0.bladeburner_max_stamina * m1.bladeburner_max_stamina,
|
||||
bladeburner_stamina_gain: m0.bladeburner_stamina_gain * m1.bladeburner_stamina_gain,
|
||||
bladeburner_analysis: m0.bladeburner_analysis * m1.bladeburner_analysis,
|
||||
@@ -129,6 +132,7 @@ export const scaleMultipliers = (m0: Multipliers, v: number): Multipliers => {
|
||||
work_money: (m0.work_money - 1) * v + 1,
|
||||
crime_success: (m0.crime_success - 1) * v + 1,
|
||||
crime_money: (m0.crime_money - 1) * v + 1,
|
||||
dnet_money: (m0.dnet_money - 1) * v + 1,
|
||||
bladeburner_max_stamina: (m0.bladeburner_max_stamina - 1) * v + 1,
|
||||
bladeburner_stamina_gain: (m0.bladeburner_stamina_gain - 1) * v + 1,
|
||||
bladeburner_analysis: (m0.bladeburner_analysis - 1) * v + 1,
|
||||
|
||||
@@ -499,7 +499,8 @@ export function queueAugmentation(this: PlayerObject, name: AugmentationName): v
|
||||
export function gainCodingContractReward(
|
||||
this: PlayerObject,
|
||||
reward: ICodingContractReward | null,
|
||||
difficulty = 1,
|
||||
difficulty: number,
|
||||
rewardScaling: number,
|
||||
): string {
|
||||
if (!reward) {
|
||||
return `No reward for this contract`;
|
||||
@@ -509,20 +510,20 @@ export function gainCodingContractReward(
|
||||
case CodingContractRewardType.FactionReputation: {
|
||||
const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);
|
||||
if (factionsThatAllowHacking.length === 0) {
|
||||
return this.gainCodingContractReward({ type: CodingContractRewardType.Money }, difficulty);
|
||||
return this.gainCodingContractReward({ type: CodingContractRewardType.Money }, difficulty, rewardScaling);
|
||||
}
|
||||
const randomFaction = factionsThatAllowHacking[getRandomIntInclusive(0, factionsThatAllowHacking.length - 1)];
|
||||
const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;
|
||||
const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty * rewardScaling;
|
||||
Factions[randomFaction].playerReputation += repGain;
|
||||
return `Gained ${repGain} faction reputation for ${randomFaction}`;
|
||||
}
|
||||
case CodingContractRewardType.FactionReputationAll: {
|
||||
const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);
|
||||
if (factionsThatAllowHacking.length === 0) {
|
||||
return this.gainCodingContractReward({ type: CodingContractRewardType.Money }, difficulty);
|
||||
return this.gainCodingContractReward({ type: CodingContractRewardType.Money }, difficulty, rewardScaling);
|
||||
}
|
||||
|
||||
const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;
|
||||
const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty * rewardScaling;
|
||||
const gainPerFaction = Math.floor(totalGain / factionsThatAllowHacking.length);
|
||||
for (const facName of factionsThatAllowHacking) {
|
||||
Factions[facName].playerReputation += gainPerFaction;
|
||||
@@ -542,15 +543,17 @@ export function gainCodingContractReward(
|
||||
: CodingContractRewardType.FactionReputationAll,
|
||||
},
|
||||
difficulty,
|
||||
rewardScaling,
|
||||
);
|
||||
}
|
||||
const randomCompany = companies[getRandomIntInclusive(0, companies.length - 1)];
|
||||
const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty;
|
||||
const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty * rewardScaling;
|
||||
Companies[randomCompany].playerReputation += repGain;
|
||||
return `Gained ${repGain} company reputation for ${randomCompany}`;
|
||||
}
|
||||
case CodingContractRewardType.Money: {
|
||||
const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * currentNodeMults.CodingContractMoney;
|
||||
const moneyGain =
|
||||
CONSTANTS.CodingContractBaseMoneyGain * difficulty * currentNodeMults.CodingContractMoney * rewardScaling;
|
||||
this.gainMoney(moneyGain, "codingcontract");
|
||||
return `Gained ${formatMoney(moneyGain)}`;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ function mult(favor: number): number {
|
||||
|
||||
export function getHackingWorkRepGain(p: IPerson, favor: number): number {
|
||||
return (
|
||||
((p.skills.hacking + p.skills.intelligence + getDarknetCharismaBonus(p, 0.15) / 3) / CONSTANTS.MaxSkillLevel) *
|
||||
((p.skills.hacking + p.skills.intelligence / 3 + getDarknetCharismaBonus(p, 0.1)) / CONSTANTS.MaxSkillLevel) *
|
||||
p.mults.faction_rep *
|
||||
calculateIntelligenceBonus(p.skills.intelligence, 1) *
|
||||
mult(favor) *
|
||||
@@ -30,7 +30,8 @@ export function getFactionSecurityWorkRepGain(p: IPerson, favor: number): number
|
||||
p.skills.defense +
|
||||
p.skills.dexterity +
|
||||
p.skills.agility +
|
||||
(p.skills.hacking + p.skills.intelligence + getDarknetCharismaBonus(p, 0.3)) * calculateCurrentShareBonus())) /
|
||||
getDarknetCharismaBonus(p, 0.3) +
|
||||
(p.skills.hacking + p.skills.intelligence) * calculateCurrentShareBonus())) /
|
||||
CONSTANTS.MaxSkillLevel /
|
||||
4.5;
|
||||
return t * p.mults.faction_rep * mult(favor) * calculateIntelligenceBonus(p.skills.intelligence, 1);
|
||||
|
||||
Reference in New Issue
Block a user