mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-20 21:25:47 +01:00
Adding gang.getOtherGangInformation() function. Rebalancing
This commit is contained in:
parent
910fa6d0a6
commit
e0df6207c1
@ -56,6 +56,33 @@ getGangInformation
|
|||||||
wantedLevelGainRate: Wanted level gained/lost per second (negative for losses)
|
wantedLevelGainRate: Wanted level gained/lost per second (negative for losses)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getOtherGangInformation
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
.. js:function:: getOtherGangInformation()
|
||||||
|
|
||||||
|
Get territory and power information about all gangs
|
||||||
|
|
||||||
|
:returns: An object with information about all gangs
|
||||||
|
|
||||||
|
The object has the following structure::
|
||||||
|
|
||||||
|
{
|
||||||
|
"Slum Snakes" : {
|
||||||
|
power: Slum Snakes' power
|
||||||
|
territory: Slum Snakes' territory, in decimal form
|
||||||
|
},
|
||||||
|
"Tetrads" : {
|
||||||
|
power: ...
|
||||||
|
territory: ...
|
||||||
|
},
|
||||||
|
"The Syndicate" : {
|
||||||
|
power: ...
|
||||||
|
territory: ...
|
||||||
|
},
|
||||||
|
... (for all six gangs)
|
||||||
|
}
|
||||||
|
|
||||||
getMemberInformation
|
getMemberInformation
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ function initBitNodes() {
|
|||||||
"people quickly succumbed to the innate human impulse of evil and savagery. The organized crime " +
|
"people quickly succumbed to the innate human impulse of evil and savagery. The organized crime " +
|
||||||
"factions quickly rose to the top of the modern world.<br><br>" +
|
"factions quickly rose to the top of the modern world.<br><br>" +
|
||||||
"In this BitNode:<br><br>" +
|
"In this BitNode:<br><br>" +
|
||||||
"Your hacking level is reduced by 25%<br>" +
|
"Your hacking level is reduced by 20%<br>" +
|
||||||
"The growth rate and maximum amount of money available on servers is significantly decreased<br>" +
|
"The growth rate and maximum amount of money available on servers are significantly decreased<br>" +
|
||||||
"The amount of money gained from crimes and Infiltration is tripled<br>" +
|
"The amount of money gained from crimes and Infiltration is tripled<br>" +
|
||||||
"Certain Factions (Slum Snakes, Tetrads, The Syndicate, The Dark Army, Speakers for the Dead, " +
|
"Certain Factions (Slum Snakes, Tetrads, The Syndicate, The Dark Army, Speakers for the Dead, " +
|
||||||
"NiteSec, The Black Hand) give the player the ability to form and manage their own gangs. These gangs " +
|
"NiteSec, The Black Hand) give the player the ability to form and manage their own gangs. These gangs " +
|
||||||
@ -216,8 +216,8 @@ function initBitNodeMultipliers() {
|
|||||||
case 1: //Source Genesis (every multiplier is 1)
|
case 1: //Source Genesis (every multiplier is 1)
|
||||||
break;
|
break;
|
||||||
case 2: //Rise of the Underworld
|
case 2: //Rise of the Underworld
|
||||||
BitNodeMultipliers.HackingLevelMultiplier = 0.75;
|
BitNodeMultipliers.HackingLevelMultiplier = 0.8;
|
||||||
BitNodeMultipliers.ServerGrowthRate = 0.75;
|
BitNodeMultipliers.ServerGrowthRate = 0.8;
|
||||||
BitNodeMultipliers.ServerMaxMoney = 0.2;
|
BitNodeMultipliers.ServerMaxMoney = 0.2;
|
||||||
BitNodeMultipliers.ServerStartingMoney = 0.4;
|
BitNodeMultipliers.ServerStartingMoney = 0.4;
|
||||||
BitNodeMultipliers.CrimeMoney = 3;
|
BitNodeMultipliers.CrimeMoney = 3;
|
||||||
|
@ -508,7 +508,7 @@ let CONSTANTS = {
|
|||||||
*** Added a Gang Netscript API
|
*** Added a Gang Netscript API
|
||||||
*** Added new 'ascension' mechanic for Gang Members
|
*** Added new 'ascension' mechanic for Gang Members
|
||||||
*** The first three gang members are now 'free' (can be recruited instantly)
|
*** The first three gang members are now 'free' (can be recruited instantly)
|
||||||
*** Maximum number of increased Gang Members increased from 20 to 40
|
*** Maximum number of increased Gang Members increased from 20 to 30
|
||||||
*** Changed the formula for calculating respect needed to recruit the next gang member
|
*** Changed the formula for calculating respect needed to recruit the next gang member
|
||||||
*** Added a new category of upgrades for Gang Members: Augmentations
|
*** Added a new category of upgrades for Gang Members: Augmentations
|
||||||
*** Non-Augmentation Gang member upgrades are now significantly weaker
|
*** Non-Augmentation Gang member upgrades are now significantly weaker
|
||||||
|
44
src/Gang.js
44
src/Gang.js
@ -32,7 +32,7 @@ import {yesNoBoxCreate, yesNoTxtInpBoxCreate,
|
|||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
const GangRespectToReputationRatio = 2; // Respect is divided by this to get rep gain
|
const GangRespectToReputationRatio = 2; // Respect is divided by this to get rep gain
|
||||||
const MaximumGangMembers = 40;
|
const MaximumGangMembers = 30;
|
||||||
const GangRecruitCostMultiplier = 2;
|
const GangRecruitCostMultiplier = 2;
|
||||||
const CyclesPerTerritoryAndPowerUpdate = 100;
|
const CyclesPerTerritoryAndPowerUpdate = 100;
|
||||||
const AscensionMultiplierRatio = 15 / 100; // Portion of upgrade multiplier that is kept after ascending
|
const AscensionMultiplierRatio = 15 / 100; // Portion of upgrade multiplier that is kept after ascending
|
||||||
@ -185,9 +185,9 @@ Gang.prototype.process = function(numCycles=1, player) {
|
|||||||
}
|
}
|
||||||
this.storedCycles += numCycles;
|
this.storedCycles += numCycles;
|
||||||
|
|
||||||
// Only process if there are at least 3 seconds, and at most 10 seconds
|
// Only process if there are at least 2 seconds, and at most 5 seconds
|
||||||
if (this.storedCycles < 3 * CyclesPerSecond);
|
if (this.storedCycles < 2 * CyclesPerSecond) { return; }
|
||||||
const cycles = Math.min(this.storedCycles, 10 * CyclesPerSecond);
|
const cycles = Math.min(this.storedCycles, 5 * CyclesPerSecond);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.processGains(cycles, player);
|
this.processGains(cycles, player);
|
||||||
@ -271,7 +271,9 @@ Gang.prototype.processTerritoryAndPowerGains = function(numCycles=1) {
|
|||||||
const gainRoll = Math.random();
|
const gainRoll = Math.random();
|
||||||
if (gainRoll < 0.5) {
|
if (gainRoll < 0.5) {
|
||||||
// Multiplicative gain (50% chance)
|
// Multiplicative gain (50% chance)
|
||||||
AllGangs[name].power *= 1.008;
|
// This is capped per cycle, to prevent it from getting out of control
|
||||||
|
const multiplicativeGain = AllGangs[name].power * 0.008;
|
||||||
|
AllGangs[name].power += Math.min(1, multiplicativeGain);
|
||||||
} else {
|
} else {
|
||||||
// Additive gain (50% chance)
|
// Additive gain (50% chance)
|
||||||
const additiveGain = 0.5 * gainRoll * AllGangs[name].territory;
|
const additiveGain = 0.5 * gainRoll * AllGangs[name].territory;
|
||||||
@ -351,7 +353,7 @@ Gang.prototype.getRespectNeededToRecruitMember = function() {
|
|||||||
if (this.members.length < numFreeMembers) { return 0; }
|
if (this.members.length < numFreeMembers) { return 0; }
|
||||||
|
|
||||||
const i = this.members.length - (numFreeMembers - 1);
|
const i = this.members.length - (numFreeMembers - 1);
|
||||||
return Math.round(0.7 * Math.pow(i, 3) + 0.8 * Math.pow(i, 2));
|
return Math.round(0.9 * Math.pow(i, 3) + Math.pow(i, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
Gang.prototype.recruitMember = function(name) {
|
Gang.prototype.recruitMember = function(name) {
|
||||||
@ -403,11 +405,11 @@ Gang.prototype.clash = function(won=false) {
|
|||||||
|
|
||||||
// If the clash was lost, the player loses a small percentage of power
|
// If the clash was lost, the player loses a small percentage of power
|
||||||
if (!won) {
|
if (!won) {
|
||||||
AllGangs[this.facName].power *= (1 / 1.01);
|
AllGangs[this.facName].power *= (1 / 1.008);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deaths can only occur during X% of clashes
|
// Deaths can only occur during X% of clashes
|
||||||
if (Math.random() < 0.75) { return; }
|
if (Math.random() < 0.65) { return; }
|
||||||
|
|
||||||
for (let i = this.members.length - 1; i >= 0; --i) {
|
for (let i = this.members.length - 1; i >= 0; --i) {
|
||||||
const member = this.members[i];
|
const member = this.members[i];
|
||||||
@ -638,7 +640,7 @@ GangMember.prototype.calculateRespectGain = function(gang) {
|
|||||||
const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.respect) / 100;
|
const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.respect) / 100;
|
||||||
if (isNaN(territoryMult) || territoryMult <= 0) { return 0; }
|
if (isNaN(territoryMult) || territoryMult <= 0) { return 0; }
|
||||||
var respectMult = gang.getWantedPenalty();
|
var respectMult = gang.getWantedPenalty();
|
||||||
return 12 * task.baseRespect * statWeight * territoryMult * respectMult;
|
return 11 * task.baseRespect * statWeight * territoryMult * respectMult;
|
||||||
}
|
}
|
||||||
|
|
||||||
GangMember.prototype.calculateWantedLevelGain = function(gang) {
|
GangMember.prototype.calculateWantedLevelGain = function(gang) {
|
||||||
@ -655,9 +657,9 @@ GangMember.prototype.calculateWantedLevelGain = function(gang) {
|
|||||||
const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.wanted) / 100;
|
const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.wanted) / 100;
|
||||||
if (isNaN(territoryMult) || territoryMult <= 0) { return 0; }
|
if (isNaN(territoryMult) || territoryMult <= 0) { return 0; }
|
||||||
if (task.baseWanted < 0) {
|
if (task.baseWanted < 0) {
|
||||||
return task.baseWanted * statWeight * territoryMult;
|
return 0.5 * task.baseWanted * statWeight * territoryMult;
|
||||||
} else {
|
} else {
|
||||||
return 6 * task.baseWanted / (3 * statWeight * territoryMult);
|
return 7 * task.baseWanted / (3 * statWeight * territoryMult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1010,12 +1012,12 @@ GangMember.prototype.createGangMemberUpgradePanel = function(gangObj, player) {
|
|||||||
var text = createElement("pre", {
|
var text = createElement("pre", {
|
||||||
fontSize:"14px", display: "inline-block", width:"20%",
|
fontSize:"14px", display: "inline-block", width:"20%",
|
||||||
innerText:
|
innerText:
|
||||||
"Hack: " + this.hack + " (x" + formatNumber(this.hack_mult, 2) + ")\n" +
|
"Hack: " + this.hack + " (x" + formatNumber(this.hack_mult * this.hack_asc_mult, 2) + ")\n" +
|
||||||
"Str: " + this.str + " (x" + formatNumber(this.str_mult, 2) + ")\n" +
|
"Str: " + this.str + " (x" + formatNumber(this.str_mult * this.str_asc_mult, 2) + ")\n" +
|
||||||
"Def: " + this.def + " (x" + formatNumber(this.def_mult, 2) + ")\n" +
|
"Def: " + this.def + " (x" + formatNumber(this.def_mult * this.def_asc_mult, 2) + ")\n" +
|
||||||
"Dex: " + this.dex + " (x" + formatNumber(this.dex_mult, 2) + ")\n" +
|
"Dex: " + this.dex + " (x" + formatNumber(this.dex_mult * this.dex_asc_mult, 2) + ")\n" +
|
||||||
"Agi: " + this.agi + " (x" + formatNumber(this.agi_mult, 2) + ")\n" +
|
"Agi: " + this.agi + " (x" + formatNumber(this.agi_mult * this.agi_asc_mult, 2) + ")\n" +
|
||||||
"Cha: " + this.cha + " (x" + formatNumber(this.cha_mult, 2) + ")\n",
|
"Cha: " + this.cha + " (x" + formatNumber(this.cha_mult * this.cha_asc_mult, 2) + ")\n",
|
||||||
});
|
});
|
||||||
|
|
||||||
//Already purchased upgrades
|
//Already purchased upgrades
|
||||||
@ -1253,7 +1255,8 @@ Gang.prototype.displayGangContent = function(player) {
|
|||||||
"task to lower your wanted level. <br><br>" +
|
"task to lower your wanted level. <br><br>" +
|
||||||
"Installing Augmentations does NOT reset your progress with your Gang. " +
|
"Installing Augmentations does NOT reset your progress with your Gang. " +
|
||||||
"Furthermore, after installing Augmentations, you will " +
|
"Furthermore, after installing Augmentations, you will " +
|
||||||
"automatically be a member of whatever Faction you created your gang with.<br><br>"
|
"automatically be a member of whatever Faction you created your gang with.<br><br>" +
|
||||||
|
"You can also manage your gang programmatically through Netscript using the Gang API"
|
||||||
});
|
});
|
||||||
UIElems.gangManagementSubpage.appendChild(UIElems.gangDesc);
|
UIElems.gangManagementSubpage.appendChild(UIElems.gangDesc);
|
||||||
|
|
||||||
@ -1392,7 +1395,8 @@ Gang.prototype.displayGangContent = function(player) {
|
|||||||
"to win a clash depends on your gang's power, which is listed in the display below. " +
|
"to win a clash depends on your gang's power, which is listed in the display below. " +
|
||||||
"Your gang's power slowly accumulates over time. The accumulation rate is determined by the stats " +
|
"Your gang's power slowly accumulates over time. The accumulation rate is determined by the stats " +
|
||||||
"of all Gang members you have assigned to the 'Territory Warfare' task. Gang members that are not " +
|
"of all Gang members you have assigned to the 'Territory Warfare' task. Gang members that are not " +
|
||||||
"assigned to this task do not contribute to your gang's power.<br><br>" +
|
"assigned to this task do not contribute to your gang's power. Your gang also loses a small amount " +
|
||||||
|
"of power whenever you lose a clash<br><br>" +
|
||||||
"NOTE: Gang members assigned to 'Territory Warfare' can be killed during clashes. This can happen regardless of whether you win " +
|
"NOTE: Gang members assigned to 'Territory Warfare' can be killed during clashes. This can happen regardless of whether you win " +
|
||||||
"or lose the clash. A gang member being killed results in both respect and power loss for your gang.<br><br>" +
|
"or lose the clash. A gang member being killed results in both respect and power loss for your gang.<br><br>" +
|
||||||
"The amount of territory you have affects all aspects of your Gang members' production, including " +
|
"The amount of territory you have affects all aspects of your Gang members' production, including " +
|
||||||
@ -1615,7 +1619,7 @@ Gang.prototype.updateGangContent = function() {
|
|||||||
innerText: `Bonus time(s): ${this.storedCycles / CyclesPerSecond}`,
|
innerText: `Bonus time(s): ${this.storedCycles / CyclesPerSecond}`,
|
||||||
display: "inline-block",
|
display: "inline-block",
|
||||||
tooltip: "You gain bonus time while offline or when the game is inactive (e.g. when the tab is throttled by the browser). " +
|
tooltip: "You gain bonus time while offline or when the game is inactive (e.g. when the tab is throttled by the browser). " +
|
||||||
"Bonus time makes the Gang mechanic progress faster, up to 10x the normal speed",
|
"Bonus time makes the Gang mechanic progress faster, up to 5x the normal speed",
|
||||||
}));
|
}));
|
||||||
UIElems.gangInfo.appendChild(createElement("br"));
|
UIElems.gangInfo.appendChild(createElement("br"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -3579,6 +3579,19 @@ function NetscriptFunctions(workerScript) {
|
|||||||
throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("getGangInformation", e));
|
throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("getGangInformation", e));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getOtherGangInformation : function() {
|
||||||
|
if (workerScript.checkingRam) {
|
||||||
|
return updateStaticRam("getOtherGangInformation", CONSTANTS.ScriptGangApiBaseRamCost / 2);
|
||||||
|
}
|
||||||
|
updateDynamicRam("getOtherGangInformation", CONSTANTS.ScriptGangApiBaseRamCost / 2);
|
||||||
|
nsGang.checkGangApiAccess(workerScript, "getOtherGangInformation");
|
||||||
|
|
||||||
|
try {
|
||||||
|
return Object.assign(AllGangs);
|
||||||
|
} catch(e) {
|
||||||
|
throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("getOtherGangInformation", e));
|
||||||
|
}
|
||||||
|
},
|
||||||
getMemberInformation : function(name) {
|
getMemberInformation : function(name) {
|
||||||
if (workerScript.checkingRam) {
|
if (workerScript.checkingRam) {
|
||||||
return updateStaticRam("getMemberInformation", CONSTANTS.ScriptGangApiBaseRamCost / 2);
|
return updateStaticRam("getMemberInformation", CONSTANTS.ScriptGangApiBaseRamCost / 2);
|
||||||
|
@ -113,7 +113,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Mug People",
|
name: "Mug People",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.00005, baseWanted: 0.00001, baseMoney: 1.2,
|
baseRespect: 0.00005, baseWanted: 0.00005, baseMoney: 1.2,
|
||||||
strWeight: 25, defWeight: 25, dexWeight: 25, agiWeight: 10, chaWeight: 15,
|
strWeight: 25, defWeight: 25, dexWeight: 25, agiWeight: 10, chaWeight: 15,
|
||||||
difficulty: 1,
|
difficulty: 1,
|
||||||
},
|
},
|
||||||
@ -124,11 +124,11 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Deal Drugs",
|
name: "Deal Drugs",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.00006, baseWanted: 0.0015, baseMoney: 5,
|
baseRespect: 0.00006, baseWanted: 0.002, baseMoney: 5,
|
||||||
agiWeight: 20, dexWeight: 20, chaWeight: 60,
|
agiWeight: 20, dexWeight: 20, chaWeight: 60,
|
||||||
difficulty: 3.5,
|
difficulty: 3.5,
|
||||||
territory: {
|
territory: {
|
||||||
money: 1.25,
|
money: 1.2,
|
||||||
respect: 1,
|
respect: 1,
|
||||||
wanted: 1.15,
|
wanted: 1.15,
|
||||||
},
|
},
|
||||||
@ -140,7 +140,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Strongarm Civilians",
|
name: "Strongarm Civilians",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.00004, baseWanted: 0.002, baseMoney: 2.5,
|
baseRespect: 0.00004, baseWanted: 0.0035, baseMoney: 2.5,
|
||||||
hackWeight: 10, strWeight: 25, defWeight: 25, dexWeight: 20, agiWeight: 10, chaWeight: 10,
|
hackWeight: 10, strWeight: 25, defWeight: 25, dexWeight: 20, agiWeight: 10, chaWeight: 10,
|
||||||
difficulty: 5,
|
difficulty: 5,
|
||||||
territory: {
|
territory: {
|
||||||
@ -156,7 +156,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Run a Con",
|
name: "Run a Con",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.00012, baseWanted: 0.015, baseMoney: 12.5,
|
baseRespect: 0.00012, baseWanted: 0.04, baseMoney: 15,
|
||||||
strWeight: 5, defWeight: 5, agiWeight: 25, dexWeight: 25, chaWeight: 40,
|
strWeight: 5, defWeight: 5, agiWeight: 25, dexWeight: 25, chaWeight: 40,
|
||||||
difficulty: 14,
|
difficulty: 14,
|
||||||
},
|
},
|
||||||
@ -167,7 +167,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Armed Robbery",
|
name: "Armed Robbery",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.00014, baseWanted: 0.075, baseMoney: 32,
|
baseRespect: 0.00014, baseWanted: 0.08, baseMoney: 38,
|
||||||
hackWeight: 20, strWeight: 15, defWeight: 15, agiWeight: 10, dexWeight: 20, chaWeight: 20,
|
hackWeight: 20, strWeight: 15, defWeight: 15, agiWeight: 10, dexWeight: 20, chaWeight: 20,
|
||||||
difficulty: 20,
|
difficulty: 20,
|
||||||
},
|
},
|
||||||
@ -178,7 +178,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Traffick Illegal Arms",
|
name: "Traffick Illegal Arms",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.0002, baseWanted: 0.15, baseMoney: 50,
|
baseRespect: 0.0002, baseWanted: 0.18, baseMoney: 58,
|
||||||
hackWeight: 15, strWeight: 20, defWeight: 20, dexWeight: 20, chaWeight: 25,
|
hackWeight: 15, strWeight: 20, defWeight: 20, dexWeight: 20, chaWeight: 25,
|
||||||
difficulty: 32,
|
difficulty: 32,
|
||||||
territory: {
|
territory: {
|
||||||
@ -194,7 +194,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Threaten & Blackmail",
|
name: "Threaten & Blackmail",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.0002, baseWanted: 0.075, baseMoney: 20,
|
baseRespect: 0.0002, baseWanted: 0.1, baseMoney: 24,
|
||||||
hackWeight: 25, strWeight: 25, dexWeight: 25, chaWeight: 25,
|
hackWeight: 25, strWeight: 25, dexWeight: 25, chaWeight: 25,
|
||||||
difficulty: 28,
|
difficulty: 28,
|
||||||
},
|
},
|
||||||
@ -205,7 +205,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Human Trafficking",
|
name: "Human Trafficking",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.005, baseWanted: 0.3, baseMoney: 100,
|
baseRespect: 0.005, baseWanted: 0.4, baseMoney: 120,
|
||||||
hackWeight: 30, strWeight: 5, defWeight: 5, dexWeight: 30, chaWeight: 30,
|
hackWeight: 30, strWeight: 5, defWeight: 5, dexWeight: 30, chaWeight: 30,
|
||||||
difficulty: 36,
|
difficulty: 36,
|
||||||
territory: {
|
territory: {
|
||||||
@ -221,7 +221,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
|||||||
isHacking: false,
|
isHacking: false,
|
||||||
name: "Terrorism",
|
name: "Terrorism",
|
||||||
params: {
|
params: {
|
||||||
baseRespect: 0.001, baseWanted: 1.5,
|
baseRespect: 0.01, baseWanted: 1.5,
|
||||||
hackWeight: 20, strWeight: 20, defWeight: 20, dexWeight: 20, chaWeight: 20,
|
hackWeight: 20, strWeight: 20, defWeight: 20, dexWeight: 20, chaWeight: 20,
|
||||||
difficulty: 36,
|
difficulty: 36,
|
||||||
territory: {
|
territory: {
|
||||||
|
Loading…
Reference in New Issue
Block a user