Added two new Bladeburner skills. Minor rebalancing to Corporation

This commit is contained in:
danielyxie 2019-02-02 01:51:00 -08:00
parent 2fa7dfa009
commit 2968445244
3 changed files with 87 additions and 85 deletions

@ -355,6 +355,8 @@ function Skill(params={name:"foo", desc:"foo"}) {
if (params.effCha) {this.effCha = params.effCha;} if (params.effCha) {this.effCha = params.effCha;}
if (params.stamina) {this.stamina = params.stamina;} if (params.stamina) {this.stamina = params.stamina;}
if (params.money) {this.money = params.money;}
if (params.expGain) {this.expGain = params.expGain;}
//Equipment //Equipment
if (params.weaponAbility) {this.weaponAbility = params.weaponAbility;} if (params.weaponAbility) {this.weaponAbility = params.weaponAbility;}
@ -367,17 +369,19 @@ Skill.prototype.calculateCost = function(currentLevel) {
var Skills = {}; var Skills = {};
var SkillNames = { var SkillNames = {
BladesIntuition: "Blade's Intuition", BladesIntuition: "Blade's Intuition",
Reaper: "Reaper",
Cloak: "Cloak", Cloak: "Cloak",
Marksman: "Marksman", Marksman: "Marksman",
WeaponProficiency: "Weapon Proficiency", WeaponProficiency: "Weapon Proficiency",
Overclock: "Overclock",
EvasiveSystem: "Evasive System",
ShortCircuit: "Short-Circuit", ShortCircuit: "Short-Circuit",
DigitalObserver: "Digital Observer", DigitalObserver: "Digital Observer",
Datamancer: "Datamancer",
Tracer: "Tracer", Tracer: "Tracer",
CybersEdge: "Cyber's Edge" Overclock: "Overclock",
Reaper: "Reaper",
EvasiveSystem: "Evasive System",
Datamancer: "Datamancer",
CybersEdge: "Cyber's Edge",
HandsOfMidas: "Hands of Midas",
Hyperdrive: "Hyperdrive",
} }
//Base Class for Contracts, Operations, and BlackOps //Base Class for Contracts, Operations, and BlackOps
@ -1013,6 +1017,8 @@ Bladeburner.prototype.resetSkillMultipliers = function() {
effCha: 1, effCha: 1,
effInt: 1, effInt: 1,
stamina: 1, stamina: 1,
money: 1,
expGain: 1,
weaponAbility: 1, weaponAbility: 1,
gunAbility: 1, gunAbility: 1,
}; };
@ -1197,7 +1203,7 @@ Bladeburner.prototype.completeAction = function() {
//Earn money for contracts //Earn money for contracts
var moneyGain = 0; var moneyGain = 0;
if (!isOperation) { if (!isOperation) {
moneyGain = ContractBaseMoneyGain * rewardMultiplier; moneyGain = ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;
Player.gainMoney(moneyGain); Player.gainMoney(moneyGain);
} }
@ -1526,13 +1532,14 @@ Bladeburner.prototype.gainActionStats = function(action, success) {
var unweightedGain = time * BaseStatGain * successMult * difficultyMult; var unweightedGain = time * BaseStatGain * successMult * difficultyMult;
var unweightedIntGain = time * BaseIntGain * successMult * difficultyMult; var unweightedIntGain = time * BaseIntGain * successMult * difficultyMult;
Player.gainHackingExp(unweightedGain * action.weights.hack * Player.hacking_exp_mult); const skillMult = this.skillMultipliers.expGain;
Player.gainStrengthExp(unweightedGain * action.weights.str * Player.strength_exp_mult); Player.gainHackingExp(unweightedGain * action.weights.hack * Player.hacking_exp_mult * skillMult);
Player.gainDefenseExp(unweightedGain * action.weights.def * Player.defense_exp_mult); Player.gainStrengthExp(unweightedGain * action.weights.str * Player.strength_exp_mult * skillMult);
Player.gainDexterityExp(unweightedGain * action.weights.dex * Player.dexterity_exp_mult); Player.gainDefenseExp(unweightedGain * action.weights.def * Player.defense_exp_mult * skillMult);
Player.gainAgilityExp(unweightedGain * action.weights.agi * Player.agility_exp_mult); Player.gainDexterityExp(unweightedGain * action.weights.dex * Player.dexterity_exp_mult * skillMult);
Player.gainCharismaExp(unweightedGain * action.weights.cha * Player.charisma_exp_mult); Player.gainAgilityExp(unweightedGain * action.weights.agi * Player.agility_exp_mult * skillMult);
Player.gainIntelligenceExp(unweightedIntGain * action.weights.int); Player.gainCharismaExp(unweightedGain * action.weights.cha * Player.charisma_exp_mult * skillMult);
Player.gainIntelligenceExp(unweightedIntGain * action.weights.int * skillMult);
} }
Bladeburner.prototype.randomEvent = function() { Bladeburner.prototype.randomEvent = function() {
@ -3764,13 +3771,6 @@ function initBladeburner() {
baseCost:5, costInc:2, baseCost:5, costInc:2,
successChanceAll:3 successChanceAll:3
}); });
Skills[SkillNames.Reaper] = new Skill({
name:SkillNames.Reaper,
desc:"Each level of this skill increases your " +
"effective combat stats for Bladeburner actions by 3%",
baseCost:3, costInc:2,
effStr:3, effDef:3, effDex:3, effAgi:3
});
Skills[SkillNames.Cloak] = new Skill({ Skills[SkillNames.Cloak] = new Skill({
name:SkillNames.Cloak, name:SkillNames.Cloak,
desc:"Each level of this skill increases your " + desc:"Each level of this skill increases your " +
@ -3782,20 +3782,6 @@ function initBladeburner() {
//TODO Marksman //TODO Marksman
//TODO Weapon Proficiency //TODO Weapon Proficiency
Skills[SkillNames.Overclock] = new Skill({
name:SkillNames.Overclock,
desc:"Each level of this skill decreases the time it takes " +
"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 95)",
baseCost:5, costInc:1.1, maxLvl:95,
actionTime:1
});
Skills[SkillNames.EvasiveSystem] = new Skill({
name:SkillNames.EvasiveSystem,
desc:"Each level of this skill increases your effective " +
"dexterity and agility for Bladeburner actions by 5%",
baseCost:2, costInc: 1,
effDex:5, effAgi:5
});
Skills[SkillNames.ShortCircuit] = new Skill({ Skills[SkillNames.ShortCircuit] = new Skill({
name:SkillNames.ShortCircuit, name:SkillNames.ShortCircuit,
desc:"Each level of this skill increases your success chance " + desc:"Each level of this skill increases your success chance " +
@ -3810,6 +3796,33 @@ function initBladeburner() {
baseCost:5, costInc:2, baseCost:5, costInc:2,
successChanceOperation:4 successChanceOperation:4
}); });
Skills[SkillNames.Tracer] = new Skill({
name:SkillNames.Tracer,
desc:"Each level of this skill increases your success chance in " +
"all Contracts by 4%",
baseCost:3, costInc:2,
successChanceContract:4
});
Skills[SkillNames.Overclock] = new Skill({
name:SkillNames.Overclock,
desc:"Each level of this skill decreases the time it takes " +
"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 95)",
baseCost:4, costInc:1.1, maxLvl:95,
actionTime:1
});
Skills[SkillNames.Reaper] = new Skill({
name:SkillNames.Reaper,
desc:"Each level of this skill increases your effective combat stats for Bladeburner actions by 3%",
baseCost:3, costInc:2,
effStr:3, effDef:3, effDex:3, effAgi:3
});
Skills[SkillNames.EvasiveSystem] = new Skill({
name:SkillNames.EvasiveSystem,
desc:"Each level of this skill increases your effective " +
"dexterity and agility for Bladeburner actions by 5%",
baseCost:2, costInc: 1,
effDex:5, effAgi:5
});
Skills[SkillNames.Datamancer] = new Skill({ Skills[SkillNames.Datamancer] = new Skill({
name:SkillNames.Datamancer, name:SkillNames.Datamancer,
desc:"Each level of this skill increases your effectiveness in " + desc:"Each level of this skill increases your effectiveness in " +
@ -3819,20 +3832,24 @@ function initBladeburner() {
baseCost:3, costInc:1, baseCost:3, costInc:1,
successChanceEstimate:5 successChanceEstimate:5
}); });
Skills[SkillNames.Tracer] = new Skill({
name:SkillNames.Tracer,
desc:"Each level of this skill increases your success chance in " +
"all Contracts by 4%",
baseCost:3, costInc:2,
successChanceContract:4
});
Skills[SkillNames.CybersEdge] = new Skill({ Skills[SkillNames.CybersEdge] = new Skill({
name:SkillNames.CybersEdge, name:SkillNames.CybersEdge,
desc:"Each level of this skill increases your max " + desc:"Each level of this skill increases your max stamina by 2%",
"stamina by 2%",
baseCost:1, costInc:3, baseCost:1, costInc:3,
stamina:2 stamina:2
}); });
Skills[SkillNames.HandsOfMidas] = new Skill({
name: SkillNames.HandsOfMidas,
desc: "Each level of this skill increases the amount of money you receive from Contracts by 5%",
baseCost: 2, costInc: 2.5,
money: 2,
});
Skills[SkillNames.Hyperdrive] = new Skill({
name: SkillNames.Hyperdrive,
esc: "Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 4%",
baseCost: 1, costInc: 3,
expGain: 4,
});
//General Actions //General Actions
var actionName = "Training"; var actionName = "Training";

@ -510,27 +510,12 @@ export let CONSTANTS: IMap<any> = {
LatestUpdate: LatestUpdate:
` `
v0.43.0 v0.43.1
* Added BitNode-10: Digital Carbon * Added two new Bladeburner skills for increasing money and experience gain
* Made some minor adjustments to Bladeburner UI
* Stock Market Changes: * Corporation "Smart Factories" and "Smart Storage" upgrades have slightly lower price multipliers
** Each stock now has a maximum number of shares you can purchase (both Long and Short positions combined) * Added 6 new Coding Contract problems
** Added getStockMaxShares() Netscript function to the TIX API * Updated documentation with list of all Coding Contract problems
** The cost of 4S Market Data TIX API Access increased from $20b to $25b
* Job Changes:
** You can now hold multiple jobs at once. This means you no longer lose reputation when leaving a company
** Because of this change, the getCharacterInformation() Netscript function returns a slightly different value
* Script Editor Changes:
** Added new script editor: CodeMirror. You can choose between the old editor (Ace) or CodeMirror
** Navigation keyboard shortcuts no longer work if the script editor is focused
* Trying to programmatically run a script (run(), exec()) with a 'threads' argument of 0 will now cause the function to return false without running the script
* Home Computer RAM is now capped at 2 ^ 30 GB (1073741824 GB)
* The maximum amount, maximum RAM, and cost of purchasing servers can now vary between different BitNodes (new BitNode multipliers)
* Pop-up dialog boxes are a little bit bigger
* Bug Fix: When importing scripts, "./" will now be properly ignored (e.g. import { foo } from "./lib.script" )
` `
} }

@ -6,12 +6,12 @@ import { IMap } from "../../types";
// [index in Corporation upgrades array, base price, price mult, benefit mult (additive), name, desc] // [index in Corporation upgrades array, base price, price mult, benefit mult (additive), name, desc]
export const CorporationUpgrades: IMap<any[]> = { export const CorporationUpgrades: IMap<any[]> = {
//Smart factories, increases production //Smart factories, increases production
"0": [0, 2e9, 1.07, 0.03, "0": [0, 2e9, 1.06, 0.03,
"Smart Factories", "Advanced AI automatically optimizes the operation and productivity " + "Smart Factories", "Advanced AI automatically optimizes the operation and productivity " +
"of factories. Each level of this upgrade increases your global production by 3% (additive)."], "of factories. Each level of this upgrade increases your global production by 3% (additive)."],
//Smart warehouses, increases storage size //Smart warehouses, increases storage size
"1": [1, 2e9, 1.07, .1, "1": [1, 2e9, 1.06, .1,
"Smart Storage", "Advanced AI automatically optimizes your warehouse storage methods. " + "Smart Storage", "Advanced AI automatically optimizes your warehouse storage methods. " +
"Each level of this upgrade increases your global warehouse storage size by 10% (additive)."], "Each level of this upgrade increases your global warehouse storage size by 10% (additive)."],