diff --git a/index.html b/index.html index 7c6a79b0a..eab423e27 100644 --- a/index.html +++ b/index.html @@ -1016,7 +1016,5 @@
Loading Bitburner...
- - diff --git a/src/Bladeburner.js b/src/Bladeburner.js index dd5bd7d7e..fcf1494c1 100644 --- a/src/Bladeburner.js +++ b/src/Bladeburner.js @@ -44,9 +44,9 @@ var DifficultyToTimeFactor = 10; //Action Difficulty divided by this to ge var DiffMultExponentialFactor = 0.28; var DiffMultLinearFactor = 650; -var EffAgiLinearFactor = 90e3; -var EffDexLinearFactor = 90e3; -var EffAgiExponentialFactor = 0.031; +var EffAgiLinearFactor = 40e3; +var EffDexLinearFactor = 40e3; +var EffAgiExponentialFactor = 0.032; var EffDexExponentialFactor = 0.03; var BaseRecruitmentTimeNeeded = 300; //Base time needed (s) to complete a Recruitment action @@ -659,7 +659,7 @@ function Bladeburner(params={}) { this.storedCycles = 0; - this.randomEventCounter = getRandomInt(300, 600); //5-10 minutes + this.randomEventCounter = getRandomInt(240, 600); //4-10 minutes //These times are in seconds this.actionTimeToComplete = 0; //0 or -1 is an infinite running action (like training) @@ -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(100, 500), countGrowth:getRandomInt(5, 75)/10, + count:getRandomInt(25, 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(25, 750), countGrowth:getRandomInt(5, 75)/10, + count:getRandomInt(5, 500), 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(50, 1000), countGrowth:getRandomInt(5,75)/10, + count:getRandomInt(5, 500), 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 @@ -773,7 +773,7 @@ Bladeburner.prototype.create = function() { "You will NOT lose HP from failed Investigation ops.", baseDifficulty:400, difficultyFac:1.03,rewardFac:1.07,reqdRank:25, rankGain:2.2, rankLoss:0.2, - count:getRandomInt(50, 200), countGrowth:getRandomInt(10, 40)/10, + count:getRandomInt(1, 250), 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 @@ -786,7 +786,7 @@ Bladeburner.prototype.create = function() { "data.", baseDifficulty:500, difficultyFac:1.04, rewardFac:1.09, reqdRank:100, rankGain:4.4, rankLoss:0.4, hpLoss:2, - count:getRandomInt(25, 300), countGrowth:getRandomInt(10, 40)/10, + count:getRandomInt(1, 250), 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 @@ -797,7 +797,7 @@ Bladeburner.prototype.create = function() { "notorious Synthoid criminals.", baseDifficulty:650, difficultyFac:1.04, rewardFac:1.095, reqdRank:500, rankGain:5.5, rankLoss:0.5, hpLoss:2.5, - count:getRandomInt(25,400), countGrowth:getRandomInt(3, 40)/10, + count:getRandomInt(1, 300), 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 @@ -809,7 +809,7 @@ Bladeburner.prototype.create = function() { "in order for this Operation to be successful", baseDifficulty:800, difficultyFac:1.045, rewardFac:1.1, reqdRank:3000, rankGain:55,rankLoss:2.5,hpLoss:50, - count:getRandomInt(25, 150), countGrowth:getRandomInt(2, 40)/10, + count:getRandomInt(1, 200), 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 @@ -821,7 +821,7 @@ Bladeburner.prototype.create = function() { "drawing any attention. Stealth and discretion are key.", baseDifficulty:1000, difficultyFac:1.05, rewardFac:1.11, reqdRank:20e3, rankGain:22, rankLoss:2, hpLoss:10, - count:getRandomInt(25, 250), countGrowth:getRandomInt(1, 20)/10, + count:getRandomInt(1, 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 @@ -833,7 +833,7 @@ Bladeburner.prototype.create = function() { "in the Synthoid communities.", baseDifficulty:1500, difficultyFac:1.06, rewardFac:1.14, reqdRank:50e3, rankGain:44, rankLoss:4, hpLoss:5, - count:getRandomInt(25, 200), countGrowth:getRandomInt(1, 20)/10, + count:getRandomInt(1, 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 @@ -900,7 +900,7 @@ Bladeburner.prototype.process = function() { this.randomEventCounter -= seconds; if (this.randomEventCounter <= 0) { this.randomEvent(); - this.randomEventCounter = getRandomInt(300, 600); + this.randomEventCounter = getRandomInt(240, 600); } this.processAction(seconds); @@ -1833,7 +1833,7 @@ Bladeburner.prototype.createOverviewContent = function() { "Bonus time makes the Bladeburner mechanic progress faster, up to 5x the normal speed." }); DomElems.overviewSkillPoints = createElement("p", {display:"block"}); - + DomElems.overviewAugSuccessMult = createElement("p", {display:"block"}); DomElems.overviewAugMaxStaminaMult = createElement("p", {display:"block"}); @@ -3703,7 +3703,7 @@ function initBladeburner() { 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, maxLvl:95, + baseCost:5, costInc:1.1, maxLvl:95, actionTime:1 }); Skills[SkillNames.EvasiveSystem] = new Skill({ diff --git a/src/Constants.js b/src/Constants.js index ae0c6ac5d..530bbeb61 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -497,11 +497,20 @@ let CONSTANTS = { LatestUpdate: `v0.40.3
- * b1t_flum3.exe program can now be created immediately at Hacking level 1 (rather than hacking level 5) - * UI improvements for the character overview panel and the left-hand menu (by mat-jaworski) - * Updated documentation to reflect the fact that Netscript port handles (getPortHandle()) only works in NetscriptJS (2.0), NOT Netscript 1.0 - * Added tryWrite() Netscript function - * When working (for a company/faction), experience is gained immediately/continuously rather than all at once when the work is finished + -----------------------------------------------
+ * Bladeburner Changes:
+ *** Increased the effect that agi and dexterity have on action time
+ *** Starting number of contracts/operations available will be slightly lower
+ *** Random events will now happen slightly more often
+ *** Slightly increased the rate at which the Overclock skill point cost increases
+ -----------------------------------------------
+ * The maximum volatility of stocks is now randomized (randomly generated within a certain range every time the game resets)
+ * Increased the range of possible values for initial stock prices
+ * b1t_flum3.exe program can now be created immediately at Hacking level 1 (rather than hacking level 5)
+ * UI improvements for the character overview panel and the left-hand menu (by mat-jaworski)
+ * Updated documentation to reflect the fact that Netscript port handles (getPortHandle()) only works in NetscriptJS (2.0), NOT Netscript 1.0
+ * Added tryWrite() Netscript function
+ * When working (for a company/faction), experience is gained immediately/continuously rather than all at once when the work is finished
* Improved the introductory tutorial` } diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js index 0fbbba9fd..7a0d2fb3a 100644 --- a/src/NetscriptFunctions.js +++ b/src/NetscriptFunctions.js @@ -34,11 +34,12 @@ import {Server, getServer, AddToAllServers, GetServerByHostname} from "./Server"; import {Settings} from "./Settings"; import {SpecialServerIps} from "./SpecialServerIps"; +import {Stock} from "./Stock"; import {StockMarket, StockSymbols, SymbolToStockMap, initStockSymbols, initStockMarket, initSymbolToStockMap, stockMarketCycle, buyStock, sellStock, updateStockPrices, displayStockMarketContent, updateStockTicker, updateStockPlayerPosition, - Stock, shortStock, sellShort, OrderTypes, + shortStock, sellShort, OrderTypes, PositionTypes, placeOrder, cancelOrder} from "./StockMarket"; import {post} from "./ui/postToTerminal"; import {TextFile, getTextFile, createTextFile} from "./TextFile"; diff --git a/src/Stock.ts b/src/Stock.ts new file mode 100644 index 000000000..6d5928430 --- /dev/null +++ b/src/Stock.ts @@ -0,0 +1,95 @@ +import { Generic_fromJSON, Generic_toJSON, Reviver } from "../utils/JSONReviver"; + +export class Stock { + /** + * Initializes a Stock from a JSON save state + */ + static fromJSON(value: any): Stock { + return Generic_fromJSON(Stock, value.data); + } + + /** + * The stock's ticker symbol + */ + readonly symbol: string; + + /** + * Name of the company that the stock is for + */ + readonly name: string; + + /** + * Stock's share price + */ + price: number; + + /** + * Number of shares the player owns in the LONG position + */ + playerShares: number; + + /** + * Average price of stocks that the player owns in the LONG position + */ + playerAvgPx: number; + + /** + * Number of shares the player owns in the SHORT position + */ + playerShortShares: number; + + /** + * Average price of stocks that the player owns in the SHORT position + */ + playerAvgShortPx: number; + + /** + * Maximum volatility + */ + readonly mv: number; + + /** + * Bear or bull (more likely to go up or down, based on otlkMag) + */ + b: boolean; + + /** + * Outlook magnitude. Represents the stock's forecast and likelihood + * of increasing/decreasing (based on whether its in bear or bull mode) + */ + otlkMag: number; + + /** + * The HTML element that displays the stock's info in the UI + */ + posTxtEl: HTMLElement | null; + + constructor(name: string="", + symbol: string="", + mv: number=1, + b: boolean=true, + otlkMag: number=0, + initPrice: number = 10e3) { + this.name = name; + this.symbol = symbol; + this.price = initPrice; + this.playerShares = 0; + this.playerAvgPx = 0; + this.playerShortShares = 0; + this.playerAvgShortPx = 0; + this.mv = mv; + this.b = b; + this.otlkMag = otlkMag; + + this.posTxtEl = null; + } + + /** + * Serialize the Stock to a JSON save state. + */ + toJSON(): any { + return Generic_toJSON("Stock", this); + } +} + +Reviver.constructors.Stock = Stock; diff --git a/src/StockMarket.js b/src/StockMarket.js index 4f9d9bd4e..e5c829014 100755 --- a/src/StockMarket.js +++ b/src/StockMarket.js @@ -3,6 +3,7 @@ import {Locations} from "./Locations"; import {hasWallStreetSF, wallStreetSFLvl} from "./NetscriptFunctions"; import {WorkerScript} from "./NetscriptWorker"; import {Player} from "./Player"; +import {Stock} from "./Stock"; import {dialogBoxCreate} from "../utils/DialogBox"; import {clearEventListeners} from "../utils/uiHelpers/clearEventListeners"; @@ -24,32 +25,6 @@ import {yesNoBoxCreate, yesNoTxtInpBoxCreate, let StockPriceCap = 1e9; //Put a limit on how high a price can go -function Stock(name, symbol, mv, b, otlkMag, initPrice=10000) { - this.symbol = symbol; - this.name = name; - this.price = initPrice; - - this.playerShares = 0; - this.playerAvgPx = 0; - this.playerShortShares = 0; - this.playerAvgShortPx = 0; - this.mv = mv; - this.b = b; - this.otlkMag = otlkMag; - - this.posTxtEl = null; -} - -Stock.prototype.toJSON = function() { - return Generic_toJSON("Stock", this); -} - -Stock.fromJSON = function(value) { - return Generic_fromJSON(Stock, value.data); -} - -Reviver.constructors.Stock = Stock; - var OrderTypes = { LimitBuy: "Limit Buy Order", LimitSell: "Limit Sell Order", @@ -253,135 +228,135 @@ function initStockMarket() { } var ecorp = Locations.AevumECorp; - var ecorpStk = new Stock(ecorp, StockSymbols[ecorp], 0.45, true, 19, getRandomInt(20000, 25000)); + var ecorpStk = new Stock(ecorp, StockSymbols[ecorp], getRandomInt(40, 50)/100, true, 19, getRandomInt(17e3, 28e3)); StockMarket[ecorp] = ecorpStk; var megacorp = Locations.Sector12MegaCorp; - var megacorpStk = new Stock(megacorp, StockSymbols[megacorp], 0.45, true, 19, getRandomInt(25000, 33000)); + var megacorpStk = new Stock(megacorp, StockSymbols[megacorp], getRandomInt(40,50)/100, true, 19, getRandomInt(24e3, 34e3)); StockMarket[megacorp] = megacorpStk; var blade = Locations.Sector12BladeIndustries; - var bladeStk = new Stock(blade, StockSymbols[blade], 0.75, true, 13, getRandomInt(15000, 22000)); + var bladeStk = new Stock(blade, StockSymbols[blade], getRandomInt(70, 80)/100, true, 13, getRandomInt(12e3, 25e3)); StockMarket[blade] = bladeStk; var clarke = Locations.AevumClarkeIncorporated; - var clarkeStk = new Stock(clarke, StockSymbols[clarke], 0.7, true, 12, getRandomInt(15000, 20000)); + var clarkeStk = new Stock(clarke, StockSymbols[clarke], getRandomInt(65, 75)/100, true, 12, getRandomInt(10e3, 25e3)); StockMarket[clarke] = clarkeStk; var omnitek = Locations.VolhavenOmniTekIncorporated; - var omnitekStk = new Stock(omnitek, StockSymbols[omnitek], 0.65, true, 12, getRandomInt(35000, 40000)); + var omnitekStk = new Stock(omnitek, StockSymbols[omnitek], getRandomInt(60, 70)/100, true, 12, getRandomInt(32e3, 43e3)); StockMarket[omnitek] = omnitekStk; var foursigma = Locations.Sector12FourSigma; - var foursigmaStk = new Stock(foursigma, StockSymbols[foursigma], 1.05, true, 17, getRandomInt(60000, 70000)); + var foursigmaStk = new Stock(foursigma, StockSymbols[foursigma], getRandomInt(100, 110)/100, true, 17, getRandomInt(50e3, 80e3)); StockMarket[foursigma] = foursigmaStk; var kuaigong = Locations.ChongqingKuaiGongInternational; - var kuaigongStk = new Stock(kuaigong, StockSymbols[kuaigong], 0.8, true, 10, getRandomInt(20000, 24000)); + var kuaigongStk = new Stock(kuaigong, StockSymbols[kuaigong], getRandomInt(75, 85)/100, true, 10, getRandomInt(16e3, 28e3)); StockMarket[kuaigong] = kuaigongStk; var fulcrum = Locations.AevumFulcrumTechnologies; - var fulcrumStk = new Stock(fulcrum, StockSymbols[fulcrum], 1.25, true, 16, getRandomInt(30000, 35000)); + var fulcrumStk = new Stock(fulcrum, StockSymbols[fulcrum], getRandomInt(120, 130)/100, true, 16, getRandomInt(29e3, 36e3)); StockMarket[fulcrum] = fulcrumStk; var storm = Locations.IshimaStormTechnologies; - var stormStk = new Stock(storm, StockSymbols[storm], 0.85, true, 7, getRandomInt(21000, 24000)); + var stormStk = new Stock(storm, StockSymbols[storm], getRandomInt(80, 90)/100, true, 7, getRandomInt(20e3, 25e3)); StockMarket[storm] = stormStk; var defcomm = Locations.NewTokyoDefComm; - var defcommStk = new Stock(defcomm, StockSymbols[defcomm], 0.65, true, 10, getRandomInt(10000, 15000)); + var defcommStk = new Stock(defcomm, StockSymbols[defcomm], getRandomInt(60, 70)/100, true, 10, getRandomInt(6e3, 19e3)); StockMarket[defcomm] = defcommStk; var helios = Locations.VolhavenHeliosLabs; - var heliosStk = new Stock(helios, StockSymbols[helios], 0.6, true, 9, getRandomInt(12000, 16000)); + var heliosStk = new Stock(helios, StockSymbols[helios], getRandomInt(55, 65)/100, true, 9, getRandomInt(10e3, 18e3)); StockMarket[helios] = heliosStk; var vitalife = Locations.NewTokyoVitaLife; - var vitalifeStk = new Stock(vitalife, StockSymbols[vitalife], 0.75, true, 7, getRandomInt(10000, 12000)); + var vitalifeStk = new Stock(vitalife, StockSymbols[vitalife], getRandomInt(70, 80)/100, true, 7, getRandomInt(8e3, 14e3)); StockMarket[vitalife] = vitalifeStk; var icarus = Locations.Sector12IcarusMicrosystems; - var icarusStk = new Stock(icarus, StockSymbols[icarus], 0.65, true, 7.5, getRandomInt(16000, 20000)); + var icarusStk = new Stock(icarus, StockSymbols[icarus], getRandomInt(60, 70)/100, true, 7.5, getRandomInt(12e3, 24e3)); StockMarket[icarus] = icarusStk; var universalenergy = Locations.Sector12UniversalEnergy; - var universalenergyStk = new Stock(universalenergy, StockSymbols[universalenergy], 0.55, true, 10, getRandomInt(20000, 25000)); + var universalenergyStk = new Stock(universalenergy, StockSymbols[universalenergy], getRandomInt(50, 60)/100, true, 10, getRandomInt(16e3, 29e3)); StockMarket[universalenergy] = universalenergyStk; var aerocorp = Locations.AevumAeroCorp; - var aerocorpStk = new Stock(aerocorp, StockSymbols[aerocorp], 0.6, true, 6, getRandomInt(10000, 15000)); + var aerocorpStk = new Stock(aerocorp, StockSymbols[aerocorp], getRandomInt(55, 65)/100, true, 6, getRandomInt(8e3, 17e3)); StockMarket[aerocorp] = aerocorpStk; var omnia = Locations.VolhavenOmniaCybersystems; - var omniaStk = new Stock(omnia, StockSymbols[omnia], 0.7, true, 4.5, getRandomInt(9000, 12000)); + var omniaStk = new Stock(omnia, StockSymbols[omnia], getRandomInt(65, 75)/100, true, 4.5, getRandomInt(6e3, 15e3)); StockMarket[omnia] = omniaStk; var solaris = Locations.ChongqingSolarisSpaceSystems; - var solarisStk = new Stock(solaris, StockSymbols[solaris], 0.75, true, 8.5, getRandomInt(18000, 24000)); + var solarisStk = new Stock(solaris, StockSymbols[solaris], getRandomInt(70, 80)/100, true, 8.5, getRandomInt(14e3, 28e3)); StockMarket[solaris] = solarisStk; var globalpharm = Locations.NewTokyoGlobalPharmaceuticals; - var globalpharmStk = new Stock(globalpharm, StockSymbols[globalpharm], 0.6, true, 10.5, getRandomInt(18000, 24000)); + var globalpharmStk = new Stock(globalpharm, StockSymbols[globalpharm], getRandomInt(55, 65)/100, true, 10.5, getRandomInt(12e3, 30e3)); StockMarket[globalpharm] = globalpharmStk; var nova = Locations.IshimaNovaMedical; - var novaStk = new Stock(nova, StockSymbols[nova], 0.75, true, 5, getRandomInt(18000, 24000)); + var novaStk = new Stock(nova, StockSymbols[nova], getRandomInt(70, 80)/100, true, 5, getRandomInt(15e3, 27e3)); StockMarket[nova] = novaStk; var watchdog = Locations.AevumWatchdogSecurity; - var watchdogStk = new Stock(watchdog, StockSymbols[watchdog], 2.5, true, 1.5, getRandomInt(5000, 7500)); + var watchdogStk = new Stock(watchdog, StockSymbols[watchdog], getRandomInt(240, 260)/100, true, 1.5, getRandomInt(4e3, 8.5e3)); StockMarket[watchdog] = watchdogStk; var lexocorp = Locations.VolhavenLexoCorp; - var lexocorpStk = new Stock(lexocorp, StockSymbols[lexocorp], 1.25, true, 6, getRandomInt(5000, 7500)); + var lexocorpStk = new Stock(lexocorp, StockSymbols[lexocorp], getRandomInt(115, 135)/100, true, 6, getRandomInt(4.5e3, 8e3)); StockMarket[lexocorp] = lexocorpStk; var rho = Locations.AevumRhoConstruction; - var rhoStk = new Stock(rho, StockSymbols[rho], 0.6, true, 1, getRandomInt(3000, 6000)); + var rhoStk = new Stock(rho, StockSymbols[rho], getRandomInt(50, 70)/100, true, 1, getRandomInt(2e3, 7e3)); StockMarket[rho] = rhoStk; var alpha = Locations.Sector12AlphaEnterprises; - var alphaStk = new Stock(alpha, StockSymbols[alpha], 1.9, true, 10, getRandomInt(5000, 7500)); + var alphaStk = new Stock(alpha, StockSymbols[alpha], getRandomInt(175, 205)/100, true, 10, getRandomInt(4e3, 8.5e3)); StockMarket[alpha] = alphaStk; var syscore = Locations.VolhavenSysCoreSecurities; - var syscoreStk = new Stock(syscore, StockSymbols[syscore], 1.6, true, 3, getRandomInt(4000, 7000)) + var syscoreStk = new Stock(syscore, StockSymbols[syscore], getRandomInt(150, 170)/100, true, 3, getRandomInt(3e3, 8e3)); StockMarket[syscore] = syscoreStk; var computek = Locations.VolhavenCompuTek; - var computekStk = new Stock(computek, StockSymbols[computek], 0.9, true, 4, getRandomInt(2000, 5000)); + var computekStk = new Stock(computek, StockSymbols[computek], getRandomInt(80, 100)/100, true, 4, getRandomInt(1e3, 6e3)); StockMarket[computek] = computekStk; var netlink = Locations.AevumNetLinkTechnologies; - var netlinkStk = new Stock(netlink, StockSymbols[netlink], 4.2, true, 1, getRandomInt(2000, 4000)); + var netlinkStk = new Stock(netlink, StockSymbols[netlink], getRandomInt(400, 430)/100, true, 1, getRandomInt(1e3, 5e3)); StockMarket[netlink] = netlinkStk; var omega = Locations.IshimaOmegaSoftware; - var omegaStk = new Stock(omega, StockSymbols[omega], 1, true, 0.5, getRandomInt(3000, 6000)); + var omegaStk = new Stock(omega, StockSymbols[omega], getRandomInt(90, 110)/100, true, 0.5, getRandomInt(1e3, 8e3)); StockMarket[omega] = omegaStk; var fns = Locations.Sector12FoodNStuff; - var fnsStk = new Stock(fns, StockSymbols[fns], 0.75, false, 1, getRandomInt(1000, 4000)); + var fnsStk = new Stock(fns, StockSymbols[fns], getRandomInt(70, 80)/100, false, 1, getRandomInt(500, 4.5e3)); StockMarket[fns] = fnsStk; var sigmacosm = "Sigma Cosmetics"; - var sigmacosmStk = new Stock(sigmacosm, StockSymbols[sigmacosm], 2.8, true, 0, getRandomInt(2000, 3000)); + var sigmacosmStk = new Stock(sigmacosm, StockSymbols[sigmacosm], getRandomInt(260, 300)/100, true, 0, getRandomInt(1.5e3, 3.5e3)); StockMarket[sigmacosm] = sigmacosmStk; var joesguns = "Joes Guns"; - var joesgunsStk = new Stock(joesguns, StockSymbols[joesguns], 3.8, true, 1, getRandomInt(500, 1000)); + var joesgunsStk = new Stock(joesguns, StockSymbols[joesguns], getRandomInt(360, 400)/100, true, 1, getRandomInt(250, 1.5e3)); StockMarket[joesguns] = joesgunsStk; var catalyst = "Catalyst Ventures"; - var catalystStk = new Stock(catalyst, StockSymbols[catalyst], 1.45, true, 13.5, getRandomInt(500, 1000)); + var catalystStk = new Stock(catalyst, StockSymbols[catalyst], getRandomInt(120, 175)/100, true, 13.5, getRandomInt(250, 1.5e3)); StockMarket[catalyst] = catalystStk; var microdyne = "Microdyne Technologies"; - var microdyneStk = new Stock(microdyne, StockSymbols[microdyne], 0.75, true, 8, getRandomInt(20000, 25000)); + var microdyneStk = new Stock(microdyne, StockSymbols[microdyne], getRandomInt(70, 80)/100, true, 8, getRandomInt(15e3, 30e3)); StockMarket[microdyne] = microdyneStk; var titanlabs = "Titan Laboratories"; - var titanlabsStk = new Stock(titanlabs, StockSymbols[titanlabs], 0.6, true, 11, getRandomInt(15000, 20000)); + var titanlabsStk = new Stock(titanlabs, StockSymbols[titanlabs], getRandomInt(50, 70)/100, true, 11, getRandomInt(12e3, 24e3)); StockMarket[titanlabs] = titanlabsStk; var orders = {}; diff --git a/src/engine.js b/src/engine.js index f7e20b8d1..db60b97ee 100644 --- a/src/engine.js +++ b/src/engine.js @@ -150,7 +150,7 @@ $(document).keydown(function(e) { } }); -let Engine = { +const Engine = { version: "", Debug: true, overview: new CharacterOverview(), diff --git a/src/index.html b/src/index.html index 76cfe57d3..da15a0733 100644 --- a/src/index.html +++ b/src/index.html @@ -1020,7 +1020,5 @@ if (htmlWebpackPlugin.options.googleAnalytics.trackingId) { %>
Loading Bitburner...
- -