mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-30 03:23:48 +01:00
bn12 plus faction fix from my last pr
This commit is contained in:
parent
a1da58f2a9
commit
3e429e30be
@ -2594,8 +2594,9 @@ function displaySourceFiles(listElement, sourceFiles) {
|
|||||||
console.log("ERROR: Invalid source file number: " + sourceFiles[i].n);
|
console.log("ERROR: Invalid source file number: " + sourceFiles[i].n);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
const maxLevel = sourceFiles[i].n == 12 ? "∞" : "3";
|
||||||
var accordion = createAccordionElement({
|
var accordion = createAccordionElement({
|
||||||
hdrText:sourceFileObject.name + "<br>" + "Level " + (sourceFiles[i].lvl) + " / 3",
|
hdrText:sourceFileObject.name + "<br>" + "Level " + (sourceFiles[i].lvl) + " / "+maxLevel,
|
||||||
panelText:sourceFileObject.info
|
panelText:sourceFileObject.info
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -156,10 +156,9 @@ function initBitNodes() {
|
|||||||
"Level 1: 24%<br>" +
|
"Level 1: 24%<br>" +
|
||||||
"Level 2: 36%<br>" +
|
"Level 2: 36%<br>" +
|
||||||
"Level 3: 42%");
|
"Level 3: 42%");
|
||||||
|
BitNodes["BitNode12"] = new BitNode(12, "The testing ground", "Ender improvement center", "Something about this bitnode being the testing ground for the enders security. This bitnode is infinitely repeatable but gets harder each time. This awards Source-File 12 which awards 1% to all stats each time this bitnode is destroyed.");
|
||||||
//Books: Frontera, Shiner
|
//Books: Frontera, Shiner
|
||||||
BitNodes["BitNode12"] = new BitNode(12, "fOS", "COMING SOON"); //Unlocks the new game mode and the rest of the BitNodes
|
BitNodes["BitNode13"] = new BitNode(13, "fOS", "COMING SOON"); //Unlocks the new game mode and the rest of the BitNodes
|
||||||
BitNodes["BitNode13"] = new BitNode(13, "", "COMING SOON");
|
|
||||||
BitNodes["BitNode14"] = new BitNode(14, "", "COMING SOON");
|
BitNodes["BitNode14"] = new BitNode(14, "", "COMING SOON");
|
||||||
BitNodes["BitNode15"] = new BitNode(15, "", "COMING SOON");
|
BitNodes["BitNode15"] = new BitNode(15, "", "COMING SOON");
|
||||||
BitNodes["BitNode16"] = new BitNode(16, "", "COMING SOON");
|
BitNodes["BitNode16"] = new BitNode(16, "", "COMING SOON");
|
||||||
@ -304,6 +303,51 @@ function initBitNodeMultipliers() {
|
|||||||
BitNodeMultipliers.InfiltrationRep = 2.5;
|
BitNodeMultipliers.InfiltrationRep = 2.5;
|
||||||
BitNodeMultipliers.CorporationValuation = 0.01;
|
BitNodeMultipliers.CorporationValuation = 0.01;
|
||||||
break;
|
break;
|
||||||
|
case 12: //The Testing Ground
|
||||||
|
let sf12Lvl = 0;
|
||||||
|
for(let i = 0; i < Player.sourceFiles.length; i++) {
|
||||||
|
if(Player.sourceFiles[i].n == 12) {
|
||||||
|
sf12Lvl = Player.sourceFiles[i].lvl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const inc = Math.pow(1.01, sf12Lvl);
|
||||||
|
const dec = Math.pow(0.99, sf12Lvl);
|
||||||
|
BitNodeMultipliers.HackingLevelMultiplier = dec;
|
||||||
|
|
||||||
|
BitNodeMultipliers.ServerMaxMoney = dec;
|
||||||
|
BitNodeMultipliers.ServerStartingMoney = dec;
|
||||||
|
BitNodeMultipliers.ServerGrowthRate = dec;
|
||||||
|
BitNodeMultipliers.ServerWeakenRate = dec;
|
||||||
|
|
||||||
|
//this one is special because it can cause the min
|
||||||
|
//security to go over 100 and make it impossible to
|
||||||
|
//get money through hacking. This stat should not be
|
||||||
|
|
||||||
|
//BitNodeMultipliers.ServerStartingSecurity = inc;
|
||||||
|
|
||||||
|
BitNodeMultipliers.ManualHackMoney = dec;
|
||||||
|
BitNodeMultipliers.ScriptHackMoney = dec;
|
||||||
|
BitNodeMultipliers.CompanyWorkMoney = dec;
|
||||||
|
BitNodeMultipliers.CrimeMoney = dec;
|
||||||
|
BitNodeMultipliers.HacknetNodeMoney = dec;
|
||||||
|
|
||||||
|
BitNodeMultipliers.CompanyWorkExpGain = dec;
|
||||||
|
BitNodeMultipliers.ClassGymExpGain = dec;
|
||||||
|
BitNodeMultipliers.FactionWorkExpGain = dec;
|
||||||
|
BitNodeMultipliers.HackExpGain = dec;
|
||||||
|
BitNodeMultipliers.CrimeExpGain = dec;
|
||||||
|
|
||||||
|
BitNodeMultipliers.FactionWorkRepGain = dec;
|
||||||
|
BitNodeMultipliers.FactionPassiveRepGain = dec;
|
||||||
|
BitNodeMultipliers.RepToDonateToFaction = inc;
|
||||||
|
|
||||||
|
BitNodeMultipliers.AugmentationRepCost = inc;
|
||||||
|
BitNodeMultipliers.AugmentationMoneyCost = inc;
|
||||||
|
|
||||||
|
BitNodeMultipliers.InfiltrationMoney = dec;
|
||||||
|
BitNodeMultipliers.InfiltrationRep = dec;
|
||||||
|
|
||||||
|
BitNodeMultipliers.CorporationValuation = dec;
|
||||||
default:
|
default:
|
||||||
console.log("WARNING: Player.bitNodeN invalid");
|
console.log("WARNING: Player.bitNodeN invalid");
|
||||||
break;
|
break;
|
||||||
|
@ -626,7 +626,7 @@ function createFactionAugmentationDisplayElements(augmentationsList, augs, facti
|
|||||||
}
|
}
|
||||||
|
|
||||||
function purchaseAugmentationBoxCreate(aug, fac) {
|
function purchaseAugmentationBoxCreate(aug, fac) {
|
||||||
const factionInfo = fac.info();
|
const factionInfo = fac.getInfo();
|
||||||
var yesBtn = yesNoBoxGetYesButton(), noBtn = yesNoBoxGetNoButton();
|
var yesBtn = yesNoBoxGetYesButton(), noBtn = yesNoBoxGetNoButton();
|
||||||
yesBtn.innerHTML = "Purchase";
|
yesBtn.innerHTML = "Purchase";
|
||||||
noBtn.innerHTML = "Cancel";
|
noBtn.innerHTML = "Cancel";
|
||||||
@ -671,12 +671,13 @@ function hasAugmentationPrereqs(aug) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function purchaseAugmentation(aug, fac, sing=false) {
|
function purchaseAugmentation(aug, fac, sing=false) {
|
||||||
|
const factionInfo = fac.getInfo();
|
||||||
var hasPrereqs = hasAugmentationPrereqs(aug);
|
var hasPrereqs = hasAugmentationPrereqs(aug);
|
||||||
if (!hasPrereqs) {
|
if (!hasPrereqs) {
|
||||||
var txt = "You must first purchase or install " + aug.prereqs.join(",") + " before you can " +
|
var txt = "You must first purchase or install " + aug.prereqs.join(",") + " before you can " +
|
||||||
"purchase this one.";
|
"purchase this one.";
|
||||||
if (sing) {return txt;} else {dialogBoxCreate(txt);}
|
if (sing) {return txt;} else {dialogBoxCreate(txt);}
|
||||||
} else if (Player.money.lt(aug.baseCost * fac.augmentationPriceMult)) {
|
} else if (Player.money.lt(aug.baseCost * factionInfo.augmentationPriceMult)) {
|
||||||
let txt = "You don't have enough money to purchase " + aug.name;
|
let txt = "You don't have enough money to purchase " + aug.name;
|
||||||
if (sing) {return txt;}
|
if (sing) {return txt;}
|
||||||
dialogBoxCreate(txt);
|
dialogBoxCreate(txt);
|
||||||
@ -684,7 +685,7 @@ function purchaseAugmentation(aug, fac, sing=false) {
|
|||||||
let txt = "You don't have enough faction reputation to purchase " + aug.name;
|
let txt = "You don't have enough faction reputation to purchase " + aug.name;
|
||||||
if (sing) {return txt;}
|
if (sing) {return txt;}
|
||||||
dialogBoxCreate(txt);
|
dialogBoxCreate(txt);
|
||||||
} else if (Player.money.gte(aug.baseCost * fac.augmentationPriceMult)) {
|
} else if (Player.money.gte(aug.baseCost * factionInfo.augmentationPriceMult)) {
|
||||||
if (Player.firstAugPurchased === false) {
|
if (Player.firstAugPurchased === false) {
|
||||||
Player.firstAugPurchased = true;
|
Player.firstAugPurchased = true;
|
||||||
document.getElementById("augmentations-tab").style.display = "list-item";
|
document.getElementById("augmentations-tab").style.display = "list-item";
|
||||||
@ -698,7 +699,7 @@ function purchaseAugmentation(aug, fac, sing=false) {
|
|||||||
}
|
}
|
||||||
Player.queuedAugmentations.push(queuedAugmentation);
|
Player.queuedAugmentations.push(queuedAugmentation);
|
||||||
|
|
||||||
Player.loseMoney((aug.baseCost * fac.augmentationPriceMult));
|
Player.loseMoney((aug.baseCost * factionInfo.augmentationPriceMult));
|
||||||
|
|
||||||
//If you just purchased Neuroflux Governor, recalculate the cost
|
//If you just purchased Neuroflux Governor, recalculate the cost
|
||||||
if (aug.name == AugmentationNames.NeuroFluxGovernor) {
|
if (aug.name == AugmentationNames.NeuroFluxGovernor) {
|
||||||
|
@ -208,7 +208,7 @@ function loadBitVerse(destroyedBitNodeNum, flume=false) {
|
|||||||
var elemId = "bitnode-" + i.toString();
|
var elemId = "bitnode-" + i.toString();
|
||||||
var elem = clearEventListeners(elemId);
|
var elem = clearEventListeners(elemId);
|
||||||
if (elem == null) {return;}
|
if (elem == null) {return;}
|
||||||
if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 6 || i === 8 || i === 11) {
|
if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 6 || i === 8 || i === 11 || i === 12) {
|
||||||
elem.addEventListener("click", function() {
|
elem.addEventListener("click", function() {
|
||||||
var bitNodeKey = "BitNode" + i;
|
var bitNodeKey = "BitNode" + i;
|
||||||
var bitNode = BitNodes[bitNodeKey];
|
var bitNode = BitNodes[bitNodeKey];
|
||||||
|
@ -66,7 +66,7 @@ function initSourceFiles() {
|
|||||||
"Level 1: 24%<br>" +
|
"Level 1: 24%<br>" +
|
||||||
"Level 2: 36%<br>" +
|
"Level 2: 36%<br>" +
|
||||||
"Level 3: 42%<br>");
|
"Level 3: 42%<br>");
|
||||||
SourceFiles["SourceFile12"] = new SourceFile(12);
|
SourceFiles["SourceFile12"] = new SourceFile(12, "This Source-File increases all your multipliers by 1% per level");
|
||||||
}
|
}
|
||||||
|
|
||||||
function PlayerOwnedSourceFile(number, level) {
|
function PlayerOwnedSourceFile(number, level) {
|
||||||
@ -181,6 +181,42 @@ function applySourceFile(srcFile) {
|
|||||||
Player.work_money_mult *= incMult;
|
Player.work_money_mult *= incMult;
|
||||||
Player.company_rep_mult *= incMult;
|
Player.company_rep_mult *= incMult;
|
||||||
break;
|
break;
|
||||||
|
case 12: //The testing ground
|
||||||
|
const inc = Math.pow(1.01, srcFile.lvl);
|
||||||
|
const dec = Math.pow(0.99, srcFile.lvl);
|
||||||
|
|
||||||
|
Player.hacking_chance_mult *= inc;
|
||||||
|
Player.hacking_speed_mult *= inc;
|
||||||
|
Player.hacking_money_mult *= inc;
|
||||||
|
Player.hacking_grow_mult *= inc;
|
||||||
|
Player.hacking_mult *= inc;
|
||||||
|
|
||||||
|
Player.strength_mult *= inc;
|
||||||
|
Player.defense_mult *= inc;
|
||||||
|
Player.dexterity_mult *= inc;
|
||||||
|
Player.agility_mult *= inc;
|
||||||
|
Player.charisma_mult *= inc;
|
||||||
|
|
||||||
|
Player.hacking_exp_mult *= inc;
|
||||||
|
Player.strength_exp_mult *= inc;
|
||||||
|
Player.defense_exp_mult *= inc;
|
||||||
|
Player.dexterity_exp_mult *= inc;
|
||||||
|
Player.agility_exp_mult *= inc;
|
||||||
|
Player.charisma_exp_mult *= inc;
|
||||||
|
|
||||||
|
Player.company_rep_mult *= inc;
|
||||||
|
Player.faction_rep_mult *= inc;
|
||||||
|
|
||||||
|
Player.crime_money_mult *= inc;
|
||||||
|
Player.crime_success_mult *= inc;
|
||||||
|
|
||||||
|
Player.hacknet_node_money_mult *= inc;
|
||||||
|
Player.hacknet_node_purchase_cost_mult *= dec;
|
||||||
|
Player.hacknet_node_ram_cost_mult *= dec;
|
||||||
|
Player.hacknet_node_core_cost_mult *= dec;
|
||||||
|
Player.hacknet_node_level_cost_mult *= dec;
|
||||||
|
|
||||||
|
Player.work_money_mult *= inc;
|
||||||
default:
|
default:
|
||||||
console.log("ERROR: Invalid source file number: " + srcFile.n);
|
console.log("ERROR: Invalid source file number: " + srcFile.n);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user