mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-18 21:53:50 +01:00
Merge pull request #433 from danielyxie/bladeburner-rebalancing
Bladeburner rebalancing
This commit is contained in:
commit
b15582ff71
2
dist/engine.bundle.js
vendored
2
dist/engine.bundle.js
vendored
File diff suppressed because one or more lines are too long
@ -235,18 +235,30 @@ getSkillLevel
|
||||
|
||||
.. js:function:: getSkillLevel(skillName="")
|
||||
|
||||
:param string skillName: Name of skill
|
||||
:param string skillName: Name of skill. Case-sensitive and must be an exact match
|
||||
|
||||
This function returns your level in the specified skill.
|
||||
|
||||
The function returns -1 if an invalid skill name is passed in
|
||||
|
||||
getSkillUpgradeCost
|
||||
-------------------
|
||||
|
||||
.. js:function:: getSkillUpgradeCost(skillName="")
|
||||
|
||||
:param string skillName: Name of skill. Case-sensitive and must be an exact match
|
||||
|
||||
This function returns the number of skill points needed to upgrade the
|
||||
specified skill.
|
||||
|
||||
The function returns -1 if an invalid skill name is passed in.
|
||||
|
||||
upgradeSkill
|
||||
------------
|
||||
|
||||
.. js:function:: upgradeSkill(skillName)
|
||||
|
||||
:param string skillName: Name of Skill to be upgraded. Must be an exact match
|
||||
:param string skillName: Name of Skill to be upgraded. Case-sensitive and must be an exact match
|
||||
|
||||
Attempts to upgrade the specified Bladeburner skill. Returns true if the
|
||||
skill is successfully upgraded, and false otherwise
|
||||
@ -357,6 +369,21 @@ joinBladeburnerDivision
|
||||
are already a member.
|
||||
|
||||
Returns false otherwise
|
||||
|
||||
getBonusTime
|
||||
------------
|
||||
|
||||
.. js:function:: getBonusTime()
|
||||
|
||||
Returns the amount of accumulated "bonus time" (seconds) for the Bladeburner mechanic.
|
||||
|
||||
"Bonus time" is accumulated when the game is offline or if the game is
|
||||
inactive in the browser.
|
||||
|
||||
"Bonus time" makes the game progress faster, up to 5x the normal speed.
|
||||
For example, if an action takes 30 seconds to complete but you've accumulated
|
||||
over 30 seconds in bonus time, then the action will only take 6 seconds
|
||||
in real life to complete.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
@ -659,16 +659,14 @@ getNextHacknetNodeCost
|
||||
|
||||
.. js:function:: getNextHacknetNodeCost()
|
||||
|
||||
Returns the cost of purchasing a new Hacknet Node
|
||||
Deprecated (no longer usable). See :doc:`netscripthacknetnodeapi`
|
||||
|
||||
purchaseHacknetNode
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. js:function:: purchaseHacknetNode()
|
||||
|
||||
Purchases a new Hacknet Node. Returns a number with the index of the Hacknet Node. This index is equivalent to the number at the
|
||||
end of the Hacknet Node's name (e.g The Hacknet Node named 'hacknet-node-4' will have an index of 4). If the player cannot afford
|
||||
to purchase a new Hacknet Node then the function will return false.
|
||||
Deprecated (no longer usable). See :doc:`netscripthacknetnodeapi`
|
||||
|
||||
getPurchasedServerCost
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -1,3 +1,5 @@
|
||||
.. _netscripthacknetnodeapi:
|
||||
|
||||
Netscript Hacknet Node API
|
||||
==========================
|
||||
|
||||
|
@ -100,9 +100,10 @@ let NetscriptFunctions =
|
||||
"getActionTime|getActionEstimatedSuccessChance|getActionCountRemaining|" +
|
||||
"getActionMaxLevel|getActionCurrentLevel|getActionAutolevel|" +
|
||||
"setActionAutolevel|setActionLevel|" +
|
||||
"getRank|getSkillPoints|getSkillLevel|upgradeSkill|getTeamSize|" +
|
||||
"getRank|getSkillPoints|getSkillLevel|getSkillUpgradeCost|" +
|
||||
"upgradeSkill|getTeamSize|" +
|
||||
"setTeamSize|getCityEstimatedPopulation|getCityEstimatedCommunities|" +
|
||||
"getCityChaos|switchCity|getStamina|joinBladeburnerFaction";
|
||||
"getCityChaos|switchCity|getStamina|joinBladeburnerFaction|getBonusTime";
|
||||
|
||||
var NetscriptHighlightRules = function(options) {
|
||||
var keywordMapper = this.createKeywordMapper({
|
||||
|
@ -1575,7 +1575,7 @@ function initAugmentations() {
|
||||
"AR HUD and assist the user in field missions.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 3%.<br>" +
|
||||
"Increases the player's dexterity by 3%."
|
||||
"Increases the player's dexterity by 5%."
|
||||
});
|
||||
EsperEyewear.addToFactions([BladeburnersFactionName]);
|
||||
resetAugmentation(EsperEyewear);
|
||||
@ -1589,7 +1589,7 @@ function initAugmentations() {
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's sucess chance in Bladeburner contracts/operations by 3%.<br>" +
|
||||
"Increases the player's effectiveness in Bladeburner Field Analysis by 5%.<br>" +
|
||||
"Increases the player's Bladeburner stamina gain rate by 1%."
|
||||
"Increases the player's Bladeburner stamina gain rate by 2%."
|
||||
});
|
||||
EMS4Recombination.addToFactions([BladeburnersFactionName]);
|
||||
resetAugmentation(EMS4Recombination);
|
||||
@ -1602,7 +1602,7 @@ function initAugmentations() {
|
||||
"crystallized graphene plating.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's defense by 5%.<br>" +
|
||||
"Increases the player's strength and dexterity by 3%.<br>" +
|
||||
"Increases the player's strength and dexterity by 5%.<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 4%."
|
||||
});
|
||||
OrionShoulder.addToFactions([BladeburnersFactionName]);
|
||||
@ -1617,7 +1617,7 @@ function initAugmentations() {
|
||||
"it can also be effective against non-augmented enemies due to its high temperature " +
|
||||
"and concussive force.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 5%."
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 6%."
|
||||
});
|
||||
HyperionV1.addToFactions([BladeburnersFactionName]);
|
||||
resetAugmentation(HyperionV1);
|
||||
@ -1629,7 +1629,7 @@ function initAugmentations() {
|
||||
"more power-efficiency, more accurate, and can fire plasma bolts at a much " +
|
||||
"higher velocity than the V1 model.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 7%.",
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 8%.",
|
||||
prereqs:[AugmentationNames.HyperionV1]
|
||||
});
|
||||
HyperionV2.addToFactions([BladeburnersFactionName]);
|
||||
@ -1642,7 +1642,7 @@ function initAugmentations() {
|
||||
"serum was originally developed by the Chinese military in an attempt to " +
|
||||
"create super soldiers.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases all of the player's combat stats by 5%.<br>" +
|
||||
"Increases all of the player's combat stats by 7%.<br>" +
|
||||
"Increases the player's Bladeburner stamina gain rate by 5%.<br>"
|
||||
});
|
||||
GolemSerum.addToFactions([BladeburnersFactionName]);
|
||||
@ -1655,7 +1655,7 @@ function initAugmentations() {
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's effectiveness in Bladeburner Field Analysis by 10%.<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 4%.<br>" +
|
||||
"Increases the player's dexterity experience gain rate by 5%."
|
||||
"Increases the player's dexterity experience gain rate by 10%."
|
||||
});
|
||||
VangelisVirus.addToFactions([BladeburnersFactionName]);
|
||||
resetAugmentation(VangelisVirus);
|
||||
@ -1668,7 +1668,7 @@ function initAugmentations() {
|
||||
"agility/reflexes.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's effectiveness in Bladeburner Field Analysis by 15%.<br>" +
|
||||
"Increases the player's defense and dexterity experience gain rate by 5%.<br>" +
|
||||
"Increases the player's defense and dexterity experience gain rate by 10%.<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 5%.",
|
||||
prereqs:[AugmentationNames.VangelisVirus]
|
||||
});
|
||||
@ -1682,7 +1682,7 @@ function initAugmentations() {
|
||||
"structurally support the body and grants heightened strength and " +
|
||||
"durability.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases the player's experience gain rate for all combat stats by 4%.<br>" +
|
||||
"Increases the player's experience gain rate for all combat stats by 5%.<br>" +
|
||||
"Increases the player's Bladeburner max stamina by 10%."
|
||||
});
|
||||
INTERLINKED.addToFactions([BladeburnersFactionName]);
|
||||
@ -1709,7 +1709,7 @@ function initAugmentations() {
|
||||
"concussive, thermal, chemical, and electric trauma. It also enhances the user's " +
|
||||
"strength and agility.<br><br>" +
|
||||
"This augmentation:<br>" +
|
||||
"Increases all of the player's combat stats by 2%.<br>" +
|
||||
"Increases all of the player's combat stats by 4%.<br>" +
|
||||
"Increases the player's Bladeburner stamina gain rate by 2%.<br>" +
|
||||
"Increases the player's success chance in Bladeburner contracts/operations by 3%.",
|
||||
});
|
||||
@ -1780,7 +1780,7 @@ function initAugmentations() {
|
||||
resetAugmentation(BladeArmorIPU);
|
||||
|
||||
var BladesSimulacrum = new Augmentation({
|
||||
name:AugmentationNames.BladesSimulacrum, repCost:6e3, moneyCost:75e9,
|
||||
name:AugmentationNames.BladesSimulacrum, repCost:3e3, moneyCost:80e9,
|
||||
info:"A highly-advanced matter phase-shifter module that is embedded " +
|
||||
"in the brainstem and cerebellum. This augmentation allows " +
|
||||
"the user to project and control a holographic simulacrum within an " +
|
||||
@ -2297,48 +2297,48 @@ function applyAugmentation(aug, reapply=false) {
|
||||
//Bladeburner augmentations
|
||||
case AugmentationNames.EsperEyewear:
|
||||
Player.bladeburner_success_chance_mult *= 1.03;
|
||||
Player.dexterity_mult *= 1.03;
|
||||
Player.dexterity_mult *= 1.05;
|
||||
break;
|
||||
case AugmentationNames.EMS4Recombination:
|
||||
Player.bladeburner_success_chance_mult *= 1.03;
|
||||
Player.bladeburner_analysis_mult *= 1.05;
|
||||
Player.bladeburner_stamina_gain_mult *= 1.01;
|
||||
Player.bladeburner_stamina_gain_mult *= 1.02;
|
||||
break;
|
||||
case AugmentationNames.OrionShoulder:
|
||||
Player.defense_mult *= 1.05;
|
||||
Player.strength_mult *= 1.03;
|
||||
Player.dexterity_mult *= 1.03;
|
||||
Player.strength_mult *= 1.05;
|
||||
Player.dexterity_mult *= 1.05;
|
||||
Player.bladeburner_success_chance_mult *= 1.04;
|
||||
break;
|
||||
case AugmentationNames.HyperionV1:
|
||||
Player.bladeburner_success_chance_mult *= 1.05;
|
||||
Player.bladeburner_success_chance_mult *= 1.06;
|
||||
break;
|
||||
case AugmentationNames.HyperionV2:
|
||||
Player.bladeburner_success_chance_mult *= 1.07;
|
||||
Player.bladeburner_success_chance_mult *= 1.08;
|
||||
break;
|
||||
case AugmentationNames.GolemSerum:
|
||||
Player.strength_mult *= 1.05;
|
||||
Player.defense_mult *= 1.05;
|
||||
Player.dexterity_mult *= 1.05;
|
||||
Player.agility_mult *= 1.05;
|
||||
Player.strength_mult *= 1.07;
|
||||
Player.defense_mult *= 1.07;
|
||||
Player.dexterity_mult *= 1.07;
|
||||
Player.agility_mult *= 1.07;
|
||||
Player.bladeburner_stamina_gain_mult *= 1.05;
|
||||
break;
|
||||
case AugmentationNames.VangelisVirus:
|
||||
Player.dexterity_exp_mult *= 1.05;
|
||||
Player.dexterity_exp_mult *= 1.1;
|
||||
Player.bladeburner_analysis_mult *= 1.1;
|
||||
Player.bladeburner_success_chance_mult *= 1.04;
|
||||
break;
|
||||
case AugmentationNames.VangelisVirus3:
|
||||
Player.defense_exp_mult *= 1.05;
|
||||
Player.dexterity_exp_mult *= 1.05;
|
||||
Player.defense_exp_mult *= 1.1;
|
||||
Player.dexterity_exp_mult *= 1.1;
|
||||
Player.bladeburner_analysis_mult *= 1.15;
|
||||
Player.bladeburner_success_chance_mult *= 1.05;
|
||||
break;
|
||||
case AugmentationNames.INTERLINKED:
|
||||
Player.strength_exp_mult *= 1.04;
|
||||
Player.defense_exp_mult *= 1.04;
|
||||
Player.dexterity_exp_mult *= 1.04;
|
||||
Player.agility_exp_mult *= 1.04;
|
||||
Player.strength_exp_mult *= 1.05;
|
||||
Player.defense_exp_mult *= 1.05;
|
||||
Player.dexterity_exp_mult *= 1.05;
|
||||
Player.agility_exp_mult *= 1.05;
|
||||
Player.bladeburner_max_stamina_mult *= 1.1;
|
||||
break;
|
||||
case AugmentationNames.BladeRunner:
|
||||
@ -2347,10 +2347,10 @@ function applyAugmentation(aug, reapply=false) {
|
||||
Player.bladeburner_stamina_gain_mult *= 1.05;
|
||||
break;
|
||||
case AugmentationNames.BladeArmor:
|
||||
Player.strength_mult *= 1.02;
|
||||
Player.defense_mult *= 1.02;
|
||||
Player.dexterity_mult *= 1.02;
|
||||
Player.agility_mult *= 1.02;
|
||||
Player.strength_mult *= 1.04;
|
||||
Player.defense_mult *= 1.04;
|
||||
Player.dexterity_mult *= 1.04;
|
||||
Player.agility_mult *= 1.04;
|
||||
Player.bladeburner_stamina_gain_mult *= 1.02;
|
||||
Player.bladeburner_success_chance_mult *= 1.03;
|
||||
break;
|
||||
|
@ -62,12 +62,12 @@ var ActionCountGrowthPeriod = 300; //Time (s) it takes for action count to g
|
||||
var RankToFactionRepFactor = 2; //Delta Faction Rep = this * Delta Rank
|
||||
var RankNeededForFaction = 25;
|
||||
|
||||
var ContractSuccessesPerLevel = 3; //How many successes you need to level up a contract
|
||||
var OperationSuccessesPerLevel = 2.5; //How many successes you need to level up an op
|
||||
var ContractSuccessesPerLevel = 3.5; //How many successes you need to level up a contract
|
||||
var OperationSuccessesPerLevel = 3; //How many successes you need to level up an op
|
||||
|
||||
var RanksPerSkillPoint = 4; //How many ranks needed to get 1 Skill Point
|
||||
|
||||
var ContractBaseMoneyGain = 40e3; //Base Money Gained per contract
|
||||
var ContractBaseMoneyGain = 50e3; //Base Money Gained per contract
|
||||
|
||||
//DOM related variables
|
||||
var ActiveActionCssClass = "bladeburner-active-action";
|
||||
@ -214,8 +214,8 @@ function City(params={}) {
|
||||
this.popEst = this.pop * (Math.random() + 0.5);
|
||||
|
||||
//Number of Synthoid communities population and estimate
|
||||
this.comms = params.comms ? params.comms : getRandomInt(1, 40);
|
||||
this.commsEst = this.comms + getRandomInt(-2, 2);
|
||||
this.comms = params.comms ? params.comms : getRandomInt(5, 100);
|
||||
this.commsEst = this.comms + getRandomInt(-5, 5);
|
||||
if (this.commsEst < 0) {this.commsEst = 0;}
|
||||
this.chaos = 0;
|
||||
}
|
||||
@ -734,7 +734,7 @@ Bladeburner.prototype.create = function() {
|
||||
"whatever city you are currently in.",
|
||||
baseDifficulty:125,difficultyFac:1.02,rewardFac:1.041,
|
||||
rankGain:0.3, hpLoss:0.5,
|
||||
count:getRandomInt(300, 800), countGrowth:getRandomInt(1, 5),
|
||||
count:getRandomInt(100, 500), countGrowth:getRandomInt(5, 75)/10,
|
||||
weights:{hack:0,str:0.05,def:0.05,dex:0.35,agi:0.35,cha:0.1, int:0.05},
|
||||
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.9, int:1},
|
||||
isStealth:true
|
||||
@ -746,7 +746,7 @@ Bladeburner.prototype.create = function() {
|
||||
"current city, and will also increase its chaos level.",
|
||||
baseDifficulty:250, difficultyFac:1.04,rewardFac:1.085,
|
||||
rankGain:0.9, hpLoss:1,
|
||||
count:getRandomInt(200, 750), countGrowth:getRandomInt(1, 3),
|
||||
count:getRandomInt(25, 750), countGrowth:getRandomInt(5, 75)/10,
|
||||
weights:{hack:0,str:0.15,def:0.15,dex:0.25,agi:0.25,cha:0.1, int:0.1},
|
||||
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.8, int:0.9},
|
||||
isKill:true
|
||||
@ -758,7 +758,7 @@ Bladeburner.prototype.create = function() {
|
||||
"city, and will also increase its chaos level.",
|
||||
baseDifficulty:200, difficultyFac:1.03, rewardFac:1.065,
|
||||
rankGain:0.6, hpLoss:1,
|
||||
count:getRandomInt(300, 900), countGrowth:getRandomInt(1,4),
|
||||
count:getRandomInt(50, 1000), countGrowth:getRandomInt(5,75)/10,
|
||||
weights:{hack:0,str:0.2,def:0.2,dex:0.2,agi:0.2,cha:0.1, int:0.1},
|
||||
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.8, int:0.9},
|
||||
isKill:true
|
||||
@ -772,8 +772,8 @@ Bladeburner.prototype.create = function() {
|
||||
"synthoid data.<br><br>" +
|
||||
"You will NOT lose HP from failed Investigation ops.",
|
||||
baseDifficulty:400, difficultyFac:1.03,rewardFac:1.07,reqdRank:25,
|
||||
rankGain:2, rankLoss:0.2,
|
||||
count:getRandomInt(50, 400), countGrowth:1,
|
||||
rankGain:2.2, rankLoss:0.2,
|
||||
count:getRandomInt(50, 200), countGrowth:getRandomInt(10, 40)/10,
|
||||
weights:{hack:0.25,str:0.05,def:0.05,dex:0.2,agi:0.1,cha:0.25, int:0.1},
|
||||
decays:{hack:0.85,str:0.9,def:0.9,dex:0.9,agi:0.9,cha:0.7, int:0.9},
|
||||
isStealth:true
|
||||
@ -785,8 +785,8 @@ Bladeburner.prototype.create = function() {
|
||||
"Successful Undercover ops will increase the accuracy of your synthoid " +
|
||||
"data.",
|
||||
baseDifficulty:500, difficultyFac:1.04, rewardFac:1.09, reqdRank:100,
|
||||
rankGain:4, rankLoss:0.4, hpLoss:2,
|
||||
count:getRandomInt(50, 300), countGrowth:1,
|
||||
rankGain:4.4, rankLoss:0.4, hpLoss:2,
|
||||
count:getRandomInt(25, 300), countGrowth:getRandomInt(10, 40)/10,
|
||||
weights:{hack:0.2,str:0.05,def:0.05,dex:0.2,agi:0.2,cha:0.2, int:0.1},
|
||||
decays:{hack:0.8,str:0.9,def:0.9,dex:0.9,agi:0.9,cha:0.7, int:0.9},
|
||||
isStealth:true
|
||||
@ -796,8 +796,8 @@ Bladeburner.prototype.create = function() {
|
||||
desc:"Conduct a sting operation to bait and capture particularly " +
|
||||
"notorious Synthoid criminals.",
|
||||
baseDifficulty:650, difficultyFac:1.04, rewardFac:1.095, reqdRank:500,
|
||||
rankGain:5, rankLoss:0.5, hpLoss:2.5,
|
||||
count:getRandomInt(25,400), countGrowth:0.75,
|
||||
rankGain:5.5, rankLoss:0.5, hpLoss:2.5,
|
||||
count:getRandomInt(25,400), countGrowth:getRandomInt(3, 40)/10,
|
||||
weights:{hack:0.25,str:0.05,def:0.05,dex:0.25,agi:0.1,cha:0.2, int:0.1},
|
||||
decays:{hack:0.8,str:0.85,def:0.85,dex:0.85,agi:0.85,cha:0.7, int:0.9},
|
||||
isStealth:true
|
||||
@ -808,8 +808,8 @@ Bladeburner.prototype.create = function() {
|
||||
"there must be an existing Synthoid community in your current city " +
|
||||
"in order for this Operation to be successful",
|
||||
baseDifficulty:800, difficultyFac:1.045, rewardFac:1.1, reqdRank:3000,
|
||||
rankGain:50,rankLoss:2.5,hpLoss:50,
|
||||
count:getRandomInt(25, 150), countGrowth:0.2,
|
||||
rankGain:55,rankLoss:2.5,hpLoss:50,
|
||||
count:getRandomInt(25, 150), countGrowth:getRandomInt(2, 40)/10,
|
||||
weights:{hack:0.1,str:0.2,def:0.2,dex:0.2,agi:0.2,cha:0, int:0.1},
|
||||
decays:{hack:0.7,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.9},
|
||||
isKill:true
|
||||
@ -820,8 +820,8 @@ Bladeburner.prototype.create = function() {
|
||||
"objective is to complete the task without " +
|
||||
"drawing any attention. Stealth and discretion are key.",
|
||||
baseDifficulty:1000, difficultyFac:1.05, rewardFac:1.11, reqdRank:20e3,
|
||||
rankGain:20, rankLoss:2, hpLoss:10,
|
||||
count:getRandomInt(25, 250), countGrowth:0.1,
|
||||
rankGain:22, rankLoss:2, hpLoss:10,
|
||||
count:getRandomInt(25, 250), countGrowth:getRandomInt(1, 20)/10,
|
||||
weights:{hack:0.1,str:0.1,def:0.1,dex:0.3,agi:0.3,cha:0, int:0.1},
|
||||
decays:{hack:0.7,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.9},
|
||||
isStealth:true, isKill:true
|
||||
@ -832,8 +832,8 @@ Bladeburner.prototype.create = function() {
|
||||
"important, high-profile social and political leaders " +
|
||||
"in the Synthoid communities.",
|
||||
baseDifficulty:1500, difficultyFac:1.06, rewardFac:1.14, reqdRank:50e3,
|
||||
rankGain:40, rankLoss:4, hpLoss:5,
|
||||
count:getRandomInt(25, 200), countGrowth:0.1,
|
||||
rankGain:44, rankLoss:4, hpLoss:5,
|
||||
count:getRandomInt(25, 200), countGrowth:getRandomInt(1, 20)/10,
|
||||
weights:{hack:0.1,str:0.1,def:0.1,dex:0.3,agi:0.3,cha:0, int:0.1},
|
||||
decays:{hack:0.6,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.8},
|
||||
isStealth:true, isKill:true
|
||||
@ -853,8 +853,12 @@ Bladeburner.prototype.process = function() {
|
||||
//If the Player starts doing some other actions, set action to idle and alert
|
||||
if (Augmentations[AugmentationNames.BladesSimulacrum].owned === false && Player.isWorking) {
|
||||
if (this.action.type !== ActionTypes["Idle"]) {
|
||||
dialogBoxCreate("Your Bladeburner action was cancelled because you started " +
|
||||
"doing something else");
|
||||
let msg = "Your Bladeburner action was cancelled because you started doing something else.";
|
||||
if (this.automateEnabled) {
|
||||
msg += `<br><br>Your automation was disabled as well. You will have to re-enable it through the Bladeburner console`
|
||||
this.automateEnabled = false;
|
||||
}
|
||||
dialogBoxCreate(msg);
|
||||
}
|
||||
this.resetAction();
|
||||
}
|
||||
@ -1339,7 +1343,7 @@ Bladeburner.prototype.completeAction = function() {
|
||||
Player.gainHackingExp(hackingExpGain);
|
||||
Player.gainIntelligenceExp(BaseIntGain);
|
||||
Player.gainCharismaExp(charismaExpGain);
|
||||
this.changeRank(0.1);
|
||||
this.changeRank(0.1 * BitNodeMultipliers.BladeburnerRank);
|
||||
console.log("DEBUG: Field Analysis effectiveness is " + (eff * this.skillMultipliers.successChanceEstimate));
|
||||
this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);
|
||||
if (this.logging.general) {
|
||||
@ -1528,7 +1532,7 @@ Bladeburner.prototype.randomEvent = function() {
|
||||
var destCity = this.cities[destCityName];
|
||||
|
||||
if (!(sourceCity instanceof City) || !(destCity instanceof City)) {
|
||||
throw new Error("sourceCity was not a City object in Bladeburner.randomEvent()");
|
||||
throw new Error("sourceCity/destCity was not a City object in Bladeburner.randomEvent()");
|
||||
}
|
||||
|
||||
if (chance <= 0.05) {
|
||||
@ -3466,6 +3470,27 @@ Bladeburner.prototype.getSkillLevelNetscriptFn = function(skillName, workerScrip
|
||||
}
|
||||
}
|
||||
|
||||
Bladeburner.prototype.getSkillUpgradeCostNetscriptFn = function(skillName, workerScript) {
|
||||
var errorLogText = "ERROR: bladeburner.getSkillUpgradeCostNetscriptFn() failed due to an invalid skill specified: " +
|
||||
skillName + ". Note that the name of the skill is case-sensitive";
|
||||
|
||||
if (skillName === "") {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!Skills.hasOwnProperty(skillName)) {
|
||||
workerScript.log(errorLogText);
|
||||
return -1;
|
||||
}
|
||||
|
||||
var skill = Skills[skillName];
|
||||
if (this.skills[skillName] == null) {
|
||||
return skill.calculateCost(0);
|
||||
} else {
|
||||
return skill.calculateCost(this.skills[skillName]);
|
||||
}
|
||||
}
|
||||
|
||||
Bladeburner.prototype.upgradeSkillNetscriptFn = function(skillName, workerScript) {
|
||||
var errorLogText = "ERROR: bladeburner.upgradeSkill() failed due to an invalid skill specified: " +
|
||||
skillName + ". Note that the name of the skill is case-sensitive";
|
||||
|
@ -491,21 +491,22 @@ let CONSTANTS = {
|
||||
"World Stock Exchange account and TIX API Access<br>",
|
||||
|
||||
LatestUpdate:
|
||||
"v0.40.1 - Community Update<br>" +
|
||||
"* Added getPurchasedServerCost() Netscript function (by kopelli)<br>" +
|
||||
"* Added getFavorToDonate() Netscript function (by hydroflame)<br>" +
|
||||
"* Added getFactionFavorGain() and getCompanyFavorGain() Singularity functions (by hydroflame)<br>" +
|
||||
"* Accumulated 'bonus' time in Bladeburner is now displayed in the UI (by hydroflame)<br>" +
|
||||
"* The Red Pill can now be purchased with negative money (since its supposed to be free) (by hydroflame)<br>" +
|
||||
"* Cranial Signal Processor Augmentations now have the previous generation as a prerequisite. i.e. Cranial Signal Processor - Gen II requires Gen I (by Kline-)<br>" +
|
||||
"* Terminal now supports semicolon usage (end of command). This allows chaining multiple Terminal commands (by hydroflame)<br>" +
|
||||
"* Bladeburner Raid operations can no longer be performed if your estimate of Synthoid communities is zero (by hydroflame)<br>" +
|
||||
"* The difficulty of BN-12 now scales faster (by hydroflame)<br>" +
|
||||
"* Active Scripts UI now shows a RAM Usage bar for each server (by kopelli)<br>" +
|
||||
"* Bug Fix: Corrected terminal timestamp format (by kopelli)<br>" +
|
||||
"* Bug Fix: NetscriptJS scripts should now die properly if they don't have a 'main' function (by hydroflame)<br>" +
|
||||
"* Bug Fix: write(), read(), and tryWrite() Netscript functions should now work properly for writing Arrays/objects to Netscript Ports<br>" +
|
||||
"* Various minor UI/QOL fixes by hydroflame, kopelli, and Kline-"
|
||||
"v0.40.2<br>" +
|
||||
"* Bladeburner Changes:<br>" +
|
||||
"*** Added getSkillUpgradeCost() Netscript function to the API<br>" +
|
||||
"*** Added getBonusTime() Netscript function to the API<br>" +
|
||||
"*** Buffed the effects of many Bladeburner Augmentations<br>" +
|
||||
"*** The Blade's Simulacrum Augmentation requires significantly less reputation but slightly more money<br>" +
|
||||
"*** Slightly increased the amount of successes needed for a Contract/Operation in order to increase its max level<br>" +
|
||||
"*** Increased the amount of money gained from Contracts by ~25%<br>" +
|
||||
"*** Increased the base amount of rank gained from Operations by 10%<br>" +
|
||||
"*** Significantly increased the 'randomness' in determining a Contract/Operation's initial count and rate of count increase<br>" +
|
||||
"*** The number (count) of Operations should now increase significantly faster<br>" +
|
||||
"*** There are now, on average, more Synthoid communities in a city<br>" +
|
||||
"*** If automation is enabled (the feature in Bladeburner console), then switching to another action such as working for a company will now disable the automation<br>" +
|
||||
"* Bug Fix: Stock market should now be correctly initialized in BitNode-8 (by Kline-)<br>" +
|
||||
"* Bug Fix: bladeburner.getCurrentAction() should now properly an 'Idle' object rather than null (by Kline-)<br>" +
|
||||
"* Bug Fix: Bladeburner skill cost multiplier should now properly increase in BitNode-12 (by hydroflame)<br>"
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ import {updateActiveScriptsItems} from "./ActiveScriptsUI";
|
||||
import {Augmentations, Augmentation,
|
||||
augmentationExists, installAugmentations,
|
||||
AugmentationNames} from "./Augmentations";
|
||||
import {BitNodeMultipliers} from "./BitNode";
|
||||
import {BitNodeMultipliers} from "./BitNodeMultipliers";
|
||||
import {determineCrimeSuccess, findCrime} from "./Crimes";
|
||||
import {Bladeburner} from "./Bladeburner";
|
||||
import {Companies, Company, CompanyPosition,
|
||||
@ -3639,6 +3639,21 @@ function NetscriptFunctions(workerScript) {
|
||||
throw makeRuntimeRejectMsg(workerScript, "getSkillLevel() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
|
||||
"at the Bladeburner division or because you do not have Source-File 7");
|
||||
},
|
||||
getSkillUpgradeCost : function(skillName="") {
|
||||
if (workerScript.checkingRam) {
|
||||
return updateStaticRam("getSkillUpgradeCost", CONSTANTS.ScriptBladeburnerApiBaseRamCost);
|
||||
}
|
||||
updateDynamicRam("getSkillUpgradeCost", CONSTANTS.ScriptBladeburnerApiBaseRamCost);
|
||||
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
|
||||
try {
|
||||
return Player.bladeburner.getSkillUpgradeCostNetscriptFn(skillName, workerScript);
|
||||
} catch(e) {
|
||||
throw makeRuntimeRejectMsg(workerScript, "Bladeburner.getSkillUpgradeCost() failed with exception: " + e);
|
||||
}
|
||||
}
|
||||
throw makeRuntimeRejectMsg(workerScript, "getSkillUpgradeCost() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
|
||||
"at the Bladeburner division or because you do not have Source-File 7");
|
||||
},
|
||||
upgradeSkill : function(skillName) {
|
||||
if (workerScript.checkingRam) {
|
||||
return updateStaticRam("upgradeSkill", CONSTANTS.ScriptBladeburnerApiBaseRamCost);
|
||||
@ -3786,6 +3801,14 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
throw makeRuntimeRejectMsg(workerScript, "joinBladeburnerDivision() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
|
||||
"at the Bladeburner division or because you do not have Source-File 7");
|
||||
},
|
||||
getBonusTime : function() {
|
||||
if (workerScript.checkingRam) {return 0;}
|
||||
if ((Player.bitNodeN === 7 || hasBladeburner2079SF)) {
|
||||
return Math.round(Player.bladeburner.storedCycles / 5);
|
||||
}
|
||||
throw makeRuntimeRejectMsg(workerScript, "getBonusTime() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
|
||||
"at the Bladeburner division or because you do not have Source-File 7");
|
||||
}
|
||||
}
|
||||
} //End return
|
||||
|
@ -153,6 +153,7 @@ $(document).keydown(function(e) {
|
||||
let Engine = {
|
||||
version: "",
|
||||
Debug: true,
|
||||
overview: new CharacterOverview(),
|
||||
|
||||
//Clickable objects
|
||||
Clickables: {
|
||||
|
Loading…
Reference in New Issue
Block a user