From b4074328ece2aa05bec4eeab8616dbd6c9c65c4d Mon Sep 17 00:00:00 2001 From: Snarling <84951833+Snarling@users.noreply.github.com> Date: Sat, 11 Feb 2023 13:18:50 -0500 Subject: [PATCH] UI: Added new locale-aware and configurable number formatting (#354) --- .gitignore | 2 + dist/bitburner.d.ts | 7984 ----------------- .../297df8c0e47764ea113951318b2acf55.png | Bin 120362 -> 0 bytes .../447bc31e61f55e7eff875be3e9a81f1a.png | Bin 122513 -> 0 bytes .../4e0e750f2f09de58219773edd46cbbf5.png | Bin 120332 -> 0 bytes .../5aa87b7de67a77c914088783b055e1cf.png | Bin 121635 -> 0 bytes .../66f4b86d86164fc117bd6d648e4eaa6f.png | Bin 119206 -> 0 bytes .../6caf35202b10b52e1fc2743f674c33e8.png | Bin 113544 -> 0 bytes .../83b2443ab7e7d346766c8f6bc5afc7a7.png | Bin 114634 -> 0 bytes .../85a7b2896acb62be76f3ea7100fe9012.png | Bin 124012 -> 0 bytes .../9f96a5084f4e5f1a6c0041b41b34d62d.png | Bin 121361 -> 0 bytes .../a1110d6c8d16a14c4570411750248399.png | Bin 122869 -> 0 bytes .../c7164b072d62c91c27c6d607b5207e7b.png | Bin 123486 -> 0 bytes .../cb88977ea837bccb9cceb727adc78302.png | Bin 120868 -> 0 bytes .../e66b0c327f97d08e4253f52234d659eb.png | Bin 122924 -> 0 bytes .../e97de4daa946331c7e99dee9c05d629c.png | Bin 120193 -> 0 bytes .../bitburner.activefragment.highestcharge.md | 2 +- markdown/bitburner.activefragment.id.md | 2 +- markdown/bitburner.activefragment.md | 18 +- .../bitburner.activefragment.numcharge.md | 2 +- markdown/bitburner.activefragment.rotation.md | 2 +- markdown/bitburner.activefragment.x.md | 2 +- markdown/bitburner.activefragment.y.md | 2 +- markdown/bitburner.augmentpair.cost.md | 2 +- markdown/bitburner.augmentpair.md | 10 +- markdown/bitburner.augmentpair.name.md | 2 +- markdown/bitburner.autocompletedata.flags.md | 4 +- markdown/bitburner.autocompletedata.md | 12 +- .../bitburner.autocompletedata.scripts.md | 2 +- .../bitburner.autocompletedata.servers.md | 2 +- markdown/bitburner.autocompletedata.txts.md | 2 +- markdown/bitburner.basichgwoptions.md | 10 +- markdown/bitburner.basichgwoptions.stock.md | 2 +- markdown/bitburner.basichgwoptions.threads.md | 2 +- ...tnodemultipliers.agilitylevelmultiplier.md | 2 +- ...itnodemultipliers.augmentationmoneycost.md | 2 +- ....bitnodemultipliers.augmentationrepcost.md | 2 +- ...rner.bitnodemultipliers.bladeburnerrank.md | 2 +- ...bitnodemultipliers.bladeburnerskillcost.md | 2 +- ...nodemultipliers.charismalevelmultiplier.md | 2 +- ...rner.bitnodemultipliers.classgymexpgain.md | 2 +- ....bitnodemultipliers.codingcontractmoney.md | 2 +- ...r.bitnodemultipliers.companyworkexpgain.md | 2 +- ...ner.bitnodemultipliers.companyworkmoney.md | 2 +- ...r.bitnodemultipliers.corporationsoftcap.md | 2 +- ...bitnodemultipliers.corporationvaluation.md | 2 +- ...tburner.bitnodemultipliers.crimeexpgain.md | 2 +- ...bitburner.bitnodemultipliers.crimemoney.md | 2 +- ...nodemultipliers.daedalusaugsrequirement.md | 2 +- ...tnodemultipliers.defenselevelmultiplier.md | 2 +- ...odemultipliers.dexteritylevelmultiplier.md | 2 +- ...itnodemultipliers.factionpassiverepgain.md | 2 +- ...r.bitnodemultipliers.factionworkexpgain.md | 2 +- ...r.bitnodemultipliers.factionworkrepgain.md | 2 +- ...emultipliers.foursigmamarketdataapicost.md | 2 +- ...nodemultipliers.foursigmamarketdatacost.md | 2 +- ...itburner.bitnodemultipliers.gangsoftcap.md | 2 +- ...itburner.bitnodemultipliers.hackexpgain.md | 2 +- ...tnodemultipliers.hackinglevelmultiplier.md | 2 +- ...ner.bitnodemultipliers.hacknetnodemoney.md | 2 +- ....bitnodemultipliers.homecomputerramcost.md | 2 +- ...er.bitnodemultipliers.infiltrationmoney.md | 2 +- ...rner.bitnodemultipliers.infiltrationrep.md | 2 +- ...rner.bitnodemultipliers.manualhackmoney.md | 2 +- markdown/bitburner.bitnodemultipliers.md | 98 +- ....bitnodemultipliers.purchasedservercost.md | 2 +- ...bitnodemultipliers.purchasedserverlimit.md | 2 +- ...itnodemultipliers.purchasedservermaxram.md | 2 +- ...tnodemultipliers.purchasedserversoftcap.md | 2 +- ...bitnodemultipliers.reptodonatetofaction.md | 2 +- ...rner.bitnodemultipliers.scripthackmoney.md | 2 +- ....bitnodemultipliers.scripthackmoneygain.md | 2 +- ...ner.bitnodemultipliers.servergrowthrate.md | 2 +- ...urner.bitnodemultipliers.servermaxmoney.md | 2 +- ....bitnodemultipliers.serverstartingmoney.md | 2 +- ...tnodemultipliers.serverstartingsecurity.md | 2 +- ...ner.bitnodemultipliers.serverweakenrate.md | 2 +- ...bitnodemultipliers.staneksgiftextrasize.md | 2 +- ...emultipliers.staneksgiftpowermultiplier.md | 2 +- ...nodemultipliers.strengthlevelmultiplier.md | 2 +- ...itnodemultipliers.worlddaemondifficulty.md | 2 +- ...itburner.bladeburner.getactionautolevel.md | 4 +- ...ner.bladeburner.getactioncountremaining.md | 4 +- ...urner.bladeburner.getactioncurrentlevel.md | 4 +- ...burner.bladeburner.getactioncurrenttime.md | 4 +- ...eburner.getactionestimatedsuccesschance.md | 4 +- ...bitburner.bladeburner.getactionmaxlevel.md | 4 +- .../bitburner.bladeburner.getactionrepgain.md | 4 +- ...itburner.bladeburner.getactionsuccesses.md | 33 + .../bitburner.bladeburner.getactiontime.md | 4 +- .../bitburner.bladeburner.getblackopnames.md | 4 +- .../bitburner.bladeburner.getblackoprank.md | 4 +- .../bitburner.bladeburner.getbonustime.md | 4 +- markdown/bitburner.bladeburner.getcity.md | 4 +- .../bitburner.bladeburner.getcitychaos.md | 4 +- ...itburner.bladeburner.getcitycommunities.md | 4 +- ....bladeburner.getcityestimatedpopulation.md | 4 +- .../bitburner.bladeburner.getcontractnames.md | 4 +- .../bitburner.bladeburner.getcurrentaction.md | 4 +- ...urner.bladeburner.getgeneralactionnames.md | 4 +- ...bitburner.bladeburner.getoperationnames.md | 4 +- markdown/bitburner.bladeburner.getrank.md | 4 +- .../bitburner.bladeburner.getskilllevel.md | 4 +- .../bitburner.bladeburner.getskillnames.md | 4 +- .../bitburner.bladeburner.getskillpoints.md | 4 +- ...tburner.bladeburner.getskillupgradecost.md | 6 +- markdown/bitburner.bladeburner.getstamina.md | 4 +- markdown/bitburner.bladeburner.getteamsize.md | 4 +- .../bitburner.bladeburner.inbladeburner.md | 4 +- ...ner.bladeburner.joinbladeburnerdivision.md | 4 +- ...rner.bladeburner.joinbladeburnerfaction.md | 4 +- markdown/bitburner.bladeburner.md | 3 +- ...itburner.bladeburner.setactionautolevel.md | 4 +- .../bitburner.bladeburner.setactionlevel.md | 4 +- markdown/bitburner.bladeburner.setteamsize.md | 4 +- markdown/bitburner.bladeburner.startaction.md | 4 +- ...urner.bladeburner.stopbladeburneraction.md | 4 +- markdown/bitburner.bladeburner.switchcity.md | 4 +- .../bitburner.bladeburner.upgradeskill.md | 6 +- markdown/bitburner.bladeburnercuraction.md | 10 +- .../bitburner.bladeburnercuraction.name.md | 2 +- .../bitburner.bladeburnercuraction.type.md | 2 +- markdown/bitburner.cityname.md | 2 +- markdown/bitburner.codingcontract.attempt.md | 6 +- ...rner.codingcontract.createdummycontract.md | 4 +- ...itburner.codingcontract.getcontracttype.md | 6 +- ...tburner.codingcontract.getcontracttypes.md | 4 +- markdown/bitburner.codingcontract.getdata.md | 6 +- ...bitburner.codingcontract.getdescription.md | 6 +- ...ner.codingcontract.getnumtriesremaining.md | 6 +- markdown/bitburner.codingcontract.md | 2 +- markdown/bitburner.codingcontractdata.md | 2 +- ...ner.corpconstants.baseproductprofitmult.md | 2 +- ....corpconstants.bribeamountperreputation.md | 2 +- .../bitburner.corpconstants.bribethreshold.md | 2 +- ...ner.corpconstants.coffeecostperemployee.md | 2 +- ...bitburner.corpconstants.dividendmaxrate.md | 2 +- ...urner.corpconstants.employeeraiseamount.md | 2 +- ....corpconstants.employeesalarymultiplier.md | 2 +- ...rpconstants.gamecyclespercorpstatecycle.md | 2 +- ....corpconstants.gamecyclespermarketcycle.md | 2 +- .../bitburner.corpconstants.industrynames.md | 2 +- .../bitburner.corpconstants.initialshares.md | 2 +- ...er.corpconstants.issuenewsharescooldown.md | 2 +- ...pconstants.marketcyclesperemployeeraise.md | 2 +- .../bitburner.corpconstants.materialnames.md | 2 +- ...bitburner.corpconstants.maxproductsbase.md | 2 +- markdown/bitburner.corpconstants.md | 68 +- ...itburner.corpconstants.minemployeedecay.md | 2 +- ...tburner.corpconstants.officeinitialcost.md | 2 +- ...tburner.corpconstants.officeinitialsize.md | 2 +- ...corpconstants.officesizeupgradecostbase.md | 2 +- .../bitburner.corpconstants.researchnames.md | 2 +- ...tburner.corpconstants.researchnamesbase.md | 2 +- ....corpconstants.researchnamesproductonly.md | 2 +- ...ner.corpconstants.secondspermarketcycle.md | 2 +- ...burner.corpconstants.sellsharescooldown.md | 2 +- ...rner.corpconstants.sharesperpriceupdate.md | 2 +- .../bitburner.corpconstants.statenames.md | 2 +- .../bitburner.corpconstants.unlocknames.md | 2 +- .../bitburner.corpconstants.upgradenames.md | 2 +- ...rner.corpconstants.warehouseinitialcost.md | 2 +- ...rner.corpconstants.warehouseinitialsize.md | 2 +- ...pconstants.warehousesizeupgradecostbase.md | 2 +- markdown/bitburner.corpemployeeposition.md | 2 +- ...rner.corpindustrydata.advertisingfactor.md | 2 +- ...bitburner.corpindustrydata.aicorefactor.md | 2 +- .../bitburner.corpindustrydata.description.md | 2 +- ...tburner.corpindustrydata.hardwarefactor.md | 2 +- markdown/bitburner.corpindustrydata.md | 30 +- ...rner.corpindustrydata.producedmaterials.md | 2 +- .../bitburner.corpindustrydata.product.md | 2 +- ...urner.corpindustrydata.realestatefactor.md | 2 +- ...rner.corpindustrydata.recommendstarting.md | 2 +- ...rner.corpindustrydata.requiredmaterials.md | 2 +- .../bitburner.corpindustrydata.robotfactor.md | 2 +- ...itburner.corpindustrydata.sciencefactor.md | 2 +- ...bitburner.corpindustrydata.startingcost.md | 2 +- markdown/bitburner.corpindustryname.md | 2 +- ...urner.corpmaterialconstantdata.basecost.md | 2 +- ...ner.corpmaterialconstantdata.basemarkup.md | 2 +- ...orpmaterialconstantdata.competitionbase.md | 2 +- ...rpmaterialconstantdata.competitionrange.md | 2 +- ...ner.corpmaterialconstantdata.demandbase.md | 2 +- ...er.corpmaterialconstantdata.demandrange.md | 2 +- ....corpmaterialconstantdata.maxvolatility.md | 2 +- .../bitburner.corpmaterialconstantdata.md | 24 +- ...bitburner.corpmaterialconstantdata.name.md | 2 +- ...bitburner.corpmaterialconstantdata.size.md | 2 +- markdown/bitburner.corpmaterialname.md | 2 +- ...urner.corporation.acceptinvestmentoffer.md | 4 +- markdown/bitburner.corporation.bribe.md | 4 +- .../bitburner.corporation.buybackshares.md | 4 +- ...bitburner.corporation.createcorporation.md | 4 +- markdown/bitburner.corporation.expandcity.md | 4 +- .../bitburner.corporation.expandindustry.md | 4 +- .../bitburner.corporation.getbonustime.md | 4 +- .../bitburner.corporation.getconstants.md | 4 +- .../bitburner.corporation.getcorporation.md | 4 +- markdown/bitburner.corporation.getdivision.md | 4 +- .../bitburner.corporation.getindustrydata.md | 4 +- ...itburner.corporation.getinvestmentoffer.md | 4 +- .../bitburner.corporation.getmaterialdata.md | 4 +- ...burner.corporation.getunlockupgradecost.md | 4 +- .../bitburner.corporation.getupgradelevel.md | 4 +- ...tburner.corporation.getupgradelevelcost.md | 4 +- markdown/bitburner.corporation.gopublic.md | 4 +- .../bitburner.corporation.hascorporation.md | 4 +- .../bitburner.corporation.hasunlockupgrade.md | 4 +- .../bitburner.corporation.issuedividends.md | 4 +- .../bitburner.corporation.issuenewshares.md | 6 +- .../bitburner.corporation.levelupgrade.md | 4 +- markdown/bitburner.corporation.md | 4 +- markdown/bitburner.corporation.sellshares.md | 4 +- .../bitburner.corporation.unlockupgrade.md | 4 +- ...burner.corporationinfo.dividendearnings.md | 2 +- .../bitburner.corporationinfo.dividendrate.md | 2 +- .../bitburner.corporationinfo.dividendtax.md | 2 +- .../bitburner.corporationinfo.divisions.md | 2 +- .../bitburner.corporationinfo.expenses.md | 2 +- markdown/bitburner.corporationinfo.funds.md | 2 +- .../bitburner.corporationinfo.issuedshares.md | 2 +- markdown/bitburner.corporationinfo.md | 36 +- markdown/bitburner.corporationinfo.name.md | 2 +- .../bitburner.corporationinfo.numshares.md | 2 +- markdown/bitburner.corporationinfo.public.md | 2 +- markdown/bitburner.corporationinfo.revenue.md | 2 +- .../bitburner.corporationinfo.shareprice.md | 2 +- ...urner.corporationinfo.sharesalecooldown.md | 2 +- markdown/bitburner.corporationinfo.state.md | 4 +- .../bitburner.corporationinfo.totalshares.md | 2 +- markdown/bitburner.corpproductdata.desc.md | 13 + markdown/bitburner.corpproductdata.md | 28 +- markdown/bitburner.corpproductdata.name.md | 13 + ...bitburner.corpproductdata.ratingweights.md | 20 + markdown/bitburner.corpproductdata.verb.md | 13 + markdown/bitburner.corpresearchname.md | 2 +- markdown/bitburner.corpstatename.md | 4 +- markdown/bitburner.corpunlockname.md | 2 +- markdown/bitburner.corpupgradename.md | 2 +- markdown/bitburner.crimestats.agility_exp.md | 2 +- ...urner.crimestats.agility_success_weight.md | 2 +- markdown/bitburner.crimestats.charisma_exp.md | 2 +- ...rner.crimestats.charisma_success_weight.md | 2 +- markdown/bitburner.crimestats.defense_exp.md | 2 +- ...urner.crimestats.defense_success_weight.md | 2 +- .../bitburner.crimestats.dexterity_exp.md | 2 +- ...ner.crimestats.dexterity_success_weight.md | 2 +- markdown/bitburner.crimestats.difficulty.md | 2 +- markdown/bitburner.crimestats.hacking_exp.md | 2 +- ...urner.crimestats.hacking_success_weight.md | 2 +- .../bitburner.crimestats.intelligence_exp.md | 2 +- markdown/bitburner.crimestats.karma.md | 2 +- markdown/bitburner.crimestats.kills.md | 2 +- markdown/bitburner.crimestats.md | 44 +- markdown/bitburner.crimestats.money.md | 2 +- markdown/bitburner.crimestats.strength_exp.md | 2 +- ...rner.crimestats.strength_success_weight.md | 2 +- markdown/bitburner.crimestats.time.md | 2 +- markdown/bitburner.crimestats.type.md | 2 +- markdown/bitburner.crimetype.md | 2 +- markdown/bitburner.division.awareness.md | 2 +- markdown/bitburner.division.cities.md | 2 +- .../bitburner.division.lastcycleexpenses.md | 2 +- .../bitburner.division.lastcyclerevenue.md | 2 +- markdown/bitburner.division.makesproducts.md | 2 +- markdown/bitburner.division.md | 34 +- markdown/bitburner.division.name.md | 2 +- markdown/bitburner.division.popularity.md | 2 +- markdown/bitburner.division.prodmult.md | 2 +- markdown/bitburner.division.products.md | 2 +- markdown/bitburner.division.research.md | 2 +- .../bitburner.division.thiscycleexpenses.md | 2 +- .../bitburner.division.thiscyclerevenue.md | 2 +- markdown/bitburner.division.type.md | 2 +- markdown/bitburner.division.upgrades.md | 2 +- markdown/bitburner.equipmentstats.agi.md | 2 +- markdown/bitburner.equipmentstats.cha.md | 2 +- markdown/bitburner.equipmentstats.def.md | 2 +- markdown/bitburner.equipmentstats.dex.md | 2 +- markdown/bitburner.equipmentstats.hack.md | 2 +- markdown/bitburner.equipmentstats.md | 18 +- markdown/bitburner.equipmentstats.str.md | 2 +- markdown/bitburner.export.amt.md | 2 +- markdown/bitburner.export.div.md | 2 +- markdown/bitburner.export.loc.md | 2 +- markdown/bitburner.export.md | 12 +- markdown/bitburner.factionworktype.md | 2 +- markdown/bitburner.filenameorpid.md | 2 +- markdown/bitburner.formulas.gang.md | 2 +- markdown/bitburner.formulas.hacking.md | 2 +- markdown/bitburner.formulas.hacknetnodes.md | 2 +- markdown/bitburner.formulas.hacknetservers.md | 2 +- markdown/bitburner.formulas.md | 20 +- markdown/bitburner.formulas.mockperson.md | 4 +- markdown/bitburner.formulas.mockplayer.md | 4 +- markdown/bitburner.formulas.mockserver.md | 4 +- markdown/bitburner.formulas.reputation.md | 2 +- markdown/bitburner.formulas.skills.md | 2 +- markdown/bitburner.formulas.work.md | 2 +- markdown/bitburner.fragment.id.md | 2 +- markdown/bitburner.fragment.limit.md | 2 +- markdown/bitburner.fragment.md | 16 +- markdown/bitburner.fragment.power.md | 2 +- markdown/bitburner.fragment.shape.md | 2 +- markdown/bitburner.fragment.type.md | 2 +- markdown/bitburner.gameinfo.commit.md | 2 +- markdown/bitburner.gameinfo.md | 12 +- markdown/bitburner.gameinfo.platform.md | 2 +- markdown/bitburner.gameinfo.version.md | 2 +- markdown/bitburner.gang.ascendmember.md | 4 +- markdown/bitburner.gang.canrecruitmember.md | 4 +- markdown/bitburner.gang.creategang.md | 4 +- markdown/bitburner.gang.getascensionresult.md | 4 +- markdown/bitburner.gang.getbonustime.md | 6 +- .../bitburner.gang.getchancetowinclash.md | 4 +- markdown/bitburner.gang.getequipmentcost.md | 4 +- markdown/bitburner.gang.getequipmentnames.md | 4 +- markdown/bitburner.gang.getequipmentstats.md | 4 +- markdown/bitburner.gang.getequipmenttype.md | 4 +- markdown/bitburner.gang.getganginformation.md | 4 +- .../bitburner.gang.getmemberinformation.md | 4 +- markdown/bitburner.gang.getmembernames.md | 4 +- .../bitburner.gang.getotherganginformation.md | 4 +- markdown/bitburner.gang.gettasknames.md | 4 +- markdown/bitburner.gang.gettaskstats.md | 4 +- markdown/bitburner.gang.ingang.md | 4 +- markdown/bitburner.gang.md | 2 +- markdown/bitburner.gang.purchaseequipment.md | 4 +- markdown/bitburner.gang.recruitmember.md | 4 +- markdown/bitburner.gang.setmembertask.md | 4 +- .../bitburner.gang.setterritorywarfare.md | 4 +- ...burner.gangformulas.ascensionmultiplier.md | 4 +- ...burner.gangformulas.ascensionpointsgain.md | 4 +- markdown/bitburner.gangformulas.md | 2 +- markdown/bitburner.gangformulas.moneygain.md | 4 +- .../bitburner.gangformulas.respectgain.md | 4 +- .../bitburner.gangformulas.wantedlevelgain.md | 4 +- .../bitburner.gangformulas.wantedpenalty.md | 4 +- markdown/bitburner.ganggeninfo.faction.md | 2 +- markdown/bitburner.ganggeninfo.ishacking.md | 2 +- markdown/bitburner.ganggeninfo.md | 30 +- .../bitburner.ganggeninfo.moneygainrate.md | 2 +- markdown/bitburner.ganggeninfo.power.md | 2 +- markdown/bitburner.ganggeninfo.respect.md | 2 +- .../bitburner.ganggeninfo.respectgainrate.md | 2 +- markdown/bitburner.ganggeninfo.territory.md | 2 +- ...burner.ganggeninfo.territoryclashchance.md | 2 +- ...ner.ganggeninfo.territorywarfareengaged.md | 2 +- markdown/bitburner.ganggeninfo.wantedlevel.md | 2 +- ...tburner.ganggeninfo.wantedlevelgainrate.md | 2 +- .../bitburner.ganggeninfo.wantedpenalty.md | 2 +- markdown/bitburner.gangmemberascension.agi.md | 2 +- markdown/bitburner.gangmemberascension.cha.md | 2 +- markdown/bitburner.gangmemberascension.def.md | 2 +- markdown/bitburner.gangmemberascension.dex.md | 2 +- .../bitburner.gangmemberascension.hack.md | 2 +- markdown/bitburner.gangmemberascension.md | 20 +- .../bitburner.gangmemberascension.respect.md | 2 +- markdown/bitburner.gangmemberascension.str.md | 2 +- markdown/bitburner.gangmemberinfo.agi.md | 2 +- .../bitburner.gangmemberinfo.agi_asc_mult.md | 2 +- ...bitburner.gangmemberinfo.agi_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.agi_exp.md | 2 +- markdown/bitburner.gangmemberinfo.agi_mult.md | 2 +- .../bitburner.gangmemberinfo.augmentations.md | 2 +- markdown/bitburner.gangmemberinfo.cha.md | 2 +- .../bitburner.gangmemberinfo.cha_asc_mult.md | 2 +- ...bitburner.gangmemberinfo.cha_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.cha_exp.md | 2 +- markdown/bitburner.gangmemberinfo.cha_mult.md | 2 +- markdown/bitburner.gangmemberinfo.def.md | 2 +- .../bitburner.gangmemberinfo.def_asc_mult.md | 2 +- ...bitburner.gangmemberinfo.def_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.def_exp.md | 2 +- markdown/bitburner.gangmemberinfo.def_mult.md | 2 +- markdown/bitburner.gangmemberinfo.dex.md | 2 +- .../bitburner.gangmemberinfo.dex_asc_mult.md | 2 +- ...bitburner.gangmemberinfo.dex_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.dex_exp.md | 2 +- markdown/bitburner.gangmemberinfo.dex_mult.md | 2 +- .../bitburner.gangmemberinfo.earnedrespect.md | 2 +- markdown/bitburner.gangmemberinfo.hack.md | 2 +- .../bitburner.gangmemberinfo.hack_asc_mult.md | 2 +- ...itburner.gangmemberinfo.hack_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.hack_exp.md | 2 +- .../bitburner.gangmemberinfo.hack_mult.md | 2 +- markdown/bitburner.gangmemberinfo.md | 82 +- .../bitburner.gangmemberinfo.moneygain.md | 2 +- markdown/bitburner.gangmemberinfo.name.md | 2 +- .../bitburner.gangmemberinfo.respectgain.md | 2 +- markdown/bitburner.gangmemberinfo.str.md | 2 +- .../bitburner.gangmemberinfo.str_asc_mult.md | 2 +- ...bitburner.gangmemberinfo.str_asc_points.md | 2 +- markdown/bitburner.gangmemberinfo.str_exp.md | 2 +- markdown/bitburner.gangmemberinfo.str_mult.md | 2 +- markdown/bitburner.gangmemberinfo.task.md | 2 +- markdown/bitburner.gangmemberinfo.upgrades.md | 2 +- ...itburner.gangmemberinfo.wantedlevelgain.md | 2 +- markdown/bitburner.gangotherinfo.md | 2 +- markdown/bitburner.gangotherinfoobject.md | 10 +- .../bitburner.gangotherinfoobject.power.md | 2 +- ...bitburner.gangotherinfoobject.territory.md | 2 +- markdown/bitburner.gangtaskstats.agiweight.md | 2 +- markdown/bitburner.gangtaskstats.basemoney.md | 2 +- .../bitburner.gangtaskstats.baserespect.md | 2 +- .../bitburner.gangtaskstats.basewanted.md | 2 +- markdown/bitburner.gangtaskstats.chaweight.md | 2 +- markdown/bitburner.gangtaskstats.defweight.md | 2 +- markdown/bitburner.gangtaskstats.desc.md | 2 +- markdown/bitburner.gangtaskstats.dexweight.md | 2 +- .../bitburner.gangtaskstats.difficulty.md | 2 +- .../bitburner.gangtaskstats.hackweight.md | 2 +- markdown/bitburner.gangtaskstats.iscombat.md | 2 +- markdown/bitburner.gangtaskstats.ishacking.md | 2 +- markdown/bitburner.gangtaskstats.md | 36 +- markdown/bitburner.gangtaskstats.name.md | 2 +- markdown/bitburner.gangtaskstats.strweight.md | 2 +- markdown/bitburner.gangtaskstats.territory.md | 2 +- markdown/bitburner.gangterritory.md | 12 +- markdown/bitburner.gangterritory.money.md | 2 +- markdown/bitburner.gangterritory.respect.md | 2 +- markdown/bitburner.gangterritory.wanted.md | 2 +- ...rner.grafting.getaugmentationgraftprice.md | 4 +- ...urner.grafting.getaugmentationgrafttime.md | 4 +- ...rner.grafting.getgraftableaugmentations.md | 4 +- .../bitburner.grafting.graftaugmentation.md | 6 +- markdown/bitburner.grafting.md | 2 +- markdown/bitburner.gymtype.md | 2 +- .../bitburner.hackingformulas.growpercent.md | 6 +- .../bitburner.hackingformulas.growtime.md | 4 +- .../bitburner.hackingformulas.hackchance.md | 4 +- markdown/bitburner.hackingformulas.hackexp.md | 4 +- .../bitburner.hackingformulas.hackpercent.md | 4 +- .../bitburner.hackingformulas.hacktime.md | 4 +- markdown/bitburner.hackingformulas.md | 2 +- .../bitburner.hackingformulas.weakentime.md | 4 +- .../bitburner.hackingmultipliers.chance.md | 2 +- .../bitburner.hackingmultipliers.growth.md | 2 +- markdown/bitburner.hackingmultipliers.md | 14 +- .../bitburner.hackingmultipliers.money.md | 2 +- .../bitburner.hackingmultipliers.speed.md | 2 +- .../bitburner.hacknet.getcacheupgradecost.md | 4 +- .../bitburner.hacknet.getcoreupgradecost.md | 4 +- .../bitburner.hacknet.gethashupgradelevel.md | 4 +- markdown/bitburner.hacknet.gethashupgrades.md | 4 +- .../bitburner.hacknet.getlevelupgradecost.md | 4 +- markdown/bitburner.hacknet.getnodestats.md | 4 +- .../bitburner.hacknet.getpurchasenodecost.md | 4 +- .../bitburner.hacknet.getramupgradecost.md | 4 +- markdown/bitburner.hacknet.getstudymult.md | 4 +- markdown/bitburner.hacknet.gettrainingmult.md | 4 +- markdown/bitburner.hacknet.hashcapacity.md | 4 +- markdown/bitburner.hacknet.hashcost.md | 6 +- markdown/bitburner.hacknet.maxnumnodes.md | 4 +- markdown/bitburner.hacknet.md | 2 +- markdown/bitburner.hacknet.numhashes.md | 4 +- markdown/bitburner.hacknet.numnodes.md | 4 +- markdown/bitburner.hacknet.purchasenode.md | 4 +- markdown/bitburner.hacknet.spendhashes.md | 8 +- markdown/bitburner.hacknet.upgradecache.md | 4 +- markdown/bitburner.hacknet.upgradecore.md | 4 +- markdown/bitburner.hacknet.upgradelevel.md | 4 +- markdown/bitburner.hacknet.upgraderam.md | 4 +- .../bitburner.hacknetmultipliers.corecost.md | 2 +- .../bitburner.hacknetmultipliers.levelcost.md | 2 +- markdown/bitburner.hacknetmultipliers.md | 16 +- ...bitburner.hacknetmultipliers.production.md | 2 +- ...tburner.hacknetmultipliers.purchasecost.md | 2 +- .../bitburner.hacknetmultipliers.ramcost.md | 2 +- ...bitburner.hacknetnodeconstants.basecost.md | 2 +- ...urner.hacknetnodeconstants.corebasecost.md | 2 +- ...rner.hacknetnodeconstants.levelbasecost.md | 2 +- ...bitburner.hacknetnodeconstants.maxcores.md | 2 +- ...bitburner.hacknetnodeconstants.maxlevel.md | 2 +- .../bitburner.hacknetnodeconstants.maxram.md | 2 +- markdown/bitburner.hacknetnodeconstants.md | 30 +- ....hacknetnodeconstants.moneygainperlevel.md | 2 +- ...r.hacknetnodeconstants.purchasenextmult.md | 2 +- ...burner.hacknetnodeconstants.rambasecost.md | 2 +- ...er.hacknetnodeconstants.upgradecoremult.md | 2 +- ...r.hacknetnodeconstants.upgradelevelmult.md | 2 +- ...ner.hacknetnodeconstants.upgraderammult.md | 2 +- ...itburner.hacknetnodesformulas.constants.md | 4 +- ...er.hacknetnodesformulas.coreupgradecost.md | 8 +- ...er.hacknetnodesformulas.hacknetnodecost.md | 4 +- ...r.hacknetnodesformulas.levelupgradecost.md | 8 +- markdown/bitburner.hacknetnodesformulas.md | 2 +- ...rner.hacknetnodesformulas.moneygainrate.md | 6 +- ...ner.hacknetnodesformulas.ramupgradecost.md | 8 +- ...tburner.hacknetserverconstants.basecost.md | 2 +- ...er.hacknetserverconstants.cachebasecost.md | 2 +- ...ner.hacknetserverconstants.corebasecost.md | 2 +- ...r.hacknetserverconstants.hashesperlevel.md | 2 +- ...tburner.hacknetserverconstants.maxcache.md | 2 +- ...tburner.hacknetserverconstants.maxcores.md | 2 +- ...tburner.hacknetserverconstants.maxlevel.md | 2 +- ...bitburner.hacknetserverconstants.maxram.md | 2 +- ...urner.hacknetserverconstants.maxservers.md | 2 +- markdown/bitburner.hacknetserverconstants.md | 36 +- ...ner.hacknetserverconstants.purchasemult.md | 2 +- ...rner.hacknetserverconstants.rambasecost.md | 2 +- ...hacknetserverconstants.upgradecachemult.md | 2 +- ....hacknetserverconstants.upgradecoremult.md | 2 +- ...hacknetserverconstants.upgradelevelmult.md | 2 +- ...r.hacknetserverconstants.upgraderammult.md | 2 +- ...hacknetserversformulas.cacheupgradecost.md | 6 +- ...burner.hacknetserversformulas.constants.md | 4 +- ....hacknetserversformulas.coreupgradecost.md | 8 +- ...acknetserversformulas.hacknetservercost.md | 6 +- ...ner.hacknetserversformulas.hashgainrate.md | 6 +- ....hacknetserversformulas.hashupgradecost.md | 4 +- ...hacknetserversformulas.levelupgradecost.md | 8 +- markdown/bitburner.hacknetserversformulas.md | 2 +- ...r.hacknetserversformulas.ramupgradecost.md | 8 +- markdown/bitburner.hp.current.md | 2 +- markdown/bitburner.hp.max.md | 2 +- markdown/bitburner.hp.md | 10 +- markdown/bitburner.ilocation.city.md | 2 +- markdown/bitburner.ilocation.md | 10 +- markdown/bitburner.ilocation.name.md | 2 +- markdown/bitburner.industrydata.cost.md | 2 +- .../bitburner.industrydata.makesmaterials.md | 2 +- .../bitburner.industrydata.makesproducts.md | 2 +- markdown/bitburner.industrydata.md | 20 +- ...itburner.industrydata.producedmaterials.md | 2 +- .../bitburner.industrydata.producttype.md | 2 +- ...itburner.industrydata.requiredmaterials.md | 2 +- markdown/bitburner.industrydata.type.md | 2 +- .../bitburner.infiltration.getinfiltration.md | 4 +- ...urner.infiltration.getpossiblelocations.md | 4 +- markdown/bitburner.infiltration.md | 2 +- ...tburner.infiltrationlocation.difficulty.md | 2 +- ...bitburner.infiltrationlocation.location.md | 2 +- markdown/bitburner.infiltrationlocation.md | 12 +- .../bitburner.infiltrationlocation.reward.md | 2 +- markdown/bitburner.infiltrationreward.md | 12 +- .../bitburner.infiltrationreward.sellcash.md | 2 +- .../bitburner.infiltrationreward.soarep.md | 2 +- .../bitburner.infiltrationreward.traderep.md | 2 +- markdown/bitburner.investmentoffer.funds.md | 2 +- markdown/bitburner.investmentoffer.md | 12 +- markdown/bitburner.investmentoffer.round.md | 2 +- markdown/bitburner.investmentoffer.shares.md | 2 +- .../bitburner.istylesettings.fontfamily.md | 2 +- .../bitburner.istylesettings.lineheight.md | 2 +- markdown/bitburner.istylesettings.md | 10 +- markdown/bitburner.jobname.md | 2 +- markdown/bitburner.locationname.md | 2 +- markdown/bitburner.material.cmp.md | 2 +- markdown/bitburner.material.cost.md | 2 +- markdown/bitburner.material.dmd.md | 2 +- markdown/bitburner.material.exp.md | 2 +- markdown/bitburner.material.md | 26 +- markdown/bitburner.material.name.md | 2 +- markdown/bitburner.material.prod.md | 2 +- markdown/bitburner.material.qlt.md | 2 +- markdown/bitburner.material.qty.md | 2 +- markdown/bitburner.material.scost.md | 2 +- markdown/bitburner.material.sell.md | 2 +- markdown/bitburner.md | 4 +- .../bitburner.moneysource.augmentations.md | 2 +- markdown/bitburner.moneysource.bladeburner.md | 2 +- markdown/bitburner.moneysource.casino.md | 2 +- markdown/bitburner.moneysource.class.md | 2 +- .../bitburner.moneysource.codingcontract.md | 2 +- markdown/bitburner.moneysource.corporation.md | 2 +- markdown/bitburner.moneysource.crime.md | 2 +- markdown/bitburner.moneysource.gang.md | 2 +- markdown/bitburner.moneysource.hacking.md | 2 +- markdown/bitburner.moneysource.hacknet.md | 2 +- .../bitburner.moneysource.hacknet_expenses.md | 2 +- .../bitburner.moneysource.hospitalization.md | 2 +- .../bitburner.moneysource.infiltration.md | 2 +- markdown/bitburner.moneysource.md | 44 +- markdown/bitburner.moneysource.other.md | 2 +- markdown/bitburner.moneysource.servers.md | 2 +- markdown/bitburner.moneysource.sleeves.md | 2 +- markdown/bitburner.moneysource.stock.md | 2 +- markdown/bitburner.moneysource.total.md | 2 +- markdown/bitburner.moneysource.work.md | 2 +- markdown/bitburner.moneysources.md | 10 +- .../bitburner.moneysources.sinceinstall.md | 2 +- markdown/bitburner.moneysources.sincestart.md | 2 +- markdown/bitburner.multipliers.agility.md | 2 +- markdown/bitburner.multipliers.agility_exp.md | 2 +- ...burner.multipliers.bladeburner_analysis.md | 2 +- ...ner.multipliers.bladeburner_max_stamina.md | 2 +- ...er.multipliers.bladeburner_stamina_gain.md | 2 +- ....multipliers.bladeburner_success_chance.md | 2 +- markdown/bitburner.multipliers.charisma.md | 2 +- .../bitburner.multipliers.charisma_exp.md | 2 +- markdown/bitburner.multipliers.company_rep.md | 2 +- markdown/bitburner.multipliers.crime_money.md | 2 +- .../bitburner.multipliers.crime_success.md | 2 +- markdown/bitburner.multipliers.defense.md | 2 +- markdown/bitburner.multipliers.defense_exp.md | 2 +- markdown/bitburner.multipliers.dexterity.md | 2 +- .../bitburner.multipliers.dexterity_exp.md | 2 +- markdown/bitburner.multipliers.faction_rep.md | 2 +- markdown/bitburner.multipliers.hacking.md | 2 +- .../bitburner.multipliers.hacking_chance.md | 2 +- markdown/bitburner.multipliers.hacking_exp.md | 2 +- .../bitburner.multipliers.hacking_grow.md | 2 +- .../bitburner.multipliers.hacking_money.md | 2 +- .../bitburner.multipliers.hacking_speed.md | 2 +- ...rner.multipliers.hacknet_node_core_cost.md | 2 +- ...ner.multipliers.hacknet_node_level_cost.md | 2 +- ...itburner.multipliers.hacknet_node_money.md | 2 +- ....multipliers.hacknet_node_purchase_cost.md | 2 +- ...urner.multipliers.hacknet_node_ram_cost.md | 2 +- markdown/bitburner.multipliers.md | 66 +- markdown/bitburner.multipliers.strength.md | 2 +- .../bitburner.multipliers.strength_exp.md | 2 +- markdown/bitburner.multipliers.work_money.md | 2 +- markdown/bitburner.netscriptport.clear.md | 4 +- markdown/bitburner.netscriptport.empty.md | 4 +- markdown/bitburner.netscriptport.full.md | 4 +- markdown/bitburner.netscriptport.md | 2 +- markdown/bitburner.netscriptport.nextwrite.md | 4 +- markdown/bitburner.netscriptport.peek.md | 4 +- markdown/bitburner.netscriptport.read.md | 4 +- markdown/bitburner.netscriptport.trywrite.md | 4 +- markdown/bitburner.netscriptport.write.md | 4 +- markdown/bitburner.nodestats.cache.md | 2 +- markdown/bitburner.nodestats.cores.md | 2 +- markdown/bitburner.nodestats.hashcapacity.md | 2 +- markdown/bitburner.nodestats.level.md | 2 +- markdown/bitburner.nodestats.md | 26 +- markdown/bitburner.nodestats.name.md | 2 +- markdown/bitburner.nodestats.production.md | 2 +- markdown/bitburner.nodestats.ram.md | 2 +- markdown/bitburner.nodestats.ramused.md | 2 +- markdown/bitburner.nodestats.timeonline.md | 2 +- .../bitburner.nodestats.totalproduction.md | 2 +- markdown/bitburner.ns.alert.md | 4 +- markdown/bitburner.ns.args.md | 2 +- markdown/bitburner.ns.asleep.md | 4 +- markdown/bitburner.ns.atexit.md | 4 +- markdown/bitburner.ns.bladeburner.md | 2 +- markdown/bitburner.ns.brutessh.md | 4 +- markdown/bitburner.ns.clear.md | 4 +- markdown/bitburner.ns.clearlog.md | 4 +- markdown/bitburner.ns.clearport.md | 4 +- markdown/bitburner.ns.closetail.md | 6 +- markdown/bitburner.ns.codingcontract.md | 2 +- markdown/bitburner.ns.corporation.md | 2 +- markdown/bitburner.ns.deleteserver.md | 4 +- markdown/bitburner.ns.disablelog.md | 4 +- markdown/bitburner.ns.enablelog.md | 4 +- markdown/bitburner.ns.enums.md | 2 +- markdown/bitburner.ns.exec.md | 6 +- markdown/bitburner.ns.exit.md | 4 +- markdown/bitburner.ns.fileexists.md | 6 +- markdown/bitburner.ns.flags.md | 4 +- markdown/bitburner.ns.formatnumber.md | 35 + markdown/bitburner.ns.formatpercent.md | 33 + markdown/bitburner.ns.formatram.md | 33 + markdown/bitburner.ns.formulas.md | 2 +- markdown/bitburner.ns.ftpcrack.md | 4 +- markdown/bitburner.ns.gang.md | 2 +- .../bitburner.ns.getbitnodemultipliers.md | 8 +- markdown/bitburner.ns.getfavortodonate.md | 4 +- markdown/bitburner.ns.getgrowtime.md | 4 +- markdown/bitburner.ns.gethackinglevel.md | 4 +- .../bitburner.ns.gethackingmultipliers.md | 4 +- .../bitburner.ns.gethacknetmultipliers.md | 4 +- markdown/bitburner.ns.gethacktime.md | 4 +- markdown/bitburner.ns.gethostname.md | 4 +- markdown/bitburner.ns.getmoneysources.md | 4 +- markdown/bitburner.ns.getplayer.md | 4 +- markdown/bitburner.ns.getporthandle.md | 4 +- .../bitburner.ns.getpurchasedservercost.md | 4 +- .../bitburner.ns.getpurchasedserverlimit.md | 4 +- .../bitburner.ns.getpurchasedservermaxram.md | 4 +- markdown/bitburner.ns.getpurchasedservers.md | 4 +- ...burner.ns.getpurchasedserverupgradecost.md | 4 +- markdown/bitburner.ns.getrecentscripts.md | 4 +- markdown/bitburner.ns.getrunningscript.md | 8 +- markdown/bitburner.ns.getscriptexpgain.md | 4 +- markdown/bitburner.ns.getscriptincome.md | 4 +- markdown/bitburner.ns.getscriptlogs.md | 8 +- markdown/bitburner.ns.getscriptname.md | 4 +- markdown/bitburner.ns.getscriptram.md | 6 +- markdown/bitburner.ns.getserver.md | 6 +- ...bitburner.ns.getserverbasesecuritylevel.md | 4 +- markdown/bitburner.ns.getservergrowth.md | 4 +- markdown/bitburner.ns.getservermaxmoney.md | 4 +- markdown/bitburner.ns.getservermaxram.md | 4 +- .../bitburner.ns.getserverminsecuritylevel.md | 4 +- .../bitburner.ns.getservermoneyavailable.md | 4 +- .../bitburner.ns.getservernumportsrequired.md | 4 +- ...burner.ns.getserverrequiredhackinglevel.md | 4 +- .../bitburner.ns.getserversecuritylevel.md | 4 +- markdown/bitburner.ns.getserverusedram.md | 4 +- markdown/bitburner.ns.getsharepower.md | 4 +- markdown/bitburner.ns.gettimesincelastaug.md | 4 +- .../bitburner.ns.gettotalscriptexpgain.md | 4 +- markdown/bitburner.ns.gettotalscriptincome.md | 4 +- markdown/bitburner.ns.getweakentime.md | 4 +- markdown/bitburner.ns.grafting.md | 2 +- markdown/bitburner.ns.grow.md | 6 +- markdown/bitburner.ns.growthanalyze.md | 6 +- .../bitburner.ns.growthanalyzesecurity.md | 8 +- markdown/bitburner.ns.hack.md | 6 +- markdown/bitburner.ns.hackanalyze.md | 4 +- markdown/bitburner.ns.hackanalyzechance.md | 4 +- markdown/bitburner.ns.hackanalyzesecurity.md | 6 +- markdown/bitburner.ns.hackanalyzethreads.md | 4 +- markdown/bitburner.ns.hacknet.md | 2 +- markdown/bitburner.ns.hasrootaccess.md | 4 +- markdown/bitburner.ns.hastorrouter.md | 4 +- markdown/bitburner.ns.httpworm.md | 4 +- markdown/bitburner.ns.infiltration.md | 2 +- markdown/bitburner.ns.islogenabled.md | 4 +- markdown/bitburner.ns.isrunning.md | 6 +- markdown/bitburner.ns.kill.md | 4 +- markdown/bitburner.ns.kill_1.md | 4 +- markdown/bitburner.ns.killall.md | 8 +- markdown/bitburner.ns.ls.md | 6 +- markdown/bitburner.ns.md | 47 +- markdown/bitburner.ns.movetail.md | 6 +- markdown/bitburner.ns.mv.md | 4 +- markdown/bitburner.ns.nformat.md | 12 +- markdown/bitburner.ns.nuke.md | 4 +- markdown/bitburner.ns.peek.md | 4 +- markdown/bitburner.ns.pid.md | 2 +- markdown/bitburner.ns.print.md | 4 +- markdown/bitburner.ns.printf.md | 4 +- markdown/bitburner.ns.prompt.md | 6 +- markdown/bitburner.ns.ps.md | 6 +- markdown/bitburner.ns.purchaseserver.md | 4 +- markdown/bitburner.ns.read.md | 4 +- markdown/bitburner.ns.readport.md | 4 +- markdown/bitburner.ns.relaysmtp.md | 4 +- .../bitburner.ns.renamepurchasedserver.md | 4 +- markdown/bitburner.ns.resizetail.md | 6 +- markdown/bitburner.ns.rm.md | 6 +- markdown/bitburner.ns.run.md | 6 +- markdown/bitburner.ns.scan.md | 6 +- markdown/bitburner.ns.scp.md | 6 +- markdown/bitburner.ns.scriptkill.md | 4 +- markdown/bitburner.ns.scriptrunning.md | 4 +- markdown/bitburner.ns.serverexists.md | 4 +- markdown/bitburner.ns.share.md | 6 +- markdown/bitburner.ns.singularity.md | 2 +- markdown/bitburner.ns.sleep.md | 4 +- markdown/bitburner.ns.sleeve.md | 2 +- markdown/bitburner.ns.spawn.md | 6 +- markdown/bitburner.ns.sprintf.md | 4 +- markdown/bitburner.ns.sqlinject.md | 4 +- markdown/bitburner.ns.stanek.md | 2 +- markdown/bitburner.ns.stock.md | 2 +- markdown/bitburner.ns.tail.md | 8 +- markdown/bitburner.ns.tformat.md | 6 +- markdown/bitburner.ns.toast.md | 8 +- markdown/bitburner.ns.tprint.md | 4 +- markdown/bitburner.ns.tprintf.md | 4 +- markdown/bitburner.ns.trywriteport.md | 4 +- markdown/bitburner.ns.ui.md | 2 +- .../bitburner.ns.upgradepurchasedserver.md | 4 +- markdown/bitburner.ns.vsprintf.md | 4 +- markdown/bitburner.ns.weaken.md | 6 +- markdown/bitburner.ns.weakenanalyze.md | 6 +- markdown/bitburner.ns.wget.md | 6 +- markdown/bitburner.ns.write.md | 8 +- markdown/bitburner.ns.writeport.md | 4 +- markdown/bitburner.nsenums.md | 4 +- markdown/bitburner.office.avgene.md | 2 +- markdown/bitburner.office.avghap.md | 2 +- markdown/bitburner.office.avgmor.md | 2 +- markdown/bitburner.office.employeejobs.md | 2 +- markdown/bitburner.office.employeeprod.md | 2 +- markdown/bitburner.office.employees.md | 2 +- markdown/bitburner.office.loc.md | 2 +- markdown/bitburner.office.maxene.md | 2 +- markdown/bitburner.office.maxhap.md | 2 +- markdown/bitburner.office.maxmor.md | 2 +- markdown/bitburner.office.md | 28 +- markdown/bitburner.office.size.md | 2 +- markdown/bitburner.officeapi.buycoffee.md | 4 +- .../bitburner.officeapi.gethireadvertcost.md | 4 +- .../bitburner.officeapi.gethireadvertcount.md | 4 +- markdown/bitburner.officeapi.getoffice.md | 4 +- ...rner.officeapi.getofficesizeupgradecost.md | 4 +- .../bitburner.officeapi.getresearchcost.md | 4 +- markdown/bitburner.officeapi.hasresearched.md | 4 +- markdown/bitburner.officeapi.hireadvert.md | 4 +- markdown/bitburner.officeapi.hireemployee.md | 6 +- markdown/bitburner.officeapi.md | 2 +- markdown/bitburner.officeapi.research.md | 4 +- ...itburner.officeapi.setautojobassignment.md | 4 +- markdown/bitburner.officeapi.throwparty.md | 4 +- .../bitburner.officeapi.upgradeofficesize.md | 4 +- markdown/bitburner.ordertypes.md | 2 +- markdown/bitburner.person.city.md | 2 +- markdown/bitburner.person.exp.md | 2 +- markdown/bitburner.person.hp.md | 2 +- markdown/bitburner.person.md | 16 +- markdown/bitburner.person.mults.md | 2 +- markdown/bitburner.person.skills.md | 2 +- markdown/bitburner.player.bitnoden.md | 2 +- markdown/bitburner.player.entropy.md | 2 +- markdown/bitburner.player.factions.md | 2 +- markdown/bitburner.player.jobs.md | 2 +- markdown/bitburner.player.location.md | 2 +- markdown/bitburner.player.md | 28 +- markdown/bitburner.player.money.md | 2 +- markdown/bitburner.player.numpeoplekilled.md | 2 +- .../bitburner.player.playtimesincelastaug.md | 2 +- ...tburner.player.playtimesincelastbitnode.md | 2 +- markdown/bitburner.player.totalplaytime.md | 2 +- markdown/bitburner.portdata.md | 2 +- markdown/bitburner.positiontypes.md | 2 +- markdown/bitburner.processinfo.args.md | 2 +- markdown/bitburner.processinfo.filename.md | 2 +- markdown/bitburner.processinfo.md | 14 +- markdown/bitburner.processinfo.pid.md | 2 +- markdown/bitburner.processinfo.threads.md | 2 +- markdown/bitburner.product.citydata.md | 2 +- markdown/bitburner.product.cmp.md | 2 +- .../bitburner.product.developmentprogress.md | 2 +- markdown/bitburner.product.dmd.md | 2 +- markdown/bitburner.product.md | 24 +- markdown/bitburner.product.name.md | 2 +- markdown/bitburner.product.pcost.md | 2 +- markdown/bitburner.product.properties.md | 2 +- markdown/bitburner.product.rat.md | 2 +- markdown/bitburner.product.scost.md | 2 +- markdown/bitburner.recentscript.md | 10 +- .../bitburner.recentscript.timeofdeath.md | 2 +- ....reputationformulas.calculatefavortorep.md | 4 +- ....reputationformulas.calculatereptofavor.md | 4 +- markdown/bitburner.reputationformulas.md | 2 +- ...rner.reputationformulas.repfromdonation.md | 4 +- markdown/bitburner.runningscript.args.md | 2 +- markdown/bitburner.runningscript.filename.md | 2 +- markdown/bitburner.runningscript.logs.md | 2 +- markdown/bitburner.runningscript.md | 32 +- ...itburner.runningscript.offlineexpgained.md | 2 +- ...itburner.runningscript.offlinemoneymade.md | 2 +- ...burner.runningscript.offlinerunningtime.md | 2 +- ...bitburner.runningscript.onlineexpgained.md | 2 +- ...bitburner.runningscript.onlinemoneymade.md | 2 +- ...tburner.runningscript.onlinerunningtime.md | 2 +- markdown/bitburner.runningscript.pid.md | 2 +- markdown/bitburner.runningscript.ramusage.md | 2 +- markdown/bitburner.runningscript.server.md | 2 +- markdown/bitburner.runningscript.threads.md | 2 +- markdown/bitburner.scriptarg.md | 2 +- .../bitburner.server.backdoorinstalled.md | 2 +- markdown/bitburner.server.basedifficulty.md | 2 +- markdown/bitburner.server.cpucores.md | 2 +- markdown/bitburner.server.ftpportopen.md | 2 +- markdown/bitburner.server.hackdifficulty.md | 2 +- markdown/bitburner.server.hasadminrights.md | 2 +- markdown/bitburner.server.hostname.md | 2 +- markdown/bitburner.server.httpportopen.md | 2 +- markdown/bitburner.server.ip.md | 2 +- markdown/bitburner.server.isconnectedto.md | 2 +- markdown/bitburner.server.maxram.md | 2 +- markdown/bitburner.server.md | 54 +- markdown/bitburner.server.mindifficulty.md | 2 +- markdown/bitburner.server.moneyavailable.md | 2 +- markdown/bitburner.server.moneymax.md | 2 +- .../bitburner.server.numopenportsrequired.md | 2 +- markdown/bitburner.server.openportcount.md | 2 +- markdown/bitburner.server.organizationname.md | 2 +- .../bitburner.server.purchasedbyplayer.md | 2 +- markdown/bitburner.server.ramused.md | 2 +- .../bitburner.server.requiredhackingskill.md | 2 +- markdown/bitburner.server.servergrowth.md | 2 +- markdown/bitburner.server.smtpportopen.md | 2 +- markdown/bitburner.server.sqlportopen.md | 2 +- markdown/bitburner.server.sshportopen.md | 2 +- .../bitburner.singularity.applytocompany.md | 4 +- markdown/bitburner.singularity.b1tflum3.md | 6 +- ...ner.singularity.checkfactioninvitations.md | 4 +- markdown/bitburner.singularity.commitcrime.md | 6 +- markdown/bitburner.singularity.connect.md | 4 +- .../bitburner.singularity.createprogram.md | 6 +- ...itburner.singularity.destroyw0r1dd43m0n.md | 6 +- .../bitburner.singularity.donatetofaction.md | 4 +- markdown/bitburner.singularity.exportgame.md | 4 +- .../bitburner.singularity.exportgamebonus.md | 4 +- ...er.singularity.getaugmentationbaseprice.md | 4 +- ...urner.singularity.getaugmentationprereq.md | 4 +- ...burner.singularity.getaugmentationprice.md | 4 +- ...urner.singularity.getaugmentationrepreq.md | 4 +- ...singularity.getaugmentationsfromfaction.md | 4 +- ...burner.singularity.getaugmentationstats.md | 4 +- .../bitburner.singularity.getcompanyfavor.md | 4 +- ...tburner.singularity.getcompanyfavorgain.md | 4 +- .../bitburner.singularity.getcompanyrep.md | 4 +- .../bitburner.singularity.getcrimechance.md | 4 +- .../bitburner.singularity.getcrimestats.md | 4 +- .../bitburner.singularity.getcurrentserver.md | 4 +- .../bitburner.singularity.getcurrentwork.md | 4 +- ...urner.singularity.getdarkwebprogramcost.md | 4 +- ...itburner.singularity.getdarkwebprograms.md | 4 +- .../bitburner.singularity.getfactionfavor.md | 4 +- ...tburner.singularity.getfactionfavorgain.md | 4 +- .../bitburner.singularity.getfactionrep.md | 4 +- ...urner.singularity.getownedaugmentations.md | 6 +- ...tburner.singularity.getownedsourcefiles.md | 4 +- ...ner.singularity.getupgradehomecorescost.md | 4 +- ...urner.singularity.getupgradehomeramcost.md | 4 +- .../bitburner.singularity.gotolocation.md | 4 +- markdown/bitburner.singularity.gymworkout.md | 6 +- markdown/bitburner.singularity.hospitalize.md | 4 +- ...burner.singularity.installaugmentations.md | 6 +- .../bitburner.singularity.installbackdoor.md | 4 +- markdown/bitburner.singularity.isbusy.md | 4 +- markdown/bitburner.singularity.isfocused.md | 4 +- markdown/bitburner.singularity.joinfaction.md | 4 +- markdown/bitburner.singularity.manualhack.md | 4 +- markdown/bitburner.singularity.md | 2 +- ...burner.singularity.purchaseaugmentation.md | 4 +- .../bitburner.singularity.purchaseprogram.md | 4 +- markdown/bitburner.singularity.purchasetor.md | 4 +- markdown/bitburner.singularity.quitjob.md | 6 +- markdown/bitburner.singularity.setfocus.md | 4 +- markdown/bitburner.singularity.softreset.md | 4 +- markdown/bitburner.singularity.stopaction.md | 4 +- .../bitburner.singularity.traveltocity.md | 4 +- .../bitburner.singularity.universitycourse.md | 6 +- .../bitburner.singularity.upgradehomecores.md | 4 +- .../bitburner.singularity.upgradehomeram.md | 4 +- .../bitburner.singularity.workforcompany.md | 6 +- .../bitburner.singularity.workforfaction.md | 6 +- markdown/bitburner.skills.agility.md | 2 +- markdown/bitburner.skills.charisma.md | 2 +- markdown/bitburner.skills.defense.md | 2 +- markdown/bitburner.skills.dexterity.md | 2 +- markdown/bitburner.skills.hacking.md | 2 +- markdown/bitburner.skills.intelligence.md | 2 +- markdown/bitburner.skills.md | 20 +- markdown/bitburner.skills.strength.md | 2 +- .../bitburner.skillsformulas.calculateexp.md | 6 +- ...bitburner.skillsformulas.calculateskill.md | 6 +- markdown/bitburner.skillsformulas.md | 2 +- markdown/bitburner.sleeve.getnumsleeves.md | 4 +- markdown/bitburner.sleeve.getsleeve.md | 4 +- ...urner.sleeve.getsleeveaugmentationprice.md | 4 +- ...rner.sleeve.getsleeveaugmentationrepreq.md | 4 +- ...bitburner.sleeve.getsleeveaugmentations.md | 4 +- ...tburner.sleeve.getsleevepurchasableaugs.md | 4 +- markdown/bitburner.sleeve.gettask.md | 4 +- markdown/bitburner.sleeve.md | 2 +- .../bitburner.sleeve.purchasesleeveaug.md | 4 +- ...bitburner.sleeve.settobladeburneraction.md | 6 +- markdown/bitburner.sleeve.settocommitcrime.md | 4 +- markdown/bitburner.sleeve.settocompanywork.md | 4 +- markdown/bitburner.sleeve.settofactionwork.md | 4 +- markdown/bitburner.sleeve.settogymworkout.md | 4 +- .../bitburner.sleeve.settoshockrecovery.md | 4 +- markdown/bitburner.sleeve.settosynchronize.md | 4 +- .../bitburner.sleeve.settouniversitycourse.md | 4 +- markdown/bitburner.sleeve.travel.md | 4 +- markdown/bitburner.sleevebladeburnertask.md | 3 +- markdown/bitburner.sleeveclasstask.md | 4 +- markdown/bitburner.sleevecompanytask.md | 2 +- markdown/bitburner.sleevecrimetask.md | 6 +- markdown/bitburner.sleevefactiontask.md | 4 +- markdown/bitburner.sleeveinfiltratetask.md | 4 +- markdown/bitburner.sleeveperson.md | 16 +- markdown/bitburner.sleeveperson.memory.md | 2 +- markdown/bitburner.sleeveperson.shock.md | 2 +- .../bitburner.sleeveperson.storedcycles.md | 2 +- markdown/bitburner.sleeveperson.sync.md | 2 +- markdown/bitburner.sleeverecoverytask.md | 2 +- markdown/bitburner.sleevesupporttask.md | 2 +- markdown/bitburner.sleevesynchrotask.md | 2 +- markdown/bitburner.sleevetask.md | 4 +- markdown/bitburner.sourcefilelvl.lvl.md | 2 +- markdown/bitburner.sourcefilelvl.md | 10 +- markdown/bitburner.sourcefilelvl.n.md | 2 +- markdown/bitburner.stanek.acceptgift.md | 4 +- markdown/bitburner.stanek.activefragments.md | 4 +- markdown/bitburner.stanek.canplacefragment.md | 4 +- markdown/bitburner.stanek.chargefragment.md | 4 +- markdown/bitburner.stanek.cleargift.md | 4 +- .../bitburner.stanek.fragmentdefinitions.md | 4 +- markdown/bitburner.stanek.getfragment.md | 4 +- markdown/bitburner.stanek.giftheight.md | 4 +- markdown/bitburner.stanek.giftwidth.md | 4 +- markdown/bitburner.stanek.md | 2 +- markdown/bitburner.stanek.placefragment.md | 4 +- markdown/bitburner.stanek.removefragment.md | 4 +- markdown/bitburner.stockorder.md | 2 +- markdown/bitburner.stockorderobject.md | 14 +- .../bitburner.stockorderobject.position.md | 2 +- markdown/bitburner.stockorderobject.price.md | 2 +- markdown/bitburner.stockorderobject.shares.md | 2 +- markdown/bitburner.stockorderobject.type.md | 2 +- markdown/bitburner.tix.buyshort.md | 4 +- markdown/bitburner.tix.buystock.md | 4 +- markdown/bitburner.tix.cancelorder.md | 4 +- markdown/bitburner.tix.getaskprice.md | 4 +- markdown/bitburner.tix.getbidprice.md | 4 +- markdown/bitburner.tix.getforecast.md | 4 +- markdown/bitburner.tix.getmaxshares.md | 4 +- markdown/bitburner.tix.getorders.md | 4 +- markdown/bitburner.tix.getorganization.md | 4 +- markdown/bitburner.tix.getposition.md | 4 +- markdown/bitburner.tix.getprice.md | 4 +- markdown/bitburner.tix.getpurchasecost.md | 4 +- markdown/bitburner.tix.getsalegain.md | 4 +- markdown/bitburner.tix.getsymbols.md | 4 +- markdown/bitburner.tix.getvolatility.md | 4 +- markdown/bitburner.tix.has4sdata.md | 4 +- markdown/bitburner.tix.has4sdatatixapi.md | 4 +- markdown/bitburner.tix.hastixapiaccess.md | 4 +- markdown/bitburner.tix.haswseaccount.md | 4 +- markdown/bitburner.tix.md | 2 +- markdown/bitburner.tix.placeorder.md | 4 +- .../bitburner.tix.purchase4smarketdata.md | 4 +- ...itburner.tix.purchase4smarketdatatixapi.md | 4 +- markdown/bitburner.tix.purchasetixapi.md | 4 +- markdown/bitburner.tix.purchasewseaccount.md | 4 +- markdown/bitburner.tix.sellshort.md | 4 +- markdown/bitburner.tix.sellstock.md | 4 +- markdown/bitburner.toastvariant.md | 2 +- markdown/bitburner.universityclasstype.md | 2 +- .../bitburner.userinterface.clearterminal.md | 4 +- .../bitburner.userinterface.getgameinfo.md | 4 +- markdown/bitburner.userinterface.getstyles.md | 4 +- markdown/bitburner.userinterface.gettheme.md | 4 +- markdown/bitburner.userinterface.md | 2 +- .../bitburner.userinterface.resetstyles.md | 4 +- .../bitburner.userinterface.resettheme.md | 4 +- markdown/bitburner.userinterface.setstyles.md | 4 +- markdown/bitburner.userinterface.settheme.md | 4 +- .../bitburner.userinterface.windowsize.md | 4 +- ...er.userinterfacetheme.backgroundprimary.md | 2 +- ....userinterfacetheme.backgroundsecondary.md | 2 +- .../bitburner.userinterfacetheme.black.md | 2 +- .../bitburner.userinterfacetheme.button.md | 2 +- markdown/bitburner.userinterfacetheme.cha.md | 2 +- .../bitburner.userinterfacetheme.combat.md | 2 +- .../bitburner.userinterfacetheme.disabled.md | 2 +- .../bitburner.userinterfacetheme.error.md | 2 +- .../bitburner.userinterfacetheme.errordark.md | 2 +- ...bitburner.userinterfacetheme.errorlight.md | 2 +- markdown/bitburner.userinterfacetheme.hack.md | 2 +- markdown/bitburner.userinterfacetheme.hp.md | 2 +- markdown/bitburner.userinterfacetheme.info.md | 2 +- .../bitburner.userinterfacetheme.infodark.md | 2 +- .../bitburner.userinterfacetheme.infolight.md | 2 +- markdown/bitburner.userinterfacetheme.int.md | 2 +- markdown/bitburner.userinterfacetheme.md | 72 +- .../bitburner.userinterfacetheme.money.md | 2 +- .../bitburner.userinterfacetheme.primary.md | 2 +- ...itburner.userinterfacetheme.primarydark.md | 2 +- ...tburner.userinterfacetheme.primarylight.md | 2 +- markdown/bitburner.userinterfacetheme.rep.md | 2 +- .../bitburner.userinterfacetheme.secondary.md | 2 +- ...burner.userinterfacetheme.secondarydark.md | 2 +- ...urner.userinterfacetheme.secondarylight.md | 2 +- .../bitburner.userinterfacetheme.success.md | 2 +- ...itburner.userinterfacetheme.successdark.md | 2 +- ...tburner.userinterfacetheme.successlight.md | 2 +- .../bitburner.userinterfacetheme.warning.md | 2 +- ...itburner.userinterfacetheme.warningdark.md | 2 +- ...tburner.userinterfacetheme.warninglight.md | 2 +- markdown/bitburner.userinterfacetheme.well.md | 2 +- .../bitburner.userinterfacetheme.welllight.md | 2 +- .../bitburner.userinterfacetheme.white.md | 2 +- markdown/bitburner.warehouse.level.md | 2 +- markdown/bitburner.warehouse.loc.md | 2 +- markdown/bitburner.warehouse.md | 16 +- markdown/bitburner.warehouse.size.md | 2 +- markdown/bitburner.warehouse.sizeused.md | 2 +- .../bitburner.warehouse.smartsupplyenabled.md | 2 +- .../bitburner.warehouseapi.bulkpurchase.md | 4 +- .../bitburner.warehouseapi.buymaterial.md | 4 +- ...urner.warehouseapi.cancelexportmaterial.md | 4 +- ...tburner.warehouseapi.discontinueproduct.md | 4 +- .../bitburner.warehouseapi.exportmaterial.md | 4 +- .../bitburner.warehouseapi.getmaterial.md | 4 +- markdown/bitburner.warehouseapi.getproduct.md | 4 +- ...er.warehouseapi.getupgradewarehousecost.md | 6 +- .../bitburner.warehouseapi.getwarehouse.md | 4 +- .../bitburner.warehouseapi.haswarehouse.md | 4 +- ...er.warehouseapi.limitmaterialproduction.md | 4 +- ...ner.warehouseapi.limitproductproduction.md | 4 +- .../bitburner.warehouseapi.makeproduct.md | 4 +- markdown/bitburner.warehouseapi.md | 2 +- ...itburner.warehouseapi.purchasewarehouse.md | 4 +- .../bitburner.warehouseapi.sellmaterial.md | 4 +- .../bitburner.warehouseapi.sellproduct.md | 4 +- ...urner.warehouseapi.setmaterialmarketta1.md | 4 +- ...urner.warehouseapi.setmaterialmarketta2.md | 4 +- ...burner.warehouseapi.setproductmarketta1.md | 4 +- ...burner.warehouseapi.setproductmarketta2.md | 4 +- .../bitburner.warehouseapi.setsmartsupply.md | 4 +- ...warehouseapi.setsmartsupplyuseleftovers.md | 4 +- ...bitburner.warehouseapi.upgradewarehouse.md | 6 +- .../bitburner.workformulas.companygains.md | 4 +- markdown/bitburner.workformulas.crimegains.md | 4 +- ...tburner.workformulas.crimesuccesschance.md | 4 +- .../bitburner.workformulas.factiongains.md | 4 +- markdown/bitburner.workformulas.gymgains.md | 4 +- markdown/bitburner.workformulas.md | 2 +- .../bitburner.workformulas.universitygains.md | 4 +- markdown/bitburner.workstats.agiexp.md | 2 +- markdown/bitburner.workstats.chaexp.md | 2 +- markdown/bitburner.workstats.defexp.md | 2 +- markdown/bitburner.workstats.dexexp.md | 2 +- markdown/bitburner.workstats.hackexp.md | 2 +- markdown/bitburner.workstats.intexp.md | 2 +- markdown/bitburner.workstats.md | 24 +- markdown/bitburner.workstats.money.md | 2 +- markdown/bitburner.workstats.reputation.md | 2 +- markdown/bitburner.workstats.strexp.md | 2 +- package-lock.json | 667 +- package.json | 8 +- src/Augmentation/Augmentation.tsx | 4 +- src/Augmentation/ui/AugmentationsRoot.tsx | 6 +- src/Augmentation/ui/PlayerMultipliers.tsx | 7 +- .../ui/PurchasableAugmentations.tsx | 6 +- src/Bladeburner/Bladeburner.tsx | 66 +- src/Bladeburner/ui/BlackOpElem.tsx | 9 +- src/Bladeburner/ui/ContractElem.tsx | 15 +- src/Bladeburner/ui/GeneralActionElem.tsx | 9 +- src/Bladeburner/ui/OperationElem.tsx | 15 +- src/Bladeburner/ui/SkillElem.tsx | 6 +- src/Bladeburner/ui/SkillPage.tsx | 72 +- src/Bladeburner/ui/Stats.tsx | 35 +- src/Bladeburner/ui/SuccessChance.tsx | 7 +- src/Bladeburner/ui/TeamSizeButton.tsx | 4 +- src/Corporation/ui/IndustryOffice.tsx | 25 +- src/Corporation/ui/IndustryOverview.tsx | 18 +- src/Corporation/ui/IndustryWarehouse.tsx | 9 +- src/Corporation/ui/MaterialElem.tsx | 38 +- src/Corporation/ui/MoneyCost.tsx | 7 +- src/Corporation/ui/Overview.tsx | 17 +- src/Corporation/ui/ProductElem.tsx | 44 +- .../ui/modals/BribeFactionModal.tsx | 10 +- .../ui/modals/BuybackSharesModal.tsx | 12 +- .../ui/modals/FindInvestorsModal.tsx | 7 +- src/Corporation/ui/modals/GoPublicModal.tsx | 11 +- .../ui/modals/IssueNewSharesModal.tsx | 15 +- .../ui/modals/MaterialMarketTaModal.tsx | 11 +- .../ui/modals/ProductMarketTaModal.tsx | 11 +- .../ui/modals/PurchaseMaterialModal.tsx | 5 +- src/Corporation/ui/modals/SellSharesModal.tsx | 8 +- src/Corporation/ui/modals/ThrowPartyModal.tsx | 6 +- .../ui/modals/UpgradeOfficeSizeModal.tsx | 4 +- src/CotMG/ui/ActiveFragmentSummary.tsx | 6 +- src/CotMG/ui/FragmentInspector.tsx | 10 +- src/CotMG/ui/FragmentSelector.tsx | 4 +- src/DarkWeb/DarkWeb.tsx | 6 +- src/Diagnostic/FileDiagnosticModal.tsx | 6 +- src/Faction/ui/AugmentationsPage.tsx | 8 +- src/Faction/ui/FactionsRoot.tsx | 6 +- src/GameOptions/GameOptionsTab.ts | 7 - src/GameOptions/ui/GameOptionsPage.tsx | 3 +- src/GameOptions/ui/GameOptionsRoot.tsx | 19 +- src/GameOptions/ui/GameOptionsSidebar.tsx | 24 +- src/GameOptions/ui/InterfacePage.tsx | 33 +- src/GameOptions/ui/NumericDisplayOptions.tsx | 94 + src/Gang/GangMemberUpgrade.ts | 31 +- src/Gang/ui/AscensionModal.tsx | 36 +- src/Gang/ui/EquipmentsSubpage.tsx | 34 +- src/Gang/ui/GangMemberStats.tsx | 38 +- src/Gang/ui/GangStats.tsx | 19 +- src/Gang/ui/RecruitButton.tsx | 6 +- src/Gang/ui/TerritorySubpage.tsx | 17 +- src/Hacknet/data/HashUpgradesMetadata.tsx | 8 +- src/Hacknet/ui/HacknetNodeElem.tsx | 4 +- src/Hacknet/ui/HacknetServerElem.tsx | 8 +- src/Infiltration/ui/Intro.tsx | 4 +- src/Infiltration/ui/Victory.tsx | 4 +- src/Locations/ui/PurchaseServerModal.tsx | 4 +- src/Locations/ui/RamButton.tsx | 6 +- src/Locations/ui/SlumsLocation.tsx | 4 +- src/Locations/ui/TechVendorLocation.tsx | 4 +- src/Netscript/APIWrapper.ts | 15 +- src/Netscript/NetscriptHelpers.ts | 20 +- src/Netscript/RamCostGenerator.ts | 3 + src/NetscriptFunctions.ts | 94 +- src/NetscriptFunctions/Singularity.ts | 29 +- .../Grafting/ui/GraftingRoot.tsx | 5 +- .../Player/PlayerObjectGeneralMethods.ts | 6 +- src/PersonObjects/Sleeve/Sleeve.ts | 4 +- .../Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx | 4 +- .../Sleeve/ui/MoreStatsModal.tsx | 83 +- src/PersonObjects/Sleeve/ui/SleeveElem.tsx | 4 +- src/PersonObjects/Sleeve/ui/StatsElement.tsx | 66 +- src/Programs/data/ProgramsMetadata.ts | 4 +- src/Script/ScriptHelpers.ts | 6 +- src/ScriptEditor/NetscriptDefinitions.d.ts | 158 +- src/ScriptEditor/ui/ScriptEditorRoot.tsx | 6 +- src/Settings/Settings.ts | 8 + src/StockMarket/BuyingAndSelling.tsx | 46 +- src/StockMarket/OrderProcessing.tsx | 4 +- src/StockMarket/StockMarket.tsx | 4 +- src/StockMarket/ui/StockTicker.tsx | 8 +- src/StockMarket/ui/StockTickerHeaderText.tsx | 6 +- src/StockMarket/ui/StockTickerOrder.tsx | 4 +- .../ui/StockTickerPositionText.tsx | 12 +- src/Terminal/Terminal.ts | 46 +- src/Terminal/commands/free.ts | 10 +- src/Terminal/commands/mem.ts | 10 +- src/Terminal/commands/runScript.ts | 4 +- src/Terminal/commands/top.ts | 4 +- src/Work/ClassWork.tsx | 14 +- src/engine.tsx | 5 +- .../ActiveScripts/RecentScriptAccordion.tsx | 10 +- .../ActiveScripts/WorkerScriptAccordion.tsx | 10 +- src/ui/CharacterStats.tsx | 9 +- src/ui/React/CharacterOverview.tsx | 20 +- src/ui/React/Favor.tsx | 4 +- src/ui/React/HashRate.tsx | 4 +- src/ui/React/Hashes.tsx | 6 +- src/ui/React/ImportSaveRoot.tsx | 12 +- src/ui/React/Money.tsx | 9 +- src/ui/React/MoneyRate.tsx | 4 +- src/ui/React/NumberInput.tsx | 4 +- src/ui/React/Reputation.tsx | 4 +- src/ui/React/ReputationRate.tsx | 4 +- src/ui/React/StatsProgressBar.tsx | 6 +- src/ui/React/StatsRow.tsx | 7 +- src/ui/WorkInProgressRoot.tsx | 28 +- src/ui/formatNumber.ts | 198 + src/ui/numeralFormat.ts | 256 - src/utils/StringHelperFunctions.ts | 9 - test/jest/ui/formatNumber.test.ts | 212 + test/jest/ui/nFormat.test.ts | 248 - tsdoc-metadata.json | 2 +- 1231 files changed, 4233 insertions(+), 11958 deletions(-) delete mode 100644 dist/bitburner.d.ts delete mode 100644 dist/images/297df8c0e47764ea113951318b2acf55.png delete mode 100644 dist/images/447bc31e61f55e7eff875be3e9a81f1a.png delete mode 100644 dist/images/4e0e750f2f09de58219773edd46cbbf5.png delete mode 100644 dist/images/5aa87b7de67a77c914088783b055e1cf.png delete mode 100644 dist/images/66f4b86d86164fc117bd6d648e4eaa6f.png delete mode 100644 dist/images/6caf35202b10b52e1fc2743f674c33e8.png delete mode 100644 dist/images/83b2443ab7e7d346766c8f6bc5afc7a7.png delete mode 100644 dist/images/85a7b2896acb62be76f3ea7100fe9012.png delete mode 100644 dist/images/9f96a5084f4e5f1a6c0041b41b34d62d.png delete mode 100644 dist/images/a1110d6c8d16a14c4570411750248399.png delete mode 100644 dist/images/c7164b072d62c91c27c6d607b5207e7b.png delete mode 100644 dist/images/cb88977ea837bccb9cceb727adc78302.png delete mode 100644 dist/images/e66b0c327f97d08e4253f52234d659eb.png delete mode 100644 dist/images/e97de4daa946331c7e99dee9c05d629c.png create mode 100644 markdown/bitburner.bladeburner.getactionsuccesses.md create mode 100644 markdown/bitburner.corpproductdata.desc.md create mode 100644 markdown/bitburner.corpproductdata.name.md create mode 100644 markdown/bitburner.corpproductdata.ratingweights.md create mode 100644 markdown/bitburner.corpproductdata.verb.md create mode 100644 markdown/bitburner.ns.formatnumber.md create mode 100644 markdown/bitburner.ns.formatpercent.md create mode 100644 markdown/bitburner.ns.formatram.md delete mode 100644 src/GameOptions/GameOptionsTab.ts create mode 100644 src/GameOptions/ui/NumericDisplayOptions.tsx create mode 100644 src/ui/formatNumber.ts delete mode 100644 src/ui/numeralFormat.ts create mode 100644 test/jest/ui/formatNumber.test.ts delete mode 100644 test/jest/ui/nFormat.test.ts diff --git a/.gitignore b/.gitignore index 92eee2617..c922f6eec 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ Netburner.txt /test/*.bundle.* /test/*.css /input/bitburner.api.json +dist/bitburner.d.ts +dist/images .cypress # tmp folder for build and electron diff --git a/dist/bitburner.d.ts b/dist/bitburner.d.ts deleted file mode 100644 index ccc25946c..000000000 --- a/dist/bitburner.d.ts +++ /dev/null @@ -1,7984 +0,0 @@ -/** @public */ -export declare interface ActiveFragment { - id: number; - highestCharge: number; - numCharge: number; - rotation: number; - x: number; - y: number; -} - -/** - * Return value of {@link Sleeve.getSleevePurchasableAugs | getSleevePurchasableAugs} - * @public - */ -export declare interface AugmentPair { - /** augmentation name */ - name: string; - /** augmentation cost */ - cost: number; -} - -/** - * Used for autocompletion - * @public - */ -export declare interface AutocompleteData { - servers: string[]; - scripts: string[]; - txts: string[]; - flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] }; -} - -/** - * Options to affect the behavior of {@link NS.hack | hack}, {@link NS.grow | grow}, and {@link NS.weaken | weaken}. - * @public - */ -export declare interface BasicHGWOptions { - /** Number of threads to use for this function. - * Must be less than or equal to the number of threads the script is running with. */ - threads?: number; - /** Set to true this action will affect the stock market. */ - stock?: boolean; -} - -/** - * All multipliers affecting the difficulty of the current challenge. - * @public - */ -export declare interface BitNodeMultipliers { - /** Influences how quickly the player's agility level (not exp) scales */ - AgilityLevelMultiplier: number; - /** Influences the base cost to purchase an augmentation. */ - AugmentationMoneyCost: number; - /** Influences the base rep the player must have with a faction to purchase an augmentation. */ - AugmentationRepCost: number; - /** Influences how quickly the player can gain rank within Bladeburner. */ - BladeburnerRank: number; - /** Influences the cost of skill levels from Bladeburner. */ - BladeburnerSkillCost: number; - /** Influences how quickly the player's charisma level (not exp) scales */ - CharismaLevelMultiplier: number; - /** Influences the experience gained for each ability when a player completes a class. */ - ClassGymExpGain: number; - /** Influences the amount of money gained from completing Coding Contracts */ - CodingContractMoney: number; - /** Influences the experience gained for each ability when the player completes working their job. */ - CompanyWorkExpGain: number; - /** Influences how much money the player earns when completing working their job. */ - CompanyWorkMoney: number; - /** Influences the money gain from dividends of corporations created by the player. */ - CorporationSoftcap: number; - /** Influences the valuation of corporations created by the player. */ - CorporationValuation: number; - /** Influences the base experience gained for each ability when the player commits a crime. */ - CrimeExpGain: number; - /** Influences the base money gained when the player commits a crime. */ - CrimeMoney: number; - /** Influences how many Augmentations you need in order to get invited to the Daedalus faction */ - DaedalusAugsRequirement: number; - /** Influences how quickly the player's defense level (not exp) scales */ - DefenseLevelMultiplier: number; - /** Influences how quickly the player's dexterity level (not exp) scales */ - DexterityLevelMultiplier: number; - /** Influences how much rep the player gains in each faction simply by being a member. */ - FactionPassiveRepGain: number; - /** Influences the experience gained for each ability when the player completes work for a Faction. */ - FactionWorkExpGain: number; - /** Influences how much rep the player gains when performing work for a faction. */ - FactionWorkRepGain: number; - /** Influences how much it costs to unlock the stock market's 4S Market Data API */ - FourSigmaMarketDataApiCost: number; - /** Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) */ - FourSigmaMarketDataCost: number; - /** Influences the respect gain and money gain of your gang. */ - GangSoftcap: number; - /** Influences the experienced gained when hacking a server. */ - HackExpGain: number; - /** Influences how quickly the player's hacking level (not experience) scales */ - HackingLevelMultiplier: number; - /** Influences how much money is produced by Hacknet Nodes - * and the hash rate of Hacknet Servers (unlocked in BitNode-9) */ - HacknetNodeMoney: number; - /** Influences how much money it costs to upgrade your home computer's RAM */ - HomeComputerRamCost: number; - /** Influences how much money is gained when the player infiltrates a company. */ - InfiltrationMoney: number; - /** Influences how much rep the player can gain from factions when selling stolen documents and secrets */ - InfiltrationRep: number; - /** Influences how much money can be stolen from a server when the player - * performs a hack against it through the Terminal. */ - ManualHackMoney: number; - /** Influence how much it costs to purchase a server */ - PurchasedServerCost: number; - /** Influences the maximum number of purchased servers you can have */ - PurchasedServerLimit: number; - /** Influences the maximum allowed RAM for a purchased server */ - PurchasedServerMaxRam: number; - /** Influences cost of any purchased server at or above 128GB */ - PurchasedServerSoftcap: number; - /** Influences the minimum favor the player must have with a faction before they can donate to gain rep. */ - RepToDonateToFaction: number; - /** Influences how much the money on a server can be reduced when a script performs a hack against it. */ - ScriptHackMoney: number; - /** Influences how much of the money stolen by a scripted hack will be added to the player's money. */ - ScriptHackMoneyGain: number; - /** Influences the growth percentage per cycle against a server. */ - ServerGrowthRate: number; - /** Influences the maximum money that a server can grow to. */ - ServerMaxMoney: number; - /** Influences the initial money that a server starts with. */ - ServerStartingMoney: number; - /** Influences the initial security level (hackDifficulty) of a server. */ - ServerStartingSecurity: number; - /** Influences the weaken amount per invocation against a server. */ - ServerWeakenRate: number; - /** Influences how quickly the player's strength level (not exp) scales */ - StrengthLevelMultiplier: number; - /** Influences the power of the gift */ - StaneksGiftPowerMultiplier: number; - /** Influences the size of the gift */ - StaneksGiftExtraSize: number; - /** Influences the hacking skill required to backdoor the world daemon. */ - WorldDaemonDifficulty: number; -} - -/** - * Bladeburner API - * @remarks - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this API. - * @public - */ -export declare interface Bladeburner { - /** - * List all contracts. - * @remarks - * RAM cost: 0.4 GB - * - * Returns an array of strings containing the names of all Bladeburner contracts. - * - * @returns Array of strings containing the names of all Bladeburner contracts. - */ - getContractNames(): string[]; - - /** - * List all operations. - * @remarks - * RAM cost: 0.4 GB - * - * Returns an array of strings containing the names of all Bladeburner operations. - * - * @returns Array of strings containing the names of all Bladeburner operations. - */ - getOperationNames(): string[]; - - /** - * List all black ops. - * @remarks - * RAM cost: 0.4 GB - * - * Returns an array of strings containing the names of all Bladeburner Black Ops. - * - * @returns Array of strings containing the names of all Bladeburner Black Ops. - */ - getBlackOpNames(): string[]; - - /** - * List all general actions. - * @remarks - * RAM cost: 0.4 GB - * - * Returns an array of strings containing the names of all general Bladeburner actions. - * - * @returns Array of strings containing the names of all general Bladeburner actions. - */ - getGeneralActionNames(): string[]; - - /** - * List all skills. - * @remarks - * RAM cost: 0.4 GB - * - * Returns an array of strings containing the names of all general Bladeburner skills. - * - * @returns Array of strings containing the names of all general Bladeburner skills. - */ - getSkillNames(): string[]; - - /** - * Start an action. - * @remarks - * RAM cost: 4 GB - * - * Attempts to start the specified Bladeburner action. - * Returns true if the action was started successfully, and false otherwise. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match - * @returns True if the action was started successfully, and false otherwise. - */ - startAction(type: string, name: string): boolean; - - /** - * Stop current action. - * @remarks - * RAM cost: 2 GB - * - * Stops the current Bladeburner action. - * - */ - stopBladeburnerAction(): void; - - /** - * Get current action. - * @remarks - * RAM cost: 1 GB - * - * Returns an object that represents the player’s current Bladeburner action. - * If the player is not performing an action, the function will return an object with the ‘type’ property set to “Idle”. - * - * @returns Object that represents the player’s current Bladeburner action. - */ - getCurrentAction(): BladeburnerCurAction; - - /** - * Get the time to complete an action. - * @remarks - * RAM cost: 4 GB - * - * Returns the number of milliseconds it takes to complete the specified action - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Number of milliseconds it takes to complete the specified action. - */ - getActionTime(type: string, name: string): number; - - /** - * Get the time elapsed on current action. - * @remarks - * RAM cost: 4 GB - * - * Returns the number of milliseconds already spent on the current action. - * - * @returns Number of milliseconds already spent on the current action. - */ - getActionCurrentTime(): number; - - /** - * Get estimate success chance of an action. - * @remarks - * RAM cost: 4 GB - * - * Returns the estimated success chance for the specified action. - * This chance is returned as a decimal value, NOT a percentage - * (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80). - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Estimated success chance for the specified action. - */ - getActionEstimatedSuccessChance(type: string, name: string): [number, number]; - - /** - * Get the reputation gain of an action. - * @remarks - * RAM cost: 4 GB - * - * Returns the average Bladeburner reputation gain for successfully - * completing the specified action. - * Note that this value is an ‘average’ and the real reputation gain may vary slightly from this value. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @param level - Optional action level at which to calculate the gain - * @returns Average Bladeburner reputation gain for successfully completing the specified action. - */ - getActionRepGain(type: string, name: string, level: number): number; - - /** - * Get action count remaining. - * @remarks - * RAM cost: 4 GB - * - * Returns the remaining count of the specified action. - * - * Note that this is meant to be used for Contracts and Operations. - * This function will return ‘Infinity’ for actions such as Training and Field Analysis. - * This function will return 1 for BlackOps not yet completed regardless of whether - * the player has the required rank to attempt the mission or not. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Remaining count of the specified action. - */ - getActionCountRemaining(type: string, name: string): number; - - /** - * Get the maximum level of an action. - * @remarks - * RAM cost: 4 GB - * - * Returns the maximum level for this action. - * - * Returns -1 if an invalid action is specified. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Maximum level of the specified action. - */ - getActionMaxLevel(type: string, name: string): number; - - /** - * Get the current level of an action. - * @remarks - * RAM cost: 4 GB - * - * Returns the current level of this action. - * - * Returns -1 if an invalid action is specified. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Current level of the specified action. - */ - getActionCurrentLevel(type: string, name: string): number; - - /** - * Get whether an action is set to autolevel. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not this action is currently set to autolevel. - * - * Returns false if an invalid action is specified. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns True if the action is set to autolevel, and false otherwise. - */ - getActionAutolevel(type: string, name: string): boolean; - - /** - * Set an action autolevel. - * @remarks - * RAM cost: 4 GB - * - * Enable/disable autoleveling for the specified action. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @param autoLevel - Whether or not to autolevel this action - */ - setActionAutolevel(type: string, name: string, autoLevel: boolean): void; - - /** - * Set the level of an action. - * @remarks - * RAM cost: 4 GB - * - * Set the level for the specified action. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @param level - Level to set this action to. - */ - setActionLevel(type: string, name: string, level: number): void; - - /** - * Get player bladeburner rank. - * @remarks - * RAM cost: 4 GB - * - * Returns the player’s Bladeburner Rank. - * - * @returns Player’s Bladeburner Rank. - */ - getRank(): number; - - /** - * Get black op required rank. - * @remarks - * RAM cost: 2 GB - * - * Returns the rank required to complete this BlackOp. - * - * Returns -1 if an invalid action is specified. - * - * @param name - Name of BlackOp. Must be an exact match. - * @returns Rank required to complete this BlackOp. - */ - getBlackOpRank(name: string): number; - - /** - * Get bladeburner skill points. - * @remarks - * RAM cost: 4 GB - * - * Returns the number of Bladeburner skill points you have. - * - * @returns Number of Bladeburner skill points you have. - */ - getSkillPoints(): number; - - /** - * Get skill level. - * @remarks - * RAM cost: 4 GB - * - * This function returns your level in the specified skill. - * - * The function returns -1 if an invalid skill name is passed in. - * - * @param skillName - Name of skill. Case-sensitive and must be an exact match - * @returns Level in the specified skill. - */ - getSkillLevel(name: string): number; - - /** - * Get cost to upgrade skill. - * @remarks - * RAM cost: 4 GB - * - * This function returns the number of skill points needed to upgrade the specified skill the specified number of times. - * - * The function returns -1 if an invalid skill name is passed in. - * - * @param skillName - Name of skill. Case-sensitive and must be an exact match - * @param count - Number of times to upgrade the skill. Defaults to 1 if not specified. - * @returns Number of skill points needed to upgrade the specified skill. - */ - getSkillUpgradeCost(name: string, count?: number): number; - - /** - * Upgrade skill. - * @remarks - * RAM cost: 4 GB - * - * Attempts to upgrade the specified Bladeburner skill the specified number of times. - * - * Returns true if the skill is successfully upgraded, and false otherwise. - * - * @param skillName - Name of skill to be upgraded. Case-sensitive and must be an exact match - * @param count - Number of times to upgrade the skill. Defaults to 1 if not specified. - * @returns true if the skill is successfully upgraded, and false otherwise. - */ - upgradeSkill(name: string, count?: number): boolean; - - /** - * Get team size. - * @remarks - * RAM cost: 4 GB - * - * Returns the number of Bladeburner team members you have assigned to the specified action. - * - * Setting a team is only applicable for Operations and BlackOps. This function will return 0 for other action types. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @returns Number of Bladeburner team members that were assigned to the specified action. - */ - getTeamSize(type: string, name: string): number; - - /** - * Set team size. - * @remarks - * RAM cost: 4 GB - * - * Set the team size for the specified Bladeburner action. - * - * Returns the team size that was set, or -1 if the function failed. - * - * @param type - Type of action. - * @param name - Name of action. Must be an exact match. - * @param size - Number of team members to set. Will be converted using Math.round(). - * @returns Number of Bladeburner team members you assigned to the specified action. - */ - setTeamSize(type: string, name: string, size: number): number; - - /** - * Get estimated population in city. - * @remarks - * RAM cost: 4 GB - * - * Returns the estimated number of Synthoids in the specified city, - * or -1 if an invalid city was specified. - * - * @param city - Name of city. Case-sensitive - * @returns Estimated number of Synthoids in the specified city. - */ - getCityEstimatedPopulation(city: CityName | `${CityName}`): number; - - /** - * Get number of communities in a city. - * @remarks - * RAM cost: 4 GB - * - * Returns the estimated number of Synthoid communities in the specified city, - * or -1 if an invalid city was specified. - * - * @param city - Name of city. Case-sensitive - * @returns Number of Synthoids communities in the specified city. - */ - getCityCommunities(city: CityName | `${CityName}`): number; - - /** - * Get chaos of a city. - * @remarks - * RAM cost: 4 GB - * - * Returns the chaos in the specified city, - * or -1 if an invalid city was specified. - * - * @param city - Name of city. Case-sensitive - * @returns Chaos in the specified city. - */ - getCityChaos(city: CityName | `${CityName}`): number; - - /** - * Get current city. - * @remarks - * RAM cost: 4 GB - * - * Returns the city that the player is currently in (for Bladeburner). - * - * @returns City that the player is currently in (for Bladeburner). - */ - getCity(): CityName; - - /** - * Travel to another city in bladeburner. - * @remarks - * RAM cost: 4 GB - * Attempts to switch to the specified city (for Bladeburner only). - * - * Returns true if successful, and false otherwise - * - * @param city - Name of city. Case-sensitive - * @returns true if successful, and false otherwise - */ - switchCity(city: CityName | `${CityName}`): boolean; - - /** - * Get bladeburner stamina. - * @remarks - * RAM cost: 4 GB - * Returns an array with two elements: - * * [Current stamina, Max stamina] - * @example - * ```ts - * // NS1: - * function getStaminaPercentage() { - * var res = bladeburner.getStamina(); - * return res[0] / res[1]; - * } - * ``` - * @example - * ```ts - * // NS2: - * function getStaminaPercentage() { - * const [current, max] = ns.bladeburner.getStamina(); - * return current / max; - * } - * ``` - * @returns Array containing current stamina and max stamina. - */ - getStamina(): [number, number]; - - /** - * Join the bladeburner faction. - * @remarks - * RAM cost: 4 GB - * Attempts to join the Bladeburner faction. - * - * Returns true if you successfully join the Bladeburner faction, or if you are already a member. - * - * Returns false otherwise. - * - * @returns True if you successfully join the Bladeburner faction, or if you are already a member, false otherwise. - */ - joinBladeburnerFaction(): boolean; - - /** - * Join the bladeburner division. - * @remarks - * RAM cost: 4 GB - * - * Attempts to join the Bladeburner division. - * - * Returns true if you successfully join the Bladeburner division, or if you are already a member. - * - * Returns false otherwise. - * - * @returns True if you successfully join the Bladeburner division, or if you are already a member, false otherwise. - */ - joinBladeburnerDivision(): boolean; - - /** - * Get bladeburner bonus time. - * @remarks - * RAM cost: 0 GB - * - * Returns the amount of accumulated “bonus time” (milliseconds) 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. - * - * @returns Amount of accumulated “bonus time” (milliseconds) for the Bladeburner mechanic. - */ - getBonusTime(): number; - - /** Returns whether player is a member of bladeburner division. Does not require API access. - * @remarks - * RAM cost: 1 GB - * - * @returns whether player is a member of bladeburner division. */ - inBladeburner(): boolean; -} - -/** - * Bladeburner current action. - * @public - */ -export declare interface BladeburnerCurAction { - /** Type of Action */ - type: string; - /** Name of Action */ - name: string; -} - -/** Names of all cities - * @public */ -export declare enum CityName { - Aevum = "Aevum", - Chongqing = "Chongqing", - Sector12 = "Sector-12", - NewTokyo = "New Tokyo", - Ishima = "Ishima", - Volhaven = "Volhaven", -} - -/** - * Coding Contract API - * @public - */ -export declare interface CodingContract { - /** - * Attempts a coding contract, returning a reward string on success or empty string on failure. - * @remarks - * RAM cost: 10 GB - * - * Attempts to solve the Coding Contract with the provided solution. - * - * @example - * ```js - * // NS1 - * var reward = codingcontract.attempt(yourSolution, filename, hostname); - * if (reward) { - * tprint("Contract solved successfully! Reward: " + reward) - * } else tprint("Failed to solve contract.") - * ``` - * @example - * ```js - * // NS2 - * const reward = codingcontract.attempt(yourSolution, filename, hostname); - * if (reward) { - * ns.tprint(`Contract solved successfully! Reward: ${reward}`) - * } else ns.tprint("Failed to solve contract.") - * ``` - * - * @param answer - Attempted solution for the contract. - * @param filename - Filename of the contract. - * @param host - Hostname of the server containing the contract. Optional. Defaults to current server if not - * provided. - * @returns A reward description string on success, or an empty string on failure. - */ - attempt(answer: string | number | any[], filename: string, host?: string): string; - - /** - * Get the type of a coding contract. - * @remarks - * RAM cost: 5 GB - * - * Returns a name describing the type of problem posed by the Coding Contract. - * (e.g. Find Largest Prime Factor, Total Ways to Sum, etc.) - * - * @param filename - Filename of the contract. - * @param host - Hostname of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns Name describing the type of problem posed by the Coding Contract. - */ - getContractType(filename: string, host?: string): string; - - /** - * Get the description. - * @remarks - * RAM cost: 5 GB - * - * Get the full text description for the problem posed by the Coding Contract. - * - * @param filename - Filename of the contract. - * @param host - Hostname of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns Contract’s text description. - */ - getDescription(filename: string, host?: string): string; - - /** - * Get the input data. - * @remarks - * RAM cost: 5 GB - * - * Get the data associated with the specific Coding Contract. - * Note that this is not the same as the contract’s description. - * This is just the data that the contract wants you to act on in order to solve the contract. - * - * @param filename - Filename of the contract. - * @param host - Host of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns The specified contract’s data, data type depends on contract type. - */ - getData(filename: string, host?: string): CodingContractData; - - /** - * Get the number of attempts remaining. - * @remarks - * RAM cost: 2 GB - * - * Get the number of tries remaining on the contract before it self-destructs. - * - * @param filename - Filename of the contract. - * @param host - Hostname of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns How many attempts are remaining for the contract. - */ - getNumTriesRemaining(filename: string, host?: string): number; - - /** - * Generate a dummy contract. - * @remarks - * RAM cost: 2 GB - * - * Generate a dummy contract on the home computer with no reward. Used to test various algorithms. - * - * @param type - Type of contract to generate - */ - createDummyContract(type: string): void; - - /** - * List all contract types. - * @remarks - * RAM cost: 2 GB - */ - getContractTypes(): string[]; -} - -/** - * Coding contract data will differ depending on coding contract. - * @public - */ -export declare type CodingContractData = any; - -/** - * Corporation related constants - * @public - */ -export declare interface CorpConstants { - /** Names of all corporation game states */ - stateNames: CorpStateName[]; - /** Names of all industries */ - industryNames: CorpIndustryName[]; - /** Names of all materials */ - materialNames: CorpMaterialName[]; - /** Names of all one-time corporation-wide unlocks */ - unlockNames: CorpUnlockName[]; - /** Names of all corporation-wide upgrades */ - upgradeNames: CorpUpgradeName[]; - /** Names of all researches common to all industries */ - researchNamesBase: CorpResearchName[]; - /** Names of all researches only available to product industries */ - researchNamesProductOnly: CorpResearchName[]; - /** Names of all researches */ - researchNames: CorpResearchName[]; - initialShares: number; - /** When selling large number of shares, price is dynamically updated for every batch of this amount */ - sharesPerPriceUpdate: number; - /** Cooldown for issue new shares cooldown in game cycles (1 game cycle = 200ms) */ - issueNewSharesCooldown: number; - /** Cooldown for selling shares in game cycles (1 game cycle = 200ms) */ - sellSharesCooldown: number; - coffeeCostPerEmployee: number; - gameCyclesPerMarketCycle: number; - gameCyclesPerCorpStateCycle: number; - secondsPerMarketCycle: number; - warehouseInitialCost: number; - warehouseInitialSize: number; - warehouseSizeUpgradeCostBase: number; - officeInitialCost: number; - officeInitialSize: number; - officeSizeUpgradeCostBase: number; - bribeThreshold: number; - bribeAmountPerReputation: number; - baseProductProfitMult: number; - dividendMaxRate: number; - /** Conversion factor for employee stats to initial salary */ - employeeSalaryMultiplier: number; - marketCyclesPerEmployeeRaise: number; - employeeRaiseAmount: number; - /** Max products for a division without upgrades */ - maxProductsBase: number; - /** The minimum decay value for happiness/morale/energy */ - minEmployeeDecay: number; -} - -/** @public */ -export declare type CorpEmployeePosition = -| "Operations" -| "Engineer" -| "Business" -| "Management" -| "Research & Development" -| "Training" -| "Unassigned"; - -/** Data for an individual industry - * @public */ -export declare interface CorpIndustryData { - startingCost: number; - description: string; - product?: CorpProductData; - recommendStarting: boolean; - requiredMaterials: Partial>; - /** Real estate factor */ - realEstateFactor?: number; - /** Scientific research factor (affects quality) */ - scienceFactor?: number; - /** Hardware factor */ - hardwareFactor?: number; - /** Robots factor */ - robotFactor?: number; - /** AI Cores factor */ - aiCoreFactor?: number; - /** Advertising factor (affects sales) */ - advertisingFactor?: number; - producedMaterials?: CorpMaterialName[]; -} - -/** @public */ -export declare type CorpIndustryName = -| "Energy" -| "Water Utilities" -| "Agriculture" -| "Fishing" -| "Mining" -| "Food" -| "Tobacco" -| "Chemical" -| "Pharmaceutical" -| "Computer Hardware" -| "Robotics" -| "Software" -| "Healthcare" -| "Real Estate"; - -/** - * Corporation material information - * @public - */ -export declare interface CorpMaterialConstantData { - /** Name of the material */ - name: string; - /** Size of the material */ - size: number; - demandBase: number; - /** Min and max demand */ - demandRange: [min: number, max: number]; - competitionBase: number; - competitionRange: [min: number, max: number]; - baseCost: number; - maxVolatility: number; - baseMarkup: number; -} - -/** @public */ -export declare type CorpMaterialName = -| "Water" -| "Energy" -| "Food" -| "Plants" -| "Metal" -| "Hardware" -| "Chemicals" -| "Drugs" -| "Robots" -| "AI Cores" -| "Real Estate"; - -/** - * Corporation API - * @public - */ -export declare interface Corporation extends WarehouseAPI, OfficeAPI { - /** Returns whether the player has a corporation. Does not require API access. - * @returns whether the player has a corporation */ - hasCorporation(): boolean; - - /** Create a Corporation - * @param corporationName - Name of the corporation - * @param selfFund - If you should self fund, defaults to true, false will only work on Bitnode 3 - * @returns true if created and false if not */ - createCorporation(corporationName: string, selfFund: boolean): boolean; - - /** Check if you have a one time unlockable upgrade - * @param upgradeName - Name of the upgrade - * @returns true if unlocked and false if not */ - hasUnlockUpgrade(upgradeName: string): boolean; - - /** Gets the cost to unlock a one time unlockable upgrade - * @param upgradeName - Name of the upgrade - * @returns cost of the upgrade */ - getUnlockUpgradeCost(upgradeName: string): number; - - /** Get the level of a levelable upgrade - * @param upgradeName - Name of the upgrade - * @returns the level of the upgrade */ - getUpgradeLevel(upgradeName: string): number; - - /** Gets the cost to unlock the next level of a levelable upgrade - * @param upgradeName - Name of the upgrade - * @returns cost of the upgrade */ - getUpgradeLevelCost(upgradeName: string): number; - - /** Get an offer for investment based on you companies current valuation - * @returns An offer of investment */ - getInvestmentOffer(): InvestmentOffer; - - /** Get corporation related constants - * @returns corporation related constants */ - getConstants(): CorpConstants; - - /** Get constant industry definition data for a specific industry */ - getIndustryData(industryName: CorpIndustryName): CorpIndustryData; - - /** Get constant data for a specific material */ - getMaterialData(materialName: CorpMaterialName): CorpMaterialConstantData; - - /** Accept investment based on you companies current valuation - * @remarks - * Is based on current valuation and will not honer a specific Offer - * @returns An offer of investment */ - acceptInvestmentOffer(): boolean; - - /** Go public - * @param numShares - number of shares you would like to issue for your IPO - * @returns true if you successfully go public, false if not */ - goPublic(numShares: number): boolean; - - /** Bribe a faction - * @param factionName - Faction name - * @param amountCash - Amount of money to bribe - * @returns True if successful, false if not */ - bribe(factionName: string, amountCash: number): boolean; - - /** Get corporation data - * @returns Corporation data */ - getCorporation(): CorporationInfo; - - /** Get division data - * @param divisionName - Name of the division - * @returns Division data */ - getDivision(divisionName: string): Division; - - /** Expand to a new industry - * @param industryType - Name of the industry - * @param divisionName - Name of the division */ - expandIndustry(industryType: CorpIndustryName, divisionName: string): void; - - /** Expand to a new city - * @param divisionName - Name of the division - * @param city - Name of the city */ - expandCity(divisionName: string, city: CityName | `${CityName}`): void; - - /** Unlock an upgrade - * @param upgradeName - Name of the upgrade */ - unlockUpgrade(upgradeName: string): void; - - /** Level an upgrade. - * @param upgradeName - Name of the upgrade */ - levelUpgrade(upgradeName: string): void; - - /** Issue dividends - * @param rate - Fraction of profit to issue as dividends. */ - issueDividends(rate: number): void; - - /** Issue new shares - * @param amount - Number of new shares to issue, will be rounded to nearest 10m. Defaults to max amount. - * @returns Amount of funds generated for the corporation. */ - issueNewShares(amount?: number): number; - - /** Buyback Shares - * @param amount - Amount of shares to buy back. */ - buyBackShares(amount: number): void; - - /** Sell Shares - * @param amount - Amount of shares to sell. */ - sellShares(amount: number): void; - - /** Get bonus time. - * “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. - * @returns Bonus time for the Corporation mechanic in milliseconds. */ - getBonusTime(): number; -} - -/** - * General info about a corporation - * @public - */ -export declare interface CorporationInfo { - /** Name of the corporation */ - name: string; - /** Funds available */ - funds: number; - /** Revenue per second this cycle */ - revenue: number; - /** Expenses per second this cycle */ - expenses: number; - /** Indicating if the company is public */ - public: boolean; - /** Total number of shares issues by this corporation */ - totalShares: number; - /** Amount of share owned */ - numShares: number; - /** Cooldown until shares can be sold again */ - shareSaleCooldown: number; - /** Amount of acquirable shares. */ - issuedShares: number; - /** Price of the shares */ - sharePrice: number; - /** Fraction of profits issued as dividends */ - dividendRate: number; - /** Tax applied on your earnings as a shareholder */ - dividendTax: number; - /** Your earnings as a shareholder per second this cycle */ - dividendEarnings: number; - /** State of the corporation. Possible states are START, PURCHASE, PRODUCTION, SALE, EXPORT. */ - state: string; - /** Array of all division names */ - divisions: string[]; -} - -/** Product rating information - * @public */ -export declare type CorpProductData = { - /** Name of the product */ - name: string; - /** Verb used to describe creation of the product */ - verb: string; - /** Description of product creation */ - desc: string; - /** Weighting factors for product */ - ratingWeights: { - aesthetics?: number; - durability?: number; - features?: number; - quality?: number; - performance?: number; - reliability?: number; - }; -}; - -/** @public */ -export declare type CorpResearchName = -| "Hi-Tech R&D Laboratory" -| "AutoBrew" -| "AutoPartyManager" -| "Automatic Drug Administration" -| "Bulk Purchasing" -| "CPH4 Injections" -| "Drones" -| "Drones - Assembly" -| "Drones - Transport" -| "Go-Juice" -| "HRBuddy-Recruitment" -| "HRBuddy-Training" -| "JoyWire" -| "Market-TA.I" -| "Market-TA.II" -| "Overclock" -| "Self-Correcting Assemblers" -| "Sti.mu" -| "uPgrade: Capacity.I" -| "uPgrade: Capacity.II" -| "uPgrade: Dashboard" -| "uPgrade: Fulcrum" -| "sudo.Assist"; - -/** @public */ -export declare type CorpStateName = "START" | "PURCHASE" | "PRODUCTION" | "SALE" | "EXPORT"; - -/** @public */ -export declare type CorpUnlockName = -| "Export" -| "Smart Supply" -| "Market Research - Demand" -| "Market Data - Competition" -| "VeChain" -| "Shady Accounting" -| "Government Partnership" -| "Warehouse API" -| "Office API"; - -/** @public */ -export declare type CorpUpgradeName = -| "Smart Factories" -| "Smart Storage" -| "DreamSense" -| "Wilson Analytics" -| "Nuoptimal Nootropic Injector Implants" -| "Speech Processor Implants" -| "Neural Accelerators" -| "FocusWires" -| "ABC SalesBots" -| "Project Insight"; - -/** - * Data representing the internal values of a crime. - * @public - */ -export declare interface CrimeStats { - /** Number representing the difficulty of the crime. Used for success chance calculations */ - difficulty: number; - /** Amount of karma lost for successfully committing this crime */ - karma: number; - /** How many people die as a result of this crime */ - kills: number; - /** How much money is given */ - money: number; - /** Milliseconds it takes to attempt the crime */ - time: number; - /** Description of the crime activity */ - type: string; - /** hacking level impact on success change of the crime */ - hacking_success_weight: number; - /** strength level impact on success change of the crime */ - strength_success_weight: number; - /** defense level impact on success change of the crime */ - defense_success_weight: number; - /** dexterity level impact on success change of the crime */ - dexterity_success_weight: number; - /** agility level impact on success change of the crime */ - agility_success_weight: number; - /** charisma level impact on success change of the crime */ - charisma_success_weight: number; - /** hacking exp gained from crime */ - hacking_exp: number; - /** strength exp gained from crime */ - strength_exp: number; - /** defense exp gained from crime */ - defense_exp: number; - /** dexterity exp gained from crime */ - dexterity_exp: number; - /** agility exp gained from crime */ - agility_exp: number; - /** charisma exp gained from crime */ - charisma_exp: number; - /** intelligence exp gained from crime */ - intelligence_exp: number; -} - -/** @public */ -export declare enum CrimeType { - shoplift = "Shoplift", - robStore = "Rob Store", - mug = "Mug", - larceny = "Larceny", - dealDrugs = "Deal Drugs", - bondForgery = "Bond Forgery", - traffickArms = "Traffick Arms", - homicide = "Homicide", - grandTheftAuto = "Grand Theft Auto", - kidnap = "Kidnap", - assassination = "Assassination", - heist = "Heist", -} - -/** - * Corporation division - * @public - */ -export declare interface Division { - /** Name of the division */ - name: string; - /** Type of division, like Agriculture */ - type: CorpIndustryName; - /** Awareness of the division */ - awareness: number; - /** Popularity of the division */ - popularity: number; - /** Production multiplier */ - prodMult: number; - /** Amount of research in that division */ - research: number; - /** Revenue last cycle */ - lastCycleRevenue: number; - /** Expenses last cycle */ - lastCycleExpenses: number; - /** Revenue this cycle */ - thisCycleRevenue: number; - /** Expenses this cycle */ - thisCycleExpenses: number; - /** All research bought */ - upgrades: number[]; - /** Cities in which this division has expanded */ - cities: CityName[]; - /** Products developed by this division */ - products: string[]; - /** Whether the industry this division is in is capable of making products */ - makesProducts: boolean; -} - -/** - * Object representing data representing a gang member equipment. - * @public - */ -export declare interface EquipmentStats { - /** Strength multiplier */ - str?: number; - /** Defense multiplier */ - def?: number; - /** Dexterity multiplier */ - dex?: number; - /** Agility multiplier */ - agi?: number; - /** Charisma multiplier */ - cha?: number; - /** Hacking multiplier */ - hack?: number; -} - -/** - * Export order for a material - * @public - */ -export declare interface Export { - /** Division the material is being exported to */ - div: string; - /** City the material is being exported to */ - loc: CityName; - /** Amount of material exported */ - amt: string; -} - -/** @public */ -export declare enum FactionWorkType { - hacking = "hacking", - field = "field", - security = "security", -} - -/** @public */ -export declare type FilenameOrPID = number | string; - -/** - * Formulas API - * @remarks - * You need Formulas.exe on your home computer to use this API. - * @public - */ -export declare interface Formulas { - mockServer(): Server; - mockPlayer(): Player; - mockPerson(): Person; - /** Reputation formulas */ - reputation: ReputationFormulas; - /** Skills formulas */ - skills: SkillsFormulas; - /** Hacking formulas */ - hacking: HackingFormulas; - /** Hacknet Nodes formulas */ - hacknetNodes: HacknetNodesFormulas; - /** Hacknet Servers formulas */ - hacknetServers: HacknetServersFormulas; - /** Gang formulas */ - gang: GangFormulas; - /** Work formulas */ - work: WorkFormulas; -} - -/** @public */ -export declare interface Fragment { - id: number; - shape: boolean[][]; - type: number; - power: number; - limit: number; -} - -/** - * Game Information - * @public - */ -export declare interface GameInfo { - version: string; - commit: string; - platform: string; -} - -/** - * Gang API - * @remarks - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this API. - * @public - */ -export declare interface Gang { - /** - * Create a gang. - * @remarks - * RAM cost: 1GB - * - * Create a gang with the specified faction. - * @returns True if the gang was created, false otherwise. - */ - createGang(faction: string): boolean; - - /** - * Check if you're in a gang. - * @remarks - * RAM cost: 1GB - * @returns True if you're in a gang, false otherwise. - */ - inGang(): boolean; - - /** - * List all gang members. - * @remarks - * RAM cost: 1 GB - * - * Get the names of all Gang members - * - * @returns Names of all Gang members. - */ - getMemberNames(): string[]; - - /** - * Get information about your gang. - * @remarks - * RAM cost: 2 GB - * - * Get general information about the gang. - * - * @returns Object containing general information about the gang. - */ - getGangInformation(): GangGenInfo; - - /** - * Get information about the other gangs. - * @remarks - * RAM cost: 2 GB - * - * Get territory and power information about all gangs. - * - * @returns Object containing territory and power information about all gangs. - */ - getOtherGangInformation(): GangOtherInfo; - - /** - * Get information about a specific gang member. - * @remarks - * RAM cost: 2 GB - * - * Get stat and equipment-related information about a Gang Member - * - * @param name - Name of member. - * @returns Object containing stat and equipment-related information about a Gang Member. - */ - getMemberInformation(name: string): GangMemberInfo; - - /** - * Check if you can recruit a new gang member. - * @remarks - * RAM cost: 1 GB - * - * Returns a boolean indicating whether a member can currently be recruited. - * - * Once you have successfully created a gang by using the function - * {@link Gang.createGang | createGang}, you can immediately recruit a small - * number of members to your gang. After you have recruited the founding - * members, to recruit another member you must increase your respect. The - * more members you want to recruit, the more respect you require. If your - * gang has the maximum number of members, then this function would return - * false. - * - * @returns True if a member can currently be recruited, false otherwise. - */ - canRecruitMember(): boolean; - - /** - * Recruit a new gang member. - * @remarks - * RAM cost: 2 GB - * - * Attempt to recruit a new gang member. - * - * Possible reasons for failure: - * * Cannot currently recruit a new member - * * There already exists a member with the specified name - * - * @param name - Name of member to recruit. - * @returns True if the member was successfully recruited, false otherwise. - */ - recruitMember(name: string): boolean; - - /** - * List member task names. - * @remarks - * RAM cost: 1 GB - * - * Get the name of all valid tasks that Gang members can be assigned to. - * - * @returns All valid tasks that Gang members can be assigned to. - */ - getTaskNames(): string[]; - - /** - * Set gang member to task. - * @remarks - * RAM cost: 2 GB - * - * Attempts to assign the specified Gang Member to the specified task. - * If an invalid task is specified, the Gang member will be set to idle (“Unassigned”). - * - * @param memberName - Name of Gang member to assign. - * @param taskName - Task to assign. - * @returns True if the Gang Member was successfully assigned to the task, false otherwise. - */ - setMemberTask(memberName: string, taskName: string): boolean; - - /** - * Get stats of a task. - * @remarks - * RAM cost: 1 GB - * - * Get the stats of a gang task stats. This is typically used to evaluate which action should be executed next. - * - * @param name - Name of the task. - * @returns Detailed stats of a task. - */ - getTaskStats(name: string): GangTaskStats; - - /** - * List equipment names. - * @remarks - * RAM cost: 1 GB - * - * Get the name of all possible equipment/upgrades you can purchase for your Gang Members. - * This includes Augmentations. - * - * @returns Names of all Equipments/Augmentations. - */ - getEquipmentNames(): string[]; - - /** - * Get cost of equipment. - * @remarks - * RAM cost: 2 GB - * - * Get the amount of money it takes to purchase a piece of Equipment or an Augmentation. - * If an invalid Equipment/Augmentation is specified, this function will return Infinity. - * - * @param equipName - Name of equipment. - * @returns Cost to purchase the specified Equipment/Augmentation (number). Infinity for invalid arguments - */ - getEquipmentCost(equipName: string): number; - - /** - * Get type of an equipment. - * @remarks - * RAM cost: 2 GB - * - * Get the specified equipment type. - * - * @param equipName - Name of equipment. - * @returns Type of the equipment. - */ - getEquipmentType(equipName: string): string; - - /** - * Get stats of an equipment. - * @remarks - * RAM cost: 2 GB - * - * Get the specified equipment stats. - * - * @param equipName - Name of equipment. - * @returns A dictionary containing the stats of the equipment. - */ - getEquipmentStats(equipName: string): EquipmentStats; - - /** - * Purchase an equipment for a gang member. - * @remarks - * RAM cost: 4 GB - * - * Attempt to purchase the specified Equipment/Augmentation for the specified Gang member. - * - * @param memberName - Name of Gang member to purchase the equipment for. - * @param equipName - Name of Equipment/Augmentation to purchase. - * @returns True if the equipment was successfully purchased. False otherwise - */ - purchaseEquipment(memberName: string, equipName: string): boolean; - - /** - * Ascend a gang member. - * @remarks - * RAM cost: 4 GB - * - * Ascend the specified Gang Member. - * - * @param memberName - Name of member to ascend. - * @returns Object with info about the ascension results. Undefined if ascension did not occur. - */ - ascendMember(memberName: string): GangMemberAscension | undefined; - - /** - * Get the result of an ascension without ascending. - * @remarks - * RAM cost: 2 GB - * - * Get the result of an ascension without ascending. - * - * @param memberName - Name of member. - * @returns Object with info about the ascension results. Undefined if ascension is impossible. - */ - getAscensionResult(memberName: string): GangMemberAscension | undefined; - - /** - * Enable/Disable territory warfare. - * @remarks - * RAM cost: 2 GB - * - * Set whether or not the gang should engage in territory warfare - * - * @param engage - Whether or not to engage in territory warfare. - */ - setTerritoryWarfare(engage: boolean): void; - - /** - * Get chance to win clash with other gang. - * @remarks - * RAM cost: 4 GB - * - * Returns the chance you have to win a clash with the specified gang. The chance is returned in decimal form, not percentage - * - * @param gangName - Target gang - * @returns Chance you have to win a clash with the specified gang. - */ - getChanceToWinClash(gangName: string): number; - - /** - * Get bonus time. - * @remarks - * RAM cost: 0 GB - * - * Returns the amount of accumulated “bonus time” (milliseconds) for the Gang 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 10x the normal speed. - * - * @returns Bonus time for the Gang mechanic in milliseconds. - */ - getBonusTime(): number; -} - -/** - * Gang formulas - * @public - */ -export declare interface GangFormulas { - /** - * Calculate the wanted penalty. - * @param gang - Gang info from {@link Gang.getGangInformation | getGangInformation} - * @returns The calculated wanted penalty. - */ - wantedPenalty(gang: GangGenInfo): number; - /** - * Calculate respect gain per tick. - * @param gang - Gang info from {@link Gang.getGangInformation | getGangInformation} - * @param member - Gang info from {@link Gang.getMemberInformation | getMemberInformation} - * @param task - Gang info from {@link Gang.getTaskStats | getTaskStats} - * @returns The calculated respect gain. - */ - respectGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; - /** - * Calculate wanted gain per tick. - * @param gang - Gang info from {@link Gang.getGangInformation | getGangInformation} - * @param member - Member info from {@link Gang.getMemberInformation | getMemberInformation} - * @param task - Task info from {@link Gang.getTaskStats | getTaskStats} - * @returns The calculated wanted gain. - */ - wantedLevelGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; - /** - * Calculate money gain per tick. - * @param gang - Gang info from {@link Gang.getGangInformation | getGangInformation} - * @param member - Member info from {@link Gang.getMemberInformation | getMemberInformation} - * @param task - Task info from {@link Gang.getTaskStats | getTaskStats} - * @returns The calculated money gain. - */ - moneyGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; - - /** - * Calculate ascension point gain. - * @param exp - Experience point before ascension. - * @returns The calculated ascension point gain. - */ - ascensionPointsGain(exp: number): number; - - /** - * Calculate ascension mult. - * @param points - Amount of ascension points. - * @returns The calculated ascension mult. - */ - ascensionMultiplier(points: number): number; -} - -/** - * Gang general info. - * @public - */ -export declare interface GangGenInfo { - /** Name of faction that the gang belongs to ("Slum Snakes", etc.) */ - faction: string; - /** Indicating whether or not it's a hacking gang */ - isHacking: boolean; - /** Money earned per game cycle */ - moneyGainRate: number; - /** Gang's power for territory warfare */ - power: number; - /** Gang's respect */ - respect: number; - /** Respect earned per game cycle */ - respectGainRate: number; - /** Amount of territory held */ - territory: number; - /** Clash chance */ - territoryClashChance: number; - /** Gang's wanted level */ - wantedLevel: number; - /** Wanted level gained/lost per game cycle (negative for losses) */ - wantedLevelGainRate: number; - /** Indicating if territory warfare is enabled */ - territoryWarfareEngaged: boolean; - /** Number indicating the current wanted penalty */ - wantedPenalty: number; -} - -/** @public */ -export declare interface GangMemberAscension { - /** Amount of respect lost from ascending */ - respect: number; - /** Hacking multiplier gained from ascending */ - hack: number; - /** Strength multiplier gained from ascending */ - str: number; - /** Defense multiplier gained from ascending */ - def: number; - /** Dexterity multiplier gained from ascending */ - dex: number; - /** Agility multiplier gained from ascending */ - agi: number; - /** Charisma multiplier gained from ascending */ - cha: number; -} - -/** @public */ -export declare interface GangMemberInfo { - /** Name of the gang member */ - name: string; - /** Currently assigned task */ - task: string; - earnedRespect: number; - - /** Hack skill level */ - hack: number; - /** Strength skill level */ - str: number; - /** Defense skill level */ - def: number; - /** Dexterity skill level */ - dex: number; - /** Agility skill level */ - agi: number; - /** Charisma skill level */ - cha: number; - - /** Current hack experience */ - hack_exp: number; - /** Current strength experience */ - str_exp: number; - /** Current defense experience */ - def_exp: number; - /** Current dexterity experience */ - dex_exp: number; - /** Current agility experience */ - agi_exp: number; - /** Current charisma experience */ - cha_exp: number; - - /** Hack multiplier from equipment */ - hack_mult: number; - /** Strength multiplier from equipment */ - str_mult: number; - /** Defense multiplier from equipment */ - def_mult: number; - /** Dexterity multiplier from equipment */ - dex_mult: number; - /** Agility multiplier from equipment */ - agi_mult: number; - /** Charisma multiplier from equipment */ - cha_mult: number; - - /** Hack multiplier from ascensions */ - hack_asc_mult: number; - /** Strength multiplier from ascensions */ - str_asc_mult: number; - /** Defense multiplier from ascensions */ - def_asc_mult: number; - /** Dexterity multiplier from ascensions */ - dex_asc_mult: number; - /** Agility multiplier from ascensions */ - agi_asc_mult: number; - /** Charisma multiplier from ascensions */ - cha_asc_mult: number; - - /** Total earned hack experience */ - hack_asc_points: number; - /** Total earned strength experience */ - str_asc_points: number; - /** Total earned defense experience */ - def_asc_points: number; - /** Total earned dexterity experience */ - dex_asc_points: number; - /** Total earned agility experience */ - agi_asc_points: number; - /** Total earned charisma experience */ - cha_asc_points: number; - - upgrades: string[]; - augmentations: string[]; - - respectGain: number; - wantedLevelGain: number; - moneyGain: number; -} - -/** @public */ -export declare interface GangOtherInfo { - [key: string]: GangOtherInfoObject; -} - -/** @public */ -export declare interface GangOtherInfoObject { - /** Gang power */ - power: number; - /** Gang territory, in decimal form */ - territory: number; -} - -/** - * Object representing data representing a gang member task. - * @public - */ -export declare interface GangTaskStats { - /** Task name */ - name: string; - /** Task Description */ - desc: string; - /** Is a task of a hacking gang */ - isHacking: boolean; - /** Is a task of a combat gang */ - isCombat: boolean; - /** Base respect earned */ - baseRespect: number; - /** Base wanted earned */ - baseWanted: number; - /** Base money earned */ - baseMoney: number; - /** Hacking skill impact on task scaling */ - hackWeight: number; - /** Strength skill impact on task scaling */ - strWeight: number; - /** Defense skill impact on task scaling */ - defWeight: number; - /** Dexterity skill impact on task scaling */ - dexWeight: number; - /** Agility skill impact on task scaling */ - agiWeight: number; - /** Charisma skill impact on task scaling */ - chaWeight: number; - /** Number representing the difficulty of the task */ - difficulty: number; - /** Territory impact on task scaling */ - territory: GangTerritory; -} - -/** @public */ -export declare interface GangTerritory { - /** Money gain impact on task scaling */ - money: number; - /** Respect gain impact on task scaling */ - respect: number; - /** Wanted gain impact on task scaling */ - wanted: number; -} - -/** - * Grafting API - * @remarks - * This API requires Source-File 10 to use. - * @public - */ -export declare interface Grafting { - /** - * Retrieve the grafting cost of an aug. - * @remarks - * RAM cost: 3.75 GB - * - * @param augName - Name of the aug to check the price of. Must be an exact match. - * @returns The cost required to graft the named augmentation. - * @throws Will error if an invalid Augmentation name is provided. - */ - getAugmentationGraftPrice(augName: string): number; - - /** - * Retrieves the time required to graft an aug. - * @remarks - * RAM cost: 3.75 GB - * - * @param augName - Name of the aug to check the grafting time of. Must be an exact match. - * @returns The time required, in millis, to graft the named augmentation. - * @throws Will error if an invalid Augmentation name is provided. - */ - getAugmentationGraftTime(augName: string): number; - - /** - * Retrieves a list of Augmentations that can be grafted. - * @remarks - * RAM cost: 5 GB - * - * Note that this function returns a list of currently graftable Augmentations, - * based off of the Augmentations that you already own. - * - * @returns An array of graftable Augmentations. - */ - getGraftableAugmentations(): string[]; - - /** - * Begins grafting the named aug. You must be in New Tokyo to use this. - * @remarks - * RAM cost: 7.5 GB - * - * @param augName - The name of the aug to begin grafting. Must be an exact match. - * @param focus - Acquire player focus on this Augmentation grafting. Optional. Defaults to true. - * @returns True if the aug successfully began grafting, false otherwise (e.g. not enough money, or - * invalid Augmentation name provided). - * @throws Will error if called while you are not in New Tokyo. - */ - graftAugmentation(augName: string, focus?: boolean): boolean; -} - -/** @public */ -export declare enum GymType { - strength = "str", - defense = "def", - dexterity = "dex", - agility = "agi", -} - -/** - * Hacking formulas - * @public - */ -export declare interface HackingFormulas { - /** - * Calculate hack chance. - * (Ex: 0.25 would indicate a 25% chance of success.) - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated hack chance. - */ - hackChance(server: Server, player: Person): number; - /** - * Calculate hack exp for one thread. - * @remarks - * Multiply by thread to get total exp - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated hack exp. - */ - hackExp(server: Server, player: Person): number; - /** - * Calculate hack percent for one thread. - * (Ex: 0.25 would steal 25% of the server's current value.) - * @remarks - * Multiply by thread to get total percent hacked. - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated hack percent. - */ - hackPercent(server: Server, player: Person): number; - /** - * Calculate the percent a server would grow to. - * Not exact due to limitations of mathematics. - * (Ex: 3.0 would would grow the server to 300% of its current value.) - * @param server - Server info from {@link NS.getServer | getServer} - * @param threads - Amount of thread. - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @param cores - Number of cores on the computer that will execute grow. - * @returns The calculated grow percent. - */ - growPercent(server: Server, threads: number, player: Person, cores?: number): number; - /** - * Calculate hack time. - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated hack time. - */ - hackTime(server: Server, player: Person): number; - /** - * Calculate grow time. - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated grow time. - */ - growTime(server: Server, player: Person): number; - /** - * Calculate weaken time. - * @param server - Server info from {@link NS.getServer | getServer} - * @param player - Player info from {@link NS.getPlayer | getPlayer} - * @returns The calculated weaken time. - */ - weakenTime(server: Server, player: Person): number; -} - -/** - * Hack related multipliers. - * @public - */ -export declare interface HackingMultipliers { - /** Player's hacking chance multiplier. */ - chance: number; - /** Player's hacking speed multiplier. */ - speed: number; - /** Player's hacking money stolen multiplier. */ - money: number; - /** Player's hacking growth multiplier */ - growth: number; -} - -/** - * Hacknet API - * @remarks - * Not all these functions are immediately available. - * @public - */ -export declare interface Hacknet { - /** - * Get the number of hacknet nodes you own. - * @remarks - * RAM cost: 0 GB - * - * Returns the number of Hacknet Nodes you own. - * - * @returns Number of hacknet nodes. - */ - numNodes(): number; - - /** - * Get the maximum number of hacknet nodes. - * @remarks - * RAM cost: 0 GB - * - * @returns Maximum number of hacknet nodes. - */ - maxNumNodes(): number; - - /** - * Purchase a new hacknet node. - * @remarks - * RAM cost: 0 GB - * - * 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 -1. - * - * @returns The index of the Hacknet Node or if the player cannot afford to purchase a new Hacknet Node the function will return -1. - */ - purchaseNode(): number; - - /** - * Get the price of the next hacknet node. - * @remarks - * RAM cost: 0 GB - * - * Returns the cost of purchasing a new Hacknet Node. - * - * @returns Cost of purchasing a new Hacknet Node. - */ - getPurchaseNodeCost(): number; - - /** - * Get the stats of a hacknet node. - * @remarks - * RAM cost: 0 GB - * - * Returns an object containing a variety of stats about the specified Hacknet Node. - * - * Note that for Hacknet Nodes, production refers to the amount of money the node generates. - * For Hacknet Servers (the upgraded version of Hacknet Nodes), production refers to the - * amount of hashes the node generates. - * - * @param index - Index/Identifier of Hacknet Node - * @returns Object containing a variety of stats about the specified Hacknet Node. - */ - getNodeStats(index: number): NodeStats; - - /** - * Upgrade the level of a hacknet node. - * @remarks - * RAM cost: 0 GB - * - * Tries to upgrade the level of the specified Hacknet Node by n. - * - * Returns true if the Hacknet Node’s level is successfully upgraded by n - * or if it is upgraded by some positive amount and the Node reaches its max level. - * - * Returns false otherwise. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of levels to purchase. Must be positive. Rounded to nearest integer. - * @returns True if the Hacknet Node’s level is successfully upgraded, false otherwise. - */ - upgradeLevel(index: number, n: number): boolean; - - /** - * Upgrade the RAM of a hacknet node. - * @remarks - * RAM cost: 0 GB - * - * Tries to upgrade the specified Hacknet Node’s RAM n times. - * Note that each upgrade doubles the Node’s RAM. - * So this is equivalent to multiplying the Node’s RAM by 2 n. - * - * Returns true if the Hacknet Node’s RAM is successfully upgraded n times - * or if it is upgraded some positive number of times and the Node reaches its max RAM. - * - * Returns false otherwise. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. - * @returns True if the Hacknet Node’s RAM is successfully upgraded, false otherwise. - */ - upgradeRam(index: number, n: number): boolean; - - /** - * Upgrade the core of a hacknet node. - * @remarks - * RAM cost: 0 GB - * - * Tries to purchase n cores for the specified Hacknet Node. - * - * Returns true if it successfully purchases n cores for the Hacknet Node - * or if it purchases some positive amount and the Node reaches its max number of cores. - * - * Returns false otherwise. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of cores to purchase. Must be positive. Rounded to nearest integer. - * @returns True if the Hacknet Node’s cores are successfully purchased, false otherwise. - */ - upgradeCore(index: number, n: number): boolean; - - /** - * Upgrade the cache of a hacknet node. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Tries to upgrade the specified Hacknet Server’s cache n times. - * - * Returns true if it successfully upgrades the Server’s cache n times, - * or if it purchases some positive amount and the Server reaches its max cache level. - * - * Returns false otherwise. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of cache levels to purchase. Must be positive. Rounded to nearest integer. - * @returns True if the Hacknet Node’s cache level is successfully upgraded, false otherwise. - */ - upgradeCache(index: number, n: number): boolean; - - /** - * Calculate the cost of upgrading hacknet node levels. - * @remarks - * RAM cost: 0 GB - * - * Returns the cost of upgrading the specified Hacknet Node by n levels. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of levels to upgrade. Must be positive. Rounded to nearest integer. - * @returns Cost of upgrading the specified Hacknet Node. - */ - getLevelUpgradeCost(index: number, n: number): number; - - /** - * Calculate the cost of upgrading hacknet node RAM. - * @remarks - * RAM cost: 0 GB - * - * Returns the cost of upgrading the RAM of the specified Hacknet Node n times. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node already has max RAM, then Infinity is returned. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. - * @returns Cost of upgrading the specified Hacknet Node's RAM. - */ - getRamUpgradeCost(index: number, n: number): number; - - /** - * Calculate the cost of upgrading hacknet node cores. - * @remarks - * RAM cost: 0 GB - * - * Returns the cost of upgrading the number of cores of the specified Hacknet Node by n. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of times to upgrade cores. Must be positive. Rounded to nearest integer. - * @returns Cost of upgrading the specified Hacknet Node's number of cores. - */ - getCoreUpgradeCost(index: number, n: number): number; - - /** - * Calculate the cost of upgrading hacknet node cache. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the cost of upgrading the cache level of the specified Hacknet Server by n. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @param index - Index/Identifier of Hacknet Node. - * @param n - Number of times to upgrade cache. Must be positive. Rounded to nearest integer. - * @returns Cost of upgrading the specified Hacknet Node's cache. - */ - getCacheUpgradeCost(index: number, n: number): number; - - /** - * Get the total number of hashes stored. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the number of hashes you have. - * - * @returns Number of hashes you have. - */ - numHashes(): number; - - /** - * Get the maximum number of hashes you can store. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the number of hashes you can store. - * - * @returns Number of hashes you can store. - */ - hashCapacity(): number; - - /** - * Get the cost of a hash upgrade. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the number of hashes required for the specified upgrade. The name of the upgrade must be an exact match. - * - * @example - * ```ts - * // NS1: - * var upgradeName = "Sell for Corporation Funds"; - * if (hacknet.numHashes() > hacknet.hashCost(upgradeName)) { - * hacknet.spendHashes(upgradeName); - * } - * ``` - * @example - * ```ts - * // NS2: - * const upgradeName = "Sell for Corporation Funds"; - * if (ns.hacknet.numHashes() > ns.hacknet.hashCost(upgradeName)) { - * ns.hacknet.spendHashes(upgradeName); - * } - * ``` - * @param upgName - Name of the upgrade of Hacknet Node. - * @param count - Number of upgrades to buy at once. Defaults to 1 if not specified. - * @returns Number of hashes required for the specified upgrade. - */ - hashCost(upgName: string, count?: number): number; - - /** - * Purchase a hash upgrade. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Spend the hashes generated by your Hacknet Servers on an upgrade. - * Returns a boolean value - true if the upgrade is successfully purchased, and false otherwise. - * - * The name of the upgrade must be an exact match. - * The `upgTarget` argument is used for upgrades such as `Reduce Minimum Security`, which applies to a specific server. - * In this case, the `upgTarget` argument must be the hostname of the server. - * - * @example - * ```ts - * // NS1: - * hacknet.spendHashes("Sell for Corporation Funds"); - * hacknet.spendHashes("Increase Maximum Money", "foodnstuff"); - * ``` - * @example - * ```ts - * NS2: - * ns.hacknet.spendHashes("Sell for Corporation Funds"); - * ns.hacknet.spendHashes("Increase Maximum Money", "foodnstuff"); - * ``` - * @param upgName - Name of the upgrade of Hacknet Node. - * @param upgTarget - Object to which upgrade applies. Required for certain upgrades. - * @param count - Number of upgrades to buy at once. Defaults to 1 if not specified. - * For compatibility reasons, upgTarget must be specified, even if it is not used, in order to specify count. - * @returns True if the upgrade is successfully purchased, and false otherwise. - */ - spendHashes(upgName: string, upgTarget?: string, count?: number): boolean; - - /** - * Get the list of hash upgrades - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the list of all available hash upgrades that can be used in the spendHashes function. - * @example - * ```ts - * // NS1: - * var upgrades = hacknet.getHashUpgrades(); // ["Sell for Money","Sell for Corporation Funds",...] - * ``` - * @example - * ```ts - * // NS2: - * const upgrades = ns.hacknet.getHashUpgrades(); // ["Sell for Money","Sell for Corporation Funds",...] - * ``` - * @returns An array containing the available upgrades - */ - getHashUpgrades(): string[]; - - /** - * Get the level of a hash upgrade. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * @returns Level of the upgrade. - */ - getHashUpgradeLevel(upgName: string): number; - - /** - * Get the multiplier to study. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * @returns Multiplier. - */ - getStudyMult(): number; - - /** - * Get the multiplier to training. - * @remarks - * RAM cost: 0 GB - * - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * @returns Multiplier. - */ - getTrainingMult(): number; -} - -/** - * Hacknet related multipliers. - * @public - */ -export declare interface HacknetMultipliers { - /** Player's hacknet production multiplier */ - production: number; - /** Player's hacknet purchase cost multiplier */ - purchaseCost: number; - /** Player's hacknet ram cost multiplier */ - ramCost: number; - /** Player's hacknet core cost multiplier */ - coreCost: number; - /** Player's hacknet level cost multiplier */ - levelCost: number; -} - -/** - * Hacknet node related constants - * @public - */ -export declare interface HacknetNodeConstants { - /** Amount of money gained per level */ - MoneyGainPerLevel: number; - /** Base cost for a new node */ - BaseCost: number; - /** Base cost per level */ - LevelBaseCost: number; - /** Base cost to increase RAM */ - RamBaseCost: number; - /** Base cost to increase cores */ - CoreBaseCost: number; - /** Multiplier to purchase new node */ - PurchaseNextMult: number; - /** Multiplier to increase node level */ - UpgradeLevelMult: number; - /** Multiplier to increase RAM */ - UpgradeRamMult: number; - /** Multiplier to increase cores */ - UpgradeCoreMult: number; - /** Max node level */ - MaxLevel: number; - /** Max amount of RAM in GB */ - MaxRam: number; - /** Max number of cores */ - MaxCores: number; -} - -/** - * Hacknet Node formulas - * @public - */ -export declare interface HacknetNodesFormulas { - /** - * Calculate money gain rate. - * @param level - level of the node. - * @param ram - ram of the node. - * @param cores - cores of the node. - * @param mult - player production mult (default to 1) - * @returns The calculated money gain rate. - */ - moneyGainRate(level: number, ram: number, cores: number, mult?: number): number; - /** - * Calculate cost of upgrading hacknet node level. - * @param startingLevel - starting level - * @param extraLevels - amount of level to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number): number; - /** - * Calculate cost of upgrading hacknet node ram. - * @param startingRam - starting ram - * @param extraLevels - amount of level of ram to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): number; - /** - * Calculate cost of upgrading hacknet node cores. - * @param startingCore - starting cores - * @param extraCores - amount of cores to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): number; - /** - * Calculate the cost of a hacknet node. - * @param n - number of the hacknet node - * @param mult - player cost reduction (defaults to 1) - * @returns The calculated cost. - */ - hacknetNodeCost(n: number, mult: number): number; - /** - * All constants used by the game. - * @returns An object with all hacknet node constants used by the game. - */ - constants(): HacknetNodeConstants; -} - -/** - * Hacknet server related constants - * @public - */ -export declare interface HacknetServerConstants { - /** Number of hashes calculated per level */ - HashesPerLevel: number; - /** Base cost for a new server */ - BaseCost: number; - /** Base cost to increase RAM */ - RamBaseCost: number; - /** Base cost to increase cores */ - CoreBaseCost: number; - /** Base cost to upgrade cache */ - CacheBaseCost: number; - /** Multiplier to purchase a new server */ - PurchaseMult: number; - /** Multiplier to increase server level */ - UpgradeLevelMult: number; - /** Multiplier to increase RAM */ - UpgradeRamMult: number; - /** Multiplier to increase cores */ - UpgradeCoreMult: number; - /** Multiplier to upgrade cache */ - UpgradeCacheMult: number; - /** Max number of servers */ - MaxServers: number; - /** Max level for a server */ - MaxLevel: number; - /** Max amount of RAM in GB */ - MaxRam: number; - /** Max number of cores */ - MaxCores: number; - /** Max cache size */ - MaxCache: number; -} - -/** - * Hacknet Server formulas - * @public - */ -export declare interface HacknetServersFormulas { - /** - * Calculate hash gain rate. - * @param level - level of the server. - * @param ramUsed - ramUsed of the server. - * @param maxRam - maxRam of the server. - * @param cores - cores of the server. - * @param mult - player production mult (default to 1) - * @returns The calculated hash gain rate. - */ - hashGainRate(level: number, ramUsed: number, maxRam: number, cores: number, mult?: number): number; - /** - * Calculate cost of upgrading hacknet server level. - * @param startingLevel - starting level - * @param extraLevels - amount of level to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number): number; - /** - * Calculate cost of upgrading hacknet server ram. - * @param startingRam - starting ram - * @param extraLevels - amount of level of ram to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): number; - /** - * Calculate cost of upgrading hacknet server cores. - * @param startingCore - starting cores - * @param extraCores - amount of cores to purchase (defaults to 1) - * @param costMult - player cost reduction (default to 1) - * @returns The calculated cost. - */ - coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): number; - /** - * Calculate cost of upgrading hacknet server cache. - * @param startingCache - starting cache level - * @param extraCache - amount of levels of cache to purchase (defaults to 1) - * @returns The calculated cost. - */ - cacheUpgradeCost(startingCache: number, extraCache?: number): number; - /** - * Calculate hash cost of an upgrade. - * @param upgName - name of the upgrade - * @param level - level of the upgrade - * @returns The calculated hash cost. - */ - hashUpgradeCost(upgName: number, level: number): number; - /** - * Calculate the cost of a hacknet server. - * @param n - number of the hacknet server - * @param mult - player cost reduction (defaults to 1) - * @returns The calculated cost. - */ - hacknetServerCost(n: number, mult?: number): number; - /** - * All constants used by the game. - * @returns An object with all hacknet server constants used by the game. - */ - constants(): HacknetServerConstants; -} - -/** @public */ -export declare interface HP { - current: number; - max: number; -} - -/** @public */ -export declare interface ILocation { - city: CityName; - name: LocationName; -} - -/** - * Corporation industry information - * @public - */ -export declare interface IndustryData { - /** Industry type */ - type: CorpIndustryName; - /** Cost to expand to the division */ - cost: number; - /** Materials required for production and their amounts */ - requiredMaterials: Record; - /** Materials produced */ - producedMaterials?: string[]; - /** Whether the division makes materials */ - makesMaterials: boolean; - /** Whether the division makes products */ - makesProducts: boolean; - /** Product type */ - productType?: string; -} - -/** - * Infiltration API. - * @public - */ -export declare interface Infiltration { - /** - * Get all locations that can be infiltrated. - * @remarks - * RAM cost: 5 GB - * - * @returns all locations that can be infiltrated. - */ - getPossibleLocations(): ILocation[]; - /** - * Get all infiltrations with difficulty, location and rewards. - * @remarks - * RAM cost: 15 GB - * - * @returns Infiltration data for given location. - */ - getInfiltration(location: string): InfiltrationLocation; -} - -/** @public */ -export declare interface InfiltrationLocation { - location: ILocation; - reward: InfiltrationReward; - difficulty: number; -} - -/** @public */ -export declare interface InfiltrationReward { - tradeRep: number; - sellCash: number; - SoARep: number; -} - -/** - * Corporation investment offer - * @public - */ -export declare interface InvestmentOffer { - /** Amount of funds you will get from this investment */ - funds: number; - /** Amount of share you will give in exchange for this investment */ - shares: number; - /** Current round of funding (max 4) */ - round: number; -} - -/** - * Interface Styles - * @public - */ -export declare interface IStyleSettings { - fontFamily: string; - lineHeight: number; -} - -/** @public */ -export declare enum JobName { - software0 = "Software Engineering Intern", - software1 = "Junior Software Engineer", - software2 = "Senior Software Engineer", - software3 = "Lead Software Developer", - software4 = "Head of Software", - software5 = "Head of Engineering", - software6 = "Vice President of Technology", - software7 = "Chief Technology Officer", - IT0 = "IT Intern", - IT1 = "IT Analyst", - IT2 = "IT Manager", - IT3 = "Systems Administrator", - securityEng = "Security Engineer", - networkEng0 = "Network Engineer", - networkEng1 = "Network Administrator", - business0 = "Business Intern", - business1 = "Business Analyst", - business2 = "Business Manager", - business3 = "Operations Manager", - business4 = "Chief Financial Officer", - business5 = "Chief Executive Officer", - security0 = "Police Officer", - security1 = "Police Chief", - security2 = "Security Guard", - security3 = "Security Officer", - security4 = "Security Supervisor", - security5 = "Head of Security", - agent0 = "Field Agent", - agent1 = "Secret Agent", - agent2 = "Special Operative", - waiter = "Waiter", - employee = "Employee", - softwareConsult0 = "Software Consultant", - softwareConsult1 = "Senior Software Consultant", - businessConsult0 = "Business Consultant", - businessConsult1 = "Senior Business Consultant", - waiterPT = "Part-time Waiter", - employeePT = "Part-time Employee", -} - -/** Names of all locations - * @public */ -export declare enum LocationName { - AevumAeroCorp = "AeroCorp", - AevumBachmanAndAssociates = "Bachman & Associates", - AevumClarkeIncorporated = "Clarke Incorporated", - AevumCrushFitnessGym = "Crush Fitness Gym", - AevumECorp = "ECorp", - AevumFulcrumTechnologies = "Fulcrum Technologies", - AevumGalacticCybersystems = "Galactic Cybersystems", - AevumNetLinkTechnologies = "NetLink Technologies", - AevumPolice = "Aevum Police Headquarters", - AevumRhoConstruction = "Rho Construction", - AevumSnapFitnessGym = "Snap Fitness Gym", - AevumSummitUniversity = "Summit University", - AevumWatchdogSecurity = "Watchdog Security", - AevumCasino = "Iker Molina Casino", - - ChongqingKuaiGongInternational = "KuaiGong International", - ChongqingSolarisSpaceSystems = "Solaris Space Systems", - ChongqingChurchOfTheMachineGod = "Church of the Machine God", - - Sector12AlphaEnterprises = "Alpha Enterprises", - Sector12BladeIndustries = "Blade Industries", - Sector12CIA = "Central Intelligence Agency", - Sector12CarmichaelSecurity = "Carmichael Security", - Sector12CityHall = "Sector-12 City Hall", - Sector12DeltaOne = "DeltaOne", - Sector12FoodNStuff = "FoodNStuff", - Sector12FourSigma = "Four Sigma", - Sector12IcarusMicrosystems = "Icarus Microsystems", - Sector12IronGym = "Iron Gym", - Sector12JoesGuns = "Joe's Guns", - Sector12MegaCorp = "MegaCorp", - Sector12NSA = "National Security Agency", - Sector12PowerhouseGym = "Powerhouse Gym", - Sector12RothmanUniversity = "Rothman University", - Sector12UniversalEnergy = "Universal Energy", - - NewTokyoDefComm = "DefComm", - NewTokyoGlobalPharmaceuticals = "Global Pharmaceuticals", - NewTokyoNoodleBar = "Noodle Bar", - NewTokyoVitaLife = "VitaLife", - NewTokyoArcade = "Arcade", - - IshimaNovaMedical = "Nova Medical", - IshimaOmegaSoftware = "Omega Software", - IshimaStormTechnologies = "Storm Technologies", - IshimaGlitch = "0x6C1", - - VolhavenCompuTek = "CompuTek", - VolhavenHeliosLabs = "Helios Labs", - VolhavenLexoCorp = "LexoCorp", - VolhavenMilleniumFitnessGym = "Millenium Fitness Gym", - VolhavenNWO = "NWO", - VolhavenOmniTekIncorporated = "OmniTek Incorporated", - VolhavenOmniaCybersystems = "Omnia Cybersystems", - VolhavenSysCoreSecurities = "SysCore Securities", - VolhavenZBInstituteOfTechnology = "ZB Institute of Technology", - - Hospital = "Hospital", - Slums = "The Slums", - TravelAgency = "Travel Agency", - WorldStockExchange = "World Stock Exchange", - - Void = "The Void", -} - -/** - * Material in a warehouse - * @public - */ -export declare interface Material { - /** Name of the material */ - name: CorpMaterialName; - /** Amount of material */ - qty: number; - /** Quality of the material */ - qlt: number; - /** Demand for the material, only present if "Market Research - Demand" unlocked */ - dmd: number | undefined; - /** Competition for the material, only present if "Market Research - Competition" unlocked */ - cmp: number | undefined; - /** Amount of material produced */ - prod: number; - /** Amount of material sold */ - sell: number; - /** Cost to buy material */ - cost: number; - /** Sell cost, can be "MP+5" */ - sCost: string | number; - /** Export orders */ - exp: Export[]; -} - -/** @public */ -export declare interface MoneySource { - bladeburner: number; - casino: number; - class: number; - codingcontract: number; - corporation: number; - crime: number; - gang: number; - hacking: number; - hacknet: number; - hacknet_expenses: number; - hospitalization: number; - infiltration: number; - sleeves: number; - stock: number; - total: number; - work: number; - servers: number; - other: number; - augmentations: number; -} - -/** @public */ -export declare interface MoneySources { - sinceInstall: MoneySource; - sinceStart: MoneySource; -} - -/** @public */ -export declare interface Multipliers { - /** Multiplier to hacking skill */ - hacking: number; - /** Multiplier to strength skill */ - strength: number; - /** Multiplier to defense skill */ - defense: number; - /** Multiplier to dexterity skill */ - dexterity: number; - /** Multiplier to agility skill */ - agility: number; - /** Multiplier to charisma skill */ - charisma: number; - /** Multiplier to hacking experience gain rate */ - hacking_exp: number; - /** Multiplier to strength experience gain rate */ - strength_exp: number; - /** Multiplier to defense experience gain rate */ - defense_exp: number; - /** Multiplier to dexterity experience gain rate */ - dexterity_exp: number; - /** Multiplier to agility experience gain rate */ - agility_exp: number; - /** Multiplier to charisma experience gain rate */ - charisma_exp: number; - /** Multiplier to chance of successfully performing a hack */ - hacking_chance: number; - /** Multiplier to hacking speed */ - hacking_speed: number; - /** Multiplier to amount of money the player gains from hacking */ - hacking_money: number; - /** Multiplier to amount of money injected into servers using grow */ - hacking_grow: number; - /** Multiplier to amount of reputation gained when working */ - company_rep: number; - /** Multiplier to amount of reputation gained when working */ - faction_rep: number; - /** Multiplier to amount of money gained from crimes */ - crime_money: number; - /** Multiplier to crime success rate */ - crime_success: number; - /** Multiplier to amount of money gained from working */ - work_money: number; - /** Multiplier to amount of money produced by Hacknet Nodes */ - hacknet_node_money: number; - /** Multiplier to cost of purchasing a Hacknet Node */ - hacknet_node_purchase_cost: number; - /** Multiplier to cost of ram for a Hacknet Node */ - hacknet_node_ram_cost: number; - /** Multiplier to cost of core for a Hacknet Node */ - hacknet_node_core_cost: number; - /** Multiplier to cost of leveling up a Hacknet Node */ - hacknet_node_level_cost: number; - /** Multiplier to Bladeburner max stamina */ - bladeburner_max_stamina: number; - /** Multiplier to Bladeburner stamina gain rate */ - bladeburner_stamina_gain: number; - /** Multiplier to effectiveness in Bladeburner Field Analysis */ - bladeburner_analysis: number; - /** Multiplier to success chance in Bladeburner contracts/operations */ - bladeburner_success_chance: number; -} - -/** Object representing a port. A port is a serialized queue. - * @public */ -export declare interface NetscriptPort { - /** Write data to a port. - * @remarks - * RAM cost: 0 GB - * - * @returns The data popped off the queue if it was full. */ - write(value: string | number): PortData | null; - - /** - * Attempt to write data to the port. - * @remarks - * RAM cost: 0 GB - * - * @returns True if the data was added to the port, false if the port was full - */ - tryWrite(value: string | number): boolean; - - /** - * Sleeps until the port is written to. - * @remarks - * RAM cost: 0 GB - */ - nextWrite(): Promise; - - /** - * Shift an element out of the port. - * @remarks - * RAM cost: 0 GB - * - * This function will remove the first element from the port and return it. - * If the port is empty, then the string “NULL PORT DATA” will be returned. - * @returns the data read. - */ - read(): PortData; - - /** - * Retrieve the first element from the port without removing it. - * @remarks - * RAM cost: 0 GB - * - * This function is used to peek at the data from a port. It returns the - * first element in the specified port without removing that element. If - * the port is empty, the string “NULL PORT DATA” will be returned. - * @returns the data read - */ - peek(): PortData; - - /** - * Check if the port is full. - * @remarks - * RAM cost: 0 GB - * - * @returns true if the port is full, otherwise false - */ - full(): boolean; - - /** - * Check if the port is empty. - * @remarks - * RAM cost: 0 GB - * - * @returns true if the port is empty, otherwise false - */ - empty(): boolean; - - /** - * Empties all data from the port. - * @remarks - * RAM cost: 0 GB - */ - clear(): void; -} - -/** - * Object representing all the values related to a hacknet node. - * @public - */ -export declare interface NodeStats { - /** Node's name */ - name: string; - /** Node's level */ - level: number; - /** Node's RAM (GB) */ - ram: number; - /** Node's used RAM (GB) */ - ramUsed?: number; - /** Node's number of cores */ - cores: number; - /** Cache level. Only applicable for Hacknet Servers */ - cache?: number; - /** Hash Capacity provided by this Node. Only applicable for Hacknet Servers */ - hashCapacity?: number; - /** Node's production per second */ - production: number; - /** Number of seconds since Node has been purchased */ - timeOnline: number; - /** Total number of money Node has produced */ - totalProduction: number; -} - -/** - * Collection of all functions passed to scripts - * @public - * @remarks - * Basic ns1 usage example: - * ```ts - * // Basic ns functions can be used directly - * getHostname(); - * // Some related functions are gathered within a common namespace - * stock.getPrice(); - * ``` - * {@link https://bitburner.readthedocs.io/en/latest/netscript/netscript1.html| ns1 in-game docs} - *
- * Basic ns2 usage example: - * ```ts - * export async function main(ns) { - * // Basic ns functions can be accessed on the ns object - * ns.getHostname(); - * // Some related functions are gathered under a sub-property of the ns object - * ns.stock.getPrice(); - * // Some functions need to be awaited - * await ns.hack('n00dles'); - * } - * ``` - * {@link https://bitburner.readthedocs.io/en/latest/netscript/netscriptjs.html| ns2 in-game docs} - *
- */ -export declare interface NS { - /** - * Namespace for hacknet functions. - * @remarks RAM cost: 4 GB - */ - readonly hacknet: Hacknet; - - /** - * Namespace for bladeburner functions. - * @remarks RAM cost: 0 GB - */ - readonly bladeburner: Bladeburner; - - /** - * Namespace for codingcontract functions. - * @remarks RAM cost: 0 GB - */ - readonly codingcontract: CodingContract; - - /** - * Namespace for gang functions. - * @remarks RAM cost: 0 GB - */ - readonly gang: Gang; - - /** - * Namespace for sleeve functions. - * @remarks RAM cost: 0 GB - */ - readonly sleeve: Sleeve; - - /** - * Namespace for stock functions. - * @remarks RAM cost: 0 GB - */ - readonly stock: TIX; - - /** - * Namespace for formulas functions. - * @remarks RAM cost: 0 GB - */ - readonly formulas: Formulas; - - /** - * Namespace for stanek functions. - * RAM cost: 0 GB - */ - readonly stanek: Stanek; - - /** - * Namespace for infiltration functions. - * RAM cost: 0 GB - */ - readonly infiltration: Infiltration; - - /** - * Namespace for corporation functions. - * RAM cost: 1022.4 GB - */ - readonly corporation: Corporation; - - /** - * Namespace for user interface functions. - * RAM cost: 0 GB - */ - readonly ui: UserInterface; - - /** - * Namespace for singularity functions. - * RAM cost: 0 GB - */ - readonly singularity: Singularity; - - /** - * Namespace for grafting functions. - * @remarks RAM cost: 0 GB - */ - readonly grafting: Grafting; - - /** - * Arguments passed into the script. - * - * @remarks - * RAM cost: 0 GB - * - * Arguments passed into a script can be accessed as a normal array by using the `[]` operator - * (`args[0]`, `args[1]`, etc...). - * Arguments can be string, number, or boolean. - * Use `args.length` to get the number of arguments that were passed into a script. - * - * @example - * `run example.script 7 text true` - * - * ```js - * // NS1 - example.script - * tprint(args.length) // 3 - * tprint(args[0]); // 7 (number) - * tprint(args[1]); // "text" (string) - * tprint(args[2]); // true (boolean) - * tprint(args[3]); // undefined, because only 3 arguments were provided - * ``` - * - * @example - * `run example.js 7 text true` - * - * ```js - * // NS2 - example.js - * export async function main(ns) { - * ns.tprint(ns.args.length) // 3 - * ns.tprint(ns.args[0]); // 7 (number) - * ns.tprint(ns.args[1]); // "text" (string) - * ns.tprint(ns.args[2]); // true (boolean) - * ns.tprint(ns.args[3]); // undefined, because only 3 arguments were provided - * } - * ``` - */ - readonly args: (string | number | boolean)[]; - - /** The current script's PID */ - readonly pid: number; - - /** - * Steal a server's money. - * @remarks - * RAM cost: 0.1 GB - * - * Function that is used to try and hack servers to steal money and gain hacking experience. - * The runtime for this command depends on your hacking level and the target server’s - * security level when this function is called. In order to hack a server you must first gain root access to that server - * and also have the required hacking level. - * - * A script can hack a server from anywhere. It does not need to be running on the same - * server to hack that server. For example, you can create a script that hacks the `foodnstuff` - * server and run that script on any server in the game. - * - * A successful `hack()` on a server will raise that server’s security level by 0.002. - * - * @example - * ```ts - * // NS1: - * var earnedMoney = hack("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * let earnedMoney = await ns.hack("foodnstuff"); - * ``` - * @param host - Hostname of the target server to hack. - * @param opts - Optional parameters for configuring function behavior. - * @returns The amount of money stolen if the hack is successful, and zero otherwise. - */ - hack(host: string, opts?: BasicHGWOptions): Promise; - - /** - * Spoof money in a server's bank account, increasing the amount available. - * @remarks - * RAM cost: 0.15 GB - * - * Use your hacking skills to increase the amount of money available on a server. - * The runtime for this command depends on your hacking level and the target server’s - * security level. When `grow` completes, the money available on a target server will be increased - * by amount equal to the number of threads used and a certain, fixed percentage of current money on - * the server. This percentage is determined by the target server’s growth rate (which varies between servers) - * and security level. Generally, higher-level servers have higher growth rates. - * The {@link NS.getServerGrowth | getServerGrowth} function can be used to obtain a server’s growth rate. - * - * Like {@link NS.hack | hack}, `grow` can be called on any server, regardless of where the script is running. - * The grow() command requires root access to the target server, but there is no required hacking - * level to run the command. It also raises the security level of the target server by 0.004. - * - * @example - * ```ts - * // NS1: - * var currentMoney = getServerMoneyAvailable("foodnstuff"); - * currentMoney = currentMoney * grow("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * let currentMoney = ns.getServerMoneyAvailable("foodnstuff"); - * currentMoney *= await ns.grow("foodnstuff"); - * ``` - * @param host - Hostname of the target server to grow. - * @param opts - Optional parameters for configuring function behavior. - * @returns The number by which the money on the server was multiplied for the growth. - */ - grow(host: string, opts?: BasicHGWOptions): Promise; - - /** - * Reduce a server's security level. - * @remarks - * RAM cost: 0.15 GB - * - * Use your hacking skills to attack a server’s security, lowering the server’s security level. - * The runtime for this function depends on your hacking level and the target server’s security - * level when this function is called. This function lowers the security level of the target server by 0.05. - * - * Like {@link NS.hack | hack} and {@link NS.grow| grow}, `weaken` can be called on any server, regardless of - * where the script is running. This function requires root access to the target server, but - * there is no required hacking level to run the function. - * - * @example - * ```ts - * // NS1: - * var currentSecurity = getServerSecurityLevel("foodnstuff"); - * currentSecurity = currentSecurity - weaken("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * let currentSecurity = ns.getServerSecurityLevel("foodnstuff"); - * currentSecurity -= await ns.weaken("foodnstuff"); - * ``` - * @param host - Hostname of the target server to weaken. - * @param opts - Optional parameters for configuring function behavior. - * @returns The amount by which the target server’s security level was decreased. This is equivalent to 0.05 multiplied by the number of script threads. - */ - weaken(host: string, opts?: BasicHGWOptions): Promise; - - /** - * Predict the effect of weaken. - * @remarks - * RAM cost: 1 GB - * - * Returns the security decrease that would occur if a weaken with this many threads happened. - * - * @param threads - Amount of threads that will be used. - * @param cores - Optional. The number of cores of the server that would run weaken. - * @returns The security decrease. - */ - weakenAnalyze(threads: number, cores?: number): number; - - /** - * Predict the effect of hack. - * @remarks - * RAM cost: 1 GB - * - * This function returns the number of script threads you need when running the hack command - * to steal the specified amount of money from the target server. - * If hackAmount is less than zero or greater than the amount of money available on the server, - * then this function returns -1. - * - * Warning: The value returned by this function isn’t necessarily a whole number. - * - * @example - * ```ts - * //For example, let’s say the foodnstuff server has $10m and you run: - * hackAnalyzeThreads("foodnstuff", 1e6); - * //If this function returns 50, this means that if your next hack call is run on a script with 50 threads, it will steal $1m from the foodnstuff server. - * ``` - * @param host - Hostname of the target server to analyze. - * @param hackAmount - Amount of money you want to hack from the server. - * @returns The number of threads needed to hack the server for hackAmount money. - */ - hackAnalyzeThreads(host: string, hackAmount: number): number; - - /** - * Get the part of money stolen with a single thread. - * @remarks - * RAM cost: 1 GB - * - * Returns the part of the specified server’s money you will steal with a single thread hack. - * - * @example - * ```ts - * // NS1: - * //For example, assume the following returns 0.01: - * var hackAmount = hackAnalyze("foodnstuff"); - * //This means that if hack the foodnstuff server using a single thread, then you will steal 1%, or 0.01 of its total money. If you hack using N threads, then you will steal N*0.01 times its total money. - * ``` - * @example - * ```ts - * // NS2: - * //For example, assume the following returns 0.01: - * const hackAmount = ns.hackAnalyze("foodnstuff"); - * //This means that if hack the foodnstuff server using a single thread, then you will steal 1%, or 0.01 of its total money. If you hack using N threads, then you will steal N*0.01 times its total money. - * ``` - * @param host - Hostname of the target server. - * @returns The part of money you will steal from the target server with a single thread hack. - */ - hackAnalyze(host: string): number; - - /** - * Get the security increase for a number of threads. - * @remarks - * RAM cost: 1 GB - * - * Returns the security increase that would occur if a hack with this many threads happened. - * - * @param threads - Amount of threads that will be used. - * @param hostname - Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. - * @returns The security increase. - */ - hackAnalyzeSecurity(threads: number, hostname?: string): number; - - /** - * Get the chance of successfully hacking a server. - * @remarks - * RAM cost: 1 GB - * - * Returns the chance you have of successfully hacking the specified server. - * - * This returned value is in decimal form, not percentage. - * - * @param host - Hostname of the target server. - * @returns The chance you have of successfully hacking the target server. - */ - hackAnalyzeChance(host: string): number; - - /** - * Calculate the number of grow threads needed to grow a server by a certain multiplier. - * @remarks - * RAM cost: 1 GB - * - * This function returns the number of “growths” needed in order to increase - * the amount of money available on the specified server by the specified amount. - * The specified amount is multiplicative and is in decimal form, not percentage. - * - * Due to limitations of mathematics, this function won't be the true value, but an approximation. - * - * Warning: The value returned by this function isn’t necessarily a whole number. - * - * @example - * ```ts - * // NS1: - * //For example, if you want to determine how many grow calls you need to double the amount of money on foodnstuff, you would use: - * var growTimes = growthAnalyze("foodnstuff", 2); - * //If this returns 100, then this means you need to call grow 100 times in order to double the money (or once with 100 threads). - * ``` - * @example - * ```ts - * // NS2: - * //For example, if you want to determine how many grow calls you need to double the amount of money on foodnstuff, you would use: - * const growTimes = ns.growthAnalyze("foodnstuff", 2); - * //If this returns 100, then this means you need to call grow 100 times in order to double the money (or once with 100 threads). - * ``` - * @param host - Hostname of the target server. - * @param growthAmount - Multiplicative factor by which the server is grown. Decimal form. - * @returns The amount of grow calls needed to grow the specified server by the specified amount. - */ - growthAnalyze(host: string, growthAmount: number, cores?: number): number; - - /** - * Calculate the security increase for a number of threads. - * @remarks - * RAM cost: 1 GB - * - * Returns the security increase that would occur if a grow with this many threads happened. - * - * @param threads - Amount of threads that will be used. - * @param hostname - Optional. Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. - * @param cores - Optional. The number of cores of the server that would run grow. - * @returns The security increase. - */ - growthAnalyzeSecurity(threads: number, hostname?: string, cores?: number): number; - - /** - * Suspends the script for n milliseconds. - * @remarks - * RAM cost: 0 GB - * - * @param millis - Number of milliseconds to sleep. - * @example - * ```ts - * // NS1: - * // This will count from 1 to 10 in your terminal, with one number every 5 seconds - * for (var i=0; i<10; i++) { - * tprint(i + 1); - * sleep(5000); - * } - * ``` - * @example - * ```ts - * // NS2: - * // This will count from 1 to 10 in your terminal, with one number every 5 seconds - * for (var i=0; i<10; i++) { - * ns.tprint(i + 1); - * await ns.sleep(5000); - * } - * ``` - * @returns - */ - sleep(millis: number): Promise; - - /** - * Suspends the script for n milliseconds. Doesn't block with concurrent calls. - * You should prefer 'sleep' over 'asleep' except when doing very complex UI work. - * @remarks - * RAM cost: 0 GB - * - * @param millis - Number of milliseconds to sleep. - * @returns - */ - asleep(millis: number): Promise; - - /** - * Prints one or more values or variables to the script’s logs. - * @remarks - * RAM cost: 0 GB - * - * If the argument is a string, you can color code your message by prefixing your - * string with one of these strings: - * - * - `"ERROR"`: The whole string will be printed in red. Use this prefix to indicate - * that an error has occurred. - * - * - `"SUCCESS"`: The whole string will be printed in green, similar to the default - * theme of the Terminal. Use this prefix to indicate that something is correct. - * - * - `"WARN"`: The whole string will be printed in yellow. Use this prefix to - * indicate that you or a user of your script should be careful of something. - * - * - `"INFO"`: The whole string will be printed in purplish blue. Use this prefix to - * remind yourself or a user of your script of something. Think of this prefix as - * indicating an FYI (for your information). - * - * For custom coloring, use ANSI escape sequences. The examples below use the Unicode - * escape code `\u001b`. The color coding also works if `\u001b` is replaced with - * the hexadecimal escape code `\x1b`. The Bash escape code `\e` is not supported. - * The octal escape code `\033` is not allowed because the game runs JavaScript in - * strict mode. - * - * @example - * ```ts - * // NS1 - * // Default color coding. - * print("ERROR means something's wrong."); - * print("SUCCESS means everything's OK."); - * print("WARN Tread with caution!"); - * print("WARNING, warning, danger, danger!"); - * print("WARNing! Here be dragons."); - * print("INFO for your I's only (FYI)."); - * print("INFOrmation overload!"); - * // Custom color coding. - * var cyan = "\u001b[36m"; - * var green = "\u001b[32m"; - * var red = "\u001b[31m"; - * var reset = "\u001b[0m"; - * print(red + "Ugh! What a mess." + reset); - * print(green + "Well done!" + reset); - * print(cyan + "ERROR Should this be in red?" + reset); - * tail(); - * ``` - * @example - * ```ts - * // NS2 - * // Default color coding. - * ns.print("ERROR means something's wrong."); - * ns.print("SUCCESS means everything's OK."); - * ns.print("WARN Tread with caution!"); - * ns.print("WARNING, warning, danger, danger!"); - * ns.print("WARNing! Here be dragons."); - * ns.print("INFO for your I's only (FYI)."); - * ns.print("INFOrmation overload!"); - * // Custom color coding. - * const cyan = "\u001b[36m"; - * const green = "\u001b[32m"; - * const red = "\u001b[31m"; - * const reset = "\u001b[0m"; - * ns.print(`${red}Ugh! What a mess.${reset}`); - * ns.print(`${green}Well done!${reset}`); - * ns.print(`${cyan}ERROR Should this be in red?${reset}`); - * ns.tail(); - * ``` - * - * @param args - Value(s) to be printed. - */ - print(...args: any[]): void; - - /** - * Prints a formatted string to the script’s logs. - * @remarks - * RAM cost: 0 GB - * - * - See {@link NS.print | print} for how to add color to your printed strings. - * - * - For more detail, see: https://github.com/alexei/sprintf.js - * - * @example - * ```ts - * // NS1 - * var name = "Bit"; - * var age = 4; - * printf("My name is %s.", name); - * printf("I'm %d seconds old.", age); - * printf("My age in binary is %b.", age); - * printf("My age in scientific notation is %e.", age); - * printf("In %d seconds, I'll be %s.", 6, "Byte"); - * printf("Am I a nibble? %t", (4 == age)); - * tail(); - * ``` - * @example - * ```ts - * // NS2 - * const name = "Bit"; - * const age = 4; - * ns.printf("My name is %s.", name); - * ns.printf("I'm %d seconds old.", age); - * ns.printf("My age in binary is %b.", age); - * ns.printf("My age in scientific notation is %e.", age); - * ns.printf("In %d seconds, I'll be %s.", 6, "Byte"); - * ns.printf("Am I a nibble? %t", (4 == age)); - * ns.tail(); - * ``` - * - * @param format - Format of the message. - * @param args - Value(s) to be printed. - */ - printf(format: string, ...args: any[]): void; - - /** - * Prints one or more values or variables to the Terminal. - * @remarks - * RAM cost: 0 GB - * - * See {@link NS.print | print} for how to add color to your printed strings. - * - * @param args - Value(s) to be printed. - */ - tprint(...args: any[]): void; - - /** - * Prints a raw value or a variable to the Terminal. - * @remarks - * RAM cost: 0 GB - * - * - See {@link NS.print | print} for how to add color to your printed strings. - * - * - See {@link NS.printf | printf} for examples on formatted strings. - * - * - For more detail, see: https://github.com/alexei/sprintf.js - * - * @param format - Format of the message. - * @param values - Value(s) to be printed. - */ - tprintf(format: string, ...values: any[]): void; - - /** - * Clears the script’s logs. - * @remarks - * RAM cost: 0 GB - */ - clearLog(): void; - - /** - * Disables logging for the given function. - * @remarks - * RAM cost: 0 GB - * - * Logging can be disabled for all functions by passing `ALL` as the argument. - * - * @param fn - Name of function for which to disable logging. - */ - disableLog(fn: string): void; - - /** - * Enable logging for a certain function. - * @remarks - * RAM cost: 0 GB - * - * Re-enables logging for the given function. If `ALL` is passed into this - * function as an argument, then it will revert the effects of disableLog(`ALL`). - * - * @param fn - Name of function for which to enable logging. - */ - enableLog(fn: string): void; - - /** - * Checks the status of the logging for the given function. - * @remarks - * RAM cost: 0 GB - * - * @param fn - Name of function to check. - * @returns Returns a boolean indicating whether or not logging is enabled for that function (or `ALL`). - */ - isLogEnabled(fn: string): boolean; - - /** - * Get all the logs of a script. - * @remarks - * RAM cost: 0 GB - * - * Returns a script’s logs. The logs are returned as an array, where each line is an element in the array. - * The most recently logged line is at the end of the array. - * Note that there is a maximum number of lines that a script stores in its logs. This is configurable in the game’s options. - * If the function is called with no arguments, it will return the current script’s logs. - * - * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. - * Remember that scripts are uniquely identified by both their names and arguments. - * - * @example - * ```ts - * // NS1: - * //Get logs from foo.script on the current server that was run with no args - * getScriptLogs("foo.script"); - * - * //Open logs from foo.script on the foodnstuff server that was run with no args - * getScriptLogs("foo.script", "foodnstuff"); - * - * //Open logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * getScriptLogs("foo.script", "foodnstuff", 1, "test"); - * ``` - * @example - * ```ts - * // NS2: - * //Get logs from foo.script on the current server that was run with no args - * ns.getScriptLogs("foo.script"); - * - * //Open logs from foo.script on the foodnstuff server that was run with no args - * ns.getScriptLogs("foo.script", "foodnstuff"); - * - * //Open logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * ns.getScriptLogs("foo.script", "foodnstuff", 1, "test"); - * ``` - * @param fn - Optional. Filename of script to get logs from. - * @param host - Optional. Hostname of the server that the script is on. - * @param args - Arguments to identify which scripts to get logs for. - * @returns Returns a string array, where each line is an element in the array. The most recently logged line is at the end of the array. - */ - getScriptLogs(fn?: string, host?: string, ...args: (string | number | boolean)[]): string[]; - - /** - * Get an array of recently killed scripts across all servers. - * @remarks - * RAM cost: 0.2 GB - * - * The most recently killed script is the first element in the array. - * Note that there is a maximum number of recently killed scripts which are tracked. - * This is configurable in the game's options as `Recently killed scripts size`. - * - * @example - * ```ts - * let recentScripts = ns.getRecentScripts(); - * let mostRecent = recentScripts.shift() - * if (mostRecent) - * ns.tprint(mostRecent.logs.join('\n')) - * ``` - * - * @returns Array with information about previously killed scripts. - */ - getRecentScripts(): RecentScript[]; - - /** - * Open the tail window of a script. - * @remarks - * RAM cost: 0 GB - * - * Opens a script’s logs. This is functionally the same as the tail Terminal command. - * - * If the function is called with no arguments, it will open the current script’s logs. - * - * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. - * Remember that scripts are uniquely identified by both their names and arguments. - * - * @example - * ```ts - * // NS1: - * //Open logs from foo.script on the current server that was run with no args - * tail("foo.script"); - * - * //Get logs from foo.script on the foodnstuff server that was run with no args - * tail("foo.script", "foodnstuff"); - * - * //Get logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * tail("foo.script", "foodnstuff", 1, "test"); - * ``` - * @example - * ```ts - * // NS2: - * //Open logs from foo.script on the current server that was run with no args - * ns.tail("foo.script"); - * - * //Get logs from foo.script on the foodnstuff server that was run with no args - * ns.tail("foo.script", "foodnstuff"); - * - * //Get logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * ns.tail("foo.script", "foodnstuff", 1, "test"); - * ``` - * @param fn - Optional. Filename or PID of the script being tailed. If omitted, the current script is tailed. - * @param host - Optional. Hostname of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. - * @param args - Arguments for the script being tailed. - */ - tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): void; - - /** - * Move a tail window. - * @remarks - * RAM cost: 0 GB - * - * Moves a tail window. Coordinates are in screenspace pixels (top left is 0,0). - * - * @param x - x coordinate. - * @param y - y coordinate. - * @param pid - Optional. PID of the script having its tail moved. If omitted, the current script is used. - */ - moveTail(x: number, y: number, pid?: number): void; - - /** - * Resize a tail window. - * @remarks - * RAM cost: 0 GB - * - * Resize a tail window. Size are in pixel. - * - * @param width - Width of the window. - * @param height - Height of the window. - * @param pid - Optional. PID of the script having its tail resized. If omitted, the current script is used. - */ - resizeTail(width: number, height: number, pid?: number): void; - - /** - * Close the tail window of a script. - * @remarks - * RAM cost: 0 GB - * - * Closes a script’s logs. This is functionally the same as pressing the "Close" button on the tail window. - * - * If the function is called with no arguments, it will close the current script’s logs. - * - * Otherwise, the pid argument can be used to close the logs from another script. - * - * @param pid - Optional. PID of the script having its tail closed. If omitted, the current script is used. - */ - closeTail(pid?: number): void; - - /** - * Get the list of servers connected to a server. - * @remarks - * RAM cost: 0.2 GB - * - * Returns an array containing the hostnames of all servers that are one - * node way from the specified target server. The hostnames in the returned - * array are strings. - * - * @example - * ```ts - * // NS1 - * // All servers that are one hop from the current server. - * tprint("Neighbors of current server."); - * var neighbor = scan(); - * for (var i = 0; i < neighbor.length; i++) { - * tprint(neighbor[i]); - * } - * // All neighbors of n00dles. - * var target = "n00dles"; - * neighbor = scan(target); - * tprintf("Neighbors of %s.", target); - * for (var i = 0; i < neighbor.length; i++) { - * tprint(neighbor[i]); - * } - * ``` - * @example - * ```ts - * // NS2 - * // All servers that are one hop from the current server. - * ns.tprint("Neighbors of current server."); - * let neighbor = ns.scan(); - * for (let i = 0; i < neighbor.length; i++) { - * ns.tprint(neighbor[i]); - * } - * // All neighbors of n00dles. - * const target = "n00dles"; - * neighbor = ns.scan(target); - * ns.tprintf("Neighbors of %s.", target); - * for (let i = 0; i < neighbor.length; i++) { - * ns.tprint(neighbor[i]); - * } - * ``` - * - * @param host - Optional. Hostname of the server to scan, default to current server. - * @returns Returns an array of hostnames. - */ - scan(host?: string): string[]; - - /** Returns whether the player has access to the darkweb. - * @remarks - * RAM cost: 0.05GB - * - * @example - * ```js - * // NS1: - * if (hasTorRouter()) tprint("TOR router detected."); - * ``` - * - * @example - * ```js - * // NS2: - * if (ns.hasTorRouter()) tprint("TOR router detected."); - * ``` - * - * @returns Whether player has access to the dark web. */ - hasTorRouter(): boolean; - - /** - * Runs NUKE.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Running NUKE.exe on a target server gives you root access which means you can execute scripts on said server. NUKE.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * nuke("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.nuke("foodnstuff"); - * ``` - * @param host - Hostname of the target server. - */ - nuke(host: string): void; - - /** - * Runs BruteSSH.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * brutessh("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.brutessh("foodnstuff"); - * ``` - * @param host - Hostname of the target server. - */ - brutessh(host: string): void; - - /** - * Runs FTPCrack.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Runs the FTPCrack.exe program on the target server. FTPCrack.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * ftpcrack("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.ftpcrack("foodnstuff"); - * ``` - * @param host - Hostname of the target server. - */ - ftpcrack(host: string): void; - - /** - * Runs relaySMTP.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Runs the relaySMTP.exe program on the target server. relaySMTP.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * relaysmtp("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.relaysmtp("foodnstuff"); - * ``` - * @param host - Hostname of the target server. - */ - relaysmtp(host: string): void; - - /** - * Runs HTTPWorm.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * httpworm("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.httpworm("foodnstuff"); - * ``` - * @param host - Hostname of the target server. - */ - httpworm(host: string): void; - - /** - * Runs SQLInject.exe on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Runs the SQLInject.exe program on the target server. SQLInject.exe must exist on your home computer. - * - * @example - * ```ts - * // NS1: - * sqlinject("foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * ns.sqlinject("foodnstuff"); - * ``` - * @remarks RAM cost: 0.05 GB - * @param host - Hostname of the target server. - */ - sqlinject(host: string): void; - - /** - * Start another script on the current server. - * @remarks - * RAM cost: 1 GB - * - * Run a script as a separate process. This function can only be used to run scripts located on the - * current server (the server running the script that calls this function). Requires a significant - * amount of RAM to run this command. - * - * If the script was successfully started, then this functions returns the PID of that script. - * Otherwise, it returns 0. - * - * PID stands for Process ID. The PID is a unique identifier for each script. - * The PID will always be a positive integer. - * - * Running this function with a numThreads argument of 0 or less will cause a runtime error. - * - * @example - * ```ts - * // NS1: - * //The simplest way to use the run command is to call it with just the script name. The following example will run ‘foo.script’ single-threaded with no arguments: - * run("foo.script"); - * - * //The following example will run ‘foo.script’ but with 5 threads instead of single-threaded: - * run("foo.script", 5); - * - * //This next example will run ‘foo.script’ single-threaded, and will pass the string ‘foodnstuff’ into the script as an argument: - * run("foo.script", 1, 'foodnstuff'); - * ``` - * @example - * ```ts - * // NS2: - * //The simplest way to use the run command is to call it with just the script name. The following example will run ‘foo.script’ single-threaded with no arguments: - * ns.run("foo.script"); - * - * //The following example will run ‘foo.script’ but with 5 threads instead of single-threaded: - * ns.run("foo.script", 5); - * - * //This next example will run ‘foo.script’ single-threaded, and will pass the string ‘foodnstuff’ into the script as an argument: - * ns.run("foo.script", 1, 'foodnstuff'); - * ``` - * @param script - Filename of script to run. - * @param numThreads - Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. - * @param args - Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument numThreads must be filled in with a value. - * @returns Returns the PID of a successfully started script, and 0 otherwise. - */ - run(script: string, numThreads?: number, ...args: (string | number | boolean)[]): number; - - /** - * Start another script on any server. - * @remarks - * RAM cost: 1.3 GB - * - * Run a script as a separate process on a specified server. This is similar to the function {@link NS.run | run} - * except that it can be used to run a script on any server, instead of just the current server. - * - * If the script was successfully started, then this function returns the PID of that script. - * Otherwise, it returns 0. - * - * PID stands for Process ID. The PID is a unique identifier for each script. - * The PID will always be a positive integer. - * - * Running this function with a numThreads argument of 0 or less will cause a runtime error. - * - * @example - * ```ts - * // NS1: - * // The simplest way to use the exec command is to call it with just the script name - * // and the target server. The following example will try to run generic-hack.script - * // on the foodnstuff server. - * exec("generic-hack.script", "foodnstuff"); - * - * // The following example will try to run the script generic-hack.script on the - * // joesguns server with 10 threads. - * exec("generic-hack.script", "joesguns", 10); - * - * // This last example will try to run the script foo.script on the foodnstuff server - * // with 5 threads. It will also pass the number 1 and the string “test” in as - * // arguments to the script. - * exec("foo.script", "foodnstuff", 5, 1, "test"); - * ``` - * @example - * ```ts - * // NS2: - * // The simplest way to use the exec command is to call it with just the script name - * // and the target server. The following example will try to run generic-hack.script - * // on the foodnstuff server. - * ns.exec("generic-hack.script", "foodnstuff"); - * - * // The following example will try to run the script generic-hack.script on the - * // joesguns server with 10 threads. - * ns.exec("generic-hack.script", "joesguns", 10); - * - * // This last example will try to run the script foo.script on the foodnstuff server - * // with 5 threads. It will also pass the number 1 and the string “test” in as - * // arguments to the script. - * ns.exec("foo.script", "foodnstuff", 5, 1, "test"); - * ``` - * @param script - Filename of script to execute. - * @param host - Hostname of the `target server` on which to execute the script. - * @param numThreads - Optional thread count for new script. Set to 1 by default. Will be rounded down to the nearest integer. - * @param args - Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument numThreads must be filled in with a value. - * @returns Returns the PID of a successfully started script, and 0 otherwise. - */ - exec(script: string, host: string, numThreads?: number, ...args: (string | number | boolean)[]): number; - - /** - * Terminate current script and start another in 10 seconds. - * @remarks - * RAM cost: 2 GB - * - * Terminates the current script, and then after a delay of about 10 seconds it will execute the - * newly-specified script. The purpose of this function is to execute a new script without being - * constrained by the RAM usage of the current one. This function can only be used to run scripts - * on the local server. - * - * Because this function immediately terminates the script, it does not have a return value. - * - * Running this function with a numThreads argument of 0 or less will cause a runtime error. - * - * @example - * ```ts - * // NS1: - * //The following example will execute the script ‘foo.script’ with 10 threads and the arguments ‘foodnstuff’ and 90: - * spawn('foo.script', 10, 'foodnstuff', 90); - * ``` - * @example - * ```ts - * // NS2: - * //The following example will execute the script ‘foo.script’ with 10 threads and the arguments ‘foodnstuff’ and 90: - * ns.spawn('foo.script', 10, 'foodnstuff', 90); - * ``` - * @param script - Filename of script to execute. - * @param numThreads - Number of threads to spawn new script with. Will be rounded to nearest integer. - * @param args - Additional arguments to pass into the new script that is being run. - */ - spawn(script: string, numThreads?: number, ...args: (string | number | boolean)[]): void; - - /** - * Terminate another script. - * @remarks - * RAM cost: 0.5 GB - * - * Kills the script on the target server specified by the script’s name and arguments. - * Remember that scripts are uniquely identified by both their names and arguments. - * For example, if `foo.script` is run with the argument 1, then this is not the same as - * `foo.script` run with the argument 2, even though they have the same name. - * - * @example - * ```ts - * // NS1: - * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: - * kill("foo.script", "foodnstuff"); - * - * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: - * kill("foo.script", getHostname()); - * - * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: - * kill("foo.script", getHostname(), 1, "foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: - * ns.kill("foo.script", "foodnstuff"); - * - * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: - * ns.kill("foo.script", getHostname()); - * - * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: - * ns.kill("foo.script", getHostname(), 1, "foodnstuff"); - * ``` - * @param script - Filename or PID of the script to kill. - * @param host - Hostname of the server on which to kill the script. - * @param args - Arguments to identify which script to kill. - * @returns True if the script is successfully killed, and false otherwise. - */ - kill(script: number): boolean; - - /** - * {@inheritDoc NS.(kill:1)} - * @example - * ```ts - * // NS1: - * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: - * kill("foo.script", "foodnstuff"); - * - * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: - * kill("foo.script", getHostname()); - * - * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: - * kill("foo.script", getHostname(), 1, "foodnstuff"); - * ``` - * @example - * ```ts - * // NS2: - * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: - * ns.kill("foo.script", "foodnstuff"); - * - * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: - * ns.kill("foo.script", getHostname()); - * - * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: - * ns.kill("foo.script", getHostname(), 1, "foodnstuff"); - * ``` - */ - kill(script: string, host: string, ...args: (string | number | boolean)[]): boolean; - - /** - * Terminate all scripts on a server. - * @remarks - * RAM cost: 0.5 GB - * - * Kills all running scripts on the specified server. This function returns true - * if any scripts were killed, and false otherwise. In other words, it will return - * true if there are any scripts running on the target server. - * If no host is defined, it will kill all scripts, where the script is running. - * - * @param host - IP or hostname of the server on which to kill all scripts. - * @param safetyguard - Skips the script that calls this function - * @returns True if any scripts were killed, and false otherwise. - */ - killall(host?: string, safetyguard?: boolean): boolean; - - /** - * Terminates the current script immediately. - * @remarks - * RAM cost: 0 GB - */ - exit(): never; - - /** - * Copy file between servers. - * @remarks - * RAM cost: 0.6 GB - * - * Copies a script or literature (.lit) file(s) to another server. The files argument can be either a string - * specifying a single file to copy, or an array of strings specifying multiple files to copy. - * - * @example - * ```ts - * // NS1: - * //Copies foo.lit from the helios server to the home computer: - * scp("foo.lit", "home", "helios"); - * - * //Tries to copy three files from rothman-uni to home computer: - * files = ["foo1.lit", "foo2.script", "foo3.script"]; - * scp(files, "home", "rothman-uni"); - * ``` - * @example - * ```ts - * // NS2: - * //Copies foo.lit from the helios server to the home computer: - * ns.scp("foo.lit", "home", "helios" ); - * - * //Tries to copy three files from rothman-uni to home computer: - * files = ["foo1.lit", "foo2.script", "foo3.script"]; - * ns.scp(files, "home", "rothman-uni"); - * ``` - * @example - * ```ts - * //ns2, copies files from home to a target server - * const server = ns.args[0]; - * const files = ["hack.js","weaken.js","grow.js"]; - * ns.scp(files, server, "home"); - * ``` - * @param files - Filename or an array of filenames of script/literature files to copy. Note that if a file is located in a subdirectory, the filename must include the leading `/`. - * @param destination - Hostname of the destination server, which is the server to which the file will be copied. - * @param source - Hostname of the source server, which is the server from which the file will be copied. This argument is optional and if it’s omitted the source will be the current server. - * @returns True if the file is successfully copied over and false otherwise. If the files argument is an array then this function will return false if any of the operations failed. - */ - scp(files: string | string[], destination: string, source?: string): boolean; - - /** - * List files on a server. - * @remarks - * RAM cost: 0.2 GB - * - * Returns an array with the filenames of all files on the specified server - * (as strings). The returned array is sorted in alphabetic order. - * - * @param host - Hostname of the target server. - * @param grep - A substring to search for in the filename. - * @returns Array with the filenames of all files on the specified server. - */ - ls(host: string, grep?: string): string[]; - - /** - * List running scripts on a server. - * @remarks - * RAM cost: 0.2 GB - * - * Returns an array with general information about all scripts running on the specified target server. - * - * @example - * ```ts - * // NS1: - * var scripts = ps("home"); - * for (var i = 0; i < scripts.length; ++i) { - * tprint(scripts[i].filename + ' ' + scripts[i].threads); - * tprint(scripts[i].args); - * } - * ``` - * @example - * ```ts - * // NS2: - * const ps = ns.ps("home"); - * for (let script of ps) { - * ns.tprint(`${script.filename} ${script.threads}`); - * ns.tprint(script.args); - * } - * ``` - * @param host - Host address of the target server. If not specified, it will be the current server’s IP by default. - * @returns Array with general information about all scripts running on the specified target server. - */ - ps(host?: string): ProcessInfo[]; - - /** - * Check if you have root access on a server. - * @remarks - * RAM cost: 0.05 GB - * - * Returns a boolean indicating whether or not the player has root access to the specified target server. - * - * @example - * ```ts - * // NS1: - * if (hasRootAccess("foodnstuff") == false) { - * nuke("foodnstuff"); - * } - * ``` - * @example - * ```ts - * // NS2: - * if (ns.hasRootAccess("foodnstuff") == false) { - * ns.nuke("foodnstuff"); - * } - * ``` - * @param host - Hostname of the target server. - * @returns True if player has root access to the specified target server, and false otherwise. - */ - hasRootAccess(host: string): boolean; - - /** - * Returns a string with the hostname of the server that the script is running on. - * - * @remarks - * RAM cost: 0.05 GB - * @returns Hostname of the server that the script runs on. - */ - getHostname(): string; - - /** - * Returns the player’s current hacking level. - * - * @remarks - * RAM cost: 0.05 GB - * @returns Player’s current hacking level - */ - getHackingLevel(): number; - - /** - * Get hacking related multipliers. - * @remarks - * RAM cost: 0.25 GB - * - * Returns an object containing the Player’s hacking related multipliers. - * These multipliers are returned in fractional forms, not percentages - * (e.g. 1.5 instead of 150%). - * - * @example - * ```ts - * // NS1: - * // Example of how this can be used: - * var mults = getHackingMultipliers(); - * print(mults.chance); - * print(mults.growth); - * ``` - * @example - * ```ts - * // NS2: - * // Example of how this can be used: - * const {chance, growth} = ns.getHackingMultipliers(); - * print(chance); - * print(growth); - * ``` - * @returns Object containing the Player’s hacking related multipliers. - */ - getHackingMultipliers(): HackingMultipliers; - - /** - * Get hacknet related multipliers. - * @remarks - * RAM cost: 0.25 GB - * - * Returns an object containing the Player’s hacknet related multipliers. - * These multipliers are returned in fractional forms, not percentages - * (e.g. 1.5 instead of 150%). - * - * @example - * ```ts - * // NS1: - * // Example of how this can be used: - * var mults = getHacknetMultipliers(); - * print(mults.production); - * print(mults.purchaseCost); - * ``` - * @example - * ```ts - * // NS2: - * // Example of how this can be used: - * const {production, purchaseCost} = ns.getHacknetMultipliers(); - * print(production); - * print(purchaseCost); - * ``` - * @returns Object containing the Player’s hacknet related multipliers. - */ - getHacknetMultipliers(): HacknetMultipliers; - - /** - * Returns a server object for the given server. Defaults to the running script's server if host is not specified. - * - * @remarks - * RAM cost: 2 GB - * @param host - Optional. Hostname for the requested server object. - * @returns The requested server object. - */ - getServer(host?: string): Server; - - /** - * Get money available on a server. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the amount of money available on a server. - * Running this function on the home computer will return the player’s money. - * - * @example - * ```ts - * // NS1: - * getServerMoneyAvailable("foodnstuff"); - * getServerMoneyAvailable("home"); //Returns player's money - * ``` - * @example - * ```ts - * // NS2: - * ns.getServerMoneyAvailable("foodnstuff"); - * ns.getServerMoneyAvailable("home"); // Returns player's money - * ``` - * @param host - Hostname of target server. - * @returns Amount of money available on the server. - */ - getServerMoneyAvailable(host: string): number; - - /** - * Get the maximum money available on a server. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the maximum amount of money that can be available on a server. - * - * @param host - Hostname of target server. - * @returns Maximum amount of money available on the server. - */ - getServerMaxMoney(host: string): number; - - /** - * Get a server growth parameter. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the server’s intrinsic “growth parameter”. This growth - * parameter is a number typically between 0 and 100 that represents - * how quickly the server’s money grows. This parameter affects the - * percentage by which the server’s money is increased when using the - * grow function. A higher growth parameter will result in a - * higher percentage increase from grow. - * - * @param host - Hostname of target server. - * @returns Parameter that affects the percentage by which the server’s money is increased when using the grow function. - */ - getServerGrowth(host: string): number; - - /** - * Get server security level. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the security level of the target server. A server’s security - * level is denoted by a number, typically between 1 and 100 - * (but it can go above 100). - * - * @param host - Hostname of target server. - * @returns Security level of the target server. - */ - getServerSecurityLevel(host: string): number; - - /** - * Returns the minimum security level of the target server. - * - * @remarks RAM cost: 0.1 GB - * @param host - Hostname of target server. - * @returns Minimum security level of the target server. - */ - getServerMinSecurityLevel(host: string): number; - - /** - * @deprecated useless - * @remarks - * RAM cost: 0.1 GB - * Returns the base security level of the target server. This is the security - * level that the server starts out with. This is different than - * getServerSecurityLevel because getServerSecurityLevel returns - * the current security level of a server, which can constantly change due to - * hack, grow, and weaken, calls on that server. - * The base security level will stay the same until you reset by - * installing an Augmentation(s). - * - * @param host - Host of target server. - * @returns Base security level of the target server. - */ - getServerBaseSecurityLevel(host: string): number; - - /** - * Get the maximum amount of RAM on a server. - * @remarks - * RAM cost: 0.05 GB - * - * @param host - Hostname of the target server. - * @returns The maximum amount of RAM (GB) a server can have. - */ - getServerMaxRam(host: string): number; - /** - * Get the used RAM on a server. - * @remarks - * RAM cost: 0.05 GB - * - * @param host - Hostname of the target server. - * @returns The amount of used RAM (GB) on the specified server. - */ - getServerUsedRam(host: string): number; - - /** - * Returns the required hacking level of the target server. - * - * @remarks RAM cost: 0.1 GB - * @param host - Hostname of target server. - * @returns The required hacking level of the target server. - */ - getServerRequiredHackingLevel(host: string): number; - - /** - * Returns the number of open ports required to successfully run NUKE.exe on the specified server. - * - * @remarks RAM cost: 0.1 GB - * @param host - Hostname of target server. - * @returns The number of open ports required to successfully run NUKE.exe on the specified server. - */ - getServerNumPortsRequired(host: string): number; - - /** - * Returns a boolean denoting whether or not the specified server exists. - * - * @remarks RAM cost: 0.1 GB - * @param host - Hostname of target server. - * @returns True if the specified server exists, and false otherwise. - */ - serverExists(host: string): boolean; - - /** - * Check if a file exists. - * @remarks - * RAM cost: 0.1 GB - * - * Returns a boolean indicating whether the specified file exists on the target server. - * The filename for scripts is case-sensitive, but for other types of files it is not. - * For example, fileExists(“brutessh.exe”) will work fine, even though the actual program - * is named 'BruteSSH.exe'. - * - * If the hostname/ip argument is omitted, then the function will search through the current - * server (the server running the script that calls this function) for the file. - * - * @example - * ```ts - * // NS1: - * //The function call will return true if the script named foo.script exists on the foodnstuff server, and false otherwise. - * fileExists("foo.script", "foodnstuff"); - * - * //The function call will return true if the current server contains the FTPCrack.exe program, and false otherwise. - * fileExists("ftpcrack.exe"); - * ``` - * * @example - * ```ts - * // NS2: - * // The function call will return true if the script named foo.script exists on the foodnstuff server, and false otherwise. - * ns.fileExists("foo.script", "foodnstuff"); - * - * // The function call will return true if the current server contains the FTPCrack.exe program, and false otherwise. - * ns.fileExists("ftpcrack.exe"); - * ``` - * @param filename - Filename of file to check. - * @param host - Host of target server. This is optional. If it is not specified then the function will use the current server as the target server. - * @returns True if specified file exists, and false otherwise. - */ - fileExists(filename: string, host?: string): boolean; - - /** - * Check if a script is running. - * @remarks - * RAM cost: 0.1 GB - * - * Returns a boolean indicating whether the specified script is running on the target server. - * If you use a PID instead of a filename, the hostname and args parameters are unnecessary. - * Remember that a script is uniquely identified by both its name and its arguments. - * - * @example - * ```ts - * // NS1: - * //The function call will return true if there is a script named foo.script with no arguments running on the foodnstuff server, and false otherwise: - * isRunning("foo.script", "foodnstuff"); - * - * //The function call will return true if there is a script named foo.script with no arguments running on the current server, and false otherwise: - * isRunning("foo.script", getHostname()); - * - * //The function call will return true if there is a script named foo.script running with the arguments 1, 5, and “test” (in that order) on the joesguns server, and false otherwise: - * isRunning("foo.script", "joesguns", 1, 5, "test"); - * ``` - * @example - * ```ts - * // NS2: - * //The function call will return true if there is a script named foo.script with no arguments running on the foodnstuff server, and false otherwise: - * ns.isRunning("foo.script", "foodnstuff"); - * - * //The function call will return true if there is a script named foo.script with no arguments running on the current server, and false otherwise: - * ns.isRunning("foo.script", ns.getHostname()); - * - * //The function call will return true if there is a script named foo.script running with the arguments 1, 5, and “test” (in that order) on the joesguns server, and false otherwise: - * ns.isRunning("foo.script", "joesguns", 1, 5, "test"); - * ``` - * @param script - Filename or PID of script to check. This is case-sensitive. - * @param host - Hostname of target server. - * @param args - Arguments to specify/identify which scripts to search for. - * @returns True if the specified script is running on the target server, and false otherwise. - */ - isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): boolean; - - /** - * Get general info about a running script. - * @remarks - * RAM cost: 0.3 GB - * - * Running with no args returns current script. - * If you use a PID as the first parameter, the hostname and args parameters are unnecessary. - * - * @param filename - Optional. Filename or PID of the script. - * @param hostname - Optional. Name of host server the script is running on. - * @param args - Arguments to identify the script - * @returns The info about the running script if found, and null otherwise. - */ - getRunningScript( - filename?: FilenameOrPID, - hostname?: string, - ...args: (string | number | boolean)[] - ): RunningScript | null; - - /** - * Get cost of purchasing a server. - * @remarks - * RAM cost: 0.25 GB - * - * Returns the cost to purchase a server with the specified amount of ram. - * - * @example - * ```ts - * // NS1: - * for (i = 1; i <= 20; i++) { - * tprint(i + " -- " + getPurchasedServerCost(Math.pow(2, i))); - * } - * ``` - * @example - * ```ts - * // NS2: - * for (i = 1; i <= 20; i++) { - * ns.tprint(i + " -- " + ns.getPurchasedServerCost(Math.pow(2, i))); - * } - * ``` - * @param ram - Amount of RAM of a potential purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns The cost to purchase a server with the specified amount of ram. - */ - getPurchasedServerCost(ram: number): number; - - /** - * Purchase a server. - * @remarks - * 2.25 GB - * - * Purchase a server with the specified hostname and amount of RAM. - * - * The hostname argument can be any data type, but it will be converted to a string - * and have whitespace removed. Anything that resolves to an empty string will cause - * the function to fail. If there is already a server with the specified hostname, - * then the function will automatically append a number at the end of the hostname - * argument value until it finds a unique hostname. For example, if the script calls - * `purchaseServer(“foo”, 4)` but a server named “foo” already exists, then it will - * automatically change the hostname to `foo-0`. If there is already a server with the - * hostname `foo-0`, then it will change the hostname to `foo-1`, and so on. - * - * Note that there is a maximum limit to the amount of servers you can purchase. - * - * Returns the hostname of the newly purchased server as a string. If the function - * fails to purchase a server, then it will return an empty string. The function will - * fail if the arguments passed in are invalid, if the player does not have enough - * money to purchase the specified server, or if the player has exceeded the maximum - * amount of servers. - * - * @example - * ```ts - * // NS1: - * var ram = 64; - * var prefix = "pserv-"; - * for (i = 0; i < 5; ++i) { - * purchaseServer(prefix + i, ram); - * } - * ``` - * @example - * ```ts - * // NS2: - * const ram = 64; - * const prefix = "pserv-"; - * for (i = 0; i < 5; ++i) { - * ns.purchaseServer(prefix + i, ram); - * } - * ``` - * @param hostname - Hostname of the purchased server. - * @param ram - Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns The hostname of the newly purchased server. - */ - purchaseServer(hostname: string, ram: number): string; - - /** - * Get cost of upgrading a purchased server to the given ram. - * @remarks - * RAM cost: 0.1 GB - * - * @param hostname - Hostname of the server to upgrade. - * @param ram - Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns The price to upgrade. - */ - getPurchasedServerUpgradeCost(hostname: string, ram: number): number; - - /** - * Upgrade a purchased server's RAM. - * @remarks - * RAM cost: 0.25 GB - * - * @param hostname - Hostname of the server to upgrade. - * @param ram - Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns True if the upgrade succeeded, and false otherwise. - */ - upgradePurchasedServer(hostname: string, ram: number): boolean; - - /** - * Rename a purchased server. - * @remarks - * RAM cost: 2.00 GB - * - * @param hostname - Current server hostname. - * @param newName - New server hostname. - * @returns True if the upgrade succeeded, and false otherwise. - */ - renamePurchasedServer(hostname: string, newName: string): boolean; - - /** - * Delete a purchased server. - * @remarks - * 2.25 GB - * - * Deletes one of your purchased servers, which is specified by its hostname. - * - * The hostname argument can be any data type, but it will be converted to a string. - * Whitespace is automatically removed from the string. This function will not delete a - * server that still has scripts running on it. - * - * @param host - Hostname of the server to delete. - * @returns True if successful, and false otherwise. - */ - deleteServer(host: string): boolean; - - /** - * Returns an array with the hostnames of all of the servers you have purchased. - * - * @remarks 2.25 GB - * @returns Returns an array with the hostnames of all of the servers you have purchased. - */ - getPurchasedServers(): string[]; - - /** - * Returns the maximum number of servers you can purchase. - * - * @remarks RAM cost: 0.05 GB - * @returns Returns the maximum number of servers you can purchase. - */ - getPurchasedServerLimit(): number; - - /** - * Returns the maximum RAM that a purchased server can have. - * - * @remarks RAM cost: 0.05 GB - * @returns Returns the maximum RAM (in GB) that a purchased server can have. - */ - getPurchasedServerMaxRam(): number; - - /** - * Write data to a file. - * @remarks - * RAM cost: 0 GB - * - * This function can be used to write data to a text file (.txt) or a script (.js or .script). - * - * This function will write data to that file. If the specified file does not exist, - * then it will be created. The third argument mode defines how the data will be written to - * the file. If mode is set to “w”, then the data is written in “write” mode which means - * that it will overwrite all existing data on the file. If mode is set to any other value - * then the data will be written in “append” mode which means that the data will be added at the - * end of the file. - * - * @param filename - Name of the file to be written to. - * @param data - Data to write. - * @param mode - Defines the write mode. - */ - write(filename: string, data?: string, mode?: "w" | "a"): void; - - /** - * Attempt to write to a port. - * @remarks - * RAM cost: 0 GB - * - * Attempts to write data to the specified Netscript port. - * If the port is full, the data will not be written. - * Otherwise, the data will be written normally. - * - * @param port - Port or text file that will be written to. - * @param data - Data to write. - * @returns True if the data is successfully written to the port, and false otherwise. - */ - tryWritePort(port: number, data: string | number): boolean; - - /** - * Read content of a file. - * @remarks - * RAM cost: 0 GB - * - * This function is used to read data from a text file (.txt) or script (.script, .js). - * - * This function will return the data in the specified file. - * If the file does not exist, an empty string will be returned. - * - * @param filename - Name of the file to be read. - * @returns Data in the specified text file. - */ - read(filename: string): string; - - /** - * Get a copy of the data from a port without popping it. - * @remarks - * RAM cost: 0 GB - * - * This function is used to peek at the data from a port. It returns the - * first element in the specified port without removing that element. If - * the port is empty, the string “NULL PORT DATA” will be returned. - * - * @param port - Port to peek. Must be an integer between 1 and 20. - * @returns Data in the specified port. - */ - peek(port: number): PortData; - - /** - * Clear data from a file. - * @remarks - * RAM cost: 0 GB - * - * Delete all data from that text file. - * - * @param handle - Text file to clear. - */ - clear(handle: string): void; - - /** - * Clear data from a port. - * @remarks - * RAM cost: 0 GB - * - * Delete all data from the underlying queue. - * - * @param handle - Port to clear. - */ - clearPort(handle: number): void; - - /** - * Write data to a port. - * @remarks - * RAM cost: 0 GB - * - * Write data to the given Netscript port. - * @returns The data popped off the queue if it was full, or null if it was not full. - */ - writePort(port: number, data: string | number): PortData | null; - /** - * Read data from a port. - * @remarks - * RAM cost: 0 GB - * - * Read data from that port. A port is a serialized queue. - * This function will remove the first element from that queue and return it. - * If the queue is empty, then the string “NULL PORT DATA” will be returned. - * @returns The data read. - */ - readPort(port: number): PortData; - - /** - * Get all data on a port. - * @remarks - * RAM cost: 0 GB - * - * Get a handle to a Netscript Port. - * - * WARNING: Port Handles only work in NetscriptJS (Netscript 2.0). They will not work in Netscript 1.0. - * - * @see https://bitburner.readthedocs.io/en/latest/netscript/netscriptmisc.html#netscript-ports - * @param port - Port number. Must be an integer between 1 and 20. - */ - getPortHandle(port: number): NetscriptPort; - - /** - * Delete a file. - * @remarks - * RAM cost: 1 GB - * - * Removes the specified file from the current server. This function works for every file - * type except message (.msg) files. - * - * @param name - Filename of file to remove. Must include the extension. - * @param host - Hostname of the server on which to delete the file. Optional. Defaults to current server. - * @returns True if it successfully deletes the file, and false otherwise. - */ - rm(name: string, host?: string): boolean; - - /** - * Check if any script with a filename is running. - * @remarks - * RAM cost: 1 GB - * - * Returns a boolean indicating whether any instance of the specified script is running - * on the target server, regardless of its arguments. - * - * This is different than the {@link NS.isRunning | isRunning} function because it does not try to - * identify a specific instance of a running script by its arguments. - * - * @example - * ```ts - * // NS1: - * //The function call will return true if there is any script named foo.script running on the foodnstuff server, and false otherwise: - * scriptRunning("foo.script", "foodnstuff"); - * - * //The function call will return true if there is any script named “foo.script” running on the current server, and false otherwise: - * scriptRunning("foo.script", getHostname()); - * ``` - * * @example - * ```ts - * // NS2: - * //The function call will return true if there is any script named foo.script running on the foodnstuff server, and false otherwise: - * ns.scriptRunning("foo.script", "foodnstuff"); - * - * //The function call will return true if there is any script named “foo.script” running on the current server, and false otherwise: - * ns.scriptRunning("foo.script", ns.getHostname()); - * ``` - * @param script - Filename of script to check. This is case-sensitive. - * @param host - Hostname of target server. - * @returns True if the specified script is running, and false otherwise. - */ - scriptRunning(script: string, host: string): boolean; - - /** - * Kill all scripts with a filename. - * @remarks - * RAM cost: 1 GB - * - * Kills all scripts with the specified filename on the target server specified by hostname, - * regardless of arguments. - * - * @param script - Filename of script to kill. This is case-sensitive. - * @param host - Hostname of target server. - * @returns True if one or more scripts were successfully killed, and false if none were. - */ - scriptKill(script: string, host: string): boolean; - - /** - * Returns the current script name. - * - * @remarks RAM cost: 0 GB - * @returns Current script name. - */ - getScriptName(): string; - - /** - * Get the ram cost of a script. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the amount of RAM required to run the specified script on the target server. - * Returns 0 if the script does not exist. - * - * @param script - Filename of script. This is case-sensitive. - * @param host - Hostname of target server the script is located on. This is optional. If it is not specified then the function will use the current server as the target server. - * @returns Amount of RAM (in GB) required to run the specified script on the target server, and 0 if the script does not exist. - */ - getScriptRam(script: string, host?: string): number; - - /** - * Get the execution time of a hack() call. - * @remarks - * RAM cost: 0.05 GB - * - * When `hack` completes an amount of money is stolen depending on the player's skills. - * Returns the amount of time in milliseconds it takes to execute the {@link NS.hack | hack} Netscript function on the target server. - * The required time is increased by the security level of the target server and decreased by the player's hacking level. - * - * @param host - Hostname of target server. - * @returns Returns the amount of time in milliseconds it takes to execute the {@link NS.hack | hack} Netscript function. - */ - getHackTime(host: string): number; - - /** - * Get the execution time of a grow() call. - * @remarks - * RAM cost: 0.05 GB - * - * Returns the amount of time in milliseconds it takes to execute the grow Netscript function on the target server. - * The required time is increased by the security level of the target server and decreased by the player's hacking level. - * - * @param host - Hostname of target server. - * @returns Returns the amount of time in milliseconds it takes to execute the grow Netscript function. - */ - getGrowTime(host: string): number; - - /** - * Get the execution time of a weaken() call. - * @remarks - * RAM cost: 0.05 GB - * - * Returns the amount of time in milliseconds it takes to execute the {@link NS.weaken | weaken} Netscript function on the target server. - * The required time is increased by the security level of the target server and decreased by the player's hacking level. - * - * @param host - Hostname of target server. - * @returns Returns the amount of time in milliseconds it takes to execute the {@link NS.weaken | weaken} Netscript function. - */ - getWeakenTime(host: string): number; - - /** - * Get the income of all scripts. - * @remarks - * RAM cost: 0.1 GB - * - * @returns An array of two values. - * The first value is the total income (dollar / second) of all of your active scripts - * (scripts that are currently running on any server). - * The second value is the total income (dollar / second) that you’ve earned from scripts - * since you last installed Augmentations. - */ - getTotalScriptIncome(): [number, number]; - - /** - * Get the income of a script. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the amount of income the specified script generates while online - * (when the game is open, does not apply for offline income). Remember that - * a script is uniquely identified by both its name and its arguments. So for - * example if you ran a script with the arguments “foodnstuff” and “5” then - * in order to use this function to get that script’s income you must specify - * those same arguments in the same order in this function call. - * - * @param script - Filename of script. - * @param host - Server on which script is running. - * @param args - Arguments that the script is running with. - * @returns Amount of income the specified script generates while online. - */ - getScriptIncome(script: string, host: string, ...args: (string | number | boolean)[]): number; - - /** - * Get the exp gain of all scripts. - * @remarks - * RAM cost: 0.1 GB - * - * @returns Total experience gain rate of all of your active scripts. - */ - getTotalScriptExpGain(): number; - - /** - * Get the exp gain of a script. - * @remarks - * RAM cost: 0.1 GB - * - * Returns the amount of hacking experience the specified script generates while online - * (when the game is open, does not apply for offline experience gains). Remember that a - * script is uniquely identified by both its name and its arguments. - * - * This function can also return the total experience gain rate of all of your active - * scripts by running the function with no arguments. - * - * @param script - Filename of script. - * @param host - Server on which script is running. - * @param args - Arguments that the script is running with. - * @returns Amount of hacking experience the specified script generates while online. - */ - getScriptExpGain(script: string, host: string, ...args: (string | number | boolean)[]): number; - - /** - * Returns the amount of time in milliseconds that have passed since you last installed Augmentations. - * - * @remarks RAM cost: 0.05 GB - * @returns Time in milliseconds that have passed since you last installed Augmentations. - */ - getTimeSinceLastAug(): number; - - /** - * Format a string. - * - * @remarks - * RAM cost: 0 GB - * - * see: https://github.com/alexei/sprintf.js - * @param format - String to format. - * @param args - Formatting arguments. - * @returns Formatted text. - */ - sprintf(format: string, ...args: any[]): string; - - /** - * Format a string with an array of arguments. - * @remarks - * RAM cost: 0 GB - * - * see: https://github.com/alexei/sprintf.js - * @param format - String to format. - * @param args - Formatting arguments. - * @returns Formatted text. - */ - vsprintf(format: string, args: any[]): string; - - /** - * Format a number. - * @remarks - * RAM cost: 0 GB - * - * Converts a number into a string with the specified formatter. - * This uses the numeral.js library, so the formatters must be compatible with that. - * This is the same function that the game itself uses to display numbers. - * - * For more information, see: http://numeraljs.com/ - * - * @param n - Number to format. - * @param format - Formatter. - * @returns Formatted number. - */ - nFormat(n: number, format: string): string; - - /** - * Format time to a readable string. - * @remarks - * RAM cost: 0 GB - * - * @param milliseconds - Number of millisecond to format. - * @param milliPrecision - Format time with subsecond precision. Defaults to false. - * @returns The formatted time. - */ - tFormat(milliseconds: number, milliPrecision?: boolean): string; - - /** - * Prompt the player with an input modal. - * @remarks - * RAM cost: 0 GB - * - * Prompts the player with a dialog box. Here is an explanation of the various options. - * - * - `options.type` is not provided to the function. If `options.type` is left out and - * only a string is passed to the function, then the default behavior is to create a - * boolean dialog box. - * - * - `options.type` has value `undefined` or `"boolean"`. A boolean dialog box is - * created. The player is shown "Yes" and "No" prompts, which return true and false - * respectively. The script's execution is halted until the player presses either the - * "Yes" or "No" button. - * - * - `options.type` has value `"text"`. The player is given a text field to enter - * free-form text. The script's execution is halted until the player enters some text - * and/or presses the "Confirm" button. - * - * - `options.type` has value `"select"`. The player is shown a drop-down field. - * Choosing type `"select"` will require an array to be passed via the - * `options.choices` property. The array can be an array of strings, an array of - * numbers (not BigInt numbers), or a mixture of both numbers and strings. Any other - * types of array elements will result in an error or an undefined/unexpected - * behavior. The `options.choices` property will be ignored if `options.type` has a - * value other than `"select"`. The script's execution is halted until the player - * chooses one of the provided options and presses the "Confirm" button. - * - * @example - * ```ts - * // NS1 - * // A Yes/No question. The default is to create a boolean dialog box. - * var queryA = "Do you enjoy Bitburner?"; - * var resultA = prompt(queryA); - * tprint(queryA + " " + resultA); - * - * // Another Yes/No question. Can also create a boolean dialog box by explicitly - * // passing the option {"type": "boolean"}. - * var queryB = "Is programming fun?"; - * var resultB = prompt(queryB, { type: "boolean" }); - * tprint(queryB + " " + resultB); - * - * // Free-form text box. - * var resultC = prompt("Please enter your name.", { type: "text" }); - * tprint("Hello, " + resultC + "."); - * - * // A drop-down list. - * var resultD = prompt("Please select your favorite fruit.", { - * type: "select", - * choices: ["Apple", "Banana", "Orange", "Pear", "Strawberry"] - * }); - * tprint("Your favorite fruit is " + resultD.toLowerCase() + "."); - * ``` - * @example - * ```ts - * // NS2 - * // A Yes/No question. The default is to create a boolean dialog box. - * const queryA = "Do you enjoy Bitburner?"; - * const resultA = await ns.prompt(queryA); - * ns.tprint(`${queryA} ${resultA}`); - * - * // Another Yes/No question. Can also create a boolean dialog box by explicitly - * // passing the option {"type": "boolean"}. - * const queryB = "Is programming fun?"; - * const resultB = await ns.prompt(queryB, { type: "boolean" }); - * ns.tprint(`${queryB} ${resultB}`); - * - * // Free-form text box. - * const resultC = await ns.prompt("Please enter your name.", { type: "text" }); - * ns.tprint(`Hello, ${resultC}.`); - * - * // A drop-down list. - * const resultD = await ns.prompt("Please select your favorite fruit.", { - * type: "select", - * choices: ["Apple", "Banana", "Orange", "Pear", "Strawberry"] - * }); - * ns.tprint(`Your favorite fruit is ${resultD.toLowerCase()}.`); - * ``` - * - * @param txt - Text to appear in the prompt dialog box. - * @param options - Options to modify the prompt the player is shown. - * @returns True if the player clicks “Yes”; false if the player clicks “No”; or the value entered by the player. - */ - prompt( - txt: string, - options?: { type?: "boolean" | "text" | "select"; choices?: string[] }, - ): Promise; - - /** - * Open up a message box. - * @param msg - Message to alert. - */ - alert(msg: string): void; - - /** - * Queue a toast (bottom-right notification). - * @param msg - Message in the toast. - * @param variant - Type of toast. Must be one of success, info, warning, error. Defaults to success. - * @param duration - Duration of toast in ms. Can also be `null` to create a persistent toast. Defaults to 2000. - */ - toast(msg: string, variant?: ToastVariant | `${ToastVariant}`, duration?: number | null): void; - - /** - * Download a file from the internet. - * @remarks - * RAM cost: 0 GB - * - * Retrieves data from a URL and downloads it to a file on the specified server. - * The data can only be downloaded to a script (.script, .js) or a text file (.txt). - * If the file already exists, it will be overwritten by this command. - * Note that it will not be possible to download data from many websites because they - * do not allow cross-origin resource sharing (CORS). - * - * IMPORTANT: This is an asynchronous function that returns a Promise. - * The Promise’s resolved value will be a boolean indicating whether or not the data was - * successfully retrieved from the URL. Because the function is async and returns a Promise, - * it is recommended you use wget in NetscriptJS (Netscript 2.0). - * - * In NetscriptJS, you must preface any call to wget with the await keyword (like you would {@link NS.hack | hack} or {@link NS.sleep | sleep}). - * wget will still work in Netscript 1.0, but the function's execution will not be synchronous - * (i.e. it may not execute when you expect/want it to). - * Furthermore, since Promises are not supported in ES5, - * you will not be able to process the returned value of wget in Netscript 1.0. - * - * @example - * ```ts - * // NS1: - * wget("https://raw.githubusercontent.com/bitburner-official/bitburner-src/master/README.md", "game_readme.txt"); - * ``` - * @example - * ```ts - * // NS2: - * await ns.wget("https://raw.githubusercontent.com/bitburner-official/bitburner-src/master/README.md", "game_readme.txt"); - * ``` - * @param url - URL to pull data from. - * @param target - Filename to write data to. Must be script or text file. - * @param host - Optional hostname/ip of server for target file. - * @returns True if the data was successfully retrieved from the URL, false otherwise. - */ - wget(url: string, target: string, host?: string): Promise; - - /** - * Returns the amount of Faction favor required to be able to donate to a faction. - * - * @remarks RAM cost: 0.1 GB - * @returns Amount of Faction favor required to be able to donate to a faction. - */ - getFavorToDonate(): number; - - /** - * Get the current Bitnode multipliers. - * @remarks - * RAM cost: 4 GB - * - * Returns an object containing the current (or supplied) BitNode multipliers. - * This function requires you to be in Bitnode 5 or have Source-File 5 in order to run. - * The multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). - * The multipliers represent the difference between the current BitNode and - * the original BitNode (BitNode-1). - * - * For example, if the CrimeMoney multiplier has a value of 0.1, then that means - * that committing crimes in the current BitNode will only give 10% of the money - * you would have received in BitNode-1. - * - * @example - * ```ts - * // NS1: - * var mults = getBitNodeMultipliers(); - * print(mults.ServerMaxMoney); - * print(mults.HackExpGain); - * ``` - * @example - * ```ts - * // NS2: - * const {ServerMaxMoney, HackExpGain} = ns.getBitNodeMultipliers(); - * print(ServerMaxMoney); - * print(HackExpGain); - * ``` - * @returns Object containing the current BitNode multipliers. - */ - getBitNodeMultipliers(n?: number, lvl?: number): BitNodeMultipliers; - - /** - * Get information about the player. - * @remarks - * RAM cost: 0.5 GB - * - * Returns an object with information on the current player. - * - * @returns Player info - */ - getPlayer(): Player; - - /** - * Get information about the sources of income for this run. - * @remarks - * RAM cost: 1.0 GB - * - * Returns an object with information on the income sources for this run - * - * @returns Money sources - */ - getMoneySources(): MoneySources; - - /** - * Add callback function when the script dies - * @remarks - * RAM cost: 0 GB - * - * NS2 exclusive - * - * Add callback to be executed when the script dies. - */ - atExit(f: () => void): void; - - /** - * Move a file on the target server. - * @remarks - * RAM cost: 0 GB - * - * NS2 exclusive. - * - * Move the source file to the specified destination on the target server. - * - * This command only works for scripts and text files (.txt). It cannot, however, be used - * to convert from script to text file, or vice versa. - * - * This function can also be used to rename files. - * - * @param host - Hostname of target server. - * @param source - Filename of the source file. - * @param destination - Filename of the destination file. - */ - mv(host: string, source: string, destination: string): void; - - /** - * Parse command line flags. - * @remarks - * RAM cost: 0 GB - * - * Allows Unix-like flag parsing. - * @example - * ```ts - * // example.script - * var data = flags([ - * ['delay', 0], // a default number means this flag is a number - * ['server', 'foodnstuff'], // a default string means this flag is a string - * ['exclude', []], // a default array means this flag is a default array of string - * ['help', false], // a default boolean means this flag is a boolean - * ]); - * tprint(data); - * - * // example.js - * export async function main(ns) { - * const data = ns.flags([ - * ['delay', 0], // a default number means this flag is a number - * ['server', 'foodnstuff'], // a default string means this flag is a string - * ['exclude', []], // a default array means this flag is a default array of string - * ['help', false], // a default boolean means this flag is a boolean - * ]); - * ns.tprint(data); - * } - * - * // [home ~/]> run example.script - * // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false} - * // [home ~/]> run example.script --delay 3000 - * // {"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000} - * // [home ~/]> run example.script --delay 3000 --server harakiri-sushi - * // {"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} - * // [home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world - * // {"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} - * // [home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b - * // {"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]} - * // [home ~/]> run example.script --help - * // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true} - * ``` - */ - flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] }; - - /** - * Share your computer with your factions. - * @remarks - * RAM cost: 2.4 GB - * - * Increases your rep gain of hacking contracts while share is called. - * Scales with thread count. - */ - share(): Promise; - - /** - * Calculate your share power. Based on all the active share calls. - * @remarks - * RAM cost: 0.2 GB - */ - getSharePower(): number; - - enums: NSEnums; -} - -/** @public */ -export declare type NSEnums = { - CityName: typeof CityName; - CrimeType: typeof CrimeType; - FactionWorkType: typeof FactionWorkType; - GymType: typeof GymType; - JobName: typeof JobName; - LocationName: typeof LocationName; - ToastVariant: typeof ToastVariant; - UniversityClassType: typeof UniversityClassType; -}; - -/** - * Office for a division in a city. - * @public - */ -export declare interface Office { - /** City of the office */ - loc: CityName; - /** Maximum number of employee */ - size: number; - /** Maximum amount of energy of the employees */ - maxEne: number; - /** Maximum happiness of the employees */ - maxHap: number; - /** Maximum morale of the employees */ - maxMor: number; - /** Amount of employees */ - employees: number; - /** Average energy of the employees */ - avgEne: number; - /** Average happiness of the employees */ - avgHap: number; - /** Average morale of the employees */ - avgMor: number; - /** Production of the employees */ - employeeProd: Record; - /** Positions of the employees */ - employeeJobs: Record; -} - -/** - * Corporation Office API - * @remarks - * requires the Office API upgrade from your corporation. - * @public - */ - -export declare interface OfficeAPI { - /** - * Hire an employee. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param employeePosition - Position to place into. Defaults to "Unassigned". - * @returns True if an employee was hired, false otherwise - */ - hireEmployee(divisionName: string, city: CityName | `${CityName}`, employeePosition?: CorpEmployeePosition): boolean; - /** - * Upgrade office size. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param size - Amount of positions to open - */ - upgradeOfficeSize(divisionName: string, city: CityName | `${CityName}`, size: number): void; - /** - * Throw a party for your employees - * @param divisionName - Name of the division - * @param city - Name of the city - * @param costPerEmployee - Amount to spend per employee. - * @returns Multiplier for happiness and morale, or zero on failure - */ - throwParty(divisionName: string, city: CityName | `${CityName}`, costPerEmployee: number): number; - /** - * Buy coffee for your employees - * @param divisionName - Name of the division - * @param city - Name of the city - * @returns true if buying coffee was successful, false otherwise - */ - buyCoffee(divisionName: string, city: CityName | `${CityName}`): boolean; - /** - * Hire AdVert. - * @param divisionName - Name of the division - */ - hireAdVert(divisionName: string): void; - /** - * Purchase a research - * @param divisionName - Name of the division - * @param researchName - Name of the research - */ - research(divisionName: string, researchName: string): void; - /** - * Get data about an office - * @param divisionName - Name of the division - * @param city - Name of the city - * @returns Office data - */ - getOffice(divisionName: string, city: CityName | `${CityName}`): Office; - /** - * Get the cost to hire AdVert. - * @param divisionName - Name of the division. - * @returns The cost to hire AdVert. - */ - getHireAdVertCost(divisionName: string): number; - /** - * Get the number of times you have hired AdVert. - * @param divisionName - Name of the division. - * @returns Number of times you have hired AdVert. - */ - getHireAdVertCount(divisionName: string): number; - /** - * Get the cost to unlock research - * @param divisionName - Name of the division - * @param researchName - Name of the research - * @returns cost - */ - getResearchCost(divisionName: string, researchName: string): number; - /** - * Gets if you have unlocked a research - * @param divisionName - Name of the division - * @param researchName - Name of the research - * @returns true is unlocked, false if not - */ - hasResearched(divisionName: string, researchName: string): boolean; - /** - * Set the auto job assignment for a job - * @param divisionName - Name of the division - * @param city - Name of the city - * @param job - Name of the job - * @param amount - Number of employees to assign to that job - * @returns true if the employee count reached the target amount, false if not - */ - setAutoJobAssignment(divisionName: string, city: CityName | `${CityName}`, job: string, amount: number): boolean; - /** - * Cost to Upgrade office size. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param size - Amount of positions to open - * @returns Cost of upgrading the office - */ - getOfficeSizeUpgradeCost(divisionName: string, city: CityName | `${CityName}`, asize: number): number; -} - -/** @public */ -export declare enum OrderTypes { - LimitBuy = "Limit Buy Order", - LimitSell = "Limit Sell Order", - StopBuy = "Stop Buy Order", - StopSell = "Stop Sell Order", -} - -/** @public */ -export declare interface Person { - hp: HP; - skills: Skills; - exp: Skills; - mults: Multipliers; - city: CityName; -} - -/** @public */ -export declare interface Player extends Person { - money: number; - numPeopleKilled: number; - entropy: number; - jobs: Record; - factions: string[]; - bitNodeN: number; - totalPlaytime: number; - playtimeSinceLastAug: number; - playtimeSinceLastBitnode: number; - location: string; -} - -/** @public */ -export declare type PortData = string | number; - -/** @public */ -export declare enum PositionTypes { - Long = "L", - Short = "S", -} - -/** - * A single process on a server. - * @public - */ -export declare interface ProcessInfo { - /** Script name. */ - filename: string; - /** Number of threads script is running with */ - threads: number; - /** Script's arguments */ - args: (string | number | boolean)[]; - /** Process ID */ - pid: number; -} - -/** - * Product in a warehouse - * @public - */ -export declare interface Product { - /** Name of the product */ - name: string; - /** Demand for the product, only present if "Market Research - Demand" unlocked */ - dmd: number | undefined; - /** Competition for the product, only present if "Market Research - Competition" unlocked */ - cmp: number | undefined; - /** Product Rating */ - rat: number; - /** Product Properties. The data is \{qlt, per, dur, rel, aes, fea\} */ - properties: { [key: string]: number }; - /** Production cost */ - pCost: number; - /** Sell cost, can be "MP+5" */ - sCost: string | number; - /** Data refers to the production, sale, and quantity of the products - * These values are specific to a city - * For each city, the data is [qty, prod, sell] */ - cityData: Record; - /** Creation progress - A number between 0-100 representing percentage */ - developmentProgress: number; -} - -/** @public */ -export declare interface RecentScript extends RunningScript { - /** Timestamp of when the script was killed */ - timeOfDeath: Date; -} - -/** - * Reputation formulas - * @public - */ -export declare interface ReputationFormulas { - /** - * Calculate the total required amount of faction reputation to reach a target favor. - * @param favor - target faction favor. - * @returns The calculated faction reputation required. - */ - calculateFavorToRep(favor: number): number; - /** - * Calculate the resulting faction favor of a total amount of reputation. - * (Faction favor is gained whenever you install an Augmentation.) - * @param rep - amount of reputation. - * @returns The calculated faction favor. - */ - calculateRepToFavor(rep: number): number; - - /** - * Calculate how much rep would be gained. - * @param amount - Amount of money donated - * @param player - Player info from {@link NS.getPlayer | getPlayer} - */ - repFromDonation(amount: number, player: Person): number; -} - -/** @public */ -export declare interface RunningScript { - /** Arguments the script was called with */ - args: (string | number | boolean)[]; - /** Filename of the script */ - filename: string; - /** - * Script logs as an array. The newest log entries are at the bottom. - * Timestamps, if enabled, are placed inside `[brackets]` at the start of each line. - **/ - logs: string[]; - /** Total amount of hacking experience earned from this script when offline */ - offlineExpGained: number; - /** Total amount of money made by this script when offline */ - offlineMoneyMade: number; - /** Number of seconds that the script has been running offline */ - offlineRunningTime: number; - /** Total amount of hacking experience earned from this script when online */ - onlineExpGained: number; - /** Total amount of money made by this script when online */ - onlineMoneyMade: number; - /** Number of seconds that this script has been running online */ - onlineRunningTime: number; - /** Process ID. Must be an integer */ - pid: number; - /** How much RAM this script uses for ONE thread */ - ramUsage: number; - /** Hostname of the server on which this script runs */ - server: string; - /** Number of threads that this script runs with */ - threads: number; -} - -/** @public */ -export declare type ScriptArg = string | number | boolean; - -/** - * A single server. - * @public - */ -export declare interface Server { - /** - * How many CPU cores this server has. Maximum of 8. - * Affects magnitude of grow and weaken. - */ - cpuCores: number; - - /** Flag indicating whether the FTP port is open */ - ftpPortOpen: boolean; - - /** Flag indicating whether player has admin/root access to this server */ - hasAdminRights: boolean; - - /** Hostname. Must be unique */ - hostname: string; - - /** Flag indicating whether HTTP Port is open */ - httpPortOpen: boolean; - - /** IP Address. Must be unique */ - ip: string; - - /** Flag indicating whether player is currently connected to this server */ - isConnectedTo: boolean; - - /** RAM (GB) available on this server */ - maxRam: number; - - /** - * Name of company/faction/etc. that this server belongs to. - * Optional, not applicable to all Servers - */ - organizationName: string; - - /** RAM (GB) used. i.e. unavailable RAM */ - ramUsed: number; - - /** Flag indicating whether SMTP Port is open */ - smtpPortOpen: boolean; - - /** Flag indicating whether SQL Port is open */ - sqlPortOpen: boolean; - - /** Flag indicating whether the SSH Port is open */ - sshPortOpen: boolean; - - /** Flag indicating whether this is a purchased server */ - purchasedByPlayer: boolean; - - /** Flag indicating whether this server has a backdoor installed by a player */ - backdoorInstalled: boolean; - - /** - * Initial server security level - * (i.e. security level when the server was created) - */ - baseDifficulty: number; - - /** Server Security Level */ - hackDifficulty: number; - - /** Minimum server security level that this server can be weakened to */ - minDifficulty: number; - - /** How much money currently resides on the server and can be hacked */ - moneyAvailable: number; - - /** Maximum amount of money that this server can hold */ - moneyMax: number; - - /** Number of open ports required in order to gain admin/root access */ - numOpenPortsRequired: number; - - /** How many ports are currently opened on the server */ - openPortCount: number; - - /** Hacking level required to hack this server */ - requiredHackingSkill: number; - - /** - * Parameter that affects how effectively this server's money can - * be increased using the grow() Netscript function - */ - serverGrowth: number; -} - -/** - * Singularity API - * @remarks - * This API requires Source-File 4 to use. The RAM cost of all these functions is multiplied by 16/4/1 based on - * Source-File 4 levels. - * @public - */ -export declare interface Singularity { - /** - * Backup game save. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function will automatically opens the backup save prompt and claim the free faction favour if available. - * - */ - exportGame(): void; - - /** - * Returns Backup save bonus availability. - * @remarks - * RAM cost: 0.5 GB * 16/4/1 - * - * - * This function will check if there is a bonus for backing up your save. - * - */ - exportGameBonus(): boolean; - - /** - * Take university class. - * - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * This function will automatically set you to start taking a course at a university. - * If you are already in the middle of some “working” action (such as working at a - * company, for a faction, or on a program), then running this function will automatically - * cancel that action and give you your earnings. - * - * The cost and experience gains for all of these universities and classes are the same as - * if you were to manually visit and take these classes. - * - * @param universityName - Name of university. You must be in the correct city for whatever university you specify. - * @param courseName - Name of course. - * @param focus - Acquire player focus on this class. Optional. Defaults to true. - * @returns True if action is successfully started, false otherwise. - */ - universityCourse(universityName: string, courseName: string, focus?: boolean): boolean; - - /** - * Workout at the gym. - * - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - - * This function will automatically set you to start working out at a gym to train - * a particular stat. If you are already in the middle of some “working” action - * (such as working at a company, for a faction, or on a program), then running - * this function will automatically cancel that action and give you your earnings. - * - * The cost and experience gains for all of these gyms are the same as if you were - * to manually visit these gyms and train - * - * @param gymName - Name of gym. You must be in the correct city for whatever gym you specify. - * @param stat - The stat you want to train. - * @param focus - Acquire player focus on this gym workout. Optional. Defaults to true. - * @returns True if actions is successfully started, false otherwise. - */ - gymWorkout(gymName: string, stat: string, focus?: boolean): boolean; - - /** - * Travel to another city. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * This function allows the player to travel to any city. The cost for using this - * function is the same as the cost for traveling through the Travel Agency. - * - * @param city - City to travel to. - * @returns True if action is successful, false otherwise. - */ - travelToCity(city: CityName | `${CityName}`): boolean; - - /** - * Purchase the TOR router. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * This function allows you to automatically purchase a TOR router. The cost for - * purchasing a TOR router using this function is the same as if you were to - * manually purchase one. - * - * @returns True if actions is successful or you already own TOR router, false otherwise. - */ - purchaseTor(): boolean; - - /** - * Purchase a program from the dark web. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * This function allows you to automatically purchase programs. You MUST have a - * TOR router in order to use this function. The cost of purchasing programs - * using this function is the same as if you were purchasing them through the Dark - * Web using the Terminal buy command. - * - * @example - * ```ts - * // NS1 - * purchaseProgram("brutessh.exe"); - * ``` - * @example - * ```ts - * // NS2 - * ns.purchaseProgram("brutessh.exe"); - * ``` - * @param programName - Name of program to purchase. - * @returns True if the specified program is purchased, and false otherwise. - */ - purchaseProgram(programName: string): boolean; - - /** - * Check if the player is busy. - * @remarks - * RAM cost: 0.5 GB * 16/4/1 - * - * - * Returns a boolean indicating whether or not the player is currently performing an - * ‘action’. These actions include working for a company/faction, studying at a university, - * working out at a gym, creating a program, committing a crime, or carrying out a Hacking Mission. - * - * @returns True if the player is currently performing an ‘action’, false otherwise. - */ - isBusy(): boolean; - - /** - * Stop the current action. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function is used to end whatever ‘action’ the player is currently performing. - * The player will receive whatever money/experience/etc. he has earned from that action. - * - * The actions that can be stopped with this function are: - * - * * Studying at a university - * * Working out at a gym - * * Working for a company/faction - * * Creating a program - * * Committing a crime - * - * This function will return true if the player’s action was ended. - * It will return false if the player was not performing an action when this function was called. - * - * @returns True if the player’s action was ended, false if the player was not performing an action. - */ - stopAction(): boolean; - - /** - * Upgrade home computer RAM. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will upgrade amount of RAM on the player’s home computer. The cost is - * the same as if you were to do it manually. - * - * This function will return true if the player’s home computer RAM is successfully upgraded, and false otherwise. - * - * @returns True if the player’s home computer RAM is successfully upgraded, and false otherwise. - */ - upgradeHomeRam(): boolean; - - /** - * Upgrade home computer cores. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will upgrade amount of cores on the player’s home computer. The cost is - * the same as if you were to do it manually. - * - * This function will return true if the player’s home computer cores is successfully upgraded, and false otherwise. - * - * @returns True if the player’s home computer cores is successfully upgraded, and false otherwise. - */ - upgradeHomeCores(): boolean; - - /** - * Get the price of upgrading home RAM. - * @remarks - * RAM cost: 1.5 GB * 16/4/1 - * - * - * Returns the cost of upgrading the player’s home computer RAM. - * - * @returns Cost of upgrading the player’s home computer RAM. - */ - getUpgradeHomeRamCost(): number; - - /** - * Get the price of upgrading home cores. - * @remarks - * RAM cost: 1.5 GB * 16/4/1 - * - * - * Returns the cost of upgrading the player’s home computer cores. - * - * @returns Cost of upgrading the player’s home computer cores. - */ - getUpgradeHomeCoresCost(): number; - - /** - * Work for a company. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will set you to start working at your current job at a specified company at which you are employed. - * If you are already in the middle of some “working” action (such as working for a faction, training at a gym, or - * creating a program), then running this function will cancel that action. - * - * This function will return true if the player starts working, and false otherwise. - * - * @example - * ```js - * // NS1: - * var COMPANY_NAME = "Noodle Bar"; - * - * var success = singularity.workForCompany(COMPANY_NAME); - * if (!success) tprint("ERROR: Failed to start work at " + COMPANY_NAME + "."); - * ``` - * @example - * ```js - * // NS2: - * const COMPANY_NAME = "Noodle Bar"; - * - * let success = ns.singularity.workForCompany(COMPANY_NAME); - * if (!success) ns.tprint(`ERROR: Failed to start work at ${COMPANY_NAME].`); - * ``` - * @param companyName - Name of company to work for. Must be an exact match. Optional. If not specified, this - * argument defaults to the last job that you worked. - * @param focus - Acquire player focus on this work operation. Optional. Defaults to true. - * @returns True if the player starts working, and false otherwise. - */ - workForCompany(companyName: string, focus?: boolean): boolean; - - /** - * Quit jobs by company. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will finish work with the company provided and quit any jobs. - * - * @param companyName - Name of the company. - */ - quitJob(companyName?: string): void; - - /** - * Apply for a job at a company. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will automatically try to apply to the specified company - * for a position in the specified field. This function can also be used to - * apply for promotions by specifying the company and field you are already - * employed at. - * - * This function will return true if you successfully get a job/promotion, - * and false otherwise. Note that if you are trying to use this function to - * apply for a promotion and you don’t get one, it will return false. - * - * @param companyName - Name of company to apply to. - * @param field - Field to which you want to apply. - * @returns True if the player successfully get a job/promotion, and false otherwise. - */ - applyToCompany(companyName: string, field: string): boolean; - - /** - * Get company reputation. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function will return the amount of reputation you have at the specified company. - * If the company passed in as an argument is invalid, -1 will be returned. - * - * @param companyName - Name of the company. - * @returns Amount of reputation you have at the specified company. - */ - getCompanyRep(companyName: string): number; - - /** - * Get company favor. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function will return the amount of favor you have at the specified company. - * If the company passed in as an argument is invalid, -1 will be returned. - * - * @param companyName - Name of the company. - * @returns Amount of favor you have at the specified company. - */ - getCompanyFavor(companyName: string): number; - - /** - * Get company favor gain. - * @remarks - * RAM cost: 0.75 GB * 16/4/1 - * - * - * This function will return the amount of favor you will gain for the specified - * company when you reset by installing Augmentations. - * - * @param companyName - Name of the company. - * @returns Amount of favor you gain at the specified company when you reset by installing Augmentations. - */ - getCompanyFavorGain(companyName: string): number; - - /** - * List all current faction invitations. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * Returns an array with the name of all Factions you currently have outstanding invitations from. - * - * @returns Array with the name of all Factions you currently have outstanding invitations from. - */ - checkFactionInvitations(): string[]; - - /** - * Join a faction. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will automatically accept an invitation from a faction and join it. - * - * @param faction - Name of faction to join. - * @returns True if player joined the faction, and false otherwise. - */ - joinFaction(faction: string): boolean; - - /** - * Work for a faction. - * @remarks - * RAM cost: 3 GB * 16/4/1 - * - * - * This function will set you to start working for the specified faction. You must be a member of the faction and - * that faction must have the specified work type, or else this function will fail. If you are already in the - * middle of some “working” action (such as working for a company, training at a gym, or creating a program), then - * running this function will cancel that action. - * - * This function will return true if you successfully start working for the specified faction, and false otherwise. - * - * @example - * ```js - * // NS1 - * var FACTION_NAME = "CyberSec", WORK_TYPE = "hacking"; - * - * var success = singularity.workForFaction(FACTION_NAME, WORK_TYPE); - * if (!success) tprint("ERROR: Failed to start work for " + FACTION_NAME + " with work type " + WORK_TYPE); - * ``` - * @example - * ```js - * // NS2 - * const FACTION_NAME = "CyberSec", WORK_TYPE = "hacking"; - * - * let success = ns.singularity.workForFaction(FACTION_NAME, WORK_TYPE); - * if (!success) ns.tprint(`ERROR: Failed to start work for ${FACTION_NAME} with work type ${WORK_TYPE}.`) - * ``` - * @param faction - Name of faction to work for. - * @param workType - Type of work to perform for the faction. - * @param focus - Acquire player focus on this work operation. Optional. Defaults to true. - * @returns True if the player starts working, and false otherwise. - */ - workForFaction(faction: string, workType: FactionWorkType | `${FactionWorkType}`, focus?: boolean): boolean; - - /** - * Get faction reputation. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function returns the amount of reputation you have for the specified faction. - * - * @param faction - Name of faction to work for. - * @returns Amount of reputation you have for the specified faction. - */ - getFactionRep(faction: string): number; - - /** - * Get faction favor. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function returns the amount of favor you have for the specified faction. - * - * @param faction - Name of faction. - * @returns Amount of favor you have for the specified faction. - */ - getFactionFavor(faction: string): number; - - /** - * Get faction favor gain. - * @remarks - * RAM cost: 0.75 GB * 16/4/1 - * - * - * This function returns the amount of favor you will gain for the specified - * faction when you reset by installing Augmentations. - * - * @param faction - Name of faction. - * @returns Amount of favor you will gain for the specified faction when you reset by installing Augmentations. - */ - getFactionFavorGain(faction: string): number; - - /** - * Donate to a faction. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * Attempts to donate money to the specified faction in exchange for reputation. - * Returns true if you successfully donate the money, and false otherwise. - * - * @param faction - Name of faction to donate to. - * @param amount - Amount of money to donate. - * @returns True if the money was donated, and false otherwise. - */ - donateToFaction(faction: string, amount: number): boolean; - - /** - * Create a program. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function will automatically set you to start working on creating the - * specified program. If you are already in the middle of some “working” action - * (such as working for a company, training at a gym, or taking a course), then - * running this function will automatically cancel that action and give you your - * earnings. - * - * This function returns true if you successfully start working on the specified program, and false otherwise. - * - * Note that creating a program using this function has the same hacking level requirements as it normally would. - * These level requirements are: - * * BruteSSH.exe: 50 - * * FTPCrack.exe: 100 - * * relaySMTP.exe: 250 - * * HTTPWorm.exe: 500 - * * SQLInject.exe: 750 - * * DeepscanV1.exe: 75 - * * DeepscanV2.exe: 400 - * * ServerProfiler.exe: 75 - * * AutoLink.exe: 25 - * - * @example - * ```ts - * // NS1: - * createProgram(“relaysmtp.exe”); - * ``` - * @example - * ```ts - * // NS2: - * ns.createProgram(“relaysmtp.exe”); - * ``` - * @param program - Name of program to create. - * @param focus - Acquire player focus on this program creation. Optional. Defaults to true. - * @returns True if you successfully start working on the specified program, and false otherwise. - */ - createProgram(program: string, focus?: boolean): boolean; - - /** - * Commit a crime. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function is used to automatically attempt to commit crimes. - * If you are already in the middle of some ‘working’ action (such - * as working for a company or training at a gym), then running this - * function will automatically cancel that action and give you your - * earnings. - * - * This function returns the number of milliseconds it takes to attempt the - * specified crime (e.g It takes 60 seconds to attempt the ‘Rob Store’ crime, - * so running `commitCrime('Rob Store')` will return 60,000). - * - * @param crime - Name of crime to attempt. - * @param focus - Acquire player focus on this crime. Optional. Defaults to true. - * @returns The number of milliseconds it takes to attempt the specified crime. - */ - commitCrime(crime: CrimeType | `${CrimeType}`, focus?: boolean): number; - - /** - * Get chance to successfully commit a crime. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function returns your chance of success at committing the specified crime. - * - * @param crime - Name of crime. - * @returns Chance of success at committing the specified crime. - */ - getCrimeChance(crime: CrimeType | `${CrimeType}`): number; - - /** - * Get stats related to a crime. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * Returns the stats of the crime. - * - * @param crime - Name of crime. - * @returns The stats of the crime. - */ - getCrimeStats(crime: CrimeType | `${CrimeType}`): CrimeStats; - - /** - * Get a list of owned augmentation. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function returns an array containing the names (as strings) of all Augmentations you have. - * - * @param purchased - Specifies whether the returned array should include Augmentations you have purchased but not - * yet installed. By default, this argument is false which means that the return value will NOT have the purchased - * Augmentations. - * @returns Array containing the names (as strings) of all Augmentations you have. - */ - getOwnedAugmentations(purchased?: boolean): string[]; - - /** - * Get a list of acquired Source-Files. - * @remarks - * RAM cost: 5 GB - * - * - * Returns an array of source files - * - * @returns Array containing an object with number and level of the source file. - */ - getOwnedSourceFiles(): SourceFileLvl[]; - - /** - * Get a list of augmentation available from a faction. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * Returns an array containing the names (as strings) of all Augmentations - * that are available from the specified faction. - * - * @param faction - Name of faction. - * @returns Array containing the names of all Augmentations. - */ - getAugmentationsFromFaction(faction: string): string[]; - - /** - * Get the pre-requisite of an augmentation. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function returns an array with the names of the prerequisite Augmentation(s) for the specified Augmentation. - * If there are no prerequisites, a blank array is returned. - * - * @param augName - Name of Augmentation. - * @returns Array with the names of the prerequisite Augmentation(s) for the specified Augmentation. - */ - getAugmentationPrereq(augName: string): string[]; - - /** - * Get price of an augmentation. - * @remarks - * RAM cost: 2.5 GB * 16/4/1 - * - * - * @param augName - Name of Augmentation. - * @returns Price of the augmentation. - */ - getAugmentationPrice(augName: string): number; - - /** - * Get base price of an augmentation. - * @remarks - * RAM cost: 2.5 GB * 16/4/1 - * - * - * @param augName - Name of Augmentation. - * @returns Base price of the augmentation, before price multiplier. - */ - getAugmentationBasePrice(augName: string): number; - - /** - * Get reputation requirement of an augmentation. - * @remarks - * RAM cost: 2.5 GB * 16/4/1 - * - * - * @param augName - Name of Augmentation. - * @returns Reputation requirement of the augmentation. - */ - getAugmentationRepReq(augName: string): number; - - /** - * Purchase an augmentation - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function will try to purchase the specified Augmentation through the given Faction. - * - * This function will return true if the Augmentation is successfully purchased, and false otherwise. - * - * @param faction - Name of faction to purchase Augmentation from. - * @param augmentation - Name of Augmentation to purchase. - * @returns True if the Augmentation is successfully purchased, and false otherwise. - */ - purchaseAugmentation(faction: string, augmentation: string): boolean; - - /** - * Get the stats of an augmentation. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function returns augmentation stats. - * - * @param name - Name of Augmentation. CASE-SENSITIVE. - * @returns Augmentation stats. - */ - getAugmentationStats(name: string): Multipliers; - - /** - * Install your purchased augmentations. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function will automatically install your Augmentations, resetting the game as usual. If you do not own uninstalled Augmentations then the game will not reset. - * - * @param cbScript - This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. - */ - installAugmentations(cbScript?: string): void; - - /** - * Hospitalize the player. - * @remarks - * RAM cost: 0.25 GB * 16/4/1 - */ - hospitalize(): void; - - /** - * Soft reset the game. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * This function will perform a reset even if you don’t have any augmentation installed. - * - * @param cbScript - This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. - */ - softReset(cbScript: string): void; - - /** - * Go to a location. - * @remarks - * RAM cost: 5 GB * 16/4/1 - * - * - * Move the player to a specific location. - * - * @param locationName - Name of the location. - * @returns True if the player was moved there, false otherwise. - */ - goToLocation(locationName: string): boolean; - - /** - * Get the current server. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * @returns Name of the current server. - */ - getCurrentServer(): string; - - /** - * Connect to a server. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * Run the connect HOSTNAME command in the terminal. Can only connect to neighbors. - * - * @returns True if the connect command was successful, false otherwise. - */ - connect(hostname: string): boolean; - - /** - * Run the hack command in the terminal. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * @returns Amount of money stolen by manual hacking. - */ - manualHack(): Promise; - - /** - * Run the backdoor command in the terminal. - * @remarks - * RAM cost: 2 GB * 16/4/1 - * - * - * @returns Promise waiting for the installation to finish. - */ - installBackdoor(): Promise; - - /** - * Check if the player is focused. - * @remarks - * RAM cost: 0.1 GB * 16/4/1 - * - * - * @returns True if the player is focused. - */ - isFocused(): boolean; - - /** - * Set the players focus. - * @remarks - * RAM cost: 0.1 GB * 16/4/1 - * - * @returns True if the focus was changed. - */ - setFocus(focus: boolean): boolean; - - /** - * Get a list of programs offered on the dark web. - * @remarks - * RAM cost: 1 GB * 16/4/1 - * - * - * This function allows the player to get a list of programs available for purchase - * on the dark web. Players MUST have purchased Tor to get the list of programs - * available. If Tor has not been purchased yet, this function will return an - * empty list. - * - * @example - * ```ts - * // NS1 - * getDarkwebPrograms(); - * // returns ['BruteSSH.exe', 'FTPCrack.exe'...etc] - * ``` - * @example - * ```ts - * // NS2 - * ns.getDarkwebPrograms(); - * // returns ['BruteSSH.exe', 'FTPCrack.exe'...etc] - * ``` - * @returns - a list of programs available for purchase on the dark web, or [] if Tor has not - * been purchased - */ - getDarkwebPrograms(): string[]; - - /** - * Check the price of an exploit on the dark web - * @remarks - * RAM cost: 0.5 GB * 16/4/1 - * - * - * This function allows you to check the price of a darkweb exploit/program. - * You MUST have a TOR router in order to use this function. The price returned - * by this function is the same price you would see with buy -l from the terminal. - * Returns the cost of the program if it has not been purchased yet, 0 if it - * has already been purchased, or -1 if Tor has not been purchased (and thus - * the program/exploit is not available for purchase). - * - * If the program does not exist, an error is thrown. - * - * - * @example - * ```ts - * // NS1 - * getDarkwebProgramCost("brutessh.exe"); - * ``` - * @example - * ```ts - * // NS2 - * ns.getDarkwebProgramCost("brutessh.exe"); - * ``` - * @param programName - Name of program to check the price of - * @returns Price of the specified darkweb program - * (if not yet purchased), 0 if it has already been purchased, or -1 if Tor has not been - * purchased. Throws an error if the specified program/exploit does not exist - */ - getDarkwebProgramCost(programName: string): number; - - /** - * b1t_flum3 into a different BN. - * @remarks - * RAM cost: 16 GB * 16/4/1 - * - * @param nextBN - BN number to jump to - * @param callbackScript - Name of the script to launch in the next BN. - */ - b1tflum3(nextBN: number, callbackScript?: string): void; - - /** - * Destroy the w0r1d_d43m0n and move on to the next BN. - * @remarks - * RAM cost: 32 GB * 16/4/1 - * - * You must have the special augment installed and the required hacking level - * OR - * Completed the final black op. - * - * @param nextBN - BN number to jump to - * @param callbackScript - Name of the script to launch in the next BN. - */ - destroyW0r1dD43m0n(nextBN: number, callbackScript?: string): void; - - /** - * Get the current work the player is doing. - * @remarks - * RAM cost: 0.5 GB * 16/4/1 - * - * @returns - An object representing the current work. Fields depend on the kind of work. - */ - getCurrentWork(): any | null; -} - -/** @public */ -export declare interface Skills { - hacking: number; - strength: number; - defense: number; - dexterity: number; - agility: number; - charisma: number; - intelligence: number; -} - -/** - * Skills formulas - * @public - */ -export declare interface SkillsFormulas { - /** - * Calculate skill level. - * @param exp - experience for that skill - * @param skillMult - Multiplier for that skill, defaults to 1. - * @returns The calculated skill level. - */ - calculateSkill(exp: number, skillMult?: number): number; - /** - * Calculate exp for skill level. - * @param skill - target skill level - * @param skillMult - Multiplier for that skill, defaults to 1. - * @returns The calculated exp required. - */ - calculateExp(skill: number, skillMult?: number): number; -} - -/** - * Sleeve API - * @remarks - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this API. - * @public - */ -export declare interface Sleeve { - /** - * Get the number of sleeves you own. - * @remarks - * RAM cost: 4 GB - * - * Return the number of duplicate sleeves the player has. - * - * @returns number of duplicate sleeves the player has. - */ - getNumSleeves(): number; - - /** - * Get information about a sleeve. - * @remarks - * RAM cost: 4 GB - * - * Return a person object for this sleeve - * - * storedCycles is the amount of Bonus Time in cycles, each translates to 200ms - * - * @param sleeveNumber - Index of the sleeve to retrieve information. - * @returns Object containing information about this sleeve. - */ - getSleeve(sleeveNumber: number): SleevePerson; - - /** - * Get task of a sleeve. - * @remarks - * RAM cost: 4 GB - * - * Return the current task that the sleeve is performing, or null if the sleeve is idle. All tasks have a "type" - * property, and other available properties depend on the type of task. - * - * @param sleeveNumber - Index of the sleeve to retrieve task from. - * @returns Object containing information for the current task that the sleeve is performing. - */ - getTask(sleeveNumber: number): SleeveTask | null; - - /** - * Set a sleeve to shock recovery. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @param sleeveNumber - Index of the sleeve to start recovery. - * @returns True if this action was set successfully, false otherwise. - */ - setToShockRecovery(sleeveNumber: number): boolean; - - /** - * Set a sleeve to synchronize. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @param sleeveNumber - Index of the sleeve to start synchronizing. - * @returns True if this action was set successfully, false otherwise. - */ - setToSynchronize(sleeveNumber: number): boolean; - - /** - * Set a sleeve to commit crime. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not this action was set successfully (false if an invalid action is specified). - * - * @example - * ```ts - * // Assigns the first sleeve to Homicide. - * ns.sleeve.setToCommitCrime(0, "Homicide"); - * - * // Assigns the second sleeve to Grand Theft Auto, using enum - * const crimes = ns.enums.CrimeType; - * ns.sleeve.setToCommitCrime(1, crimes.grandTheftAuto) - * ``` - * - * @param sleeveNumber - Index of the sleeve to start committing crime. Sleeves are numbered starting from 0. - * @param name - Name of the crime. - * @returns True if this action was set successfully, false otherwise. - */ - setToCommitCrime(sleeveNumber: number, crimeType: CrimeType | `${CrimeType}`): boolean; - - /** - * Set a sleeve to work for a faction. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not the sleeve started working or this faction. - * - * @param sleeveNumber - Index of the sleeve to work for the faction. - * @param factionName - Name of the faction to work for. - * @param factionWorkType - Name of the action to perform for this faction. - * @returns True if the sleeve started working on this faction, false otherwise, can also throw on errors - */ - setToFactionWork( - sleeveNumber: number, - factionName: string, - factionWorkType: FactionWorkType | `${FactionWorkType}`, - ): boolean | undefined; - - /** - * Set a sleeve to work for a company. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not the sleeve started working or this company. - * - * @param sleeveNumber - Index of the sleeve to work for the company. - * @param companyName - Name of the company to work for. - * @returns True if the sleeve started working on this company, false otherwise. - */ - setToCompanyWork(sleeveNumber: number, companyName: string): boolean; - - /** - * Set a sleeve to take a class at a university. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @param sleeveNumber - Index of the sleeve to start taking class. - * @param university - Name of the university to attend. - * @param className - Name of the class to follow. - * @returns True if this action was set successfully, false otherwise. - */ - setToUniversityCourse(sleeveNumber: number, university: string, className: string): boolean; - - /** - * Set a sleeve to workout at the gym. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not the sleeve started working out. - * - * @param sleeveNumber - Index of the sleeve to workout at the gym. - * @param gymName - Name of the gym. - * @param stat - Name of the stat to train. - * @returns True if the sleeve started working out, false otherwise. - */ - setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean; - - /** - * Make a sleeve travel to another city. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not the sleeve reached destination. - * - * @param sleeveNumber - Index of the sleeve to travel. - * @param city - Name of the destination city. - * @returns True if the sleeve reached destination, false otherwise. - */ - travel(sleeveNumber: number, city: CityName | `${CityName}`): boolean; - - /** - * Get augmentations installed on a sleeve. - * @remarks - * RAM cost: 4 GB - * - * Return a list of augmentation names that this sleeve has installed. - * - * @param sleeveNumber - Index of the sleeve to retrieve augmentations from. - * @returns List of augmentation names that this sleeve has installed. - */ - getSleeveAugmentations(sleeveNumber: number): string[]; - - /** - * Get price of an augmentation. - * @remarks - * RAM cost: 4 GB - * - * - * @param augName - Name of Augmentation. - * @returns Price of the augmentation. - */ - getSleeveAugmentationPrice(augName: string): number; - - /** - * Get reputation requirement of an augmentation. - * @remarks - * RAM cost: 4 GB - * - * - * @param augName - Name of Augmentation. - * @returns Reputation requirement of the augmentation. - */ - getSleeveAugmentationRepReq(augName: string): number; - - /** - * List purchasable augs for a sleeve. - * @remarks - * RAM cost: 4 GB - * - * Return a list of augmentations that the player can buy for this sleeve. - * - * @param sleeveNumber - Index of the sleeve to retrieve purchasable augmentations from. - * @returns List of augmentations that the player can buy for this sleeve. - */ - getSleevePurchasableAugs(sleeveNumber: number): AugmentPair[]; - - /** - * Purchase an aug for a sleeve. - * @remarks - * RAM cost: 4 GB - * - * Return true if the aug was purchased and installed on the sleeve. - * - * @param sleeveNumber - Index of the sleeve to buy an aug for. - * @param augName - Name of the aug to buy. Must be an exact match. - * @returns True if the aug was purchased and installed on the sleeve, false otherwise. - */ - purchaseSleeveAug(sleeveNumber: number, augName: string): boolean; - - /** - * Set a sleeve to perform bladeburner actions. - * @remarks - * RAM cost: 4 GB - * - * Return a boolean indicating whether or not the sleeve started working out. - * - * @param sleeveNumber - Index of the sleeve to workout at the gym. - * @param action - Name of the action to be performed. - * @param contract - Name of the contract if applicable. - * @returns True if the sleeve started working out, false otherwise. - */ - setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): boolean; -} - -/** @public */ -export declare type SleeveBladeburnerTask = { - type: "BLADEBURNER"; - actionType: "General" | "Contracts"; - actionName: string; -}; - -/** @public */ -export declare type SleeveClassTask = { - type: "CLASS"; - classType: UniversityClassType | GymType | `${UniversityClassType}` | `${GymType}`; - location: LocationName | `${LocationName}`; -}; - -/** @public */ -export declare type SleeveCompanyTask = { type: "COMPANY"; companyName: string }; - -/** @public */ -export declare type SleeveCrimeTask = { type: "CRIME"; crimeType: CrimeType | `${CrimeType}` }; - -/** @public */ -export declare type SleeveFactionTask = { - type: "FACTION"; - factionWorkType: FactionWorkType | `${FactionWorkType}`; - factionName: string; -}; - -/** @public */ -export declare type SleeveInfiltrateTask = { type: "INFILTRATE" }; - -/** @public */ -export declare interface SleevePerson extends Person { - /** Number 0-100 Experience earned and shared is multiplied with shock% before sync% */ - shock: number; - /** Number 1-100 Experience earned by this sleeve and shared with the player is multiplied with sync% after shock% */ - sync: number; - /** Number 1-100 initial Value of sync on BN start */ - memory: number; - /** Number of 200ms cycles which are stored as bonus time */ - storedCycles: number; -} - -/** @public */ -export declare type SleeveRecoveryTask = { type: "RECOVERY" }; - -/** @public */ -export declare type SleeveSupportTask = { type: "SUPPORT" }; - -/** @public */ -export declare type SleeveSynchroTask = { type: "SYNCHRO" }; - -/** Object representing a sleeve current task. - * @public */ -export declare type SleeveTask = -| SleeveBladeburnerTask -| SleeveClassTask -| SleeveCompanyTask -| SleeveCrimeTask -| SleeveFactionTask -| SleeveInfiltrateTask -| SleeveRecoveryTask -| SleeveSupportTask -| SleeveSynchroTask; - -/** @public */ -export declare interface SourceFileLvl { - /** The number of the source file */ - n: number; - /** The level of the source file */ - lvl: number; -} - -/** - * Stanek's Gift API. - * @public - */ -export declare interface Stanek { - /** - * Stanek's Gift width. - * @remarks - * RAM cost: 0.4 GB - * @returns The width of the gift. - */ - giftWidth(): number; - /** - * Stanek's Gift height. - * @remarks - * RAM cost: 0.4 GB - * @returns The height of the gift. - */ - giftHeight(): number; - - /** - * Charge a fragment, increasing its power. - * @remarks - * RAM cost: 0.4 GB - * @param rootX - rootX Root X against which to align the top left of the fragment. - * @param rootY - rootY Root Y against which to align the top left of the fragment. - * @returns Promise that lasts until the charge action is over. - */ - chargeFragment(rootX: number, rootY: number): Promise; - - /** - * List possible fragments. - * @remarks - * RAM cost: 0 GB - * - * @returns List of possible fragments. - */ - fragmentDefinitions(): Fragment[]; - - /** - * List of fragments in Stanek's Gift. - * @remarks - * RAM cost: 5 GB - * - * @returns List of active fragments placed on Stanek's Gift. - */ - activeFragments(): ActiveFragment[]; - - /** - * Clear the board of all fragments. - * @remarks - * RAM cost: 0 GB - */ - clearGift(): void; - - /** - * Check if fragment can be placed at specified location. - * @remarks - * RAM cost: 0.5 GB - * - * @param rootX - rootX Root X against which to align the top left of the fragment. - * @param rootY - rootY Root Y against which to align the top left of the fragment. - * @param rotation - rotation A number from 0 to 3, the mount of 90 degree turn to take. - * @param fragmentId - fragmentId ID of the fragment to place. - * @returns true if the fragment can be placed at that position. false otherwise. - */ - canPlaceFragment(rootX: number, rootY: number, rotation: number, fragmentId: number): boolean; - /** - * Place fragment on Stanek's Gift. - * @remarks - * RAM cost: 5 GB - * - * @param rootX - X against which to align the top left of the fragment. - * @param rootY - Y against which to align the top left of the fragment. - * @param rotation - A number from 0 to 3, the mount of 90 degree turn to take. - * @param fragmentId - ID of the fragment to place. - * @returns true if the fragment can be placed at that position. false otherwise. - */ - placeFragment(rootX: number, rootY: number, rotation: number, fragmentId: number): boolean; - /** - * Get placed fragment at location. - * @remarks - * RAM cost: 5 GB - * - * @param rootX - X against which to align the top left of the fragment. - * @param rootY - Y against which to align the top left of the fragment. - * @returns The fragment at [rootX, rootY], if any. - */ - getFragment(rootX: number, rootY: number): ActiveFragment | undefined; - - /** - * Remove fragment at location. - * @remarks - * RAM cost: 0.15 GB - * - * @param rootX - X against which to align the top left of the fragment. - * @param rootY - Y against which to align the top left of the fragment. - * @returns The fragment at [rootX, rootY], if any. - */ - removeFragment(rootX: number, rootY: number): boolean; - - /** - * Accept Stanek's Gift by joining the Church of the Machine God - * @remarks - * RAM cost: 2 GB - * - * @returns true if the player is a member of the church and has the gift installed, - * false otherwise. - */ - acceptGift(): boolean; -} - -/** - * Return value of {@link TIX.getOrders | getOrders} - * - * Keys are stock symbols, properties are arrays of {@link StockOrderObject} - * @public - */ -export declare interface StockOrder { - [key: string]: StockOrderObject[]; -} - -/** - * Value in map of {@link StockOrder} - * @public - */ -export declare interface StockOrderObject { - /** Number of shares */ - shares: number; - /** Price per share */ - price: number; - /** Order type */ - type: OrderTypes; - /** Order position */ - position: PositionTypes; -} - -/** - * Stock market API - * @public - */ -export declare interface TIX { - /** - * Returns true if the player has access to a WSE Account - * @remarks RAM cost: 0.05 GB - */ - hasWSEAccount(): boolean; - /** - * Returns true if the player has access to the TIX API - * @remarks RAM cost: 0.05 GB - */ - hasTIXAPIAccess(): boolean; - /** - * Returns true if the player has access to the 4S Data - * @remarks RAM cost: 0.05 GB - */ - has4SData(): boolean; - /** - * Returns true if the player has access to the 4SData TIX API - * @remarks RAM cost: 0.05 GB - */ - has4SDataTIXAPI(): boolean; - /** - * Returns an array of the symbols of the tradable stocks - * - * @remarks RAM cost: 2 GB - * @returns Array of the symbols of the tradable stocks. - */ - getSymbols(): string[]; - - /** - * Returns the price of a stock. - * - * @remarks - * RAM cost: 2 GB - * - * The stock’s price is the average of its bid and ask prices. This function requires - * that you have the following: - * - * 1. WSE Account - * - * 1. TIX API Access - * - * @example - * ```js - * const fourSigmaStockPrice = ns.stock.getPrice("FSIG"); - * - * // Choose the first stock symbol from the array of stock symbols. Get the price - * // of the corresponding stock. - * const sym = ns.stock.getSymbols()[0]; - * ns.tprint("Stock symbol: " + sym); - * ns.tprint("Stock price: " + ns.stock.getPrice(sym)); - * ``` - * @param sym - Stock symbol. - * @returns The price of a stock. - */ - getPrice(sym: string): number; - - /** - * Returns the organization associated with a stock symbol. - * - * @remarks - * RAM cost: 2 GB - * - * The organization associated with the corresponding stock symbol. This function - * requires that you have the following: - * - * 1. WSE Account - * - * 1. TIX API Access - * - * @example - * ```ts - * // NS1 - * stock.getOrganization("FSIG"); - * - * // Choose the first stock symbol from the array of stock symbols. Get the - * // organization associated with the corresponding stock symbol - * var sym = stock.getSymbols()[0]; - * tprint("Stock symbol: " + sym); - * tprint("Stock organization: " + stock.getOrganization(sym)); - * ``` - * @example - * ```ts - * // NS2 - * ns.stock.getOrganization("FSIG"); - * - * // Choose the first stock symbol from the array of stock symbols. Get the - * // organization associated with the corresponding stock symbol. - * const sym = ns.stock.getSymbols()[0]; - * ns.tprint("Stock symbol: " + sym); - * ns.tprint("Stock organization: " + ns.stock.getOrganization(sym)); - * ``` - * @param sym - Stock symbol. - * @returns The organization assicated with the stock symbol. - */ - getOrganization(sym: string): string; - - /** - * Returns the ask price of that stock. - * @remarks RAM cost: 2 GB - * - * @param sym - Stock symbol. - * @returns The ask price of a stock. - */ - getAskPrice(sym: string): number; - - /** - * Returns the bid price of that stock. - * @remarks RAM cost: 2 GB - * - * @param sym - Stock symbol. - * @returns The bid price of a stock. - */ - getBidPrice(sym: string): number; - - /** - * Returns the player’s position in a stock. - * @remarks - * RAM cost: 2 GB - * Returns an array of four elements that represents the player’s position in a stock. - * - * The first element is the returned array is the number of shares the player owns of - * the stock in the Long position. The second element in the array is the average price - * of the player’s shares in the Long position. - * - * The third element in the array is the number of shares the player owns of the stock - * in the Short position. The fourth element in the array is the average price of the - * player’s Short position. - * - * All elements in the returned array are numeric. - * - * @example - * ```ts - * // NS1 - * var pos = stock.getPosition("ECP"); - * var shares = pos[0]; - * var avgPx = pos[1]; - * var sharesShort = pos[2]; - * var avgPxShort = pos[3]; - * ``` - * @example - * ```ts - * // NS2 - * const [shares, avgPx, sharesShort, avgPxShort] = ns.stock.getPosition("ECP"); - * ``` - * @param sym - Stock symbol. - * @returns Array of four elements that represents the player’s position in a stock. - */ - getPosition(sym: string): [number, number, number, number]; - - /** - * Returns the maximum number of shares of a stock. - * @remarks - * RAM cost: 2 GB - * This is the maximum amount of the stock that can be purchased - * in both the Long and Short positions combined. - * - * @param sym - Stock symbol. - * @returns Maximum number of shares that the stock has. - */ - getMaxShares(sym: string): number; - - /** - * Calculates cost of buying stocks. - * @remarks - * RAM cost: 2 GB - * Calculates and returns how much it would cost to buy a given number of shares of a stock. - * This takes into account spread, large transactions influencing the price of the stock and commission fees. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to purchase. - * @param posType - Specifies whether the order is a “Long” or “Short” position. - * @returns Cost to buy a given number of shares of a stock. - */ - getPurchaseCost(sym: string, shares: number, posType: string): number; - - /** - * Calculate profit of selling stocks. - * @remarks - * RAM cost: 2 GB - * Calculates and returns how much you would gain from selling a given number of shares of a stock. - * This takes into account spread, large transactions influencing the price of the stock and commission fees. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to sell. - * @param posType - Specifies whether the order is a “Long” or “Short” position. - * @returns Gain from selling a given number of shares of a stock. - */ - getSaleGain(sym: string, shares: number, posType: string): number; - - /** - * Buy stocks. - * @remarks - * RAM cost: 2.5 GB - * Attempts to purchase shares of a stock using a Market Order. - * - * If the player does not have enough money to purchase the specified number of shares, - * then no shares will be purchased. Remember that every transaction on the stock exchange - * costs a certain commission fee. - * - * If this function successfully purchases the shares, it will return the stock price at which - * each share was purchased. Otherwise, it will return 0. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to purchased. Must be positive. Will be rounded to nearest integer. - * @returns The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. - */ - buyStock(sym: string, shares: number): number; - - /** - * Sell stocks. - * @remarks - * RAM cost: 2.5 GB - * Attempts to sell shares of a stock using a Market Order. - * - * If the specified number of shares in the function exceeds the amount that the player - * actually owns, then this function will sell all owned shares. Remember that every - * transaction on the stock exchange costs a certain commission fee. - * - * The net profit made from selling stocks with this function is reflected in the script’s - * statistics. This net profit is calculated as: - * - * shares * (sell_price - average_price_of_purchased_shares) - * - * If the sale is successful, this function will return the stock price at - * which each share was sold. Otherwise, it will return 0. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to sell. Must be positive. Will be rounded to nearest integer. - * @returns The stock price at which each share was sold, otherwise 0 if the shares weren't sold. - */ - sellStock(sym: string, shares: number): number; - - /** - * Short stocks. - * @remarks - * RAM cost: 2.5 GB - * Attempts to purchase a short position of a stock using a Market Order. - * - * The ability to short a stock is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * If the player does not have enough money to purchase the specified number of shares, - * then no shares will be purchased. Remember that every transaction on the stock exchange - * costs a certain commission fee. - * - * If the purchase is successful, this function will return the stock price at which each - * share was purchased. Otherwise, it will return 0. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to short. Must be positive. Will be rounded to nearest integer. - * @returns The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. - */ - buyShort(sym: string, shares: number): number; - - /** - * Sell short stock. - * @remarks - * RAM cost: 2.5 GB - * Attempts to sell a short position of a stock using a Market Order. - * - * The ability to short a stock is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * If the specified number of shares exceeds the amount that the player actually owns, - * then this function will sell all owned shares. Remember that every transaction on - * the stock exchange costs a certain commission fee. - * - * If the sale is successful, this function will return the stock price at which each - * share was sold. Otherwise it will return 0. - * - * @param sym - Stock symbol. - * @param shares - Number of shares to sell. Must be positive. Will be rounded to nearest integer. - * @returns The stock price at which each share was sold, otherwise 0 if the shares weren't sold. - */ - sellShort(sym: string, shares: number): number; - - /** - * Place order for stocks. - * @remarks - * RAM cost: 2.5 GB - * Places an order on the stock market. This function only works for Limit and Stop Orders. - * - * The ability to place limit and stop orders is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * Returns true if the order is successfully placed, and false otherwise. - * - * @param sym - Stock symbol. - * @param shares - Number of shares for order. Must be positive. Will be rounded to nearest integer. - * @param price - Execution price for the order. - * @param type - Type of order. - * @param pos - Specifies whether the order is a “Long” or “Short” position. - * @returns True if the order is successfully placed, and false otherwise. - */ - placeOrder(sym: string, shares: number, price: number, type: string, pos: string): boolean; - - /** - * Cancel order for stocks. - * @remarks - * RAM cost: 2.5 GB - * Cancels an outstanding Limit or Stop order on the stock market. - * - * The ability to use limit and stop orders is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * @param sym - Stock symbol. - * @param shares - Number of shares for order. Must be positive. Will be rounded to nearest integer. - * @param price - Execution price for the order. - * @param type - Type of order. - * @param pos - Specifies whether the order is a “Long” or “Short” position. - */ - cancelOrder(sym: string, shares: number, price: number, type: string, pos: string): void; - - /** - * Returns your order book for the stock market. - * @remarks - * RAM cost: 2.5 GB - * This is an object containing information for all the Limit and Stop Orders you have in the stock market. - * For each symbol you have a position in, the returned object will have a key with that symbol's name. - * The object's properties are each an array of {@link StockOrderObject} - * The object has the following structure: - * - * ```ts - * { - * string1: [ // Array of orders for this stock - * { - * shares: Order quantity - * price: Order price - * type: Order type - * position: Either "L" or "S" for Long or Short position - * }, - * { - * ... - * }, - * ... - * ], - * string2: [ // Array of orders for this stock - * ... - * ], - * ... - * } - * ``` - * The “Order type” property can have one of the following four values: "Limit Buy Order", "Limit Sell Order", - * "Stop Buy Order", "Stop Sell Order". - * Note that the order book will only contain information for stocks that you actually have orders in. - * - * @example - * ```ts - * "If you do not have orders in Nova Medical (NVMD), then the returned object will not have a “NVMD” property." - * { - * ECP: [ - * { - * shares: 5, - * price: 100,000 - * type: "Stop Buy Order", - * position: "S", - * }, - * { - * shares: 25, - * price: 125,000 - * type: "Limit Sell Order", - * position: "L", - * }, - * ], - * SYSC: [ - * { - * shares: 100, - * price: 10,000 - * type: "Limit Buy Order", - * position: "L", - * }, - * ], - * } - * ``` - * @returns Object containing information for all the Limit and Stop Orders you have in the stock market. - */ - getOrders(): StockOrder; - - /** - * Returns the volatility of the specified stock. - * @remarks - * RAM cost: 2.5 GB - * Volatility represents the maximum percentage by which a stock’s price can change every tick. - * The volatility is returned as a decimal value, NOT a percentage - * (e.g. if a stock has a volatility of 3%, then this function will return 0.03, NOT 3). - * - * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. - * - * @param sym - Stock symbol. - * @returns Volatility of the specified stock. - */ - getVolatility(sym: string): number; - - /** - * Returns the probability that the specified stock’s price will increase (as opposed to decrease) during the next - * tick. - * @remarks - * RAM cost: 2.5 GB - * The probability is returned as a decimal value, NOT a percentage - * (e.g. if a stock has a 60% chance of increasing, then this function will return 0.6, NOT 60). - * - * In other words, if this function returned 0.30 for a stock, then this means that the stock’s price has a - * 30% chance of increasing and a 70% chance of decreasing during the next tick. - * - * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. - * - * @param sym - Stock symbol. - * @returns Probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. - */ - getForecast(sym: string): number; - - /** - * Purchase 4S Market Data Access. - * @remarks RAM cost: 2.5 GB - * @returns True if you successfully purchased it or if you already have access, false otherwise. - */ - purchase4SMarketData(): boolean; - - /** - * Purchase 4S Market Data TIX API Access. - * @remarks RAM cost: 2.5 GB - * @returns True if you successfully purchased it or if you already have access, false otherwise. - */ - purchase4SMarketDataTixApi(): boolean; - - /** - * Purchase WSE Account. - * @remarks RAM cost: 2.5 GB - * @returns True if you successfully purchased it or if you already have access, false otherwise. - */ - purchaseWseAccount(): boolean; - - /** - * Purchase TIX API Access - * @remarks RAM cost: 2.5 GB - * @returns True if you successfully purchased it or if you already have access, false otherwise. - */ - purchaseTixApi(): boolean; -} - -/** @public */ -export declare enum ToastVariant { - SUCCESS = "success", - WARNING = "warning", - ERROR = "error", - INFO = "info", -} - -/** @public */ -export declare enum UniversityClassType { - computerScience = "Computer Science", - dataStructures = "Data Structures", - networks = "Networks", - algorithms = "Algorithms", - management = "Management", - leadership = "Leadership", -} - -/** - * User Interface API. - * @public - */ -export declare interface UserInterface { - /** - * Get the current window size - * @remarks - * RAM cost: 0 GB - * - * @returns An array of 2 value containing the window width and height. - */ - windowSize(): [number, number]; - - /** - * Get the current theme - * @remarks - * RAM cost: 0 GB - * - * @returns An object containing the theme's colors - */ - getTheme(): UserInterfaceTheme; - - /** - * Sets the current theme - * @remarks - * RAM cost: 0 GB - * @example - * Usage example (NS2) - * ```ts - * const theme = ns.ui.getTheme(); - * theme.primary = '#ff5500'; - * ns.ui.setTheme(theme); - * ``` - */ - setTheme(newTheme: UserInterfaceTheme): void; - - /** - * Resets the player's theme to the default values - * @remarks - * RAM cost: 0 GB - */ - resetTheme(): void; - - /** - * Get the current styles - * @remarks - * RAM cost: 0 GB - * - * @returns An object containing the player's styles - */ - getStyles(): IStyleSettings; - - /** - * Sets the current styles - * @remarks - * RAM cost: 0 GB - * @example - * Usage example (NS2) - * ```ts - * const styles = ns.ui.getStyles(); - * styles.fontFamily = 'Comic Sans Ms'; - * ns.ui.setStyles(styles); - * ``` - */ - setStyles(newStyles: IStyleSettings): void; - - /** - * Resets the player's styles to the default values - * @remarks - * RAM cost: 0 GB - */ - resetStyles(): void; - - /** - * Gets the current game information (version, commit, ...) - * @remarks - * RAM cost: 0 GB - */ - getGameInfo(): GameInfo; - - /** - * Clear the Terminal window, as if the player ran `clear` in the terminal - * @remarks - * RAM cost: 0.2 GB - */ - clearTerminal(): void; -} - -/** - * Interface Theme - * @public - */ -export declare interface UserInterfaceTheme { - [key: string]: string | undefined; - primarylight: string; - primary: string; - primarydark: string; - successlight: string; - success: string; - successdark: string; - errorlight: string; - error: string; - errordark: string; - secondarylight: string; - secondary: string; - secondarydark: string; - warninglight: string; - warning: string; - warningdark: string; - infolight: string; - info: string; - infodark: string; - welllight: string; - well: string; - white: string; - black: string; - hp: string; - money: string; - hack: string; - combat: string; - cha: string; - int: string; - rep: string; - disabled: string; - backgroundprimary: string; - backgroundsecondary: string; - button: string; -} - -/** - * Warehouse for a division in a city - * @public - */ -export declare interface Warehouse { - /** Amount of size upgrade bought */ - level: number; - /** City in which the warehouse is located */ - loc: CityName; - /** Total space in the warehouse */ - size: number; - /** Used space in the warehouse */ - sizeUsed: number; - /** Smart Supply status in the warehouse */ - smartSupplyEnabled: boolean; -} - -/** - * Corporation Warehouse API - * @remarks - * Requires the Warehouse API upgrade from your corporation. - * @public - */ -export declare interface WarehouseAPI { - /** - * Set material sell data. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param amt - Amount to sell, can be "MAX" - * @param price - Price to sell, can be "MP" - */ - sellMaterial( - divisionName: string, - city: CityName | `${CityName}`, - materialName: string, - amt: string, - price: string, - ): void; - /** - * Set product sell data. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param productName - Name of the product - * @param amt - Amount to sell, can be "MAX" - * @param price - Price to sell, can be "MP" - * @param all - Sell in all city - */ - sellProduct( - divisionName: string, - city: CityName | `${CityName}`, - productName: string, - amt: string, - price: string, - all: boolean, - ): void; - /** - * Discontinue a product. - * @param divisionName - Name of the division - * @param productName - Name of the product - */ - discontinueProduct(divisionName: string, productName: string): void; - /** - * Set smart supply - * @param divisionName - Name of the division - * @param city - Name of the city - * @param enabled - smart supply enabled - */ - setSmartSupply(divisionName: string, city: CityName | `${CityName}`, enabled: boolean): void; - /** - * Set whether smart supply uses leftovers before buying - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param enabled - smart supply use leftovers enabled - */ - setSmartSupplyUseLeftovers( - divisionName: string, - city: CityName | `${CityName}`, - materialName: string, - enabled: boolean, - ): void; - /** - * Set material buy data - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param amt - Amount of material to buy - */ - buyMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: string, amt: number): void; - /** - * Set material to bulk buy - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param amt - Amount of material to buy - */ - bulkPurchase(divisionName: string, city: CityName | `${CityName}`, materialName: string, amt: number): void; - /** - * Get warehouse data - * @param divisionName - Name of the division - * @param city - Name of the city - * @returns warehouse data - */ - getWarehouse(divisionName: string, city: CityName | `${CityName}`): Warehouse; - /** - * Get product data - * @param divisionName - Name of the division - * @param productName - Name of the product - * @returns product data - */ - getProduct(divisionName: string, productName: string): Product; - /** - * Get material data - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @returns material data - */ - getMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: string): Material; - /** - * Set market TA 1 for a material. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param on - market ta enabled - */ - setMaterialMarketTA1(divisionName: string, city: CityName | `${CityName}`, materialName: string, on: boolean): void; - /** - * Set market TA 2 for a material. - * @param divisionName - Name of the division - * @param city - Name of the city - * @param materialName - Name of the material - * @param on - market ta enabled - */ - setMaterialMarketTA2(divisionName: string, city: CityName | `${CityName}`, materialName: string, on: boolean): void; - /** - * Set market TA 1 for a product. - * @param divisionName - Name of the division - * @param productName - Name of the product - * @param on - market ta enabled - */ - setProductMarketTA1(divisionName: string, productName: string, on: boolean): void; - /** - * Set market TA 2 for a product. - * @param divisionName - Name of the division - * @param productName - Name of the product - * @param on - market ta enabled - */ - setProductMarketTA2(divisionName: string, productName: string, on: boolean): void; - /** - * Set material export data - * @param sourceDivision - Source division - * @param sourceCity - Source city - * @param targetDivision - Target division - * @param targetCity - Target city - * @param materialName - Name of the material - * @param amt - Amount of material to export. - */ - exportMaterial( - sourceDivision: string, - sourceCity: CityName | `${CityName}`, - targetDivision: string, - targetCity: CityName | `${CityName}`, - materialName: string, - amt: number, - ): void; - /** - * Cancel material export - * @param sourceDivision - Source division - * @param sourceCity - Source city - * @param targetDivision - Target division - * @param targetCity - Target city - * @param materialName - Name of the material - * @param amt - Amount of material to export. - */ - cancelExportMaterial( - sourceDivision: string, - sourceCity: CityName | `${CityName}`, - targetDivision: string, - targetCity: CityName | `${CityName}`, - materialName: string, - amt: number, - ): void; - /** - * Purchase warehouse for a new city - * @param divisionName - Name of the division - * @param city - Name of the city - */ - purchaseWarehouse(divisionName: string, city: CityName | `${CityName}`): void; - /** - * Upgrade warehouse - * @param divisionName - Name of the division - * @param city - Name of the city - * @param amt - amount of upgrades defaults to 1 - */ - upgradeWarehouse(divisionName: string, city: CityName | `${CityName}`, amt?: number): void; - /** - * Create a new product - * @param divisionName - Name of the division - * @param city - Name of the city - * @param productName - Name of the product - * @param designInvest - Amount to invest for the design of the product. - * @param marketingInvest - Amount to invest for the marketing of the product. - */ - makeProduct( - divisionName: string, - city: CityName | `${CityName}`, - productName: string, - designInvest: number, - marketingInvest: number, - ): void; - /** - * Limit Material Production. - * @param divisionName - Name of the division. - * @param city - Name of the city. - * @param materialName - Name of the material. - * @param qty - Amount to limit to. Pass a negative value to remove the limit instead. - */ - limitMaterialProduction( - divisionName: string, - city: CityName | `${CityName}`, - materialName: string, - qty: number, - ): void; - /** - * Limit Product Production. - * @param divisionName - Name of the division. - * @param city - Name of the city. - * @param productName - Name of the product. - * @param qty - Amount to limit to. Pass a negative value to remove the limit instead. - */ - limitProductProduction(divisionName: string, city: CityName | `${CityName}`, productName: string, qty: number): void; - /** - * Gets the cost to upgrade a warehouse to the next level - * @param divisionName - Name of the division - * @param city - Name of the city - * @param amt - amount of upgrades. Optional, defaults to 1 - * @returns cost to upgrade - */ - getUpgradeWarehouseCost(divisionName: string, city: CityName | `${CityName}`, amt?: number): number; - /** - * Check if you have a warehouse in city - * @returns true if warehouse is present, false if not - */ - hasWarehouse(divisionName: string, city: CityName | `${CityName}`): boolean; -} - -/** - * Work formulas - * @public - */ -export declare interface WorkFormulas { - crimeSuccessChance(person: Person, crimeType: CrimeType | `${CrimeType}`): number; - /** @returns The WorkStats gained when completing one instance of the specified crime. */ - crimeGains(person: Person, crimeType: CrimeType | `${CrimeType}`): WorkStats; - /** @returns The WorkStats applied every game cycle (200ms) by taking the specified gym class. */ - gymGains(person: Person, gymType: GymType | `${GymType}`, locationName: string): WorkStats; - /** @returns The WorkStats applied every game cycle (200ms) by taking the specified university class. */ - universityGains( - person: Person, - classType: UniversityClassType | `${UniversityClassType}`, - locationName: string, - ): WorkStats; - /** @returns The WorkStats applied every game cycle (200ms) by performing the specified faction work. */ - factionGains(person: Person, workType: FactionWorkType | `${FactionWorkType}`, favor: number): WorkStats; - /** @returns The WorkStats applied every game cycle (200ms) by performing the specified company work. */ - companyGains(person: Person, companyName: string, workType: JobName | `${JobName}`, favor: number): WorkStats; -} - -/** @public */ -export declare interface WorkStats { - money: number; - reputation: number; - hackExp: number; - strExp: number; - defExp: number; - dexExp: number; - agiExp: number; - chaExp: number; - intExp: number; -} - -export { } diff --git a/dist/images/297df8c0e47764ea113951318b2acf55.png b/dist/images/297df8c0e47764ea113951318b2acf55.png deleted file mode 100644 index 325587072408bd5f8700704fab14643496da96dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120362 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 z 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�)FA;91B$cS+ouzZ>zQ1ILyFBqC$u=&U9h2Nyu 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 z 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

C`JNT#k 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

O*8avAV!=fLnHcWQiJJ#jsPF4 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 B9#;SW diff --git a/dist/images/5aa87b7de67a77c914088783b055e1cf.png b/dist/images/5aa87b7de67a77c914088783b055e1cf.png deleted file mode 100644 index d74fcec6c83b6be03055f98e5eb60a4ec1e84785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121635 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 V^g;EXYYf1TzK+qY!kacP{uhKL4%`3$ diff --git a/dist/images/66f4b86d86164fc117bd6d648e4eaa6f.png b/dist/images/66f4b86d86164fc117bd6d648e4eaa6f.png deleted file mode 100644 index 9233080f3a1bc0d3404bd5f4c0e3617fd9a37182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119206 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 diff --git a/dist/images/6caf35202b10b52e1fc2743f674c33e8.png b/dist/images/6caf35202b10b52e1fc2743f674c33e8.png deleted file mode 100644 index e9c348227b3b49686e45639f5a6e471b9b05e1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113544 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%0D?74;yipgRNDPb#;Rb|O7RFZFPL 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 ZXdv4_a{=5JH diff --git a/dist/images/85a7b2896acb62be76f3ea7100fe9012.png b/dist/images/85a7b2896acb62be76f3ea7100fe9012.png deleted file mode 100644 index 3b3cc24565f70910ea6f6608f8d4ce1ff535b74d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124012 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

c@to$y9^I*YRIQeQmgzS|n>oa)WE~kHltC{spGL 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

DUs0A1ct@>;G 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
kncHET5ofDj# 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

+b_>W3(0Q+_{O`yF@LT{F|LKAM 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

{hRDf3uuC4J(@? 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 z zRFeCYqUU2WtrW+x06yyW=~zZ+gMv>Fi|-Y0-I4{&@(U+ur_6G4&HPMyB(JaaqvoSE zQF^ZwZW(h|h+AFjjtx#%?k-D=A*7p}l07;kJ!5({%^4@iR`287W%x=w>K(j%NqbF& zHcBs;&W*Ls+eiL?SCvh%$96s&5f3>}vlb1TwbVjCYR*#{KY$KAPsC+%kJoo_Gi(|# zDrZqa4hTNQD6Kvld*CRTawpifJ!J>^i<8|(Punim%SycTANrtDz^_VZ8J^}jjyLf{ zINA1Vh^cf3hI;*=PsXRw!IGl4&{f}}yw*`2cZOoU@s3ncd}`h)Sp`I0KP%?q|FUn` zWZL=fVk@=J*N9wCZ#NmbUAp1VFFe@cvbDKx#@g_}u8q4e3&(Lo#2k11;DxCXK|V2v?d@d$z+*K3y*Qu~x&M_;_z6p_hn4dhhXuzy z)Lybgw)nLybLUAhFM)7F7`P_I25`Z}4!Y05S9hTzk8>OAUKWZ0q~qpDy_-4?uj=cH z>=MB$`I0afiKt-9MRpV2oxJ#PU>ENyc(~~E++~eViqECh{*eu(OX|)DhnH?OQdCoL znR6DlQL4)4h}0+IhOq$q95xJ~tAQ?2=b{A@x3t+`w!QKd2oN>U+ku2DjBYoOX}6GH ziqLDN3M58(BlQ`h8a&SLJcCg#D|5AJxK+$T$FkNvUG||h4TPq;HeH61E-gHtjX8)oLE!#th9jbp{kU2v-Dv&9WkHnn?h~IIWiBrK zO1xI>j#9Mo(WX4Pk|3F_DVyCT%zrgVK-L@0919|8; ztDoCd(CUco3f2jNTiE{whHO_d_B$PGkSQI4wgbm4Sm~)G_!9XnCtJQMdb_h?%Kq+ z{=!NUxTfp}t4=AUdPq-rw0A_zHXMb(J^BF+au3XCY!)=3RsM7!? ctuj|Id@==b*E}Lu2>82UWOlXiio>)227;Pr_W%F@ diff --git a/dist/images/c7164b072d62c91c27c6d607b5207e7b.png b/dist/images/c7164b072d62c91c27c6d607b5207e7b.png deleted file mode 100644 index 51264adb1b74a3d729109691b2ae104c7b380b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123486 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
a16 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 diff --git a/dist/images/cb88977ea837bccb9cceb727adc78302.png b/dist/images/cb88977ea837bccb9cceb727adc78302.png deleted file mode 100644 index be9f6854505a32d7c53ba3f830750dd25ea5bed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120868 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%0A}Yc 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 diff --git a/dist/images/e66b0c327f97d08e4253f52234d659eb.png b/dist/images/e66b0c327f97d08e4253f52234d659eb.png deleted file mode 100644 index 3f03552d7a10fd635d669edcc60de1828921a266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122924 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%0A)98;N;{SJ_UJ^Wp?*u{6^&kKobrx1Z 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

GAEP6du`jIs$x2%pd4{jS*k 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%0ALO5wUkWk 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 diff --git a/dist/images/e97de4daa946331c7e99dee9c05d629c.png b/dist/images/e97de4daa946331c7e99dee9c05d629c.png deleted file mode 100644 index 44324a041147354208c3b63762d214a8211f4f1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120193 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�ot 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 Q_+ZmZRu>B{+Signature: +**Signature:** ```typescript highestCharge: number; diff --git a/markdown/bitburner.activefragment.id.md b/markdown/bitburner.activefragment.id.md index 8f5a71af1..7526bc62f 100644 --- a/markdown/bitburner.activefragment.id.md +++ b/markdown/bitburner.activefragment.id.md @@ -4,7 +4,7 @@ ## ActiveFragment.id property -Signature: +**Signature:** ```typescript id: number; diff --git a/markdown/bitburner.activefragment.md b/markdown/bitburner.activefragment.md index 952baba26..44c8fd1f1 100644 --- a/markdown/bitburner.activefragment.md +++ b/markdown/bitburner.activefragment.md @@ -5,7 +5,7 @@ ## ActiveFragment interface -Signature: +**Signature:** ```typescript interface ActiveFragment @@ -13,12 +13,12 @@ interface ActiveFragment ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [highestCharge](./bitburner.activefragment.highestcharge.md) | number | | -| [id](./bitburner.activefragment.id.md) | number | | -| [numCharge](./bitburner.activefragment.numcharge.md) | number | | -| [rotation](./bitburner.activefragment.rotation.md) | number | | -| [x](./bitburner.activefragment.x.md) | number | | -| [y](./bitburner.activefragment.y.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [highestCharge](./bitburner.activefragment.highestcharge.md) | | number | | +| [id](./bitburner.activefragment.id.md) | | number | | +| [numCharge](./bitburner.activefragment.numcharge.md) | | number | | +| [rotation](./bitburner.activefragment.rotation.md) | | number | | +| [x](./bitburner.activefragment.x.md) | | number | | +| [y](./bitburner.activefragment.y.md) | | number | | diff --git a/markdown/bitburner.activefragment.numcharge.md b/markdown/bitburner.activefragment.numcharge.md index a5bab3eb2..227cc3599 100644 --- a/markdown/bitburner.activefragment.numcharge.md +++ b/markdown/bitburner.activefragment.numcharge.md @@ -4,7 +4,7 @@ ## ActiveFragment.numCharge property -Signature: +**Signature:** ```typescript numCharge: number; diff --git a/markdown/bitburner.activefragment.rotation.md b/markdown/bitburner.activefragment.rotation.md index 6e0c81e88..07a00c65e 100644 --- a/markdown/bitburner.activefragment.rotation.md +++ b/markdown/bitburner.activefragment.rotation.md @@ -4,7 +4,7 @@ ## ActiveFragment.rotation property -Signature: +**Signature:** ```typescript rotation: number; diff --git a/markdown/bitburner.activefragment.x.md b/markdown/bitburner.activefragment.x.md index 47a481c94..9624b608d 100644 --- a/markdown/bitburner.activefragment.x.md +++ b/markdown/bitburner.activefragment.x.md @@ -4,7 +4,7 @@ ## ActiveFragment.x property -Signature: +**Signature:** ```typescript x: number; diff --git a/markdown/bitburner.activefragment.y.md b/markdown/bitburner.activefragment.y.md index 93582014f..e93ba397e 100644 --- a/markdown/bitburner.activefragment.y.md +++ b/markdown/bitburner.activefragment.y.md @@ -4,7 +4,7 @@ ## ActiveFragment.y property -Signature: +**Signature:** ```typescript y: number; diff --git a/markdown/bitburner.augmentpair.cost.md b/markdown/bitburner.augmentpair.cost.md index f165f095b..99fc86e5e 100644 --- a/markdown/bitburner.augmentpair.cost.md +++ b/markdown/bitburner.augmentpair.cost.md @@ -6,7 +6,7 @@ augmentation cost -Signature: +**Signature:** ```typescript cost: number; diff --git a/markdown/bitburner.augmentpair.md b/markdown/bitburner.augmentpair.md index c78d64415..d044376b8 100644 --- a/markdown/bitburner.augmentpair.md +++ b/markdown/bitburner.augmentpair.md @@ -6,7 +6,7 @@ Return value of [getSleevePurchasableAugs](./bitburner.sleeve.getsleevepurchasableaugs.md) -Signature: +**Signature:** ```typescript interface AugmentPair @@ -14,8 +14,8 @@ interface AugmentPair ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [cost](./bitburner.augmentpair.cost.md) | number | augmentation cost | -| [name](./bitburner.augmentpair.name.md) | string | augmentation name | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [cost](./bitburner.augmentpair.cost.md) | | number | augmentation cost | +| [name](./bitburner.augmentpair.name.md) | | string | augmentation name | diff --git a/markdown/bitburner.augmentpair.name.md b/markdown/bitburner.augmentpair.name.md index 095ac60b7..979251aab 100644 --- a/markdown/bitburner.augmentpair.name.md +++ b/markdown/bitburner.augmentpair.name.md @@ -6,7 +6,7 @@ augmentation name -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.autocompletedata.flags.md b/markdown/bitburner.autocompletedata.flags.md index d0ecfc3f4..575e5f270 100644 --- a/markdown/bitburner.autocompletedata.flags.md +++ b/markdown/bitburner.autocompletedata.flags.md @@ -4,7 +4,7 @@ ## AutocompleteData.flags() method -Signature: +**Signature:** ```typescript flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] }; @@ -16,7 +16,7 @@ flags(schema: [string, string | number | boolean | string[]][]): { [key: string] | --- | --- | --- | | schema | \[string, string \| number \| boolean \| string\[\]\]\[\] | | -Returns: +**Returns:** { \[key: string\]: [ScriptArg](./bitburner.scriptarg.md) \| string\[\] } diff --git a/markdown/bitburner.autocompletedata.md b/markdown/bitburner.autocompletedata.md index 459b3c07a..444e79449 100644 --- a/markdown/bitburner.autocompletedata.md +++ b/markdown/bitburner.autocompletedata.md @@ -6,7 +6,7 @@ Used for autocompletion -Signature: +**Signature:** ```typescript interface AutocompleteData @@ -14,11 +14,11 @@ interface AutocompleteData ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [scripts](./bitburner.autocompletedata.scripts.md) | string\[\] | | -| [servers](./bitburner.autocompletedata.servers.md) | string\[\] | | -| [txts](./bitburner.autocompletedata.txts.md) | string\[\] | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [scripts](./bitburner.autocompletedata.scripts.md) | | string\[\] | | +| [servers](./bitburner.autocompletedata.servers.md) | | string\[\] | | +| [txts](./bitburner.autocompletedata.txts.md) | | string\[\] | | ## Methods diff --git a/markdown/bitburner.autocompletedata.scripts.md b/markdown/bitburner.autocompletedata.scripts.md index a61e16e63..61bb0f095 100644 --- a/markdown/bitburner.autocompletedata.scripts.md +++ b/markdown/bitburner.autocompletedata.scripts.md @@ -4,7 +4,7 @@ ## AutocompleteData.scripts property -Signature: +**Signature:** ```typescript scripts: string[]; diff --git a/markdown/bitburner.autocompletedata.servers.md b/markdown/bitburner.autocompletedata.servers.md index c54df9876..c54c0f26a 100644 --- a/markdown/bitburner.autocompletedata.servers.md +++ b/markdown/bitburner.autocompletedata.servers.md @@ -4,7 +4,7 @@ ## AutocompleteData.servers property -Signature: +**Signature:** ```typescript servers: string[]; diff --git a/markdown/bitburner.autocompletedata.txts.md b/markdown/bitburner.autocompletedata.txts.md index 0b8d0776d..37e552011 100644 --- a/markdown/bitburner.autocompletedata.txts.md +++ b/markdown/bitburner.autocompletedata.txts.md @@ -4,7 +4,7 @@ ## AutocompleteData.txts property -Signature: +**Signature:** ```typescript txts: string[]; diff --git a/markdown/bitburner.basichgwoptions.md b/markdown/bitburner.basichgwoptions.md index b56b86809..a64aede96 100644 --- a/markdown/bitburner.basichgwoptions.md +++ b/markdown/bitburner.basichgwoptions.md @@ -6,7 +6,7 @@ Options to affect the behavior of [hack](./bitburner.ns.hack.md), [grow](./bitburner.ns.grow.md), and [weaken](./bitburner.ns.weaken.md). -Signature: +**Signature:** ```typescript interface BasicHGWOptions @@ -14,8 +14,8 @@ interface BasicHGWOptions ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [stock?](./bitburner.basichgwoptions.stock.md) | boolean | (Optional) Set to true this action will affect the stock market. | -| [threads?](./bitburner.basichgwoptions.threads.md) | number | (Optional) Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [stock?](./bitburner.basichgwoptions.stock.md) | | boolean | _(Optional)_ Set to true this action will affect the stock market. | +| [threads?](./bitburner.basichgwoptions.threads.md) | | number | _(Optional)_ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. | diff --git a/markdown/bitburner.basichgwoptions.stock.md b/markdown/bitburner.basichgwoptions.stock.md index 07641f528..29d62eb40 100644 --- a/markdown/bitburner.basichgwoptions.stock.md +++ b/markdown/bitburner.basichgwoptions.stock.md @@ -6,7 +6,7 @@ Set to true this action will affect the stock market. -Signature: +**Signature:** ```typescript stock?: boolean; diff --git a/markdown/bitburner.basichgwoptions.threads.md b/markdown/bitburner.basichgwoptions.threads.md index b13188693..930148b66 100644 --- a/markdown/bitburner.basichgwoptions.threads.md +++ b/markdown/bitburner.basichgwoptions.threads.md @@ -6,7 +6,7 @@ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. -Signature: +**Signature:** ```typescript threads?: number; diff --git a/markdown/bitburner.bitnodemultipliers.agilitylevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.agilitylevelmultiplier.md index c142d8512..3b4e4c5b9 100644 --- a/markdown/bitburner.bitnodemultipliers.agilitylevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.agilitylevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's agility level (not exp) scales -Signature: +**Signature:** ```typescript AgilityLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.augmentationmoneycost.md b/markdown/bitburner.bitnodemultipliers.augmentationmoneycost.md index ef89b6397..8387510a1 100644 --- a/markdown/bitburner.bitnodemultipliers.augmentationmoneycost.md +++ b/markdown/bitburner.bitnodemultipliers.augmentationmoneycost.md @@ -6,7 +6,7 @@ Influences the base cost to purchase an augmentation. -Signature: +**Signature:** ```typescript AugmentationMoneyCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.augmentationrepcost.md b/markdown/bitburner.bitnodemultipliers.augmentationrepcost.md index 4022dede5..3cecb7492 100644 --- a/markdown/bitburner.bitnodemultipliers.augmentationrepcost.md +++ b/markdown/bitburner.bitnodemultipliers.augmentationrepcost.md @@ -6,7 +6,7 @@ Influences the base rep the player must have with a faction to purchase an augmentation. -Signature: +**Signature:** ```typescript AugmentationRepCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.bladeburnerrank.md b/markdown/bitburner.bitnodemultipliers.bladeburnerrank.md index 32493fb37..98e7ef7f8 100644 --- a/markdown/bitburner.bitnodemultipliers.bladeburnerrank.md +++ b/markdown/bitburner.bitnodemultipliers.bladeburnerrank.md @@ -6,7 +6,7 @@ Influences how quickly the player can gain rank within Bladeburner. -Signature: +**Signature:** ```typescript BladeburnerRank: number; diff --git a/markdown/bitburner.bitnodemultipliers.bladeburnerskillcost.md b/markdown/bitburner.bitnodemultipliers.bladeburnerskillcost.md index cd881ac4b..84656071f 100644 --- a/markdown/bitburner.bitnodemultipliers.bladeburnerskillcost.md +++ b/markdown/bitburner.bitnodemultipliers.bladeburnerskillcost.md @@ -6,7 +6,7 @@ Influences the cost of skill levels from Bladeburner. -Signature: +**Signature:** ```typescript BladeburnerSkillCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.charismalevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.charismalevelmultiplier.md index 9b1baa72d..744000188 100644 --- a/markdown/bitburner.bitnodemultipliers.charismalevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.charismalevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's charisma level (not exp) scales -Signature: +**Signature:** ```typescript CharismaLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.classgymexpgain.md b/markdown/bitburner.bitnodemultipliers.classgymexpgain.md index 91cfa80cb..4b5ae232c 100644 --- a/markdown/bitburner.bitnodemultipliers.classgymexpgain.md +++ b/markdown/bitburner.bitnodemultipliers.classgymexpgain.md @@ -6,7 +6,7 @@ Influences the experience gained for each ability when a player completes a class. -Signature: +**Signature:** ```typescript ClassGymExpGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.codingcontractmoney.md b/markdown/bitburner.bitnodemultipliers.codingcontractmoney.md index dab83a4f6..a0eea9f25 100644 --- a/markdown/bitburner.bitnodemultipliers.codingcontractmoney.md +++ b/markdown/bitburner.bitnodemultipliers.codingcontractmoney.md @@ -6,7 +6,7 @@ Influences the amount of money gained from completing Coding Contracts -Signature: +**Signature:** ```typescript CodingContractMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.companyworkexpgain.md b/markdown/bitburner.bitnodemultipliers.companyworkexpgain.md index d24fed4b2..f8901e4c0 100644 --- a/markdown/bitburner.bitnodemultipliers.companyworkexpgain.md +++ b/markdown/bitburner.bitnodemultipliers.companyworkexpgain.md @@ -6,7 +6,7 @@ Influences the experience gained for each ability when the player completes working their job. -Signature: +**Signature:** ```typescript CompanyWorkExpGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.companyworkmoney.md b/markdown/bitburner.bitnodemultipliers.companyworkmoney.md index be534d6c3..f6b26d927 100644 --- a/markdown/bitburner.bitnodemultipliers.companyworkmoney.md +++ b/markdown/bitburner.bitnodemultipliers.companyworkmoney.md @@ -6,7 +6,7 @@ Influences how much money the player earns when completing working their job. -Signature: +**Signature:** ```typescript CompanyWorkMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.corporationsoftcap.md b/markdown/bitburner.bitnodemultipliers.corporationsoftcap.md index 603383abf..0ff2d2284 100644 --- a/markdown/bitburner.bitnodemultipliers.corporationsoftcap.md +++ b/markdown/bitburner.bitnodemultipliers.corporationsoftcap.md @@ -6,7 +6,7 @@ Influences the money gain from dividends of corporations created by the player. -Signature: +**Signature:** ```typescript CorporationSoftcap: number; diff --git a/markdown/bitburner.bitnodemultipliers.corporationvaluation.md b/markdown/bitburner.bitnodemultipliers.corporationvaluation.md index b9be862b8..6bc8c3830 100644 --- a/markdown/bitburner.bitnodemultipliers.corporationvaluation.md +++ b/markdown/bitburner.bitnodemultipliers.corporationvaluation.md @@ -6,7 +6,7 @@ Influences the valuation of corporations created by the player. -Signature: +**Signature:** ```typescript CorporationValuation: number; diff --git a/markdown/bitburner.bitnodemultipliers.crimeexpgain.md b/markdown/bitburner.bitnodemultipliers.crimeexpgain.md index 472819f16..4bf0cc89c 100644 --- a/markdown/bitburner.bitnodemultipliers.crimeexpgain.md +++ b/markdown/bitburner.bitnodemultipliers.crimeexpgain.md @@ -6,7 +6,7 @@ Influences the base experience gained for each ability when the player commits a crime. -Signature: +**Signature:** ```typescript CrimeExpGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.crimemoney.md b/markdown/bitburner.bitnodemultipliers.crimemoney.md index c3fffbdac..a6bf6b3f0 100644 --- a/markdown/bitburner.bitnodemultipliers.crimemoney.md +++ b/markdown/bitburner.bitnodemultipliers.crimemoney.md @@ -6,7 +6,7 @@ Influences the base money gained when the player commits a crime. -Signature: +**Signature:** ```typescript CrimeMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.daedalusaugsrequirement.md b/markdown/bitburner.bitnodemultipliers.daedalusaugsrequirement.md index b16ad9a81..098ed046c 100644 --- a/markdown/bitburner.bitnodemultipliers.daedalusaugsrequirement.md +++ b/markdown/bitburner.bitnodemultipliers.daedalusaugsrequirement.md @@ -6,7 +6,7 @@ Influences how many Augmentations you need in order to get invited to the Daedalus faction -Signature: +**Signature:** ```typescript DaedalusAugsRequirement: number; diff --git a/markdown/bitburner.bitnodemultipliers.defenselevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.defenselevelmultiplier.md index 6ae574d3c..eb3e50f8f 100644 --- a/markdown/bitburner.bitnodemultipliers.defenselevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.defenselevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's defense level (not exp) scales -Signature: +**Signature:** ```typescript DefenseLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.dexteritylevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.dexteritylevelmultiplier.md index 2d1c6f2db..21d5d7736 100644 --- a/markdown/bitburner.bitnodemultipliers.dexteritylevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.dexteritylevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's dexterity level (not exp) scales -Signature: +**Signature:** ```typescript DexterityLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.factionpassiverepgain.md b/markdown/bitburner.bitnodemultipliers.factionpassiverepgain.md index 0ae7112d6..e8d4f2397 100644 --- a/markdown/bitburner.bitnodemultipliers.factionpassiverepgain.md +++ b/markdown/bitburner.bitnodemultipliers.factionpassiverepgain.md @@ -6,7 +6,7 @@ Influences how much rep the player gains in each faction simply by being a member. -Signature: +**Signature:** ```typescript FactionPassiveRepGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.factionworkexpgain.md b/markdown/bitburner.bitnodemultipliers.factionworkexpgain.md index 0c248a1b9..c938fc448 100644 --- a/markdown/bitburner.bitnodemultipliers.factionworkexpgain.md +++ b/markdown/bitburner.bitnodemultipliers.factionworkexpgain.md @@ -6,7 +6,7 @@ Influences the experience gained for each ability when the player completes work for a Faction. -Signature: +**Signature:** ```typescript FactionWorkExpGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.factionworkrepgain.md b/markdown/bitburner.bitnodemultipliers.factionworkrepgain.md index 7de8b0d31..34731ce3a 100644 --- a/markdown/bitburner.bitnodemultipliers.factionworkrepgain.md +++ b/markdown/bitburner.bitnodemultipliers.factionworkrepgain.md @@ -6,7 +6,7 @@ Influences how much rep the player gains when performing work for a faction. -Signature: +**Signature:** ```typescript FactionWorkRepGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.foursigmamarketdataapicost.md b/markdown/bitburner.bitnodemultipliers.foursigmamarketdataapicost.md index 640bc066a..829ace8be 100644 --- a/markdown/bitburner.bitnodemultipliers.foursigmamarketdataapicost.md +++ b/markdown/bitburner.bitnodemultipliers.foursigmamarketdataapicost.md @@ -6,7 +6,7 @@ Influences how much it costs to unlock the stock market's 4S Market Data API -Signature: +**Signature:** ```typescript FourSigmaMarketDataApiCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.foursigmamarketdatacost.md b/markdown/bitburner.bitnodemultipliers.foursigmamarketdatacost.md index 781f09ad3..1612eaebb 100644 --- a/markdown/bitburner.bitnodemultipliers.foursigmamarketdatacost.md +++ b/markdown/bitburner.bitnodemultipliers.foursigmamarketdatacost.md @@ -6,7 +6,7 @@ Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) -Signature: +**Signature:** ```typescript FourSigmaMarketDataCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.gangsoftcap.md b/markdown/bitburner.bitnodemultipliers.gangsoftcap.md index 39e80cbcd..b0a145130 100644 --- a/markdown/bitburner.bitnodemultipliers.gangsoftcap.md +++ b/markdown/bitburner.bitnodemultipliers.gangsoftcap.md @@ -6,7 +6,7 @@ Influences the respect gain and money gain of your gang. -Signature: +**Signature:** ```typescript GangSoftcap: number; diff --git a/markdown/bitburner.bitnodemultipliers.hackexpgain.md b/markdown/bitburner.bitnodemultipliers.hackexpgain.md index b31f69168..79ba4e202 100644 --- a/markdown/bitburner.bitnodemultipliers.hackexpgain.md +++ b/markdown/bitburner.bitnodemultipliers.hackexpgain.md @@ -6,7 +6,7 @@ Influences the experienced gained when hacking a server. -Signature: +**Signature:** ```typescript HackExpGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.hackinglevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.hackinglevelmultiplier.md index ae7779522..a0ce2c076 100644 --- a/markdown/bitburner.bitnodemultipliers.hackinglevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.hackinglevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's hacking level (not experience) scales -Signature: +**Signature:** ```typescript HackingLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.hacknetnodemoney.md b/markdown/bitburner.bitnodemultipliers.hacknetnodemoney.md index 314143a8f..cb2899c16 100644 --- a/markdown/bitburner.bitnodemultipliers.hacknetnodemoney.md +++ b/markdown/bitburner.bitnodemultipliers.hacknetnodemoney.md @@ -6,7 +6,7 @@ Influences how much money is produced by Hacknet Nodes and the hash rate of Hacknet Servers (unlocked in BitNode-9) -Signature: +**Signature:** ```typescript HacknetNodeMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.homecomputerramcost.md b/markdown/bitburner.bitnodemultipliers.homecomputerramcost.md index b911069be..1d001c829 100644 --- a/markdown/bitburner.bitnodemultipliers.homecomputerramcost.md +++ b/markdown/bitburner.bitnodemultipliers.homecomputerramcost.md @@ -6,7 +6,7 @@ Influences how much money it costs to upgrade your home computer's RAM -Signature: +**Signature:** ```typescript HomeComputerRamCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.infiltrationmoney.md b/markdown/bitburner.bitnodemultipliers.infiltrationmoney.md index 60a00b135..d309bd940 100644 --- a/markdown/bitburner.bitnodemultipliers.infiltrationmoney.md +++ b/markdown/bitburner.bitnodemultipliers.infiltrationmoney.md @@ -6,7 +6,7 @@ Influences how much money is gained when the player infiltrates a company. -Signature: +**Signature:** ```typescript InfiltrationMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.infiltrationrep.md b/markdown/bitburner.bitnodemultipliers.infiltrationrep.md index 7c357559c..450d6aaf9 100644 --- a/markdown/bitburner.bitnodemultipliers.infiltrationrep.md +++ b/markdown/bitburner.bitnodemultipliers.infiltrationrep.md @@ -6,7 +6,7 @@ Influences how much rep the player can gain from factions when selling stolen documents and secrets -Signature: +**Signature:** ```typescript InfiltrationRep: number; diff --git a/markdown/bitburner.bitnodemultipliers.manualhackmoney.md b/markdown/bitburner.bitnodemultipliers.manualhackmoney.md index ed941abf9..28270002e 100644 --- a/markdown/bitburner.bitnodemultipliers.manualhackmoney.md +++ b/markdown/bitburner.bitnodemultipliers.manualhackmoney.md @@ -6,7 +6,7 @@ Influences how much money can be stolen from a server when the player performs a hack against it through the Terminal. -Signature: +**Signature:** ```typescript ManualHackMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.md b/markdown/bitburner.bitnodemultipliers.md index fc15711f2..68cedb90a 100644 --- a/markdown/bitburner.bitnodemultipliers.md +++ b/markdown/bitburner.bitnodemultipliers.md @@ -6,7 +6,7 @@ All multipliers affecting the difficulty of the current challenge. -Signature: +**Signature:** ```typescript interface BitNodeMultipliers @@ -14,52 +14,52 @@ interface BitNodeMultipliers ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [AgilityLevelMultiplier](./bitburner.bitnodemultipliers.agilitylevelmultiplier.md) | number | Influences how quickly the player's agility level (not exp) scales | -| [AugmentationMoneyCost](./bitburner.bitnodemultipliers.augmentationmoneycost.md) | number | Influences the base cost to purchase an augmentation. | -| [AugmentationRepCost](./bitburner.bitnodemultipliers.augmentationrepcost.md) | number | Influences the base rep the player must have with a faction to purchase an augmentation. | -| [BladeburnerRank](./bitburner.bitnodemultipliers.bladeburnerrank.md) | number | Influences how quickly the player can gain rank within Bladeburner. | -| [BladeburnerSkillCost](./bitburner.bitnodemultipliers.bladeburnerskillcost.md) | number | Influences the cost of skill levels from Bladeburner. | -| [CharismaLevelMultiplier](./bitburner.bitnodemultipliers.charismalevelmultiplier.md) | number | Influences how quickly the player's charisma level (not exp) scales | -| [ClassGymExpGain](./bitburner.bitnodemultipliers.classgymexpgain.md) | number | Influences the experience gained for each ability when a player completes a class. | -| [CodingContractMoney](./bitburner.bitnodemultipliers.codingcontractmoney.md) | number | Influences the amount of money gained from completing Coding Contracts | -| [CompanyWorkExpGain](./bitburner.bitnodemultipliers.companyworkexpgain.md) | number | Influences the experience gained for each ability when the player completes working their job. | -| [CompanyWorkMoney](./bitburner.bitnodemultipliers.companyworkmoney.md) | number | Influences how much money the player earns when completing working their job. | -| [CorporationSoftcap](./bitburner.bitnodemultipliers.corporationsoftcap.md) | number | Influences the money gain from dividends of corporations created by the player. | -| [CorporationValuation](./bitburner.bitnodemultipliers.corporationvaluation.md) | number | Influences the valuation of corporations created by the player. | -| [CrimeExpGain](./bitburner.bitnodemultipliers.crimeexpgain.md) | number | Influences the base experience gained for each ability when the player commits a crime. | -| [CrimeMoney](./bitburner.bitnodemultipliers.crimemoney.md) | number | Influences the base money gained when the player commits a crime. | -| [DaedalusAugsRequirement](./bitburner.bitnodemultipliers.daedalusaugsrequirement.md) | number | Influences how many Augmentations you need in order to get invited to the Daedalus faction | -| [DefenseLevelMultiplier](./bitburner.bitnodemultipliers.defenselevelmultiplier.md) | number | Influences how quickly the player's defense level (not exp) scales | -| [DexterityLevelMultiplier](./bitburner.bitnodemultipliers.dexteritylevelmultiplier.md) | number | Influences how quickly the player's dexterity level (not exp) scales | -| [FactionPassiveRepGain](./bitburner.bitnodemultipliers.factionpassiverepgain.md) | number | Influences how much rep the player gains in each faction simply by being a member. | -| [FactionWorkExpGain](./bitburner.bitnodemultipliers.factionworkexpgain.md) | number | Influences the experience gained for each ability when the player completes work for a Faction. | -| [FactionWorkRepGain](./bitburner.bitnodemultipliers.factionworkrepgain.md) | number | Influences how much rep the player gains when performing work for a faction. | -| [FourSigmaMarketDataApiCost](./bitburner.bitnodemultipliers.foursigmamarketdataapicost.md) | number | Influences how much it costs to unlock the stock market's 4S Market Data API | -| [FourSigmaMarketDataCost](./bitburner.bitnodemultipliers.foursigmamarketdatacost.md) | number | Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) | -| [GangSoftcap](./bitburner.bitnodemultipliers.gangsoftcap.md) | number | Influences the respect gain and money gain of your gang. | -| [HackExpGain](./bitburner.bitnodemultipliers.hackexpgain.md) | number | Influences the experienced gained when hacking a server. | -| [HackingLevelMultiplier](./bitburner.bitnodemultipliers.hackinglevelmultiplier.md) | number | Influences how quickly the player's hacking level (not experience) scales | -| [HacknetNodeMoney](./bitburner.bitnodemultipliers.hacknetnodemoney.md) | number | Influences how much money is produced by Hacknet Nodes and the hash rate of Hacknet Servers (unlocked in BitNode-9) | -| [HomeComputerRamCost](./bitburner.bitnodemultipliers.homecomputerramcost.md) | number | Influences how much money it costs to upgrade your home computer's RAM | -| [InfiltrationMoney](./bitburner.bitnodemultipliers.infiltrationmoney.md) | number | Influences how much money is gained when the player infiltrates a company. | -| [InfiltrationRep](./bitburner.bitnodemultipliers.infiltrationrep.md) | number | Influences how much rep the player can gain from factions when selling stolen documents and secrets | -| [ManualHackMoney](./bitburner.bitnodemultipliers.manualhackmoney.md) | number | Influences how much money can be stolen from a server when the player performs a hack against it through the Terminal. | -| [PurchasedServerCost](./bitburner.bitnodemultipliers.purchasedservercost.md) | number | Influence how much it costs to purchase a server | -| [PurchasedServerLimit](./bitburner.bitnodemultipliers.purchasedserverlimit.md) | number | Influences the maximum number of purchased servers you can have | -| [PurchasedServerMaxRam](./bitburner.bitnodemultipliers.purchasedservermaxram.md) | number | Influences the maximum allowed RAM for a purchased server | -| [PurchasedServerSoftcap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md) | number | Influences cost of any purchased server at or above 128GB | -| [RepToDonateToFaction](./bitburner.bitnodemultipliers.reptodonatetofaction.md) | number | Influences the minimum favor the player must have with a faction before they can donate to gain rep. | -| [ScriptHackMoney](./bitburner.bitnodemultipliers.scripthackmoney.md) | number | Influences how much the money on a server can be reduced when a script performs a hack against it. | -| [ScriptHackMoneyGain](./bitburner.bitnodemultipliers.scripthackmoneygain.md) | number | Influences how much of the money stolen by a scripted hack will be added to the player's money. | -| [ServerGrowthRate](./bitburner.bitnodemultipliers.servergrowthrate.md) | number | Influences the growth percentage per cycle against a server. | -| [ServerMaxMoney](./bitburner.bitnodemultipliers.servermaxmoney.md) | number | Influences the maximum money that a server can grow to. | -| [ServerStartingMoney](./bitburner.bitnodemultipliers.serverstartingmoney.md) | number | Influences the initial money that a server starts with. | -| [ServerStartingSecurity](./bitburner.bitnodemultipliers.serverstartingsecurity.md) | number | Influences the initial security level (hackDifficulty) of a server. | -| [ServerWeakenRate](./bitburner.bitnodemultipliers.serverweakenrate.md) | number | Influences the weaken amount per invocation against a server. | -| [StaneksGiftExtraSize](./bitburner.bitnodemultipliers.staneksgiftextrasize.md) | number | Influences the size of the gift | -| [StaneksGiftPowerMultiplier](./bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md) | number | Influences the power of the gift | -| [StrengthLevelMultiplier](./bitburner.bitnodemultipliers.strengthlevelmultiplier.md) | number | Influences how quickly the player's strength level (not exp) scales | -| [WorldDaemonDifficulty](./bitburner.bitnodemultipliers.worlddaemondifficulty.md) | number | Influences the hacking skill required to backdoor the world daemon. | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [AgilityLevelMultiplier](./bitburner.bitnodemultipliers.agilitylevelmultiplier.md) | | number | Influences how quickly the player's agility level (not exp) scales | +| [AugmentationMoneyCost](./bitburner.bitnodemultipliers.augmentationmoneycost.md) | | number | Influences the base cost to purchase an augmentation. | +| [AugmentationRepCost](./bitburner.bitnodemultipliers.augmentationrepcost.md) | | number | Influences the base rep the player must have with a faction to purchase an augmentation. | +| [BladeburnerRank](./bitburner.bitnodemultipliers.bladeburnerrank.md) | | number | Influences how quickly the player can gain rank within Bladeburner. | +| [BladeburnerSkillCost](./bitburner.bitnodemultipliers.bladeburnerskillcost.md) | | number | Influences the cost of skill levels from Bladeburner. | +| [CharismaLevelMultiplier](./bitburner.bitnodemultipliers.charismalevelmultiplier.md) | | number | Influences how quickly the player's charisma level (not exp) scales | +| [ClassGymExpGain](./bitburner.bitnodemultipliers.classgymexpgain.md) | | number | Influences the experience gained for each ability when a player completes a class. | +| [CodingContractMoney](./bitburner.bitnodemultipliers.codingcontractmoney.md) | | number | Influences the amount of money gained from completing Coding Contracts | +| [CompanyWorkExpGain](./bitburner.bitnodemultipliers.companyworkexpgain.md) | | number | Influences the experience gained for each ability when the player completes working their job. | +| [CompanyWorkMoney](./bitburner.bitnodemultipliers.companyworkmoney.md) | | number | Influences how much money the player earns when completing working their job. | +| [CorporationSoftcap](./bitburner.bitnodemultipliers.corporationsoftcap.md) | | number | Influences the money gain from dividends of corporations created by the player. | +| [CorporationValuation](./bitburner.bitnodemultipliers.corporationvaluation.md) | | number | Influences the valuation of corporations created by the player. | +| [CrimeExpGain](./bitburner.bitnodemultipliers.crimeexpgain.md) | | number | Influences the base experience gained for each ability when the player commits a crime. | +| [CrimeMoney](./bitburner.bitnodemultipliers.crimemoney.md) | | number | Influences the base money gained when the player commits a crime. | +| [DaedalusAugsRequirement](./bitburner.bitnodemultipliers.daedalusaugsrequirement.md) | | number | Influences how many Augmentations you need in order to get invited to the Daedalus faction | +| [DefenseLevelMultiplier](./bitburner.bitnodemultipliers.defenselevelmultiplier.md) | | number | Influences how quickly the player's defense level (not exp) scales | +| [DexterityLevelMultiplier](./bitburner.bitnodemultipliers.dexteritylevelmultiplier.md) | | number | Influences how quickly the player's dexterity level (not exp) scales | +| [FactionPassiveRepGain](./bitburner.bitnodemultipliers.factionpassiverepgain.md) | | number | Influences how much rep the player gains in each faction simply by being a member. | +| [FactionWorkExpGain](./bitburner.bitnodemultipliers.factionworkexpgain.md) | | number | Influences the experience gained for each ability when the player completes work for a Faction. | +| [FactionWorkRepGain](./bitburner.bitnodemultipliers.factionworkrepgain.md) | | number | Influences how much rep the player gains when performing work for a faction. | +| [FourSigmaMarketDataApiCost](./bitburner.bitnodemultipliers.foursigmamarketdataapicost.md) | | number | Influences how much it costs to unlock the stock market's 4S Market Data API | +| [FourSigmaMarketDataCost](./bitburner.bitnodemultipliers.foursigmamarketdatacost.md) | | number | Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) | +| [GangSoftcap](./bitburner.bitnodemultipliers.gangsoftcap.md) | | number | Influences the respect gain and money gain of your gang. | +| [HackExpGain](./bitburner.bitnodemultipliers.hackexpgain.md) | | number | Influences the experienced gained when hacking a server. | +| [HackingLevelMultiplier](./bitburner.bitnodemultipliers.hackinglevelmultiplier.md) | | number | Influences how quickly the player's hacking level (not experience) scales | +| [HacknetNodeMoney](./bitburner.bitnodemultipliers.hacknetnodemoney.md) | | number | Influences how much money is produced by Hacknet Nodes and the hash rate of Hacknet Servers (unlocked in BitNode-9) | +| [HomeComputerRamCost](./bitburner.bitnodemultipliers.homecomputerramcost.md) | | number | Influences how much money it costs to upgrade your home computer's RAM | +| [InfiltrationMoney](./bitburner.bitnodemultipliers.infiltrationmoney.md) | | number | Influences how much money is gained when the player infiltrates a company. | +| [InfiltrationRep](./bitburner.bitnodemultipliers.infiltrationrep.md) | | number | Influences how much rep the player can gain from factions when selling stolen documents and secrets | +| [ManualHackMoney](./bitburner.bitnodemultipliers.manualhackmoney.md) | | number | Influences how much money can be stolen from a server when the player performs a hack against it through the Terminal. | +| [PurchasedServerCost](./bitburner.bitnodemultipliers.purchasedservercost.md) | | number | Influence how much it costs to purchase a server | +| [PurchasedServerLimit](./bitburner.bitnodemultipliers.purchasedserverlimit.md) | | number | Influences the maximum number of purchased servers you can have | +| [PurchasedServerMaxRam](./bitburner.bitnodemultipliers.purchasedservermaxram.md) | | number | Influences the maximum allowed RAM for a purchased server | +| [PurchasedServerSoftcap](./bitburner.bitnodemultipliers.purchasedserversoftcap.md) | | number | Influences cost of any purchased server at or above 128GB | +| [RepToDonateToFaction](./bitburner.bitnodemultipliers.reptodonatetofaction.md) | | number | Influences the minimum favor the player must have with a faction before they can donate to gain rep. | +| [ScriptHackMoney](./bitburner.bitnodemultipliers.scripthackmoney.md) | | number | Influences how much the money on a server can be reduced when a script performs a hack against it. | +| [ScriptHackMoneyGain](./bitburner.bitnodemultipliers.scripthackmoneygain.md) | | number | Influences how much of the money stolen by a scripted hack will be added to the player's money. | +| [ServerGrowthRate](./bitburner.bitnodemultipliers.servergrowthrate.md) | | number | Influences the growth percentage per cycle against a server. | +| [ServerMaxMoney](./bitburner.bitnodemultipliers.servermaxmoney.md) | | number | Influences the maximum money that a server can grow to. | +| [ServerStartingMoney](./bitburner.bitnodemultipliers.serverstartingmoney.md) | | number | Influences the initial money that a server starts with. | +| [ServerStartingSecurity](./bitburner.bitnodemultipliers.serverstartingsecurity.md) | | number | Influences the initial security level (hackDifficulty) of a server. | +| [ServerWeakenRate](./bitburner.bitnodemultipliers.serverweakenrate.md) | | number | Influences the weaken amount per invocation against a server. | +| [StaneksGiftExtraSize](./bitburner.bitnodemultipliers.staneksgiftextrasize.md) | | number | Influences the size of the gift | +| [StaneksGiftPowerMultiplier](./bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md) | | number | Influences the power of the gift | +| [StrengthLevelMultiplier](./bitburner.bitnodemultipliers.strengthlevelmultiplier.md) | | number | Influences how quickly the player's strength level (not exp) scales | +| [WorldDaemonDifficulty](./bitburner.bitnodemultipliers.worlddaemondifficulty.md) | | number | Influences the hacking skill required to backdoor the world daemon. | diff --git a/markdown/bitburner.bitnodemultipliers.purchasedservercost.md b/markdown/bitburner.bitnodemultipliers.purchasedservercost.md index 3881f4ba7..026cd00ae 100644 --- a/markdown/bitburner.bitnodemultipliers.purchasedservercost.md +++ b/markdown/bitburner.bitnodemultipliers.purchasedservercost.md @@ -6,7 +6,7 @@ Influence how much it costs to purchase a server -Signature: +**Signature:** ```typescript PurchasedServerCost: number; diff --git a/markdown/bitburner.bitnodemultipliers.purchasedserverlimit.md b/markdown/bitburner.bitnodemultipliers.purchasedserverlimit.md index fdaf15067..e73e1ee22 100644 --- a/markdown/bitburner.bitnodemultipliers.purchasedserverlimit.md +++ b/markdown/bitburner.bitnodemultipliers.purchasedserverlimit.md @@ -6,7 +6,7 @@ Influences the maximum number of purchased servers you can have -Signature: +**Signature:** ```typescript PurchasedServerLimit: number; diff --git a/markdown/bitburner.bitnodemultipliers.purchasedservermaxram.md b/markdown/bitburner.bitnodemultipliers.purchasedservermaxram.md index 91913734c..daedd5a30 100644 --- a/markdown/bitburner.bitnodemultipliers.purchasedservermaxram.md +++ b/markdown/bitburner.bitnodemultipliers.purchasedservermaxram.md @@ -6,7 +6,7 @@ Influences the maximum allowed RAM for a purchased server -Signature: +**Signature:** ```typescript PurchasedServerMaxRam: number; diff --git a/markdown/bitburner.bitnodemultipliers.purchasedserversoftcap.md b/markdown/bitburner.bitnodemultipliers.purchasedserversoftcap.md index 5f8e251e3..23786f7cf 100644 --- a/markdown/bitburner.bitnodemultipliers.purchasedserversoftcap.md +++ b/markdown/bitburner.bitnodemultipliers.purchasedserversoftcap.md @@ -6,7 +6,7 @@ Influences cost of any purchased server at or above 128GB -Signature: +**Signature:** ```typescript PurchasedServerSoftcap: number; diff --git a/markdown/bitburner.bitnodemultipliers.reptodonatetofaction.md b/markdown/bitburner.bitnodemultipliers.reptodonatetofaction.md index 35f28e704..acbed2524 100644 --- a/markdown/bitburner.bitnodemultipliers.reptodonatetofaction.md +++ b/markdown/bitburner.bitnodemultipliers.reptodonatetofaction.md @@ -6,7 +6,7 @@ Influences the minimum favor the player must have with a faction before they can donate to gain rep. -Signature: +**Signature:** ```typescript RepToDonateToFaction: number; diff --git a/markdown/bitburner.bitnodemultipliers.scripthackmoney.md b/markdown/bitburner.bitnodemultipliers.scripthackmoney.md index c0fb0e02b..0b94ca152 100644 --- a/markdown/bitburner.bitnodemultipliers.scripthackmoney.md +++ b/markdown/bitburner.bitnodemultipliers.scripthackmoney.md @@ -6,7 +6,7 @@ Influences how much the money on a server can be reduced when a script performs a hack against it. -Signature: +**Signature:** ```typescript ScriptHackMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.scripthackmoneygain.md b/markdown/bitburner.bitnodemultipliers.scripthackmoneygain.md index 38b82f966..a2d67aa72 100644 --- a/markdown/bitburner.bitnodemultipliers.scripthackmoneygain.md +++ b/markdown/bitburner.bitnodemultipliers.scripthackmoneygain.md @@ -6,7 +6,7 @@ Influences how much of the money stolen by a scripted hack will be added to the player's money. -Signature: +**Signature:** ```typescript ScriptHackMoneyGain: number; diff --git a/markdown/bitburner.bitnodemultipliers.servergrowthrate.md b/markdown/bitburner.bitnodemultipliers.servergrowthrate.md index 0f27490f1..7a7caf06b 100644 --- a/markdown/bitburner.bitnodemultipliers.servergrowthrate.md +++ b/markdown/bitburner.bitnodemultipliers.servergrowthrate.md @@ -6,7 +6,7 @@ Influences the growth percentage per cycle against a server. -Signature: +**Signature:** ```typescript ServerGrowthRate: number; diff --git a/markdown/bitburner.bitnodemultipliers.servermaxmoney.md b/markdown/bitburner.bitnodemultipliers.servermaxmoney.md index 103d38bf7..4465e2db3 100644 --- a/markdown/bitburner.bitnodemultipliers.servermaxmoney.md +++ b/markdown/bitburner.bitnodemultipliers.servermaxmoney.md @@ -6,7 +6,7 @@ Influences the maximum money that a server can grow to. -Signature: +**Signature:** ```typescript ServerMaxMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.serverstartingmoney.md b/markdown/bitburner.bitnodemultipliers.serverstartingmoney.md index c7455592e..7f225217c 100644 --- a/markdown/bitburner.bitnodemultipliers.serverstartingmoney.md +++ b/markdown/bitburner.bitnodemultipliers.serverstartingmoney.md @@ -6,7 +6,7 @@ Influences the initial money that a server starts with. -Signature: +**Signature:** ```typescript ServerStartingMoney: number; diff --git a/markdown/bitburner.bitnodemultipliers.serverstartingsecurity.md b/markdown/bitburner.bitnodemultipliers.serverstartingsecurity.md index 85eed7975..b1018bc5c 100644 --- a/markdown/bitburner.bitnodemultipliers.serverstartingsecurity.md +++ b/markdown/bitburner.bitnodemultipliers.serverstartingsecurity.md @@ -6,7 +6,7 @@ Influences the initial security level (hackDifficulty) of a server. -Signature: +**Signature:** ```typescript ServerStartingSecurity: number; diff --git a/markdown/bitburner.bitnodemultipliers.serverweakenrate.md b/markdown/bitburner.bitnodemultipliers.serverweakenrate.md index 152821446..042ba37fc 100644 --- a/markdown/bitburner.bitnodemultipliers.serverweakenrate.md +++ b/markdown/bitburner.bitnodemultipliers.serverweakenrate.md @@ -6,7 +6,7 @@ Influences the weaken amount per invocation against a server. -Signature: +**Signature:** ```typescript ServerWeakenRate: number; diff --git a/markdown/bitburner.bitnodemultipliers.staneksgiftextrasize.md b/markdown/bitburner.bitnodemultipliers.staneksgiftextrasize.md index 8854881a4..0facd2693 100644 --- a/markdown/bitburner.bitnodemultipliers.staneksgiftextrasize.md +++ b/markdown/bitburner.bitnodemultipliers.staneksgiftextrasize.md @@ -6,7 +6,7 @@ Influences the size of the gift -Signature: +**Signature:** ```typescript StaneksGiftExtraSize: number; diff --git a/markdown/bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md b/markdown/bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md index aba511247..1bc5a6069 100644 --- a/markdown/bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.staneksgiftpowermultiplier.md @@ -6,7 +6,7 @@ Influences the power of the gift -Signature: +**Signature:** ```typescript StaneksGiftPowerMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.strengthlevelmultiplier.md b/markdown/bitburner.bitnodemultipliers.strengthlevelmultiplier.md index 379d42239..d91864c0f 100644 --- a/markdown/bitburner.bitnodemultipliers.strengthlevelmultiplier.md +++ b/markdown/bitburner.bitnodemultipliers.strengthlevelmultiplier.md @@ -6,7 +6,7 @@ Influences how quickly the player's strength level (not exp) scales -Signature: +**Signature:** ```typescript StrengthLevelMultiplier: number; diff --git a/markdown/bitburner.bitnodemultipliers.worlddaemondifficulty.md b/markdown/bitburner.bitnodemultipliers.worlddaemondifficulty.md index 883a1a6c2..37844310b 100644 --- a/markdown/bitburner.bitnodemultipliers.worlddaemondifficulty.md +++ b/markdown/bitburner.bitnodemultipliers.worlddaemondifficulty.md @@ -6,7 +6,7 @@ Influences the hacking skill required to backdoor the world daemon. -Signature: +**Signature:** ```typescript WorldDaemonDifficulty: number; diff --git a/markdown/bitburner.bladeburner.getactionautolevel.md b/markdown/bitburner.bladeburner.getactionautolevel.md index c9e7175e0..1a68f5429 100644 --- a/markdown/bitburner.bladeburner.getactionautolevel.md +++ b/markdown/bitburner.bladeburner.getactionautolevel.md @@ -6,7 +6,7 @@ Get whether an action is set to autolevel. -Signature: +**Signature:** ```typescript getActionAutolevel(type: string, name: string): boolean; @@ -19,7 +19,7 @@ getActionAutolevel(type: string, name: string): boolean; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.getactioncountremaining.md b/markdown/bitburner.bladeburner.getactioncountremaining.md index 5ceebf6f8..052ad6032 100644 --- a/markdown/bitburner.bladeburner.getactioncountremaining.md +++ b/markdown/bitburner.bladeburner.getactioncountremaining.md @@ -6,7 +6,7 @@ Get action count remaining. -Signature: +**Signature:** ```typescript getActionCountRemaining(type: string, name: string): number; @@ -19,7 +19,7 @@ getActionCountRemaining(type: string, name: string): number; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getactioncurrentlevel.md b/markdown/bitburner.bladeburner.getactioncurrentlevel.md index 07b232f72..384f3adb5 100644 --- a/markdown/bitburner.bladeburner.getactioncurrentlevel.md +++ b/markdown/bitburner.bladeburner.getactioncurrentlevel.md @@ -6,7 +6,7 @@ Get the current level of an action. -Signature: +**Signature:** ```typescript getActionCurrentLevel(type: string, name: string): number; @@ -19,7 +19,7 @@ getActionCurrentLevel(type: string, name: string): number; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getactioncurrenttime.md b/markdown/bitburner.bladeburner.getactioncurrenttime.md index 8298d99a2..d1aa8c424 100644 --- a/markdown/bitburner.bladeburner.getactioncurrenttime.md +++ b/markdown/bitburner.bladeburner.getactioncurrenttime.md @@ -6,12 +6,12 @@ Get the time elapsed on current action. -Signature: +**Signature:** ```typescript getActionCurrentTime(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md b/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md index c6b480801..47eabb038 100644 --- a/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md +++ b/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md @@ -6,7 +6,7 @@ Get estimate success chance of an action. -Signature: +**Signature:** ```typescript getActionEstimatedSuccessChance(type: string, name: string): [number, number]; @@ -19,7 +19,7 @@ getActionEstimatedSuccessChance(type: string, name: string): [number, number]; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** \[number, number\] diff --git a/markdown/bitburner.bladeburner.getactionmaxlevel.md b/markdown/bitburner.bladeburner.getactionmaxlevel.md index 5b4629ea5..dee2743eb 100644 --- a/markdown/bitburner.bladeburner.getactionmaxlevel.md +++ b/markdown/bitburner.bladeburner.getactionmaxlevel.md @@ -6,7 +6,7 @@ Get the maximum level of an action. -Signature: +**Signature:** ```typescript getActionMaxLevel(type: string, name: string): number; @@ -19,7 +19,7 @@ getActionMaxLevel(type: string, name: string): number; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getactionrepgain.md b/markdown/bitburner.bladeburner.getactionrepgain.md index 96bcc0f11..ea07e1342 100644 --- a/markdown/bitburner.bladeburner.getactionrepgain.md +++ b/markdown/bitburner.bladeburner.getactionrepgain.md @@ -6,7 +6,7 @@ Get the reputation gain of an action. -Signature: +**Signature:** ```typescript getActionRepGain(type: string, name: string, level: number): number; @@ -20,7 +20,7 @@ getActionRepGain(type: string, name: string, level: number): number; | name | string | Name of action. Must be an exact match. | | level | number | Optional action level at which to calculate the gain | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getactionsuccesses.md b/markdown/bitburner.bladeburner.getactionsuccesses.md new file mode 100644 index 000000000..349b243ad --- /dev/null +++ b/markdown/bitburner.bladeburner.getactionsuccesses.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [Bladeburner](./bitburner.bladeburner.md) > [getActionSuccesses](./bitburner.bladeburner.getactionsuccesses.md) + +## Bladeburner.getActionSuccesses() method + +Get action successes. + +**Signature:** + +```typescript +getActionSuccesses(type: string, name: string): number; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| type | string | Type of action. | +| name | string | Name of action. Must be an exact match. | + +**Returns:** + +number + +a number with how many successes you have with action. + +## Remarks + +RAM cost: 4 GB + +Return a number with how many successes you have with action. + diff --git a/markdown/bitburner.bladeburner.getactiontime.md b/markdown/bitburner.bladeburner.getactiontime.md index ef920eec4..08ac013ed 100644 --- a/markdown/bitburner.bladeburner.getactiontime.md +++ b/markdown/bitburner.bladeburner.getactiontime.md @@ -6,7 +6,7 @@ Get the time to complete an action. -Signature: +**Signature:** ```typescript getActionTime(type: string, name: string): number; @@ -19,7 +19,7 @@ getActionTime(type: string, name: string): number; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getblackopnames.md b/markdown/bitburner.bladeburner.getblackopnames.md index abd073e1a..3763d988c 100644 --- a/markdown/bitburner.bladeburner.getblackopnames.md +++ b/markdown/bitburner.bladeburner.getblackopnames.md @@ -6,12 +6,12 @@ List all black ops. -Signature: +**Signature:** ```typescript getBlackOpNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.bladeburner.getblackoprank.md b/markdown/bitburner.bladeburner.getblackoprank.md index cd05f50db..e4c87f7b6 100644 --- a/markdown/bitburner.bladeburner.getblackoprank.md +++ b/markdown/bitburner.bladeburner.getblackoprank.md @@ -6,7 +6,7 @@ Get black op required rank. -Signature: +**Signature:** ```typescript getBlackOpRank(name: string): number; @@ -18,7 +18,7 @@ getBlackOpRank(name: string): number; | --- | --- | --- | | name | string | Name of BlackOp. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getbonustime.md b/markdown/bitburner.bladeburner.getbonustime.md index 1135fdf83..8fc653e0e 100644 --- a/markdown/bitburner.bladeburner.getbonustime.md +++ b/markdown/bitburner.bladeburner.getbonustime.md @@ -6,12 +6,12 @@ Get bladeburner bonus time. -Signature: +**Signature:** ```typescript getBonusTime(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getcity.md b/markdown/bitburner.bladeburner.getcity.md index 0bb805701..49601f7f4 100644 --- a/markdown/bitburner.bladeburner.getcity.md +++ b/markdown/bitburner.bladeburner.getcity.md @@ -6,12 +6,12 @@ Get current city. -Signature: +**Signature:** ```typescript getCity(): CityName; ``` -Returns: +**Returns:** [CityName](./bitburner.cityname.md) diff --git a/markdown/bitburner.bladeburner.getcitychaos.md b/markdown/bitburner.bladeburner.getcitychaos.md index e45cadb12..4787aea95 100644 --- a/markdown/bitburner.bladeburner.getcitychaos.md +++ b/markdown/bitburner.bladeburner.getcitychaos.md @@ -6,7 +6,7 @@ Get chaos of a city. -Signature: +**Signature:** ```typescript getCityChaos(city: CityName | `${CityName}`): number; @@ -18,7 +18,7 @@ getCityChaos(city: CityName | `${CityName}`): number; | --- | --- | --- | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of city. Case-sensitive | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getcitycommunities.md b/markdown/bitburner.bladeburner.getcitycommunities.md index c01f3779f..c432d1435 100644 --- a/markdown/bitburner.bladeburner.getcitycommunities.md +++ b/markdown/bitburner.bladeburner.getcitycommunities.md @@ -6,7 +6,7 @@ Get number of communities in a city. -Signature: +**Signature:** ```typescript getCityCommunities(city: CityName | `${CityName}`): number; @@ -18,7 +18,7 @@ getCityCommunities(city: CityName | `${CityName}`): number; | --- | --- | --- | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of city. Case-sensitive | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getcityestimatedpopulation.md b/markdown/bitburner.bladeburner.getcityestimatedpopulation.md index 9b54667c9..3ca677225 100644 --- a/markdown/bitburner.bladeburner.getcityestimatedpopulation.md +++ b/markdown/bitburner.bladeburner.getcityestimatedpopulation.md @@ -6,7 +6,7 @@ Get estimated population in city. -Signature: +**Signature:** ```typescript getCityEstimatedPopulation(city: CityName | `${CityName}`): number; @@ -18,7 +18,7 @@ getCityEstimatedPopulation(city: CityName | `${CityName}`): number; | --- | --- | --- | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of city. Case-sensitive | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getcontractnames.md b/markdown/bitburner.bladeburner.getcontractnames.md index 9ea54b621..b77ada5fe 100644 --- a/markdown/bitburner.bladeburner.getcontractnames.md +++ b/markdown/bitburner.bladeburner.getcontractnames.md @@ -6,12 +6,12 @@ List all contracts. -Signature: +**Signature:** ```typescript getContractNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.bladeburner.getcurrentaction.md b/markdown/bitburner.bladeburner.getcurrentaction.md index a2a1b87d0..35b2e1cca 100644 --- a/markdown/bitburner.bladeburner.getcurrentaction.md +++ b/markdown/bitburner.bladeburner.getcurrentaction.md @@ -6,12 +6,12 @@ Get current action. -Signature: +**Signature:** ```typescript getCurrentAction(): BladeburnerCurAction; ``` -Returns: +**Returns:** [BladeburnerCurAction](./bitburner.bladeburnercuraction.md) diff --git a/markdown/bitburner.bladeburner.getgeneralactionnames.md b/markdown/bitburner.bladeburner.getgeneralactionnames.md index 2786ddcc4..efe7b2be4 100644 --- a/markdown/bitburner.bladeburner.getgeneralactionnames.md +++ b/markdown/bitburner.bladeburner.getgeneralactionnames.md @@ -6,12 +6,12 @@ List all general actions. -Signature: +**Signature:** ```typescript getGeneralActionNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.bladeburner.getoperationnames.md b/markdown/bitburner.bladeburner.getoperationnames.md index 659f4718e..2352b3c84 100644 --- a/markdown/bitburner.bladeburner.getoperationnames.md +++ b/markdown/bitburner.bladeburner.getoperationnames.md @@ -6,12 +6,12 @@ List all operations. -Signature: +**Signature:** ```typescript getOperationNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.bladeburner.getrank.md b/markdown/bitburner.bladeburner.getrank.md index a3160bdb4..fe992bd17 100644 --- a/markdown/bitburner.bladeburner.getrank.md +++ b/markdown/bitburner.bladeburner.getrank.md @@ -6,12 +6,12 @@ Get player bladeburner rank. -Signature: +**Signature:** ```typescript getRank(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getskilllevel.md b/markdown/bitburner.bladeburner.getskilllevel.md index 2c797f083..27943b2c0 100644 --- a/markdown/bitburner.bladeburner.getskilllevel.md +++ b/markdown/bitburner.bladeburner.getskilllevel.md @@ -6,7 +6,7 @@ Get skill level. -Signature: +**Signature:** ```typescript getSkillLevel(name: string): number; @@ -18,7 +18,7 @@ getSkillLevel(name: string): number; | --- | --- | --- | | name | string | | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getskillnames.md b/markdown/bitburner.bladeburner.getskillnames.md index 14df6f225..9cfd053b1 100644 --- a/markdown/bitburner.bladeburner.getskillnames.md +++ b/markdown/bitburner.bladeburner.getskillnames.md @@ -6,12 +6,12 @@ List all skills. -Signature: +**Signature:** ```typescript getSkillNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.bladeburner.getskillpoints.md b/markdown/bitburner.bladeburner.getskillpoints.md index 466f82b6c..b4405ec53 100644 --- a/markdown/bitburner.bladeburner.getskillpoints.md +++ b/markdown/bitburner.bladeburner.getskillpoints.md @@ -6,12 +6,12 @@ Get bladeburner skill points. -Signature: +**Signature:** ```typescript getSkillPoints(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getskillupgradecost.md b/markdown/bitburner.bladeburner.getskillupgradecost.md index 23986d91c..c2fa9960d 100644 --- a/markdown/bitburner.bladeburner.getskillupgradecost.md +++ b/markdown/bitburner.bladeburner.getskillupgradecost.md @@ -6,7 +6,7 @@ Get cost to upgrade skill. -Signature: +**Signature:** ```typescript getSkillUpgradeCost(name: string, count?: number): number; @@ -17,9 +17,9 @@ getSkillUpgradeCost(name: string, count?: number): number; | Parameter | Type | Description | | --- | --- | --- | | name | string | | -| count | number | Number of times to upgrade the skill. Defaults to 1 if not specified. | +| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.getstamina.md b/markdown/bitburner.bladeburner.getstamina.md index eec7b7c4a..f3b0a374e 100644 --- a/markdown/bitburner.bladeburner.getstamina.md +++ b/markdown/bitburner.bladeburner.getstamina.md @@ -6,12 +6,12 @@ Get bladeburner stamina. -Signature: +**Signature:** ```typescript getStamina(): [number, number]; ``` -Returns: +**Returns:** \[number, number\] diff --git a/markdown/bitburner.bladeburner.getteamsize.md b/markdown/bitburner.bladeburner.getteamsize.md index aa3d2da47..37c87b530 100644 --- a/markdown/bitburner.bladeburner.getteamsize.md +++ b/markdown/bitburner.bladeburner.getteamsize.md @@ -6,7 +6,7 @@ Get team size. -Signature: +**Signature:** ```typescript getTeamSize(type: string, name: string): number; @@ -19,7 +19,7 @@ getTeamSize(type: string, name: string): number; | type | string | Type of action. | | name | string | Name of action. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.inbladeburner.md b/markdown/bitburner.bladeburner.inbladeburner.md index d999a75dc..39bc9acff 100644 --- a/markdown/bitburner.bladeburner.inbladeburner.md +++ b/markdown/bitburner.bladeburner.inbladeburner.md @@ -6,12 +6,12 @@ Returns whether player is a member of bladeburner division. Does not require API access. -Signature: +**Signature:** ```typescript inBladeburner(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.joinbladeburnerdivision.md b/markdown/bitburner.bladeburner.joinbladeburnerdivision.md index 649f72e32..80d22978e 100644 --- a/markdown/bitburner.bladeburner.joinbladeburnerdivision.md +++ b/markdown/bitburner.bladeburner.joinbladeburnerdivision.md @@ -6,12 +6,12 @@ Join the bladeburner division. -Signature: +**Signature:** ```typescript joinBladeburnerDivision(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.joinbladeburnerfaction.md b/markdown/bitburner.bladeburner.joinbladeburnerfaction.md index d2db36826..2c13da424 100644 --- a/markdown/bitburner.bladeburner.joinbladeburnerfaction.md +++ b/markdown/bitburner.bladeburner.joinbladeburnerfaction.md @@ -6,12 +6,12 @@ Join the bladeburner faction. -Signature: +**Signature:** ```typescript joinBladeburnerFaction(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.md b/markdown/bitburner.bladeburner.md index 0ea3ddb30..5a4aa9345 100644 --- a/markdown/bitburner.bladeburner.md +++ b/markdown/bitburner.bladeburner.md @@ -6,7 +6,7 @@ Bladeburner API -Signature: +**Signature:** ```typescript export interface Bladeburner @@ -27,6 +27,7 @@ You have to be employed in the Bladeburner division and be in BitNode-7 or have | [getActionEstimatedSuccessChance(type, name)](./bitburner.bladeburner.getactionestimatedsuccesschance.md) | Get estimate success chance of an action. | | [getActionMaxLevel(type, name)](./bitburner.bladeburner.getactionmaxlevel.md) | Get the maximum level of an action. | | [getActionRepGain(type, name, level)](./bitburner.bladeburner.getactionrepgain.md) | Get the reputation gain of an action. | +| [getActionSuccesses(type, name)](./bitburner.bladeburner.getactionsuccesses.md) | Get action successes. | | [getActionTime(type, name)](./bitburner.bladeburner.getactiontime.md) | Get the time to complete an action. | | [getBlackOpNames()](./bitburner.bladeburner.getblackopnames.md) | List all black ops. | | [getBlackOpRank(name)](./bitburner.bladeburner.getblackoprank.md) | Get black op required rank. | diff --git a/markdown/bitburner.bladeburner.setactionautolevel.md b/markdown/bitburner.bladeburner.setactionautolevel.md index 73f708f0d..cdf91610a 100644 --- a/markdown/bitburner.bladeburner.setactionautolevel.md +++ b/markdown/bitburner.bladeburner.setactionautolevel.md @@ -6,7 +6,7 @@ Set an action autolevel. -Signature: +**Signature:** ```typescript setActionAutolevel(type: string, name: string, autoLevel: boolean): void; @@ -20,7 +20,7 @@ setActionAutolevel(type: string, name: string, autoLevel: boolean): void; | name | string | Name of action. Must be an exact match. | | autoLevel | boolean | Whether or not to autolevel this action | -Returns: +**Returns:** void diff --git a/markdown/bitburner.bladeburner.setactionlevel.md b/markdown/bitburner.bladeburner.setactionlevel.md index 398bde4dd..df40e0a6b 100644 --- a/markdown/bitburner.bladeburner.setactionlevel.md +++ b/markdown/bitburner.bladeburner.setactionlevel.md @@ -6,7 +6,7 @@ Set the level of an action. -Signature: +**Signature:** ```typescript setActionLevel(type: string, name: string, level: number): void; @@ -20,7 +20,7 @@ setActionLevel(type: string, name: string, level: number): void; | name | string | Name of action. Must be an exact match. | | level | number | Level to set this action to. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.bladeburner.setteamsize.md b/markdown/bitburner.bladeburner.setteamsize.md index 13a848cbe..d70dec94e 100644 --- a/markdown/bitburner.bladeburner.setteamsize.md +++ b/markdown/bitburner.bladeburner.setteamsize.md @@ -6,7 +6,7 @@ Set team size. -Signature: +**Signature:** ```typescript setTeamSize(type: string, name: string, size: number): number; @@ -20,7 +20,7 @@ setTeamSize(type: string, name: string, size: number): number; | name | string | Name of action. Must be an exact match. | | size | number | Number of team members to set. Will be converted using Math.round(). | -Returns: +**Returns:** number diff --git a/markdown/bitburner.bladeburner.startaction.md b/markdown/bitburner.bladeburner.startaction.md index 4d3af78db..988cbe550 100644 --- a/markdown/bitburner.bladeburner.startaction.md +++ b/markdown/bitburner.bladeburner.startaction.md @@ -6,7 +6,7 @@ Start an action. -Signature: +**Signature:** ```typescript startAction(type: string, name: string): boolean; @@ -19,7 +19,7 @@ startAction(type: string, name: string): boolean; | type | string | Type of action. | | name | string | Name of action. Must be an exact match | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.stopbladeburneraction.md b/markdown/bitburner.bladeburner.stopbladeburneraction.md index 2542767e6..ba710d60f 100644 --- a/markdown/bitburner.bladeburner.stopbladeburneraction.md +++ b/markdown/bitburner.bladeburner.stopbladeburneraction.md @@ -6,12 +6,12 @@ Stop current action. -Signature: +**Signature:** ```typescript stopBladeburnerAction(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.bladeburner.switchcity.md b/markdown/bitburner.bladeburner.switchcity.md index 99962b1b3..71afd93b8 100644 --- a/markdown/bitburner.bladeburner.switchcity.md +++ b/markdown/bitburner.bladeburner.switchcity.md @@ -6,7 +6,7 @@ Travel to another city in bladeburner. -Signature: +**Signature:** ```typescript switchCity(city: CityName | `${CityName}`): boolean; @@ -18,7 +18,7 @@ switchCity(city: CityName | `${CityName}`): boolean; | --- | --- | --- | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of city. Case-sensitive | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburner.upgradeskill.md b/markdown/bitburner.bladeburner.upgradeskill.md index f404b8f64..12b80e599 100644 --- a/markdown/bitburner.bladeburner.upgradeskill.md +++ b/markdown/bitburner.bladeburner.upgradeskill.md @@ -6,7 +6,7 @@ Upgrade skill. -Signature: +**Signature:** ```typescript upgradeSkill(name: string, count?: number): boolean; @@ -17,9 +17,9 @@ upgradeSkill(name: string, count?: number): boolean; | Parameter | Type | Description | | --- | --- | --- | | name | string | | -| count | number | Number of times to upgrade the skill. Defaults to 1 if not specified. | +| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.bladeburnercuraction.md b/markdown/bitburner.bladeburnercuraction.md index 596804d5f..880d4675a 100644 --- a/markdown/bitburner.bladeburnercuraction.md +++ b/markdown/bitburner.bladeburnercuraction.md @@ -6,7 +6,7 @@ Bladeburner current action. -Signature: +**Signature:** ```typescript interface BladeburnerCurAction @@ -14,8 +14,8 @@ interface BladeburnerCurAction ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [name](./bitburner.bladeburnercuraction.name.md) | string | Name of Action | -| [type](./bitburner.bladeburnercuraction.type.md) | string | Type of Action | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [name](./bitburner.bladeburnercuraction.name.md) | | string | Name of Action | +| [type](./bitburner.bladeburnercuraction.type.md) | | string | Type of Action | diff --git a/markdown/bitburner.bladeburnercuraction.name.md b/markdown/bitburner.bladeburnercuraction.name.md index 3dbcfe79b..ab9483168 100644 --- a/markdown/bitburner.bladeburnercuraction.name.md +++ b/markdown/bitburner.bladeburnercuraction.name.md @@ -6,7 +6,7 @@ Name of Action -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.bladeburnercuraction.type.md b/markdown/bitburner.bladeburnercuraction.type.md index 63e21aec4..4f89aea18 100644 --- a/markdown/bitburner.bladeburnercuraction.type.md +++ b/markdown/bitburner.bladeburnercuraction.type.md @@ -6,7 +6,7 @@ Type of Action -Signature: +**Signature:** ```typescript type: string; diff --git a/markdown/bitburner.cityname.md b/markdown/bitburner.cityname.md index 2ee019716..5a3da78b3 100644 --- a/markdown/bitburner.cityname.md +++ b/markdown/bitburner.cityname.md @@ -6,7 +6,7 @@ Names of all cities -Signature: +**Signature:** ```typescript declare enum CityName diff --git a/markdown/bitburner.codingcontract.attempt.md b/markdown/bitburner.codingcontract.attempt.md index 8372562f2..0f3f9bac6 100644 --- a/markdown/bitburner.codingcontract.attempt.md +++ b/markdown/bitburner.codingcontract.attempt.md @@ -6,7 +6,7 @@ Attempts a coding contract, returning a reward string on success or empty string on failure. -Signature: +**Signature:** ```typescript attempt(answer: string | number | any[], filename: string, host?: string): string; @@ -18,9 +18,9 @@ attempt(answer: string | number | any[], filename: string, host?: string): strin | --- | --- | --- | | answer | string \| number \| any\[\] | Attempted solution for the contract. | | filename | string | Filename of the contract. | -| host | string | Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | +| host | string | _(Optional)_ Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.codingcontract.createdummycontract.md b/markdown/bitburner.codingcontract.createdummycontract.md index 3b8520779..c4405a3ac 100644 --- a/markdown/bitburner.codingcontract.createdummycontract.md +++ b/markdown/bitburner.codingcontract.createdummycontract.md @@ -6,7 +6,7 @@ Generate a dummy contract. -Signature: +**Signature:** ```typescript createDummyContract(type: string): void; @@ -18,7 +18,7 @@ createDummyContract(type: string): void; | --- | --- | --- | | type | string | Type of contract to generate | -Returns: +**Returns:** void diff --git a/markdown/bitburner.codingcontract.getcontracttype.md b/markdown/bitburner.codingcontract.getcontracttype.md index 686bfa3db..03468421b 100644 --- a/markdown/bitburner.codingcontract.getcontracttype.md +++ b/markdown/bitburner.codingcontract.getcontracttype.md @@ -6,7 +6,7 @@ Get the type of a coding contract. -Signature: +**Signature:** ```typescript getContractType(filename: string, host?: string): string; @@ -17,9 +17,9 @@ getContractType(filename: string, host?: string): string; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Filename of the contract. | -| host | string | Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | +| host | string | _(Optional)_ Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.codingcontract.getcontracttypes.md b/markdown/bitburner.codingcontract.getcontracttypes.md index c688b7b96..09f56f95c 100644 --- a/markdown/bitburner.codingcontract.getcontracttypes.md +++ b/markdown/bitburner.codingcontract.getcontracttypes.md @@ -6,12 +6,12 @@ List all contract types. -Signature: +**Signature:** ```typescript getContractTypes(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.codingcontract.getdata.md b/markdown/bitburner.codingcontract.getdata.md index 703f25372..4f744ef27 100644 --- a/markdown/bitburner.codingcontract.getdata.md +++ b/markdown/bitburner.codingcontract.getdata.md @@ -6,7 +6,7 @@ Get the input data. -Signature: +**Signature:** ```typescript getData(filename: string, host?: string): CodingContractData; @@ -17,9 +17,9 @@ getData(filename: string, host?: string): CodingContractData; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Filename of the contract. | -| host | string | Host of the server containing the contract. Optional. Defaults to current server if not provided. | +| host | string | _(Optional)_ Host of the server containing the contract. Optional. Defaults to current server if not provided. | -Returns: +**Returns:** [CodingContractData](./bitburner.codingcontractdata.md) diff --git a/markdown/bitburner.codingcontract.getdescription.md b/markdown/bitburner.codingcontract.getdescription.md index 86ab2f16c..3fcfb4ae3 100644 --- a/markdown/bitburner.codingcontract.getdescription.md +++ b/markdown/bitburner.codingcontract.getdescription.md @@ -6,7 +6,7 @@ Get the description. -Signature: +**Signature:** ```typescript getDescription(filename: string, host?: string): string; @@ -17,9 +17,9 @@ getDescription(filename: string, host?: string): string; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Filename of the contract. | -| host | string | Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | +| host | string | _(Optional)_ Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.codingcontract.getnumtriesremaining.md b/markdown/bitburner.codingcontract.getnumtriesremaining.md index f2be5a0bd..821734b69 100644 --- a/markdown/bitburner.codingcontract.getnumtriesremaining.md +++ b/markdown/bitburner.codingcontract.getnumtriesremaining.md @@ -6,7 +6,7 @@ Get the number of attempts remaining. -Signature: +**Signature:** ```typescript getNumTriesRemaining(filename: string, host?: string): number; @@ -17,9 +17,9 @@ getNumTriesRemaining(filename: string, host?: string): number; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Filename of the contract. | -| host | string | Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | +| host | string | _(Optional)_ Hostname of the server containing the contract. Optional. Defaults to current server if not provided. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.codingcontract.md b/markdown/bitburner.codingcontract.md index ed16e523f..e32a0bfdf 100644 --- a/markdown/bitburner.codingcontract.md +++ b/markdown/bitburner.codingcontract.md @@ -6,7 +6,7 @@ Coding Contract API -Signature: +**Signature:** ```typescript export interface CodingContract diff --git a/markdown/bitburner.codingcontractdata.md b/markdown/bitburner.codingcontractdata.md index 5d237f0c4..8351e524a 100644 --- a/markdown/bitburner.codingcontractdata.md +++ b/markdown/bitburner.codingcontractdata.md @@ -6,7 +6,7 @@ Coding contract data will differ depending on coding contract. -Signature: +**Signature:** ```typescript type CodingContractData = any; diff --git a/markdown/bitburner.corpconstants.baseproductprofitmult.md b/markdown/bitburner.corpconstants.baseproductprofitmult.md index 9c45026ac..97f8b6c04 100644 --- a/markdown/bitburner.corpconstants.baseproductprofitmult.md +++ b/markdown/bitburner.corpconstants.baseproductprofitmult.md @@ -4,7 +4,7 @@ ## CorpConstants.baseProductProfitMult property -Signature: +**Signature:** ```typescript baseProductProfitMult: number; diff --git a/markdown/bitburner.corpconstants.bribeamountperreputation.md b/markdown/bitburner.corpconstants.bribeamountperreputation.md index ac9f5a57f..028d73f9c 100644 --- a/markdown/bitburner.corpconstants.bribeamountperreputation.md +++ b/markdown/bitburner.corpconstants.bribeamountperreputation.md @@ -4,7 +4,7 @@ ## CorpConstants.bribeAmountPerReputation property -Signature: +**Signature:** ```typescript bribeAmountPerReputation: number; diff --git a/markdown/bitburner.corpconstants.bribethreshold.md b/markdown/bitburner.corpconstants.bribethreshold.md index 501ea2e61..2bc11d735 100644 --- a/markdown/bitburner.corpconstants.bribethreshold.md +++ b/markdown/bitburner.corpconstants.bribethreshold.md @@ -4,7 +4,7 @@ ## CorpConstants.bribeThreshold property -Signature: +**Signature:** ```typescript bribeThreshold: number; diff --git a/markdown/bitburner.corpconstants.coffeecostperemployee.md b/markdown/bitburner.corpconstants.coffeecostperemployee.md index 827e55be0..162421b07 100644 --- a/markdown/bitburner.corpconstants.coffeecostperemployee.md +++ b/markdown/bitburner.corpconstants.coffeecostperemployee.md @@ -4,7 +4,7 @@ ## CorpConstants.coffeeCostPerEmployee property -Signature: +**Signature:** ```typescript coffeeCostPerEmployee: number; diff --git a/markdown/bitburner.corpconstants.dividendmaxrate.md b/markdown/bitburner.corpconstants.dividendmaxrate.md index 56b36b831..44afa97e6 100644 --- a/markdown/bitburner.corpconstants.dividendmaxrate.md +++ b/markdown/bitburner.corpconstants.dividendmaxrate.md @@ -4,7 +4,7 @@ ## CorpConstants.dividendMaxRate property -Signature: +**Signature:** ```typescript dividendMaxRate: number; diff --git a/markdown/bitburner.corpconstants.employeeraiseamount.md b/markdown/bitburner.corpconstants.employeeraiseamount.md index 5f616749c..74abf090e 100644 --- a/markdown/bitburner.corpconstants.employeeraiseamount.md +++ b/markdown/bitburner.corpconstants.employeeraiseamount.md @@ -4,7 +4,7 @@ ## CorpConstants.employeeRaiseAmount property -Signature: +**Signature:** ```typescript employeeRaiseAmount: number; diff --git a/markdown/bitburner.corpconstants.employeesalarymultiplier.md b/markdown/bitburner.corpconstants.employeesalarymultiplier.md index b5fee3fb3..a20e9ee38 100644 --- a/markdown/bitburner.corpconstants.employeesalarymultiplier.md +++ b/markdown/bitburner.corpconstants.employeesalarymultiplier.md @@ -6,7 +6,7 @@ Conversion factor for employee stats to initial salary -Signature: +**Signature:** ```typescript employeeSalaryMultiplier: number; diff --git a/markdown/bitburner.corpconstants.gamecyclespercorpstatecycle.md b/markdown/bitburner.corpconstants.gamecyclespercorpstatecycle.md index 3087ba944..c1eeec278 100644 --- a/markdown/bitburner.corpconstants.gamecyclespercorpstatecycle.md +++ b/markdown/bitburner.corpconstants.gamecyclespercorpstatecycle.md @@ -4,7 +4,7 @@ ## CorpConstants.gameCyclesPerCorpStateCycle property -Signature: +**Signature:** ```typescript gameCyclesPerCorpStateCycle: number; diff --git a/markdown/bitburner.corpconstants.gamecyclespermarketcycle.md b/markdown/bitburner.corpconstants.gamecyclespermarketcycle.md index b4c0861c7..c7d051b46 100644 --- a/markdown/bitburner.corpconstants.gamecyclespermarketcycle.md +++ b/markdown/bitburner.corpconstants.gamecyclespermarketcycle.md @@ -4,7 +4,7 @@ ## CorpConstants.gameCyclesPerMarketCycle property -Signature: +**Signature:** ```typescript gameCyclesPerMarketCycle: number; diff --git a/markdown/bitburner.corpconstants.industrynames.md b/markdown/bitburner.corpconstants.industrynames.md index 22056a0b5..c366b2d37 100644 --- a/markdown/bitburner.corpconstants.industrynames.md +++ b/markdown/bitburner.corpconstants.industrynames.md @@ -6,7 +6,7 @@ Names of all industries -Signature: +**Signature:** ```typescript industryNames: CorpIndustryName[]; diff --git a/markdown/bitburner.corpconstants.initialshares.md b/markdown/bitburner.corpconstants.initialshares.md index 3b3d9cc60..12f0168aa 100644 --- a/markdown/bitburner.corpconstants.initialshares.md +++ b/markdown/bitburner.corpconstants.initialshares.md @@ -4,7 +4,7 @@ ## CorpConstants.initialShares property -Signature: +**Signature:** ```typescript initialShares: number; diff --git a/markdown/bitburner.corpconstants.issuenewsharescooldown.md b/markdown/bitburner.corpconstants.issuenewsharescooldown.md index 317d399db..92ae766b7 100644 --- a/markdown/bitburner.corpconstants.issuenewsharescooldown.md +++ b/markdown/bitburner.corpconstants.issuenewsharescooldown.md @@ -6,7 +6,7 @@ Cooldown for issue new shares cooldown in game cycles (1 game cycle = 200ms) -Signature: +**Signature:** ```typescript issueNewSharesCooldown: number; diff --git a/markdown/bitburner.corpconstants.marketcyclesperemployeeraise.md b/markdown/bitburner.corpconstants.marketcyclesperemployeeraise.md index eff6cd23d..adaab89b3 100644 --- a/markdown/bitburner.corpconstants.marketcyclesperemployeeraise.md +++ b/markdown/bitburner.corpconstants.marketcyclesperemployeeraise.md @@ -4,7 +4,7 @@ ## CorpConstants.marketCyclesPerEmployeeRaise property -Signature: +**Signature:** ```typescript marketCyclesPerEmployeeRaise: number; diff --git a/markdown/bitburner.corpconstants.materialnames.md b/markdown/bitburner.corpconstants.materialnames.md index 97cd629ac..b3271182b 100644 --- a/markdown/bitburner.corpconstants.materialnames.md +++ b/markdown/bitburner.corpconstants.materialnames.md @@ -6,7 +6,7 @@ Names of all materials -Signature: +**Signature:** ```typescript materialNames: CorpMaterialName[]; diff --git a/markdown/bitburner.corpconstants.maxproductsbase.md b/markdown/bitburner.corpconstants.maxproductsbase.md index c2ac45f6e..572d82fa5 100644 --- a/markdown/bitburner.corpconstants.maxproductsbase.md +++ b/markdown/bitburner.corpconstants.maxproductsbase.md @@ -6,7 +6,7 @@ Max products for a division without upgrades -Signature: +**Signature:** ```typescript maxProductsBase: number; diff --git a/markdown/bitburner.corpconstants.md b/markdown/bitburner.corpconstants.md index 578040953..f1121b97e 100644 --- a/markdown/bitburner.corpconstants.md +++ b/markdown/bitburner.corpconstants.md @@ -6,7 +6,7 @@ Corporation related constants -Signature: +**Signature:** ```typescript interface CorpConstants @@ -14,37 +14,37 @@ interface CorpConstants ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [baseProductProfitMult](./bitburner.corpconstants.baseproductprofitmult.md) | number | | -| [bribeAmountPerReputation](./bitburner.corpconstants.bribeamountperreputation.md) | number | | -| [bribeThreshold](./bitburner.corpconstants.bribethreshold.md) | number | | -| [coffeeCostPerEmployee](./bitburner.corpconstants.coffeecostperemployee.md) | number | | -| [dividendMaxRate](./bitburner.corpconstants.dividendmaxrate.md) | number | | -| [employeeRaiseAmount](./bitburner.corpconstants.employeeraiseamount.md) | number | | -| [employeeSalaryMultiplier](./bitburner.corpconstants.employeesalarymultiplier.md) | number | Conversion factor for employee stats to initial salary | -| [gameCyclesPerCorpStateCycle](./bitburner.corpconstants.gamecyclespercorpstatecycle.md) | number | | -| [gameCyclesPerMarketCycle](./bitburner.corpconstants.gamecyclespermarketcycle.md) | number | | -| [industryNames](./bitburner.corpconstants.industrynames.md) | [CorpIndustryName](./bitburner.corpindustryname.md)\[\] | Names of all industries | -| [initialShares](./bitburner.corpconstants.initialshares.md) | number | | -| [issueNewSharesCooldown](./bitburner.corpconstants.issuenewsharescooldown.md) | number | Cooldown for issue new shares cooldown in game cycles (1 game cycle = 200ms) | -| [marketCyclesPerEmployeeRaise](./bitburner.corpconstants.marketcyclesperemployeeraise.md) | number | | -| [materialNames](./bitburner.corpconstants.materialnames.md) | [CorpMaterialName](./bitburner.corpmaterialname.md)\[\] | Names of all materials | -| [maxProductsBase](./bitburner.corpconstants.maxproductsbase.md) | number | Max products for a division without upgrades | -| [minEmployeeDecay](./bitburner.corpconstants.minemployeedecay.md) | number | The minimum decay value for happiness/morale/energy | -| [officeInitialCost](./bitburner.corpconstants.officeinitialcost.md) | number | | -| [officeInitialSize](./bitburner.corpconstants.officeinitialsize.md) | number | | -| [officeSizeUpgradeCostBase](./bitburner.corpconstants.officesizeupgradecostbase.md) | number | | -| [researchNames](./bitburner.corpconstants.researchnames.md) | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches | -| [researchNamesBase](./bitburner.corpconstants.researchnamesbase.md) | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches common to all industries | -| [researchNamesProductOnly](./bitburner.corpconstants.researchnamesproductonly.md) | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches only available to product industries | -| [secondsPerMarketCycle](./bitburner.corpconstants.secondspermarketcycle.md) | number | | -| [sellSharesCooldown](./bitburner.corpconstants.sellsharescooldown.md) | number | Cooldown for selling shares in game cycles (1 game cycle = 200ms) | -| [sharesPerPriceUpdate](./bitburner.corpconstants.sharesperpriceupdate.md) | number | When selling large number of shares, price is dynamically updated for every batch of this amount | -| [stateNames](./bitburner.corpconstants.statenames.md) | [CorpStateName](./bitburner.corpstatename.md)\[\] | Names of all corporation game states | -| [unlockNames](./bitburner.corpconstants.unlocknames.md) | [CorpUnlockName](./bitburner.corpunlockname.md)\[\] | Names of all one-time corporation-wide unlocks | -| [upgradeNames](./bitburner.corpconstants.upgradenames.md) | [CorpUpgradeName](./bitburner.corpupgradename.md)\[\] | Names of all corporation-wide upgrades | -| [warehouseInitialCost](./bitburner.corpconstants.warehouseinitialcost.md) | number | | -| [warehouseInitialSize](./bitburner.corpconstants.warehouseinitialsize.md) | number | | -| [warehouseSizeUpgradeCostBase](./bitburner.corpconstants.warehousesizeupgradecostbase.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [baseProductProfitMult](./bitburner.corpconstants.baseproductprofitmult.md) | | number | | +| [bribeAmountPerReputation](./bitburner.corpconstants.bribeamountperreputation.md) | | number | | +| [bribeThreshold](./bitburner.corpconstants.bribethreshold.md) | | number | | +| [coffeeCostPerEmployee](./bitburner.corpconstants.coffeecostperemployee.md) | | number | | +| [dividendMaxRate](./bitburner.corpconstants.dividendmaxrate.md) | | number | | +| [employeeRaiseAmount](./bitburner.corpconstants.employeeraiseamount.md) | | number | | +| [employeeSalaryMultiplier](./bitburner.corpconstants.employeesalarymultiplier.md) | | number | Conversion factor for employee stats to initial salary | +| [gameCyclesPerCorpStateCycle](./bitburner.corpconstants.gamecyclespercorpstatecycle.md) | | number | | +| [gameCyclesPerMarketCycle](./bitburner.corpconstants.gamecyclespermarketcycle.md) | | number | | +| [industryNames](./bitburner.corpconstants.industrynames.md) | | [CorpIndustryName](./bitburner.corpindustryname.md)\[\] | Names of all industries | +| [initialShares](./bitburner.corpconstants.initialshares.md) | | number | | +| [issueNewSharesCooldown](./bitburner.corpconstants.issuenewsharescooldown.md) | | number | Cooldown for issue new shares cooldown in game cycles (1 game cycle = 200ms) | +| [marketCyclesPerEmployeeRaise](./bitburner.corpconstants.marketcyclesperemployeeraise.md) | | number | | +| [materialNames](./bitburner.corpconstants.materialnames.md) | | [CorpMaterialName](./bitburner.corpmaterialname.md)\[\] | Names of all materials | +| [maxProductsBase](./bitburner.corpconstants.maxproductsbase.md) | | number | Max products for a division without upgrades | +| [minEmployeeDecay](./bitburner.corpconstants.minemployeedecay.md) | | number | The minimum decay value for happiness/morale/energy | +| [officeInitialCost](./bitburner.corpconstants.officeinitialcost.md) | | number | | +| [officeInitialSize](./bitburner.corpconstants.officeinitialsize.md) | | number | | +| [officeSizeUpgradeCostBase](./bitburner.corpconstants.officesizeupgradecostbase.md) | | number | | +| [researchNames](./bitburner.corpconstants.researchnames.md) | | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches | +| [researchNamesBase](./bitburner.corpconstants.researchnamesbase.md) | | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches common to all industries | +| [researchNamesProductOnly](./bitburner.corpconstants.researchnamesproductonly.md) | | [CorpResearchName](./bitburner.corpresearchname.md)\[\] | Names of all researches only available to product industries | +| [secondsPerMarketCycle](./bitburner.corpconstants.secondspermarketcycle.md) | | number | | +| [sellSharesCooldown](./bitburner.corpconstants.sellsharescooldown.md) | | number | Cooldown for selling shares in game cycles (1 game cycle = 200ms) | +| [sharesPerPriceUpdate](./bitburner.corpconstants.sharesperpriceupdate.md) | | number | When selling large number of shares, price is dynamically updated for every batch of this amount | +| [stateNames](./bitburner.corpconstants.statenames.md) | | [CorpStateName](./bitburner.corpstatename.md)\[\] | Names of all corporation game states | +| [unlockNames](./bitburner.corpconstants.unlocknames.md) | | [CorpUnlockName](./bitburner.corpunlockname.md)\[\] | Names of all one-time corporation-wide unlocks | +| [upgradeNames](./bitburner.corpconstants.upgradenames.md) | | [CorpUpgradeName](./bitburner.corpupgradename.md)\[\] | Names of all corporation-wide upgrades | +| [warehouseInitialCost](./bitburner.corpconstants.warehouseinitialcost.md) | | number | | +| [warehouseInitialSize](./bitburner.corpconstants.warehouseinitialsize.md) | | number | | +| [warehouseSizeUpgradeCostBase](./bitburner.corpconstants.warehousesizeupgradecostbase.md) | | number | | diff --git a/markdown/bitburner.corpconstants.minemployeedecay.md b/markdown/bitburner.corpconstants.minemployeedecay.md index 933af8d03..d596c0556 100644 --- a/markdown/bitburner.corpconstants.minemployeedecay.md +++ b/markdown/bitburner.corpconstants.minemployeedecay.md @@ -6,7 +6,7 @@ The minimum decay value for happiness/morale/energy -Signature: +**Signature:** ```typescript minEmployeeDecay: number; diff --git a/markdown/bitburner.corpconstants.officeinitialcost.md b/markdown/bitburner.corpconstants.officeinitialcost.md index b4a79f434..36a7e1b5d 100644 --- a/markdown/bitburner.corpconstants.officeinitialcost.md +++ b/markdown/bitburner.corpconstants.officeinitialcost.md @@ -4,7 +4,7 @@ ## CorpConstants.officeInitialCost property -Signature: +**Signature:** ```typescript officeInitialCost: number; diff --git a/markdown/bitburner.corpconstants.officeinitialsize.md b/markdown/bitburner.corpconstants.officeinitialsize.md index 38b7e35c3..dd0624b62 100644 --- a/markdown/bitburner.corpconstants.officeinitialsize.md +++ b/markdown/bitburner.corpconstants.officeinitialsize.md @@ -4,7 +4,7 @@ ## CorpConstants.officeInitialSize property -Signature: +**Signature:** ```typescript officeInitialSize: number; diff --git a/markdown/bitburner.corpconstants.officesizeupgradecostbase.md b/markdown/bitburner.corpconstants.officesizeupgradecostbase.md index 06e16f74f..0dc221636 100644 --- a/markdown/bitburner.corpconstants.officesizeupgradecostbase.md +++ b/markdown/bitburner.corpconstants.officesizeupgradecostbase.md @@ -4,7 +4,7 @@ ## CorpConstants.officeSizeUpgradeCostBase property -Signature: +**Signature:** ```typescript officeSizeUpgradeCostBase: number; diff --git a/markdown/bitburner.corpconstants.researchnames.md b/markdown/bitburner.corpconstants.researchnames.md index f53bf0bbd..cc95afdb5 100644 --- a/markdown/bitburner.corpconstants.researchnames.md +++ b/markdown/bitburner.corpconstants.researchnames.md @@ -6,7 +6,7 @@ Names of all researches -Signature: +**Signature:** ```typescript researchNames: CorpResearchName[]; diff --git a/markdown/bitburner.corpconstants.researchnamesbase.md b/markdown/bitburner.corpconstants.researchnamesbase.md index 63cff1190..19a88ca53 100644 --- a/markdown/bitburner.corpconstants.researchnamesbase.md +++ b/markdown/bitburner.corpconstants.researchnamesbase.md @@ -6,7 +6,7 @@ Names of all researches common to all industries -Signature: +**Signature:** ```typescript researchNamesBase: CorpResearchName[]; diff --git a/markdown/bitburner.corpconstants.researchnamesproductonly.md b/markdown/bitburner.corpconstants.researchnamesproductonly.md index 735dd7a53..eb50cb843 100644 --- a/markdown/bitburner.corpconstants.researchnamesproductonly.md +++ b/markdown/bitburner.corpconstants.researchnamesproductonly.md @@ -6,7 +6,7 @@ Names of all researches only available to product industries -Signature: +**Signature:** ```typescript researchNamesProductOnly: CorpResearchName[]; diff --git a/markdown/bitburner.corpconstants.secondspermarketcycle.md b/markdown/bitburner.corpconstants.secondspermarketcycle.md index 5723094c1..924fdc0db 100644 --- a/markdown/bitburner.corpconstants.secondspermarketcycle.md +++ b/markdown/bitburner.corpconstants.secondspermarketcycle.md @@ -4,7 +4,7 @@ ## CorpConstants.secondsPerMarketCycle property -Signature: +**Signature:** ```typescript secondsPerMarketCycle: number; diff --git a/markdown/bitburner.corpconstants.sellsharescooldown.md b/markdown/bitburner.corpconstants.sellsharescooldown.md index 89f78b2e9..f39512f44 100644 --- a/markdown/bitburner.corpconstants.sellsharescooldown.md +++ b/markdown/bitburner.corpconstants.sellsharescooldown.md @@ -6,7 +6,7 @@ Cooldown for selling shares in game cycles (1 game cycle = 200ms) -Signature: +**Signature:** ```typescript sellSharesCooldown: number; diff --git a/markdown/bitburner.corpconstants.sharesperpriceupdate.md b/markdown/bitburner.corpconstants.sharesperpriceupdate.md index 5244c1673..a2a69aec8 100644 --- a/markdown/bitburner.corpconstants.sharesperpriceupdate.md +++ b/markdown/bitburner.corpconstants.sharesperpriceupdate.md @@ -6,7 +6,7 @@ When selling large number of shares, price is dynamically updated for every batch of this amount -Signature: +**Signature:** ```typescript sharesPerPriceUpdate: number; diff --git a/markdown/bitburner.corpconstants.statenames.md b/markdown/bitburner.corpconstants.statenames.md index cd03a41e5..f21345cdf 100644 --- a/markdown/bitburner.corpconstants.statenames.md +++ b/markdown/bitburner.corpconstants.statenames.md @@ -6,7 +6,7 @@ Names of all corporation game states -Signature: +**Signature:** ```typescript stateNames: CorpStateName[]; diff --git a/markdown/bitburner.corpconstants.unlocknames.md b/markdown/bitburner.corpconstants.unlocknames.md index 69524785d..39e5b1015 100644 --- a/markdown/bitburner.corpconstants.unlocknames.md +++ b/markdown/bitburner.corpconstants.unlocknames.md @@ -6,7 +6,7 @@ Names of all one-time corporation-wide unlocks -Signature: +**Signature:** ```typescript unlockNames: CorpUnlockName[]; diff --git a/markdown/bitburner.corpconstants.upgradenames.md b/markdown/bitburner.corpconstants.upgradenames.md index 66e64b615..d6e07a7ec 100644 --- a/markdown/bitburner.corpconstants.upgradenames.md +++ b/markdown/bitburner.corpconstants.upgradenames.md @@ -6,7 +6,7 @@ Names of all corporation-wide upgrades -Signature: +**Signature:** ```typescript upgradeNames: CorpUpgradeName[]; diff --git a/markdown/bitburner.corpconstants.warehouseinitialcost.md b/markdown/bitburner.corpconstants.warehouseinitialcost.md index 52affbee6..03f9b7b58 100644 --- a/markdown/bitburner.corpconstants.warehouseinitialcost.md +++ b/markdown/bitburner.corpconstants.warehouseinitialcost.md @@ -4,7 +4,7 @@ ## CorpConstants.warehouseInitialCost property -Signature: +**Signature:** ```typescript warehouseInitialCost: number; diff --git a/markdown/bitburner.corpconstants.warehouseinitialsize.md b/markdown/bitburner.corpconstants.warehouseinitialsize.md index 6fddcae5c..0640ab539 100644 --- a/markdown/bitburner.corpconstants.warehouseinitialsize.md +++ b/markdown/bitburner.corpconstants.warehouseinitialsize.md @@ -4,7 +4,7 @@ ## CorpConstants.warehouseInitialSize property -Signature: +**Signature:** ```typescript warehouseInitialSize: number; diff --git a/markdown/bitburner.corpconstants.warehousesizeupgradecostbase.md b/markdown/bitburner.corpconstants.warehousesizeupgradecostbase.md index a5a7ae8a4..c2e01d3bc 100644 --- a/markdown/bitburner.corpconstants.warehousesizeupgradecostbase.md +++ b/markdown/bitburner.corpconstants.warehousesizeupgradecostbase.md @@ -4,7 +4,7 @@ ## CorpConstants.warehouseSizeUpgradeCostBase property -Signature: +**Signature:** ```typescript warehouseSizeUpgradeCostBase: number; diff --git a/markdown/bitburner.corpemployeeposition.md b/markdown/bitburner.corpemployeeposition.md index 5d3cf1484..07de11b22 100644 --- a/markdown/bitburner.corpemployeeposition.md +++ b/markdown/bitburner.corpemployeeposition.md @@ -5,7 +5,7 @@ ## CorpEmployeePosition type -Signature: +**Signature:** ```typescript type CorpEmployeePosition = diff --git a/markdown/bitburner.corpindustrydata.advertisingfactor.md b/markdown/bitburner.corpindustrydata.advertisingfactor.md index 0a6ee2731..ba9b42952 100644 --- a/markdown/bitburner.corpindustrydata.advertisingfactor.md +++ b/markdown/bitburner.corpindustrydata.advertisingfactor.md @@ -6,7 +6,7 @@ Advertising factor (affects sales) -Signature: +**Signature:** ```typescript advertisingFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.aicorefactor.md b/markdown/bitburner.corpindustrydata.aicorefactor.md index f2b597c3e..8a602fd19 100644 --- a/markdown/bitburner.corpindustrydata.aicorefactor.md +++ b/markdown/bitburner.corpindustrydata.aicorefactor.md @@ -6,7 +6,7 @@ AI Cores factor -Signature: +**Signature:** ```typescript aiCoreFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.description.md b/markdown/bitburner.corpindustrydata.description.md index 9e95550c7..0c6f90252 100644 --- a/markdown/bitburner.corpindustrydata.description.md +++ b/markdown/bitburner.corpindustrydata.description.md @@ -4,7 +4,7 @@ ## CorpIndustryData.description property -Signature: +**Signature:** ```typescript description: string; diff --git a/markdown/bitburner.corpindustrydata.hardwarefactor.md b/markdown/bitburner.corpindustrydata.hardwarefactor.md index 3024f2640..c93bd54ad 100644 --- a/markdown/bitburner.corpindustrydata.hardwarefactor.md +++ b/markdown/bitburner.corpindustrydata.hardwarefactor.md @@ -6,7 +6,7 @@ Hardware factor -Signature: +**Signature:** ```typescript hardwareFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.md b/markdown/bitburner.corpindustrydata.md index 829f9a717..beb0774c2 100644 --- a/markdown/bitburner.corpindustrydata.md +++ b/markdown/bitburner.corpindustrydata.md @@ -6,7 +6,7 @@ Data for an individual industry -Signature: +**Signature:** ```typescript interface CorpIndustryData @@ -14,18 +14,18 @@ interface CorpIndustryData ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [advertisingFactor?](./bitburner.corpindustrydata.advertisingfactor.md) | number | (Optional) Advertising factor (affects sales) | -| [aiCoreFactor?](./bitburner.corpindustrydata.aicorefactor.md) | number | (Optional) AI Cores factor | -| [description](./bitburner.corpindustrydata.description.md) | string | | -| [hardwareFactor?](./bitburner.corpindustrydata.hardwarefactor.md) | number | (Optional) Hardware factor | -| [producedMaterials?](./bitburner.corpindustrydata.producedmaterials.md) | [CorpMaterialName](./bitburner.corpmaterialname.md)\[\] | (Optional) | -| [product?](./bitburner.corpindustrydata.product.md) | [CorpProductData](./bitburner.corpproductdata.md) | (Optional) | -| [realEstateFactor?](./bitburner.corpindustrydata.realestatefactor.md) | number | (Optional) Real estate factor | -| [recommendStarting](./bitburner.corpindustrydata.recommendstarting.md) | boolean | | -| [requiredMaterials](./bitburner.corpindustrydata.requiredmaterials.md) | Partial<Record<[CorpMaterialName](./bitburner.corpmaterialname.md), number>> | | -| [robotFactor?](./bitburner.corpindustrydata.robotfactor.md) | number | (Optional) Robots factor | -| [scienceFactor?](./bitburner.corpindustrydata.sciencefactor.md) | number | (Optional) Scientific research factor (affects quality) | -| [startingCost](./bitburner.corpindustrydata.startingcost.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [advertisingFactor?](./bitburner.corpindustrydata.advertisingfactor.md) | | number | _(Optional)_ Advertising factor (affects sales) | +| [aiCoreFactor?](./bitburner.corpindustrydata.aicorefactor.md) | | number | _(Optional)_ AI Cores factor | +| [description](./bitburner.corpindustrydata.description.md) | | string | | +| [hardwareFactor?](./bitburner.corpindustrydata.hardwarefactor.md) | | number | _(Optional)_ Hardware factor | +| [producedMaterials?](./bitburner.corpindustrydata.producedmaterials.md) | | [CorpMaterialName](./bitburner.corpmaterialname.md)\[\] | _(Optional)_ | +| [product?](./bitburner.corpindustrydata.product.md) | | [CorpProductData](./bitburner.corpproductdata.md) | _(Optional)_ | +| [realEstateFactor?](./bitburner.corpindustrydata.realestatefactor.md) | | number | _(Optional)_ Real estate factor | +| [recommendStarting](./bitburner.corpindustrydata.recommendstarting.md) | | boolean | | +| [requiredMaterials](./bitburner.corpindustrydata.requiredmaterials.md) | | Partial<Record<[CorpMaterialName](./bitburner.corpmaterialname.md), number>> | | +| [robotFactor?](./bitburner.corpindustrydata.robotfactor.md) | | number | _(Optional)_ Robots factor | +| [scienceFactor?](./bitburner.corpindustrydata.sciencefactor.md) | | number | _(Optional)_ Scientific research factor (affects quality) | +| [startingCost](./bitburner.corpindustrydata.startingcost.md) | | number | | diff --git a/markdown/bitburner.corpindustrydata.producedmaterials.md b/markdown/bitburner.corpindustrydata.producedmaterials.md index 5ba737018..e70f92650 100644 --- a/markdown/bitburner.corpindustrydata.producedmaterials.md +++ b/markdown/bitburner.corpindustrydata.producedmaterials.md @@ -4,7 +4,7 @@ ## CorpIndustryData.producedMaterials property -Signature: +**Signature:** ```typescript producedMaterials?: CorpMaterialName[]; diff --git a/markdown/bitburner.corpindustrydata.product.md b/markdown/bitburner.corpindustrydata.product.md index b9c9e5d33..0cd5cac15 100644 --- a/markdown/bitburner.corpindustrydata.product.md +++ b/markdown/bitburner.corpindustrydata.product.md @@ -4,7 +4,7 @@ ## CorpIndustryData.product property -Signature: +**Signature:** ```typescript product?: CorpProductData; diff --git a/markdown/bitburner.corpindustrydata.realestatefactor.md b/markdown/bitburner.corpindustrydata.realestatefactor.md index 0df329432..d11f1c624 100644 --- a/markdown/bitburner.corpindustrydata.realestatefactor.md +++ b/markdown/bitburner.corpindustrydata.realestatefactor.md @@ -6,7 +6,7 @@ Real estate factor -Signature: +**Signature:** ```typescript realEstateFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.recommendstarting.md b/markdown/bitburner.corpindustrydata.recommendstarting.md index 22f28b3ab..110a86f7d 100644 --- a/markdown/bitburner.corpindustrydata.recommendstarting.md +++ b/markdown/bitburner.corpindustrydata.recommendstarting.md @@ -4,7 +4,7 @@ ## CorpIndustryData.recommendStarting property -Signature: +**Signature:** ```typescript recommendStarting: boolean; diff --git a/markdown/bitburner.corpindustrydata.requiredmaterials.md b/markdown/bitburner.corpindustrydata.requiredmaterials.md index 41bdbe37d..035053d18 100644 --- a/markdown/bitburner.corpindustrydata.requiredmaterials.md +++ b/markdown/bitburner.corpindustrydata.requiredmaterials.md @@ -4,7 +4,7 @@ ## CorpIndustryData.requiredMaterials property -Signature: +**Signature:** ```typescript requiredMaterials: Partial>; diff --git a/markdown/bitburner.corpindustrydata.robotfactor.md b/markdown/bitburner.corpindustrydata.robotfactor.md index 7a9e56f4b..b01e74e2a 100644 --- a/markdown/bitburner.corpindustrydata.robotfactor.md +++ b/markdown/bitburner.corpindustrydata.robotfactor.md @@ -6,7 +6,7 @@ Robots factor -Signature: +**Signature:** ```typescript robotFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.sciencefactor.md b/markdown/bitburner.corpindustrydata.sciencefactor.md index 7dd044532..d7b04fa6b 100644 --- a/markdown/bitburner.corpindustrydata.sciencefactor.md +++ b/markdown/bitburner.corpindustrydata.sciencefactor.md @@ -6,7 +6,7 @@ Scientific research factor (affects quality) -Signature: +**Signature:** ```typescript scienceFactor?: number; diff --git a/markdown/bitburner.corpindustrydata.startingcost.md b/markdown/bitburner.corpindustrydata.startingcost.md index fe5564c38..a4fb3a03b 100644 --- a/markdown/bitburner.corpindustrydata.startingcost.md +++ b/markdown/bitburner.corpindustrydata.startingcost.md @@ -4,7 +4,7 @@ ## CorpIndustryData.startingCost property -Signature: +**Signature:** ```typescript startingCost: number; diff --git a/markdown/bitburner.corpindustryname.md b/markdown/bitburner.corpindustryname.md index b86895628..034e68f8e 100644 --- a/markdown/bitburner.corpindustryname.md +++ b/markdown/bitburner.corpindustryname.md @@ -5,7 +5,7 @@ ## CorpIndustryName type -Signature: +**Signature:** ```typescript type CorpIndustryName = diff --git a/markdown/bitburner.corpmaterialconstantdata.basecost.md b/markdown/bitburner.corpmaterialconstantdata.basecost.md index 62d74fd6b..ece9d60de 100644 --- a/markdown/bitburner.corpmaterialconstantdata.basecost.md +++ b/markdown/bitburner.corpmaterialconstantdata.basecost.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.baseCost property -Signature: +**Signature:** ```typescript baseCost: number; diff --git a/markdown/bitburner.corpmaterialconstantdata.basemarkup.md b/markdown/bitburner.corpmaterialconstantdata.basemarkup.md index 0a85352e1..f10d591b9 100644 --- a/markdown/bitburner.corpmaterialconstantdata.basemarkup.md +++ b/markdown/bitburner.corpmaterialconstantdata.basemarkup.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.baseMarkup property -Signature: +**Signature:** ```typescript baseMarkup: number; diff --git a/markdown/bitburner.corpmaterialconstantdata.competitionbase.md b/markdown/bitburner.corpmaterialconstantdata.competitionbase.md index d86d4b036..c7a2d3fd8 100644 --- a/markdown/bitburner.corpmaterialconstantdata.competitionbase.md +++ b/markdown/bitburner.corpmaterialconstantdata.competitionbase.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.competitionBase property -Signature: +**Signature:** ```typescript competitionBase: number; diff --git a/markdown/bitburner.corpmaterialconstantdata.competitionrange.md b/markdown/bitburner.corpmaterialconstantdata.competitionrange.md index f687d19d1..3797449fe 100644 --- a/markdown/bitburner.corpmaterialconstantdata.competitionrange.md +++ b/markdown/bitburner.corpmaterialconstantdata.competitionrange.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.competitionRange property -Signature: +**Signature:** ```typescript competitionRange: [min: number, max: number]; diff --git a/markdown/bitburner.corpmaterialconstantdata.demandbase.md b/markdown/bitburner.corpmaterialconstantdata.demandbase.md index 16fc5a6b6..029b8dfdc 100644 --- a/markdown/bitburner.corpmaterialconstantdata.demandbase.md +++ b/markdown/bitburner.corpmaterialconstantdata.demandbase.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.demandBase property -Signature: +**Signature:** ```typescript demandBase: number; diff --git a/markdown/bitburner.corpmaterialconstantdata.demandrange.md b/markdown/bitburner.corpmaterialconstantdata.demandrange.md index 69fac8cd2..e6c1f5949 100644 --- a/markdown/bitburner.corpmaterialconstantdata.demandrange.md +++ b/markdown/bitburner.corpmaterialconstantdata.demandrange.md @@ -6,7 +6,7 @@ Min and max demand -Signature: +**Signature:** ```typescript demandRange: [min: number, max: number]; diff --git a/markdown/bitburner.corpmaterialconstantdata.maxvolatility.md b/markdown/bitburner.corpmaterialconstantdata.maxvolatility.md index fb8d15cba..fb02bbb9f 100644 --- a/markdown/bitburner.corpmaterialconstantdata.maxvolatility.md +++ b/markdown/bitburner.corpmaterialconstantdata.maxvolatility.md @@ -4,7 +4,7 @@ ## CorpMaterialConstantData.maxVolatility property -Signature: +**Signature:** ```typescript maxVolatility: number; diff --git a/markdown/bitburner.corpmaterialconstantdata.md b/markdown/bitburner.corpmaterialconstantdata.md index c92b95d89..a7e722621 100644 --- a/markdown/bitburner.corpmaterialconstantdata.md +++ b/markdown/bitburner.corpmaterialconstantdata.md @@ -6,7 +6,7 @@ Corporation material information -Signature: +**Signature:** ```typescript interface CorpMaterialConstantData @@ -14,15 +14,15 @@ interface CorpMaterialConstantData ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [baseCost](./bitburner.corpmaterialconstantdata.basecost.md) | number | | -| [baseMarkup](./bitburner.corpmaterialconstantdata.basemarkup.md) | number | | -| [competitionBase](./bitburner.corpmaterialconstantdata.competitionbase.md) | number | | -| [competitionRange](./bitburner.corpmaterialconstantdata.competitionrange.md) | \[min: number, max: number\] | | -| [demandBase](./bitburner.corpmaterialconstantdata.demandbase.md) | number | | -| [demandRange](./bitburner.corpmaterialconstantdata.demandrange.md) | \[min: number, max: number\] | Min and max demand | -| [maxVolatility](./bitburner.corpmaterialconstantdata.maxvolatility.md) | number | | -| [name](./bitburner.corpmaterialconstantdata.name.md) | string | Name of the material | -| [size](./bitburner.corpmaterialconstantdata.size.md) | number | Size of the material | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [baseCost](./bitburner.corpmaterialconstantdata.basecost.md) | | number | | +| [baseMarkup](./bitburner.corpmaterialconstantdata.basemarkup.md) | | number | | +| [competitionBase](./bitburner.corpmaterialconstantdata.competitionbase.md) | | number | | +| [competitionRange](./bitburner.corpmaterialconstantdata.competitionrange.md) | | \[min: number, max: number\] | | +| [demandBase](./bitburner.corpmaterialconstantdata.demandbase.md) | | number | | +| [demandRange](./bitburner.corpmaterialconstantdata.demandrange.md) | | \[min: number, max: number\] | Min and max demand | +| [maxVolatility](./bitburner.corpmaterialconstantdata.maxvolatility.md) | | number | | +| [name](./bitburner.corpmaterialconstantdata.name.md) | | string | Name of the material | +| [size](./bitburner.corpmaterialconstantdata.size.md) | | number | Size of the material | diff --git a/markdown/bitburner.corpmaterialconstantdata.name.md b/markdown/bitburner.corpmaterialconstantdata.name.md index b3305b957..79734b902 100644 --- a/markdown/bitburner.corpmaterialconstantdata.name.md +++ b/markdown/bitburner.corpmaterialconstantdata.name.md @@ -6,7 +6,7 @@ Name of the material -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.corpmaterialconstantdata.size.md b/markdown/bitburner.corpmaterialconstantdata.size.md index a3a1190e6..7d6b61fd5 100644 --- a/markdown/bitburner.corpmaterialconstantdata.size.md +++ b/markdown/bitburner.corpmaterialconstantdata.size.md @@ -6,7 +6,7 @@ Size of the material -Signature: +**Signature:** ```typescript size: number; diff --git a/markdown/bitburner.corpmaterialname.md b/markdown/bitburner.corpmaterialname.md index ba5f19ebd..678cc8301 100644 --- a/markdown/bitburner.corpmaterialname.md +++ b/markdown/bitburner.corpmaterialname.md @@ -5,7 +5,7 @@ ## CorpMaterialName type -Signature: +**Signature:** ```typescript type CorpMaterialName = diff --git a/markdown/bitburner.corporation.acceptinvestmentoffer.md b/markdown/bitburner.corporation.acceptinvestmentoffer.md index 84ade55ce..113dd81ea 100644 --- a/markdown/bitburner.corporation.acceptinvestmentoffer.md +++ b/markdown/bitburner.corporation.acceptinvestmentoffer.md @@ -6,12 +6,12 @@ Accept investment based on you companies current valuation -Signature: +**Signature:** ```typescript acceptInvestmentOffer(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.bribe.md b/markdown/bitburner.corporation.bribe.md index 3cbb2ba10..e5dd26136 100644 --- a/markdown/bitburner.corporation.bribe.md +++ b/markdown/bitburner.corporation.bribe.md @@ -6,7 +6,7 @@ Bribe a faction -Signature: +**Signature:** ```typescript bribe(factionName: string, amountCash: number): boolean; @@ -19,7 +19,7 @@ bribe(factionName: string, amountCash: number): boolean; | factionName | string | Faction name | | amountCash | number | Amount of money to bribe | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.buybackshares.md b/markdown/bitburner.corporation.buybackshares.md index ccc0a787b..1cd48f59e 100644 --- a/markdown/bitburner.corporation.buybackshares.md +++ b/markdown/bitburner.corporation.buybackshares.md @@ -6,7 +6,7 @@ Buyback Shares -Signature: +**Signature:** ```typescript buyBackShares(amount: number): void; @@ -18,7 +18,7 @@ buyBackShares(amount: number): void; | --- | --- | --- | | amount | number | Amount of shares to buy back. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.createcorporation.md b/markdown/bitburner.corporation.createcorporation.md index 30de005fa..ed4ecb174 100644 --- a/markdown/bitburner.corporation.createcorporation.md +++ b/markdown/bitburner.corporation.createcorporation.md @@ -6,7 +6,7 @@ Create a Corporation -Signature: +**Signature:** ```typescript createCorporation(corporationName: string, selfFund: boolean): boolean; @@ -19,7 +19,7 @@ createCorporation(corporationName: string, selfFund: boolean): boolean; | corporationName | string | Name of the corporation | | selfFund | boolean | If you should self fund, defaults to true, false will only work on Bitnode 3 | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.expandcity.md b/markdown/bitburner.corporation.expandcity.md index 8fb8271a9..bc728e26d 100644 --- a/markdown/bitburner.corporation.expandcity.md +++ b/markdown/bitburner.corporation.expandcity.md @@ -6,7 +6,7 @@ Expand to a new city -Signature: +**Signature:** ```typescript expandCity(divisionName: string, city: CityName | `${CityName}`): void; @@ -19,7 +19,7 @@ expandCity(divisionName: string, city: CityName | `${CityName}`): void; | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.expandindustry.md b/markdown/bitburner.corporation.expandindustry.md index 1ea9b6d01..61969295e 100644 --- a/markdown/bitburner.corporation.expandindustry.md +++ b/markdown/bitburner.corporation.expandindustry.md @@ -6,7 +6,7 @@ Expand to a new industry -Signature: +**Signature:** ```typescript expandIndustry(industryType: CorpIndustryName, divisionName: string): void; @@ -19,7 +19,7 @@ expandIndustry(industryType: CorpIndustryName, divisionName: string): void; | industryType | [CorpIndustryName](./bitburner.corpindustryname.md) | Name of the industry | | divisionName | string | Name of the division | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.getbonustime.md b/markdown/bitburner.corporation.getbonustime.md index f848218a7..2bf3385e1 100644 --- a/markdown/bitburner.corporation.getbonustime.md +++ b/markdown/bitburner.corporation.getbonustime.md @@ -6,12 +6,12 @@ Get bonus time. “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. -Signature: +**Signature:** ```typescript getBonusTime(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.corporation.getconstants.md b/markdown/bitburner.corporation.getconstants.md index 80f1116fc..4c571737c 100644 --- a/markdown/bitburner.corporation.getconstants.md +++ b/markdown/bitburner.corporation.getconstants.md @@ -6,12 +6,12 @@ Get corporation related constants -Signature: +**Signature:** ```typescript getConstants(): CorpConstants; ``` -Returns: +**Returns:** [CorpConstants](./bitburner.corpconstants.md) diff --git a/markdown/bitburner.corporation.getcorporation.md b/markdown/bitburner.corporation.getcorporation.md index d175e0be5..aba545650 100644 --- a/markdown/bitburner.corporation.getcorporation.md +++ b/markdown/bitburner.corporation.getcorporation.md @@ -6,12 +6,12 @@ Get corporation data -Signature: +**Signature:** ```typescript getCorporation(): CorporationInfo; ``` -Returns: +**Returns:** [CorporationInfo](./bitburner.corporationinfo.md) diff --git a/markdown/bitburner.corporation.getdivision.md b/markdown/bitburner.corporation.getdivision.md index f8a89be20..40a891dff 100644 --- a/markdown/bitburner.corporation.getdivision.md +++ b/markdown/bitburner.corporation.getdivision.md @@ -6,7 +6,7 @@ Get division data -Signature: +**Signature:** ```typescript getDivision(divisionName: string): Division; @@ -18,7 +18,7 @@ getDivision(divisionName: string): Division; | --- | --- | --- | | divisionName | string | Name of the division | -Returns: +**Returns:** [Division](./bitburner.division.md) diff --git a/markdown/bitburner.corporation.getindustrydata.md b/markdown/bitburner.corporation.getindustrydata.md index 9bb137935..7e951fb37 100644 --- a/markdown/bitburner.corporation.getindustrydata.md +++ b/markdown/bitburner.corporation.getindustrydata.md @@ -6,7 +6,7 @@ Get constant industry definition data for a specific industry -Signature: +**Signature:** ```typescript getIndustryData(industryName: CorpIndustryName): CorpIndustryData; @@ -18,7 +18,7 @@ getIndustryData(industryName: CorpIndustryName): CorpIndustryData; | --- | --- | --- | | industryName | [CorpIndustryName](./bitburner.corpindustryname.md) | | -Returns: +**Returns:** [CorpIndustryData](./bitburner.corpindustrydata.md) diff --git a/markdown/bitburner.corporation.getinvestmentoffer.md b/markdown/bitburner.corporation.getinvestmentoffer.md index a1bce820e..d483edbdd 100644 --- a/markdown/bitburner.corporation.getinvestmentoffer.md +++ b/markdown/bitburner.corporation.getinvestmentoffer.md @@ -6,12 +6,12 @@ Get an offer for investment based on you companies current valuation -Signature: +**Signature:** ```typescript getInvestmentOffer(): InvestmentOffer; ``` -Returns: +**Returns:** [InvestmentOffer](./bitburner.investmentoffer.md) diff --git a/markdown/bitburner.corporation.getmaterialdata.md b/markdown/bitburner.corporation.getmaterialdata.md index 48ed6b5c9..d11ea1372 100644 --- a/markdown/bitburner.corporation.getmaterialdata.md +++ b/markdown/bitburner.corporation.getmaterialdata.md @@ -6,7 +6,7 @@ Get constant data for a specific material -Signature: +**Signature:** ```typescript getMaterialData(materialName: CorpMaterialName): CorpMaterialConstantData; @@ -18,7 +18,7 @@ getMaterialData(materialName: CorpMaterialName): CorpMaterialConstantData; | --- | --- | --- | | materialName | [CorpMaterialName](./bitburner.corpmaterialname.md) | | -Returns: +**Returns:** [CorpMaterialConstantData](./bitburner.corpmaterialconstantdata.md) diff --git a/markdown/bitburner.corporation.getunlockupgradecost.md b/markdown/bitburner.corporation.getunlockupgradecost.md index 328ba6239..4f838cf7f 100644 --- a/markdown/bitburner.corporation.getunlockupgradecost.md +++ b/markdown/bitburner.corporation.getunlockupgradecost.md @@ -6,7 +6,7 @@ Gets the cost to unlock a one time unlockable upgrade -Signature: +**Signature:** ```typescript getUnlockUpgradeCost(upgradeName: string): number; @@ -18,7 +18,7 @@ getUnlockUpgradeCost(upgradeName: string): number; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** number diff --git a/markdown/bitburner.corporation.getupgradelevel.md b/markdown/bitburner.corporation.getupgradelevel.md index e2e74b60a..ddc26969f 100644 --- a/markdown/bitburner.corporation.getupgradelevel.md +++ b/markdown/bitburner.corporation.getupgradelevel.md @@ -6,7 +6,7 @@ Get the level of a levelable upgrade -Signature: +**Signature:** ```typescript getUpgradeLevel(upgradeName: string): number; @@ -18,7 +18,7 @@ getUpgradeLevel(upgradeName: string): number; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** number diff --git a/markdown/bitburner.corporation.getupgradelevelcost.md b/markdown/bitburner.corporation.getupgradelevelcost.md index fb26cd29a..fda135c56 100644 --- a/markdown/bitburner.corporation.getupgradelevelcost.md +++ b/markdown/bitburner.corporation.getupgradelevelcost.md @@ -6,7 +6,7 @@ Gets the cost to unlock the next level of a levelable upgrade -Signature: +**Signature:** ```typescript getUpgradeLevelCost(upgradeName: string): number; @@ -18,7 +18,7 @@ getUpgradeLevelCost(upgradeName: string): number; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** number diff --git a/markdown/bitburner.corporation.gopublic.md b/markdown/bitburner.corporation.gopublic.md index e5f370e3b..44dae0129 100644 --- a/markdown/bitburner.corporation.gopublic.md +++ b/markdown/bitburner.corporation.gopublic.md @@ -6,7 +6,7 @@ Go public -Signature: +**Signature:** ```typescript goPublic(numShares: number): boolean; @@ -18,7 +18,7 @@ goPublic(numShares: number): boolean; | --- | --- | --- | | numShares | number | number of shares you would like to issue for your IPO | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.hascorporation.md b/markdown/bitburner.corporation.hascorporation.md index 1cfb2594b..2b938791b 100644 --- a/markdown/bitburner.corporation.hascorporation.md +++ b/markdown/bitburner.corporation.hascorporation.md @@ -6,12 +6,12 @@ Returns whether the player has a corporation. Does not require API access. -Signature: +**Signature:** ```typescript hasCorporation(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.hasunlockupgrade.md b/markdown/bitburner.corporation.hasunlockupgrade.md index 869a78456..b13eeb0b6 100644 --- a/markdown/bitburner.corporation.hasunlockupgrade.md +++ b/markdown/bitburner.corporation.hasunlockupgrade.md @@ -6,7 +6,7 @@ Check if you have a one time unlockable upgrade -Signature: +**Signature:** ```typescript hasUnlockUpgrade(upgradeName: string): boolean; @@ -18,7 +18,7 @@ hasUnlockUpgrade(upgradeName: string): boolean; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.corporation.issuedividends.md b/markdown/bitburner.corporation.issuedividends.md index ce4552387..08eb25130 100644 --- a/markdown/bitburner.corporation.issuedividends.md +++ b/markdown/bitburner.corporation.issuedividends.md @@ -6,7 +6,7 @@ Issue dividends -Signature: +**Signature:** ```typescript issueDividends(rate: number): void; @@ -18,7 +18,7 @@ issueDividends(rate: number): void; | --- | --- | --- | | rate | number | Fraction of profit to issue as dividends. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.issuenewshares.md b/markdown/bitburner.corporation.issuenewshares.md index 8ea8a102f..650667fc5 100644 --- a/markdown/bitburner.corporation.issuenewshares.md +++ b/markdown/bitburner.corporation.issuenewshares.md @@ -6,7 +6,7 @@ Issue new shares -Signature: +**Signature:** ```typescript issueNewShares(amount?: number): number; @@ -16,9 +16,9 @@ issueNewShares(amount?: number): number; | Parameter | Type | Description | | --- | --- | --- | -| amount | number | Number of new shares to issue, will be rounded to nearest 10m. Defaults to max amount. | +| amount | number | _(Optional)_ Number of new shares to issue, will be rounded to nearest 10m. Defaults to max amount. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.corporation.levelupgrade.md b/markdown/bitburner.corporation.levelupgrade.md index f42f9d89b..7f6d8dcae 100644 --- a/markdown/bitburner.corporation.levelupgrade.md +++ b/markdown/bitburner.corporation.levelupgrade.md @@ -6,7 +6,7 @@ Level an upgrade. -Signature: +**Signature:** ```typescript levelUpgrade(upgradeName: string): void; @@ -18,7 +18,7 @@ levelUpgrade(upgradeName: string): void; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.md b/markdown/bitburner.corporation.md index c99284271..5910d429a 100644 --- a/markdown/bitburner.corporation.md +++ b/markdown/bitburner.corporation.md @@ -6,12 +6,12 @@ Corporation API -Signature: +**Signature:** ```typescript export interface Corporation extends WarehouseAPI, OfficeAPI ``` -Extends: [WarehouseAPI](./bitburner.warehouseapi.md), [OfficeAPI](./bitburner.officeapi.md) +**Extends:** [WarehouseAPI](./bitburner.warehouseapi.md), [OfficeAPI](./bitburner.officeapi.md) ## Methods diff --git a/markdown/bitburner.corporation.sellshares.md b/markdown/bitburner.corporation.sellshares.md index 6ee2b480a..327af394d 100644 --- a/markdown/bitburner.corporation.sellshares.md +++ b/markdown/bitburner.corporation.sellshares.md @@ -6,7 +6,7 @@ Sell Shares -Signature: +**Signature:** ```typescript sellShares(amount: number): void; @@ -18,7 +18,7 @@ sellShares(amount: number): void; | --- | --- | --- | | amount | number | Amount of shares to sell. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporation.unlockupgrade.md b/markdown/bitburner.corporation.unlockupgrade.md index 581d1bfb2..74a2448e3 100644 --- a/markdown/bitburner.corporation.unlockupgrade.md +++ b/markdown/bitburner.corporation.unlockupgrade.md @@ -6,7 +6,7 @@ Unlock an upgrade -Signature: +**Signature:** ```typescript unlockUpgrade(upgradeName: string): void; @@ -18,7 +18,7 @@ unlockUpgrade(upgradeName: string): void; | --- | --- | --- | | upgradeName | string | Name of the upgrade | -Returns: +**Returns:** void diff --git a/markdown/bitburner.corporationinfo.dividendearnings.md b/markdown/bitburner.corporationinfo.dividendearnings.md index 83ae2d741..d5a59d09a 100644 --- a/markdown/bitburner.corporationinfo.dividendearnings.md +++ b/markdown/bitburner.corporationinfo.dividendearnings.md @@ -6,7 +6,7 @@ Your earnings as a shareholder per second this cycle -Signature: +**Signature:** ```typescript dividendEarnings: number; diff --git a/markdown/bitburner.corporationinfo.dividendrate.md b/markdown/bitburner.corporationinfo.dividendrate.md index f3aa95f42..d8aeeffc9 100644 --- a/markdown/bitburner.corporationinfo.dividendrate.md +++ b/markdown/bitburner.corporationinfo.dividendrate.md @@ -6,7 +6,7 @@ Fraction of profits issued as dividends -Signature: +**Signature:** ```typescript dividendRate: number; diff --git a/markdown/bitburner.corporationinfo.dividendtax.md b/markdown/bitburner.corporationinfo.dividendtax.md index 5627593a2..f6f0d9b21 100644 --- a/markdown/bitburner.corporationinfo.dividendtax.md +++ b/markdown/bitburner.corporationinfo.dividendtax.md @@ -6,7 +6,7 @@ Tax applied on your earnings as a shareholder -Signature: +**Signature:** ```typescript dividendTax: number; diff --git a/markdown/bitburner.corporationinfo.divisions.md b/markdown/bitburner.corporationinfo.divisions.md index 2b72b8685..f0fe68dd6 100644 --- a/markdown/bitburner.corporationinfo.divisions.md +++ b/markdown/bitburner.corporationinfo.divisions.md @@ -6,7 +6,7 @@ Array of all division names -Signature: +**Signature:** ```typescript divisions: string[]; diff --git a/markdown/bitburner.corporationinfo.expenses.md b/markdown/bitburner.corporationinfo.expenses.md index 85f7bb246..146d18b42 100644 --- a/markdown/bitburner.corporationinfo.expenses.md +++ b/markdown/bitburner.corporationinfo.expenses.md @@ -6,7 +6,7 @@ Expenses per second this cycle -Signature: +**Signature:** ```typescript expenses: number; diff --git a/markdown/bitburner.corporationinfo.funds.md b/markdown/bitburner.corporationinfo.funds.md index 9484ae098..41d449293 100644 --- a/markdown/bitburner.corporationinfo.funds.md +++ b/markdown/bitburner.corporationinfo.funds.md @@ -6,7 +6,7 @@ Funds available -Signature: +**Signature:** ```typescript funds: number; diff --git a/markdown/bitburner.corporationinfo.issuedshares.md b/markdown/bitburner.corporationinfo.issuedshares.md index 2ad061a78..673228d79 100644 --- a/markdown/bitburner.corporationinfo.issuedshares.md +++ b/markdown/bitburner.corporationinfo.issuedshares.md @@ -6,7 +6,7 @@ Amount of acquirable shares. -Signature: +**Signature:** ```typescript issuedShares: number; diff --git a/markdown/bitburner.corporationinfo.md b/markdown/bitburner.corporationinfo.md index 5921d4032..298282a8e 100644 --- a/markdown/bitburner.corporationinfo.md +++ b/markdown/bitburner.corporationinfo.md @@ -6,7 +6,7 @@ General info about a corporation -Signature: +**Signature:** ```typescript interface CorporationInfo @@ -14,21 +14,21 @@ interface CorporationInfo ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [dividendEarnings](./bitburner.corporationinfo.dividendearnings.md) | number | Your earnings as a shareholder per second this cycle | -| [dividendRate](./bitburner.corporationinfo.dividendrate.md) | number | Fraction of profits issued as dividends | -| [dividendTax](./bitburner.corporationinfo.dividendtax.md) | number | Tax applied on your earnings as a shareholder | -| [divisions](./bitburner.corporationinfo.divisions.md) | string\[\] | Array of all division names | -| [expenses](./bitburner.corporationinfo.expenses.md) | number | Expenses per second this cycle | -| [funds](./bitburner.corporationinfo.funds.md) | number | Funds available | -| [issuedShares](./bitburner.corporationinfo.issuedshares.md) | number | Amount of acquirable shares. | -| [name](./bitburner.corporationinfo.name.md) | string | Name of the corporation | -| [numShares](./bitburner.corporationinfo.numshares.md) | number | Amount of share owned | -| [public](./bitburner.corporationinfo.public.md) | boolean | Indicating if the company is public | -| [revenue](./bitburner.corporationinfo.revenue.md) | number | Revenue per second this cycle | -| [sharePrice](./bitburner.corporationinfo.shareprice.md) | number | Price of the shares | -| [shareSaleCooldown](./bitburner.corporationinfo.sharesalecooldown.md) | number | Cooldown until shares can be sold again | -| [state](./bitburner.corporationinfo.state.md) | string | State of the corporation. Possible states are START, PURCHASE, PRODUCTION, SALE, EXPORT. | -| [totalShares](./bitburner.corporationinfo.totalshares.md) | number | Total number of shares issues by this corporation | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [dividendEarnings](./bitburner.corporationinfo.dividendearnings.md) | | number | Your earnings as a shareholder per second this cycle | +| [dividendRate](./bitburner.corporationinfo.dividendrate.md) | | number | Fraction of profits issued as dividends | +| [dividendTax](./bitburner.corporationinfo.dividendtax.md) | | number | Tax applied on your earnings as a shareholder | +| [divisions](./bitburner.corporationinfo.divisions.md) | | string\[\] | Array of all division names | +| [expenses](./bitburner.corporationinfo.expenses.md) | | number | Expenses per second this cycle | +| [funds](./bitburner.corporationinfo.funds.md) | | number | Funds available | +| [issuedShares](./bitburner.corporationinfo.issuedshares.md) | | number | Amount of acquirable shares. | +| [name](./bitburner.corporationinfo.name.md) | | string | Name of the corporation | +| [numShares](./bitburner.corporationinfo.numshares.md) | | number | Amount of share owned | +| [public](./bitburner.corporationinfo.public.md) | | boolean | Indicating if the company is public | +| [revenue](./bitburner.corporationinfo.revenue.md) | | number | Revenue per second this cycle | +| [sharePrice](./bitburner.corporationinfo.shareprice.md) | | number | Price of the shares | +| [shareSaleCooldown](./bitburner.corporationinfo.sharesalecooldown.md) | | number | Cooldown until shares can be sold again | +| [state](./bitburner.corporationinfo.state.md) | | string | State of the corporation. Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE. | +| [totalShares](./bitburner.corporationinfo.totalshares.md) | | number | Total number of shares issues by this corporation | diff --git a/markdown/bitburner.corporationinfo.name.md b/markdown/bitburner.corporationinfo.name.md index 03d66d85c..116018118 100644 --- a/markdown/bitburner.corporationinfo.name.md +++ b/markdown/bitburner.corporationinfo.name.md @@ -6,7 +6,7 @@ Name of the corporation -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.corporationinfo.numshares.md b/markdown/bitburner.corporationinfo.numshares.md index 1d44dd998..d85f3fec2 100644 --- a/markdown/bitburner.corporationinfo.numshares.md +++ b/markdown/bitburner.corporationinfo.numshares.md @@ -6,7 +6,7 @@ Amount of share owned -Signature: +**Signature:** ```typescript numShares: number; diff --git a/markdown/bitburner.corporationinfo.public.md b/markdown/bitburner.corporationinfo.public.md index 91fe2bbd9..9081e4bf1 100644 --- a/markdown/bitburner.corporationinfo.public.md +++ b/markdown/bitburner.corporationinfo.public.md @@ -6,7 +6,7 @@ Indicating if the company is public -Signature: +**Signature:** ```typescript public: boolean; diff --git a/markdown/bitburner.corporationinfo.revenue.md b/markdown/bitburner.corporationinfo.revenue.md index 45c2cf8a0..f69a144c6 100644 --- a/markdown/bitburner.corporationinfo.revenue.md +++ b/markdown/bitburner.corporationinfo.revenue.md @@ -6,7 +6,7 @@ Revenue per second this cycle -Signature: +**Signature:** ```typescript revenue: number; diff --git a/markdown/bitburner.corporationinfo.shareprice.md b/markdown/bitburner.corporationinfo.shareprice.md index 406c5abd2..981a774e4 100644 --- a/markdown/bitburner.corporationinfo.shareprice.md +++ b/markdown/bitburner.corporationinfo.shareprice.md @@ -6,7 +6,7 @@ Price of the shares -Signature: +**Signature:** ```typescript sharePrice: number; diff --git a/markdown/bitburner.corporationinfo.sharesalecooldown.md b/markdown/bitburner.corporationinfo.sharesalecooldown.md index dfc4128e1..ee52b375d 100644 --- a/markdown/bitburner.corporationinfo.sharesalecooldown.md +++ b/markdown/bitburner.corporationinfo.sharesalecooldown.md @@ -6,7 +6,7 @@ Cooldown until shares can be sold again -Signature: +**Signature:** ```typescript shareSaleCooldown: number; diff --git a/markdown/bitburner.corporationinfo.state.md b/markdown/bitburner.corporationinfo.state.md index 8319c609d..e100ee5aa 100644 --- a/markdown/bitburner.corporationinfo.state.md +++ b/markdown/bitburner.corporationinfo.state.md @@ -4,9 +4,9 @@ ## CorporationInfo.state property -State of the corporation. Possible states are START, PURCHASE, PRODUCTION, SALE, EXPORT. +State of the corporation. Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE. -Signature: +**Signature:** ```typescript state: string; diff --git a/markdown/bitburner.corporationinfo.totalshares.md b/markdown/bitburner.corporationinfo.totalshares.md index 991235960..2a87395d3 100644 --- a/markdown/bitburner.corporationinfo.totalshares.md +++ b/markdown/bitburner.corporationinfo.totalshares.md @@ -6,7 +6,7 @@ Total number of shares issues by this corporation -Signature: +**Signature:** ```typescript totalShares: number; diff --git a/markdown/bitburner.corpproductdata.desc.md b/markdown/bitburner.corpproductdata.desc.md new file mode 100644 index 000000000..8bd3d33dd --- /dev/null +++ b/markdown/bitburner.corpproductdata.desc.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [CorpProductData](./bitburner.corpproductdata.md) > [desc](./bitburner.corpproductdata.desc.md) + +## CorpProductData.desc property + +Description of product creation + +**Signature:** + +```typescript +desc: string; +``` diff --git a/markdown/bitburner.corpproductdata.md b/markdown/bitburner.corpproductdata.md index 63dd1f473..b0969450d 100644 --- a/markdown/bitburner.corpproductdata.md +++ b/markdown/bitburner.corpproductdata.md @@ -2,24 +2,22 @@ [Home](./index.md) > [bitburner](./bitburner.md) > [CorpProductData](./bitburner.corpproductdata.md) -## CorpProductData type +## CorpProductData interface Product rating information -Signature: +**Signature:** ```typescript -type CorpProductData = { - name: string; - verb: string; - desc: string; - ratingWeights: { - aesthetics?: number; - durability?: number; - features?: number; - quality?: number; - performance?: number; - reliability?: number; - }; -}; +interface CorpProductData ``` + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [desc](./bitburner.corpproductdata.desc.md) | | string | Description of product creation | +| [name](./bitburner.corpproductdata.name.md) | | string | Name of the product | +| [ratingWeights](./bitburner.corpproductdata.ratingweights.md) | | { aesthetics?: number; durability?: number; features?: number; quality?: number; performance?: number; reliability?: number; } | Weighting factors for product | +| [verb](./bitburner.corpproductdata.verb.md) | | string | Verb used to describe creation of the product | + diff --git a/markdown/bitburner.corpproductdata.name.md b/markdown/bitburner.corpproductdata.name.md new file mode 100644 index 000000000..ef8ad7be1 --- /dev/null +++ b/markdown/bitburner.corpproductdata.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [CorpProductData](./bitburner.corpproductdata.md) > [name](./bitburner.corpproductdata.name.md) + +## CorpProductData.name property + +Name of the product + +**Signature:** + +```typescript +name: string; +``` diff --git a/markdown/bitburner.corpproductdata.ratingweights.md b/markdown/bitburner.corpproductdata.ratingweights.md new file mode 100644 index 000000000..70ff55fe4 --- /dev/null +++ b/markdown/bitburner.corpproductdata.ratingweights.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [CorpProductData](./bitburner.corpproductdata.md) > [ratingWeights](./bitburner.corpproductdata.ratingweights.md) + +## CorpProductData.ratingWeights property + +Weighting factors for product + +**Signature:** + +```typescript +ratingWeights: { + aesthetics?: number; + durability?: number; + features?: number; + quality?: number; + performance?: number; + reliability?: number; + }; +``` diff --git a/markdown/bitburner.corpproductdata.verb.md b/markdown/bitburner.corpproductdata.verb.md new file mode 100644 index 000000000..f5fef888b --- /dev/null +++ b/markdown/bitburner.corpproductdata.verb.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [CorpProductData](./bitburner.corpproductdata.md) > [verb](./bitburner.corpproductdata.verb.md) + +## CorpProductData.verb property + +Verb used to describe creation of the product + +**Signature:** + +```typescript +verb: string; +``` diff --git a/markdown/bitburner.corpresearchname.md b/markdown/bitburner.corpresearchname.md index c506a8d1c..62bb801c7 100644 --- a/markdown/bitburner.corpresearchname.md +++ b/markdown/bitburner.corpresearchname.md @@ -5,7 +5,7 @@ ## CorpResearchName type -Signature: +**Signature:** ```typescript type CorpResearchName = diff --git a/markdown/bitburner.corpstatename.md b/markdown/bitburner.corpstatename.md index a9aa15716..fc6c83322 100644 --- a/markdown/bitburner.corpstatename.md +++ b/markdown/bitburner.corpstatename.md @@ -5,8 +5,8 @@ ## CorpStateName type -Signature: +**Signature:** ```typescript -type CorpStateName = "START" | "PURCHASE" | "PRODUCTION" | "SALE" | "EXPORT"; +type CorpStateName = "START" | "PURCHASE" | "PRODUCTION" | "EXPORT" | "SALE"; ``` diff --git a/markdown/bitburner.corpunlockname.md b/markdown/bitburner.corpunlockname.md index 0749cec81..4b30e4874 100644 --- a/markdown/bitburner.corpunlockname.md +++ b/markdown/bitburner.corpunlockname.md @@ -5,7 +5,7 @@ ## CorpUnlockName type -Signature: +**Signature:** ```typescript type CorpUnlockName = diff --git a/markdown/bitburner.corpupgradename.md b/markdown/bitburner.corpupgradename.md index 7a3f6b96f..8b755536f 100644 --- a/markdown/bitburner.corpupgradename.md +++ b/markdown/bitburner.corpupgradename.md @@ -5,7 +5,7 @@ ## CorpUpgradeName type -Signature: +**Signature:** ```typescript type CorpUpgradeName = diff --git a/markdown/bitburner.crimestats.agility_exp.md b/markdown/bitburner.crimestats.agility_exp.md index 0ed46e84f..c7cbd935b 100644 --- a/markdown/bitburner.crimestats.agility_exp.md +++ b/markdown/bitburner.crimestats.agility_exp.md @@ -6,7 +6,7 @@ agility exp gained from crime -Signature: +**Signature:** ```typescript agility_exp: number; diff --git a/markdown/bitburner.crimestats.agility_success_weight.md b/markdown/bitburner.crimestats.agility_success_weight.md index 6f803dd53..9a8a453e2 100644 --- a/markdown/bitburner.crimestats.agility_success_weight.md +++ b/markdown/bitburner.crimestats.agility_success_weight.md @@ -6,7 +6,7 @@ agility level impact on success change of the crime -Signature: +**Signature:** ```typescript agility_success_weight: number; diff --git a/markdown/bitburner.crimestats.charisma_exp.md b/markdown/bitburner.crimestats.charisma_exp.md index c4e10072c..21e0745ec 100644 --- a/markdown/bitburner.crimestats.charisma_exp.md +++ b/markdown/bitburner.crimestats.charisma_exp.md @@ -6,7 +6,7 @@ charisma exp gained from crime -Signature: +**Signature:** ```typescript charisma_exp: number; diff --git a/markdown/bitburner.crimestats.charisma_success_weight.md b/markdown/bitburner.crimestats.charisma_success_weight.md index 37e0d18d0..0ed44a7b1 100644 --- a/markdown/bitburner.crimestats.charisma_success_weight.md +++ b/markdown/bitburner.crimestats.charisma_success_weight.md @@ -6,7 +6,7 @@ charisma level impact on success change of the crime -Signature: +**Signature:** ```typescript charisma_success_weight: number; diff --git a/markdown/bitburner.crimestats.defense_exp.md b/markdown/bitburner.crimestats.defense_exp.md index e9f24d83c..ecb1dcfb6 100644 --- a/markdown/bitburner.crimestats.defense_exp.md +++ b/markdown/bitburner.crimestats.defense_exp.md @@ -6,7 +6,7 @@ defense exp gained from crime -Signature: +**Signature:** ```typescript defense_exp: number; diff --git a/markdown/bitburner.crimestats.defense_success_weight.md b/markdown/bitburner.crimestats.defense_success_weight.md index 1afef799a..29fe2aa9e 100644 --- a/markdown/bitburner.crimestats.defense_success_weight.md +++ b/markdown/bitburner.crimestats.defense_success_weight.md @@ -6,7 +6,7 @@ defense level impact on success change of the crime -Signature: +**Signature:** ```typescript defense_success_weight: number; diff --git a/markdown/bitburner.crimestats.dexterity_exp.md b/markdown/bitburner.crimestats.dexterity_exp.md index 960176994..9fa29268a 100644 --- a/markdown/bitburner.crimestats.dexterity_exp.md +++ b/markdown/bitburner.crimestats.dexterity_exp.md @@ -6,7 +6,7 @@ dexterity exp gained from crime -Signature: +**Signature:** ```typescript dexterity_exp: number; diff --git a/markdown/bitburner.crimestats.dexterity_success_weight.md b/markdown/bitburner.crimestats.dexterity_success_weight.md index 26b846f7a..8564c8df4 100644 --- a/markdown/bitburner.crimestats.dexterity_success_weight.md +++ b/markdown/bitburner.crimestats.dexterity_success_weight.md @@ -6,7 +6,7 @@ dexterity level impact on success change of the crime -Signature: +**Signature:** ```typescript dexterity_success_weight: number; diff --git a/markdown/bitburner.crimestats.difficulty.md b/markdown/bitburner.crimestats.difficulty.md index 36bfa92ea..80879dd90 100644 --- a/markdown/bitburner.crimestats.difficulty.md +++ b/markdown/bitburner.crimestats.difficulty.md @@ -6,7 +6,7 @@ Number representing the difficulty of the crime. Used for success chance calculations -Signature: +**Signature:** ```typescript difficulty: number; diff --git a/markdown/bitburner.crimestats.hacking_exp.md b/markdown/bitburner.crimestats.hacking_exp.md index 56a96c971..adbfdb6c7 100644 --- a/markdown/bitburner.crimestats.hacking_exp.md +++ b/markdown/bitburner.crimestats.hacking_exp.md @@ -6,7 +6,7 @@ hacking exp gained from crime -Signature: +**Signature:** ```typescript hacking_exp: number; diff --git a/markdown/bitburner.crimestats.hacking_success_weight.md b/markdown/bitburner.crimestats.hacking_success_weight.md index f57d9fbb8..3f8b173e4 100644 --- a/markdown/bitburner.crimestats.hacking_success_weight.md +++ b/markdown/bitburner.crimestats.hacking_success_weight.md @@ -6,7 +6,7 @@ hacking level impact on success change of the crime -Signature: +**Signature:** ```typescript hacking_success_weight: number; diff --git a/markdown/bitburner.crimestats.intelligence_exp.md b/markdown/bitburner.crimestats.intelligence_exp.md index b2fb67f2a..969dc3976 100644 --- a/markdown/bitburner.crimestats.intelligence_exp.md +++ b/markdown/bitburner.crimestats.intelligence_exp.md @@ -6,7 +6,7 @@ intelligence exp gained from crime -Signature: +**Signature:** ```typescript intelligence_exp: number; diff --git a/markdown/bitburner.crimestats.karma.md b/markdown/bitburner.crimestats.karma.md index fdcc4c7f6..30be44666 100644 --- a/markdown/bitburner.crimestats.karma.md +++ b/markdown/bitburner.crimestats.karma.md @@ -6,7 +6,7 @@ Amount of karma lost for successfully committing this crime -Signature: +**Signature:** ```typescript karma: number; diff --git a/markdown/bitburner.crimestats.kills.md b/markdown/bitburner.crimestats.kills.md index 963b8edc4..7d59bef84 100644 --- a/markdown/bitburner.crimestats.kills.md +++ b/markdown/bitburner.crimestats.kills.md @@ -6,7 +6,7 @@ How many people die as a result of this crime -Signature: +**Signature:** ```typescript kills: number; diff --git a/markdown/bitburner.crimestats.md b/markdown/bitburner.crimestats.md index facf715f7..b32af9459 100644 --- a/markdown/bitburner.crimestats.md +++ b/markdown/bitburner.crimestats.md @@ -6,7 +6,7 @@ Data representing the internal values of a crime. -Signature: +**Signature:** ```typescript interface CrimeStats @@ -14,25 +14,25 @@ interface CrimeStats ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agility\_exp](./bitburner.crimestats.agility_exp.md) | number | agility exp gained from crime | -| [agility\_success\_weight](./bitburner.crimestats.agility_success_weight.md) | number | agility level impact on success change of the crime | -| [charisma\_exp](./bitburner.crimestats.charisma_exp.md) | number | charisma exp gained from crime | -| [charisma\_success\_weight](./bitburner.crimestats.charisma_success_weight.md) | number | charisma level impact on success change of the crime | -| [defense\_exp](./bitburner.crimestats.defense_exp.md) | number | defense exp gained from crime | -| [defense\_success\_weight](./bitburner.crimestats.defense_success_weight.md) | number | defense level impact on success change of the crime | -| [dexterity\_exp](./bitburner.crimestats.dexterity_exp.md) | number | dexterity exp gained from crime | -| [dexterity\_success\_weight](./bitburner.crimestats.dexterity_success_weight.md) | number | dexterity level impact on success change of the crime | -| [difficulty](./bitburner.crimestats.difficulty.md) | number | Number representing the difficulty of the crime. Used for success chance calculations | -| [hacking\_exp](./bitburner.crimestats.hacking_exp.md) | number | hacking exp gained from crime | -| [hacking\_success\_weight](./bitburner.crimestats.hacking_success_weight.md) | number | hacking level impact on success change of the crime | -| [intelligence\_exp](./bitburner.crimestats.intelligence_exp.md) | number | intelligence exp gained from crime | -| [karma](./bitburner.crimestats.karma.md) | number | Amount of karma lost for successfully committing this crime | -| [kills](./bitburner.crimestats.kills.md) | number | How many people die as a result of this crime | -| [money](./bitburner.crimestats.money.md) | number | How much money is given | -| [strength\_exp](./bitburner.crimestats.strength_exp.md) | number | strength exp gained from crime | -| [strength\_success\_weight](./bitburner.crimestats.strength_success_weight.md) | number | strength level impact on success change of the crime | -| [time](./bitburner.crimestats.time.md) | number | Milliseconds it takes to attempt the crime | -| [type](./bitburner.crimestats.type.md) | string | Description of the crime activity | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agility\_exp](./bitburner.crimestats.agility_exp.md) | | number | agility exp gained from crime | +| [agility\_success\_weight](./bitburner.crimestats.agility_success_weight.md) | | number | agility level impact on success change of the crime | +| [charisma\_exp](./bitburner.crimestats.charisma_exp.md) | | number | charisma exp gained from crime | +| [charisma\_success\_weight](./bitburner.crimestats.charisma_success_weight.md) | | number | charisma level impact on success change of the crime | +| [defense\_exp](./bitburner.crimestats.defense_exp.md) | | number | defense exp gained from crime | +| [defense\_success\_weight](./bitburner.crimestats.defense_success_weight.md) | | number | defense level impact on success change of the crime | +| [dexterity\_exp](./bitburner.crimestats.dexterity_exp.md) | | number | dexterity exp gained from crime | +| [dexterity\_success\_weight](./bitburner.crimestats.dexterity_success_weight.md) | | number | dexterity level impact on success change of the crime | +| [difficulty](./bitburner.crimestats.difficulty.md) | | number | Number representing the difficulty of the crime. Used for success chance calculations | +| [hacking\_exp](./bitburner.crimestats.hacking_exp.md) | | number | hacking exp gained from crime | +| [hacking\_success\_weight](./bitburner.crimestats.hacking_success_weight.md) | | number | hacking level impact on success change of the crime | +| [intelligence\_exp](./bitburner.crimestats.intelligence_exp.md) | | number | intelligence exp gained from crime | +| [karma](./bitburner.crimestats.karma.md) | | number | Amount of karma lost for successfully committing this crime | +| [kills](./bitburner.crimestats.kills.md) | | number | How many people die as a result of this crime | +| [money](./bitburner.crimestats.money.md) | | number | How much money is given | +| [strength\_exp](./bitburner.crimestats.strength_exp.md) | | number | strength exp gained from crime | +| [strength\_success\_weight](./bitburner.crimestats.strength_success_weight.md) | | number | strength level impact on success change of the crime | +| [time](./bitburner.crimestats.time.md) | | number | Milliseconds it takes to attempt the crime | +| [type](./bitburner.crimestats.type.md) | | string | Description of the crime activity | diff --git a/markdown/bitburner.crimestats.money.md b/markdown/bitburner.crimestats.money.md index 6260a2059..d36099383 100644 --- a/markdown/bitburner.crimestats.money.md +++ b/markdown/bitburner.crimestats.money.md @@ -6,7 +6,7 @@ How much money is given -Signature: +**Signature:** ```typescript money: number; diff --git a/markdown/bitburner.crimestats.strength_exp.md b/markdown/bitburner.crimestats.strength_exp.md index e30f029b7..b120b2ad2 100644 --- a/markdown/bitburner.crimestats.strength_exp.md +++ b/markdown/bitburner.crimestats.strength_exp.md @@ -6,7 +6,7 @@ strength exp gained from crime -Signature: +**Signature:** ```typescript strength_exp: number; diff --git a/markdown/bitburner.crimestats.strength_success_weight.md b/markdown/bitburner.crimestats.strength_success_weight.md index e8806edeb..5abc58ba3 100644 --- a/markdown/bitburner.crimestats.strength_success_weight.md +++ b/markdown/bitburner.crimestats.strength_success_weight.md @@ -6,7 +6,7 @@ strength level impact on success change of the crime -Signature: +**Signature:** ```typescript strength_success_weight: number; diff --git a/markdown/bitburner.crimestats.time.md b/markdown/bitburner.crimestats.time.md index 60218a10f..8b3103aa2 100644 --- a/markdown/bitburner.crimestats.time.md +++ b/markdown/bitburner.crimestats.time.md @@ -6,7 +6,7 @@ Milliseconds it takes to attempt the crime -Signature: +**Signature:** ```typescript time: number; diff --git a/markdown/bitburner.crimestats.type.md b/markdown/bitburner.crimestats.type.md index d6fba340b..c29eede63 100644 --- a/markdown/bitburner.crimestats.type.md +++ b/markdown/bitburner.crimestats.type.md @@ -6,7 +6,7 @@ Description of the crime activity -Signature: +**Signature:** ```typescript type: string; diff --git a/markdown/bitburner.crimetype.md b/markdown/bitburner.crimetype.md index bddd47bf7..ce311fc62 100644 --- a/markdown/bitburner.crimetype.md +++ b/markdown/bitburner.crimetype.md @@ -5,7 +5,7 @@ ## CrimeType enum -Signature: +**Signature:** ```typescript declare enum CrimeType diff --git a/markdown/bitburner.division.awareness.md b/markdown/bitburner.division.awareness.md index 73daec486..1111fe09c 100644 --- a/markdown/bitburner.division.awareness.md +++ b/markdown/bitburner.division.awareness.md @@ -6,7 +6,7 @@ Awareness of the division -Signature: +**Signature:** ```typescript awareness: number; diff --git a/markdown/bitburner.division.cities.md b/markdown/bitburner.division.cities.md index 921014f19..8bb984924 100644 --- a/markdown/bitburner.division.cities.md +++ b/markdown/bitburner.division.cities.md @@ -6,7 +6,7 @@ Cities in which this division has expanded -Signature: +**Signature:** ```typescript cities: CityName[]; diff --git a/markdown/bitburner.division.lastcycleexpenses.md b/markdown/bitburner.division.lastcycleexpenses.md index b29350d75..b86d97157 100644 --- a/markdown/bitburner.division.lastcycleexpenses.md +++ b/markdown/bitburner.division.lastcycleexpenses.md @@ -6,7 +6,7 @@ Expenses last cycle -Signature: +**Signature:** ```typescript lastCycleExpenses: number; diff --git a/markdown/bitburner.division.lastcyclerevenue.md b/markdown/bitburner.division.lastcyclerevenue.md index 9a26db7ab..64ce13bbe 100644 --- a/markdown/bitburner.division.lastcyclerevenue.md +++ b/markdown/bitburner.division.lastcyclerevenue.md @@ -6,7 +6,7 @@ Revenue last cycle -Signature: +**Signature:** ```typescript lastCycleRevenue: number; diff --git a/markdown/bitburner.division.makesproducts.md b/markdown/bitburner.division.makesproducts.md index f624b2267..de50f25be 100644 --- a/markdown/bitburner.division.makesproducts.md +++ b/markdown/bitburner.division.makesproducts.md @@ -6,7 +6,7 @@ Whether the industry this division is in is capable of making products -Signature: +**Signature:** ```typescript makesProducts: boolean; diff --git a/markdown/bitburner.division.md b/markdown/bitburner.division.md index 64a0b4de3..53ccc1796 100644 --- a/markdown/bitburner.division.md +++ b/markdown/bitburner.division.md @@ -6,7 +6,7 @@ Corporation division -Signature: +**Signature:** ```typescript interface Division @@ -14,20 +14,20 @@ interface Division ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [awareness](./bitburner.division.awareness.md) | number | Awareness of the division | -| [cities](./bitburner.division.cities.md) | [CityName](./bitburner.cityname.md)\[\] | Cities in which this division has expanded | -| [lastCycleExpenses](./bitburner.division.lastcycleexpenses.md) | number | Expenses last cycle | -| [lastCycleRevenue](./bitburner.division.lastcyclerevenue.md) | number | Revenue last cycle | -| [makesProducts](./bitburner.division.makesproducts.md) | boolean | Whether the industry this division is in is capable of making products | -| [name](./bitburner.division.name.md) | string | Name of the division | -| [popularity](./bitburner.division.popularity.md) | number | Popularity of the division | -| [prodMult](./bitburner.division.prodmult.md) | number | Production multiplier | -| [products](./bitburner.division.products.md) | string\[\] | Products developed by this division | -| [research](./bitburner.division.research.md) | number | Amount of research in that division | -| [thisCycleExpenses](./bitburner.division.thiscycleexpenses.md) | number | Expenses this cycle | -| [thisCycleRevenue](./bitburner.division.thiscyclerevenue.md) | number | Revenue this cycle | -| [type](./bitburner.division.type.md) | [CorpIndustryName](./bitburner.corpindustryname.md) | Type of division, like Agriculture | -| [upgrades](./bitburner.division.upgrades.md) | number\[\] | All research bought | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [awareness](./bitburner.division.awareness.md) | | number | Awareness of the division | +| [cities](./bitburner.division.cities.md) | | [CityName](./bitburner.cityname.md)\[\] | Cities in which this division has expanded | +| [lastCycleExpenses](./bitburner.division.lastcycleexpenses.md) | | number | Expenses last cycle | +| [lastCycleRevenue](./bitburner.division.lastcyclerevenue.md) | | number | Revenue last cycle | +| [makesProducts](./bitburner.division.makesproducts.md) | | boolean | Whether the industry this division is in is capable of making products | +| [name](./bitburner.division.name.md) | | string | Name of the division | +| [popularity](./bitburner.division.popularity.md) | | number | Popularity of the division | +| [prodMult](./bitburner.division.prodmult.md) | | number | Production multiplier | +| [products](./bitburner.division.products.md) | | string\[\] | Products developed by this division | +| [research](./bitburner.division.research.md) | | number | Amount of research in that division | +| [thisCycleExpenses](./bitburner.division.thiscycleexpenses.md) | | number | Expenses this cycle | +| [thisCycleRevenue](./bitburner.division.thiscyclerevenue.md) | | number | Revenue this cycle | +| [type](./bitburner.division.type.md) | | [CorpIndustryName](./bitburner.corpindustryname.md) | Type of division, like Agriculture | +| [upgrades](./bitburner.division.upgrades.md) | | number\[\] | All research bought | diff --git a/markdown/bitburner.division.name.md b/markdown/bitburner.division.name.md index 2896df398..2e908a962 100644 --- a/markdown/bitburner.division.name.md +++ b/markdown/bitburner.division.name.md @@ -6,7 +6,7 @@ Name of the division -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.division.popularity.md b/markdown/bitburner.division.popularity.md index 50bdb7986..9c247bb4a 100644 --- a/markdown/bitburner.division.popularity.md +++ b/markdown/bitburner.division.popularity.md @@ -6,7 +6,7 @@ Popularity of the division -Signature: +**Signature:** ```typescript popularity: number; diff --git a/markdown/bitburner.division.prodmult.md b/markdown/bitburner.division.prodmult.md index 13e563abf..23f284fe6 100644 --- a/markdown/bitburner.division.prodmult.md +++ b/markdown/bitburner.division.prodmult.md @@ -6,7 +6,7 @@ Production multiplier -Signature: +**Signature:** ```typescript prodMult: number; diff --git a/markdown/bitburner.division.products.md b/markdown/bitburner.division.products.md index 182c8e1f4..a8e1e9b4a 100644 --- a/markdown/bitburner.division.products.md +++ b/markdown/bitburner.division.products.md @@ -6,7 +6,7 @@ Products developed by this division -Signature: +**Signature:** ```typescript products: string[]; diff --git a/markdown/bitburner.division.research.md b/markdown/bitburner.division.research.md index 927f2c924..63012a4c0 100644 --- a/markdown/bitburner.division.research.md +++ b/markdown/bitburner.division.research.md @@ -6,7 +6,7 @@ Amount of research in that division -Signature: +**Signature:** ```typescript research: number; diff --git a/markdown/bitburner.division.thiscycleexpenses.md b/markdown/bitburner.division.thiscycleexpenses.md index b6db4ad28..89f818cdf 100644 --- a/markdown/bitburner.division.thiscycleexpenses.md +++ b/markdown/bitburner.division.thiscycleexpenses.md @@ -6,7 +6,7 @@ Expenses this cycle -Signature: +**Signature:** ```typescript thisCycleExpenses: number; diff --git a/markdown/bitburner.division.thiscyclerevenue.md b/markdown/bitburner.division.thiscyclerevenue.md index 1a66b28fc..4b9954581 100644 --- a/markdown/bitburner.division.thiscyclerevenue.md +++ b/markdown/bitburner.division.thiscyclerevenue.md @@ -6,7 +6,7 @@ Revenue this cycle -Signature: +**Signature:** ```typescript thisCycleRevenue: number; diff --git a/markdown/bitburner.division.type.md b/markdown/bitburner.division.type.md index 525d553b3..030e16fad 100644 --- a/markdown/bitburner.division.type.md +++ b/markdown/bitburner.division.type.md @@ -6,7 +6,7 @@ Type of division, like Agriculture -Signature: +**Signature:** ```typescript type: CorpIndustryName; diff --git a/markdown/bitburner.division.upgrades.md b/markdown/bitburner.division.upgrades.md index 616f2209f..7a823cc94 100644 --- a/markdown/bitburner.division.upgrades.md +++ b/markdown/bitburner.division.upgrades.md @@ -6,7 +6,7 @@ All research bought -Signature: +**Signature:** ```typescript upgrades: number[]; diff --git a/markdown/bitburner.equipmentstats.agi.md b/markdown/bitburner.equipmentstats.agi.md index c300582de..dcf08bb9f 100644 --- a/markdown/bitburner.equipmentstats.agi.md +++ b/markdown/bitburner.equipmentstats.agi.md @@ -6,7 +6,7 @@ Agility multiplier -Signature: +**Signature:** ```typescript agi?: number; diff --git a/markdown/bitburner.equipmentstats.cha.md b/markdown/bitburner.equipmentstats.cha.md index b31da6453..ef61db57e 100644 --- a/markdown/bitburner.equipmentstats.cha.md +++ b/markdown/bitburner.equipmentstats.cha.md @@ -6,7 +6,7 @@ Charisma multiplier -Signature: +**Signature:** ```typescript cha?: number; diff --git a/markdown/bitburner.equipmentstats.def.md b/markdown/bitburner.equipmentstats.def.md index 369dc7de2..7b91493b8 100644 --- a/markdown/bitburner.equipmentstats.def.md +++ b/markdown/bitburner.equipmentstats.def.md @@ -6,7 +6,7 @@ Defense multiplier -Signature: +**Signature:** ```typescript def?: number; diff --git a/markdown/bitburner.equipmentstats.dex.md b/markdown/bitburner.equipmentstats.dex.md index feadd6180..b61f78cbf 100644 --- a/markdown/bitburner.equipmentstats.dex.md +++ b/markdown/bitburner.equipmentstats.dex.md @@ -6,7 +6,7 @@ Dexterity multiplier -Signature: +**Signature:** ```typescript dex?: number; diff --git a/markdown/bitburner.equipmentstats.hack.md b/markdown/bitburner.equipmentstats.hack.md index 96609431e..d2274c78e 100644 --- a/markdown/bitburner.equipmentstats.hack.md +++ b/markdown/bitburner.equipmentstats.hack.md @@ -6,7 +6,7 @@ Hacking multiplier -Signature: +**Signature:** ```typescript hack?: number; diff --git a/markdown/bitburner.equipmentstats.md b/markdown/bitburner.equipmentstats.md index 4c0e9d37c..8fda26d3f 100644 --- a/markdown/bitburner.equipmentstats.md +++ b/markdown/bitburner.equipmentstats.md @@ -6,7 +6,7 @@ Object representing data representing a gang member equipment. -Signature: +**Signature:** ```typescript interface EquipmentStats @@ -14,12 +14,12 @@ interface EquipmentStats ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agi?](./bitburner.equipmentstats.agi.md) | number | (Optional) Agility multiplier | -| [cha?](./bitburner.equipmentstats.cha.md) | number | (Optional) Charisma multiplier | -| [def?](./bitburner.equipmentstats.def.md) | number | (Optional) Defense multiplier | -| [dex?](./bitburner.equipmentstats.dex.md) | number | (Optional) Dexterity multiplier | -| [hack?](./bitburner.equipmentstats.hack.md) | number | (Optional) Hacking multiplier | -| [str?](./bitburner.equipmentstats.str.md) | number | (Optional) Strength multiplier | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agi?](./bitburner.equipmentstats.agi.md) | | number | _(Optional)_ Agility multiplier | +| [cha?](./bitburner.equipmentstats.cha.md) | | number | _(Optional)_ Charisma multiplier | +| [def?](./bitburner.equipmentstats.def.md) | | number | _(Optional)_ Defense multiplier | +| [dex?](./bitburner.equipmentstats.dex.md) | | number | _(Optional)_ Dexterity multiplier | +| [hack?](./bitburner.equipmentstats.hack.md) | | number | _(Optional)_ Hacking multiplier | +| [str?](./bitburner.equipmentstats.str.md) | | number | _(Optional)_ Strength multiplier | diff --git a/markdown/bitburner.equipmentstats.str.md b/markdown/bitburner.equipmentstats.str.md index 6a9bc64ca..967a2a1c8 100644 --- a/markdown/bitburner.equipmentstats.str.md +++ b/markdown/bitburner.equipmentstats.str.md @@ -6,7 +6,7 @@ Strength multiplier -Signature: +**Signature:** ```typescript str?: number; diff --git a/markdown/bitburner.export.amt.md b/markdown/bitburner.export.amt.md index 670b14ca5..6eef33c4c 100644 --- a/markdown/bitburner.export.amt.md +++ b/markdown/bitburner.export.amt.md @@ -6,7 +6,7 @@ Amount of material exported -Signature: +**Signature:** ```typescript amt: string; diff --git a/markdown/bitburner.export.div.md b/markdown/bitburner.export.div.md index eb4c78f97..e869705fa 100644 --- a/markdown/bitburner.export.div.md +++ b/markdown/bitburner.export.div.md @@ -6,7 +6,7 @@ Division the material is being exported to -Signature: +**Signature:** ```typescript div: string; diff --git a/markdown/bitburner.export.loc.md b/markdown/bitburner.export.loc.md index 1c7f10616..204c9fcdc 100644 --- a/markdown/bitburner.export.loc.md +++ b/markdown/bitburner.export.loc.md @@ -6,7 +6,7 @@ City the material is being exported to -Signature: +**Signature:** ```typescript loc: CityName; diff --git a/markdown/bitburner.export.md b/markdown/bitburner.export.md index c0b20466a..274594fb3 100644 --- a/markdown/bitburner.export.md +++ b/markdown/bitburner.export.md @@ -6,7 +6,7 @@ Export order for a material -Signature: +**Signature:** ```typescript interface Export @@ -14,9 +14,9 @@ interface Export ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [amt](./bitburner.export.amt.md) | string | Amount of material exported | -| [div](./bitburner.export.div.md) | string | Division the material is being exported to | -| [loc](./bitburner.export.loc.md) | [CityName](./bitburner.cityname.md) | City the material is being exported to | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [amt](./bitburner.export.amt.md) | | string | Amount of material exported | +| [div](./bitburner.export.div.md) | | string | Division the material is being exported to | +| [loc](./bitburner.export.loc.md) | | [CityName](./bitburner.cityname.md) | City the material is being exported to | diff --git a/markdown/bitburner.factionworktype.md b/markdown/bitburner.factionworktype.md index cad32321b..b9c2d253b 100644 --- a/markdown/bitburner.factionworktype.md +++ b/markdown/bitburner.factionworktype.md @@ -5,7 +5,7 @@ ## FactionWorkType enum -Signature: +**Signature:** ```typescript declare enum FactionWorkType diff --git a/markdown/bitburner.filenameorpid.md b/markdown/bitburner.filenameorpid.md index df48b9af4..82fa317aa 100644 --- a/markdown/bitburner.filenameorpid.md +++ b/markdown/bitburner.filenameorpid.md @@ -5,7 +5,7 @@ ## FilenameOrPID type -Signature: +**Signature:** ```typescript type FilenameOrPID = number | string; diff --git a/markdown/bitburner.formulas.gang.md b/markdown/bitburner.formulas.gang.md index 6a2b07ff7..d3d892de8 100644 --- a/markdown/bitburner.formulas.gang.md +++ b/markdown/bitburner.formulas.gang.md @@ -6,7 +6,7 @@ Gang formulas -Signature: +**Signature:** ```typescript gang: GangFormulas; diff --git a/markdown/bitburner.formulas.hacking.md b/markdown/bitburner.formulas.hacking.md index 51407977d..53b5e48bd 100644 --- a/markdown/bitburner.formulas.hacking.md +++ b/markdown/bitburner.formulas.hacking.md @@ -6,7 +6,7 @@ Hacking formulas -Signature: +**Signature:** ```typescript hacking: HackingFormulas; diff --git a/markdown/bitburner.formulas.hacknetnodes.md b/markdown/bitburner.formulas.hacknetnodes.md index 6e264ea35..6fd43e875 100644 --- a/markdown/bitburner.formulas.hacknetnodes.md +++ b/markdown/bitburner.formulas.hacknetnodes.md @@ -6,7 +6,7 @@ Hacknet Nodes formulas -Signature: +**Signature:** ```typescript hacknetNodes: HacknetNodesFormulas; diff --git a/markdown/bitburner.formulas.hacknetservers.md b/markdown/bitburner.formulas.hacknetservers.md index 6b969f00e..4efb32354 100644 --- a/markdown/bitburner.formulas.hacknetservers.md +++ b/markdown/bitburner.formulas.hacknetservers.md @@ -6,7 +6,7 @@ Hacknet Servers formulas -Signature: +**Signature:** ```typescript hacknetServers: HacknetServersFormulas; diff --git a/markdown/bitburner.formulas.md b/markdown/bitburner.formulas.md index de287d02b..66aac71ce 100644 --- a/markdown/bitburner.formulas.md +++ b/markdown/bitburner.formulas.md @@ -6,7 +6,7 @@ Formulas API -Signature: +**Signature:** ```typescript export interface Formulas @@ -18,15 +18,15 @@ You need Formulas.exe on your home computer to use this API. ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [gang](./bitburner.formulas.gang.md) | [GangFormulas](./bitburner.gangformulas.md) | Gang formulas | -| [hacking](./bitburner.formulas.hacking.md) | [HackingFormulas](./bitburner.hackingformulas.md) | Hacking formulas | -| [hacknetNodes](./bitburner.formulas.hacknetnodes.md) | [HacknetNodesFormulas](./bitburner.hacknetnodesformulas.md) | Hacknet Nodes formulas | -| [hacknetServers](./bitburner.formulas.hacknetservers.md) | [HacknetServersFormulas](./bitburner.hacknetserversformulas.md) | Hacknet Servers formulas | -| [reputation](./bitburner.formulas.reputation.md) | [ReputationFormulas](./bitburner.reputationformulas.md) | Reputation formulas | -| [skills](./bitburner.formulas.skills.md) | [SkillsFormulas](./bitburner.skillsformulas.md) | Skills formulas | -| [work](./bitburner.formulas.work.md) | [WorkFormulas](./bitburner.workformulas.md) | Work formulas | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [gang](./bitburner.formulas.gang.md) | | [GangFormulas](./bitburner.gangformulas.md) | Gang formulas | +| [hacking](./bitburner.formulas.hacking.md) | | [HackingFormulas](./bitburner.hackingformulas.md) | Hacking formulas | +| [hacknetNodes](./bitburner.formulas.hacknetnodes.md) | | [HacknetNodesFormulas](./bitburner.hacknetnodesformulas.md) | Hacknet Nodes formulas | +| [hacknetServers](./bitburner.formulas.hacknetservers.md) | | [HacknetServersFormulas](./bitburner.hacknetserversformulas.md) | Hacknet Servers formulas | +| [reputation](./bitburner.formulas.reputation.md) | | [ReputationFormulas](./bitburner.reputationformulas.md) | Reputation formulas | +| [skills](./bitburner.formulas.skills.md) | | [SkillsFormulas](./bitburner.skillsformulas.md) | Skills formulas | +| [work](./bitburner.formulas.work.md) | | [WorkFormulas](./bitburner.workformulas.md) | Work formulas | ## Methods diff --git a/markdown/bitburner.formulas.mockperson.md b/markdown/bitburner.formulas.mockperson.md index 4a1478dae..15e5bd288 100644 --- a/markdown/bitburner.formulas.mockperson.md +++ b/markdown/bitburner.formulas.mockperson.md @@ -4,12 +4,12 @@ ## Formulas.mockPerson() method -Signature: +**Signature:** ```typescript mockPerson(): Person; ``` -Returns: +**Returns:** [Person](./bitburner.person.md) diff --git a/markdown/bitburner.formulas.mockplayer.md b/markdown/bitburner.formulas.mockplayer.md index 395abcd43..062224d4e 100644 --- a/markdown/bitburner.formulas.mockplayer.md +++ b/markdown/bitburner.formulas.mockplayer.md @@ -4,12 +4,12 @@ ## Formulas.mockPlayer() method -Signature: +**Signature:** ```typescript mockPlayer(): Player; ``` -Returns: +**Returns:** [Player](./bitburner.player.md) diff --git a/markdown/bitburner.formulas.mockserver.md b/markdown/bitburner.formulas.mockserver.md index 0921e33cd..651db4bc4 100644 --- a/markdown/bitburner.formulas.mockserver.md +++ b/markdown/bitburner.formulas.mockserver.md @@ -4,12 +4,12 @@ ## Formulas.mockServer() method -Signature: +**Signature:** ```typescript mockServer(): Server; ``` -Returns: +**Returns:** [Server](./bitburner.server.md) diff --git a/markdown/bitburner.formulas.reputation.md b/markdown/bitburner.formulas.reputation.md index 647861041..518afa387 100644 --- a/markdown/bitburner.formulas.reputation.md +++ b/markdown/bitburner.formulas.reputation.md @@ -6,7 +6,7 @@ Reputation formulas -Signature: +**Signature:** ```typescript reputation: ReputationFormulas; diff --git a/markdown/bitburner.formulas.skills.md b/markdown/bitburner.formulas.skills.md index 5ea345a6c..16de88a83 100644 --- a/markdown/bitburner.formulas.skills.md +++ b/markdown/bitburner.formulas.skills.md @@ -6,7 +6,7 @@ Skills formulas -Signature: +**Signature:** ```typescript skills: SkillsFormulas; diff --git a/markdown/bitburner.formulas.work.md b/markdown/bitburner.formulas.work.md index 0ee012fb6..2507da940 100644 --- a/markdown/bitburner.formulas.work.md +++ b/markdown/bitburner.formulas.work.md @@ -6,7 +6,7 @@ Work formulas -Signature: +**Signature:** ```typescript work: WorkFormulas; diff --git a/markdown/bitburner.fragment.id.md b/markdown/bitburner.fragment.id.md index cf6e6d4f1..0e2dcee76 100644 --- a/markdown/bitburner.fragment.id.md +++ b/markdown/bitburner.fragment.id.md @@ -4,7 +4,7 @@ ## Fragment.id property -Signature: +**Signature:** ```typescript id: number; diff --git a/markdown/bitburner.fragment.limit.md b/markdown/bitburner.fragment.limit.md index b24873ef3..670dd96dd 100644 --- a/markdown/bitburner.fragment.limit.md +++ b/markdown/bitburner.fragment.limit.md @@ -4,7 +4,7 @@ ## Fragment.limit property -Signature: +**Signature:** ```typescript limit: number; diff --git a/markdown/bitburner.fragment.md b/markdown/bitburner.fragment.md index 909d721cf..0d39942f0 100644 --- a/markdown/bitburner.fragment.md +++ b/markdown/bitburner.fragment.md @@ -5,7 +5,7 @@ ## Fragment interface -Signature: +**Signature:** ```typescript interface Fragment @@ -13,11 +13,11 @@ interface Fragment ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [id](./bitburner.fragment.id.md) | number | | -| [limit](./bitburner.fragment.limit.md) | number | | -| [power](./bitburner.fragment.power.md) | number | | -| [shape](./bitburner.fragment.shape.md) | boolean\[\]\[\] | | -| [type](./bitburner.fragment.type.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [id](./bitburner.fragment.id.md) | | number | | +| [limit](./bitburner.fragment.limit.md) | | number | | +| [power](./bitburner.fragment.power.md) | | number | | +| [shape](./bitburner.fragment.shape.md) | | boolean\[\]\[\] | | +| [type](./bitburner.fragment.type.md) | | number | | diff --git a/markdown/bitburner.fragment.power.md b/markdown/bitburner.fragment.power.md index 59ce83d87..15aeb617a 100644 --- a/markdown/bitburner.fragment.power.md +++ b/markdown/bitburner.fragment.power.md @@ -4,7 +4,7 @@ ## Fragment.power property -Signature: +**Signature:** ```typescript power: number; diff --git a/markdown/bitburner.fragment.shape.md b/markdown/bitburner.fragment.shape.md index ffd1404e5..42fa94021 100644 --- a/markdown/bitburner.fragment.shape.md +++ b/markdown/bitburner.fragment.shape.md @@ -4,7 +4,7 @@ ## Fragment.shape property -Signature: +**Signature:** ```typescript shape: boolean[][]; diff --git a/markdown/bitburner.fragment.type.md b/markdown/bitburner.fragment.type.md index de88217bc..a2c392fe1 100644 --- a/markdown/bitburner.fragment.type.md +++ b/markdown/bitburner.fragment.type.md @@ -4,7 +4,7 @@ ## Fragment.type property -Signature: +**Signature:** ```typescript type: number; diff --git a/markdown/bitburner.gameinfo.commit.md b/markdown/bitburner.gameinfo.commit.md index f54c06d2b..4a93173b1 100644 --- a/markdown/bitburner.gameinfo.commit.md +++ b/markdown/bitburner.gameinfo.commit.md @@ -4,7 +4,7 @@ ## GameInfo.commit property -Signature: +**Signature:** ```typescript commit: string; diff --git a/markdown/bitburner.gameinfo.md b/markdown/bitburner.gameinfo.md index 135e8047f..7d258f240 100644 --- a/markdown/bitburner.gameinfo.md +++ b/markdown/bitburner.gameinfo.md @@ -6,7 +6,7 @@ Game Information -Signature: +**Signature:** ```typescript interface GameInfo @@ -14,9 +14,9 @@ interface GameInfo ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [commit](./bitburner.gameinfo.commit.md) | string | | -| [platform](./bitburner.gameinfo.platform.md) | string | | -| [version](./bitburner.gameinfo.version.md) | string | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [commit](./bitburner.gameinfo.commit.md) | | string | | +| [platform](./bitburner.gameinfo.platform.md) | | string | | +| [version](./bitburner.gameinfo.version.md) | | string | | diff --git a/markdown/bitburner.gameinfo.platform.md b/markdown/bitburner.gameinfo.platform.md index b8c96d41f..30ecc116a 100644 --- a/markdown/bitburner.gameinfo.platform.md +++ b/markdown/bitburner.gameinfo.platform.md @@ -4,7 +4,7 @@ ## GameInfo.platform property -Signature: +**Signature:** ```typescript platform: string; diff --git a/markdown/bitburner.gameinfo.version.md b/markdown/bitburner.gameinfo.version.md index 9b19ac008..b83c1fe87 100644 --- a/markdown/bitburner.gameinfo.version.md +++ b/markdown/bitburner.gameinfo.version.md @@ -4,7 +4,7 @@ ## GameInfo.version property -Signature: +**Signature:** ```typescript version: string; diff --git a/markdown/bitburner.gang.ascendmember.md b/markdown/bitburner.gang.ascendmember.md index 1932ed0ba..49a05e819 100644 --- a/markdown/bitburner.gang.ascendmember.md +++ b/markdown/bitburner.gang.ascendmember.md @@ -6,7 +6,7 @@ Ascend a gang member. -Signature: +**Signature:** ```typescript ascendMember(memberName: string): GangMemberAscension | undefined; @@ -18,7 +18,7 @@ ascendMember(memberName: string): GangMemberAscension | undefined; | --- | --- | --- | | memberName | string | Name of member to ascend. | -Returns: +**Returns:** [GangMemberAscension](./bitburner.gangmemberascension.md) \| undefined diff --git a/markdown/bitburner.gang.canrecruitmember.md b/markdown/bitburner.gang.canrecruitmember.md index d09a109ed..7b0b447c1 100644 --- a/markdown/bitburner.gang.canrecruitmember.md +++ b/markdown/bitburner.gang.canrecruitmember.md @@ -6,12 +6,12 @@ Check if you can recruit a new gang member. -Signature: +**Signature:** ```typescript canRecruitMember(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.creategang.md b/markdown/bitburner.gang.creategang.md index cf57b8a8a..696bbd4d9 100644 --- a/markdown/bitburner.gang.creategang.md +++ b/markdown/bitburner.gang.creategang.md @@ -6,7 +6,7 @@ Create a gang. -Signature: +**Signature:** ```typescript createGang(faction: string): boolean; @@ -18,7 +18,7 @@ createGang(faction: string): boolean; | --- | --- | --- | | faction | string | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.getascensionresult.md b/markdown/bitburner.gang.getascensionresult.md index 3e6787b21..6fef44dee 100644 --- a/markdown/bitburner.gang.getascensionresult.md +++ b/markdown/bitburner.gang.getascensionresult.md @@ -6,7 +6,7 @@ Get the result of an ascension without ascending. -Signature: +**Signature:** ```typescript getAscensionResult(memberName: string): GangMemberAscension | undefined; @@ -18,7 +18,7 @@ getAscensionResult(memberName: string): GangMemberAscension | undefined; | --- | --- | --- | | memberName | string | Name of member. | -Returns: +**Returns:** [GangMemberAscension](./bitburner.gangmemberascension.md) \| undefined diff --git a/markdown/bitburner.gang.getbonustime.md b/markdown/bitburner.gang.getbonustime.md index 89d8dd9b6..b18531489 100644 --- a/markdown/bitburner.gang.getbonustime.md +++ b/markdown/bitburner.gang.getbonustime.md @@ -6,12 +6,12 @@ Get bonus time. -Signature: +**Signature:** ```typescript getBonusTime(): number; ``` -Returns: +**Returns:** number @@ -25,5 +25,5 @@ Returns the amount of accumulated “bonus time” (milliseconds) for the Gang m “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 10x the normal speed. +“Bonus time” makes the game progress faster, up to 25x the normal speed. diff --git a/markdown/bitburner.gang.getchancetowinclash.md b/markdown/bitburner.gang.getchancetowinclash.md index fa6d46455..604944996 100644 --- a/markdown/bitburner.gang.getchancetowinclash.md +++ b/markdown/bitburner.gang.getchancetowinclash.md @@ -6,7 +6,7 @@ Get chance to win clash with other gang. -Signature: +**Signature:** ```typescript getChanceToWinClash(gangName: string): number; @@ -18,7 +18,7 @@ getChanceToWinClash(gangName: string): number; | --- | --- | --- | | gangName | string | Target gang | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gang.getequipmentcost.md b/markdown/bitburner.gang.getequipmentcost.md index 8deb184e4..f1573f511 100644 --- a/markdown/bitburner.gang.getequipmentcost.md +++ b/markdown/bitburner.gang.getequipmentcost.md @@ -6,7 +6,7 @@ Get cost of equipment. -Signature: +**Signature:** ```typescript getEquipmentCost(equipName: string): number; @@ -18,7 +18,7 @@ getEquipmentCost(equipName: string): number; | --- | --- | --- | | equipName | string | Name of equipment. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gang.getequipmentnames.md b/markdown/bitburner.gang.getequipmentnames.md index 931d31d76..6684859c7 100644 --- a/markdown/bitburner.gang.getequipmentnames.md +++ b/markdown/bitburner.gang.getequipmentnames.md @@ -6,12 +6,12 @@ List equipment names. -Signature: +**Signature:** ```typescript getEquipmentNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.gang.getequipmentstats.md b/markdown/bitburner.gang.getequipmentstats.md index d78d067e5..2649721cb 100644 --- a/markdown/bitburner.gang.getequipmentstats.md +++ b/markdown/bitburner.gang.getequipmentstats.md @@ -6,7 +6,7 @@ Get stats of an equipment. -Signature: +**Signature:** ```typescript getEquipmentStats(equipName: string): EquipmentStats; @@ -18,7 +18,7 @@ getEquipmentStats(equipName: string): EquipmentStats; | --- | --- | --- | | equipName | string | Name of equipment. | -Returns: +**Returns:** [EquipmentStats](./bitburner.equipmentstats.md) diff --git a/markdown/bitburner.gang.getequipmenttype.md b/markdown/bitburner.gang.getequipmenttype.md index 0958e5696..aa3bfdc14 100644 --- a/markdown/bitburner.gang.getequipmenttype.md +++ b/markdown/bitburner.gang.getequipmenttype.md @@ -6,7 +6,7 @@ Get type of an equipment. -Signature: +**Signature:** ```typescript getEquipmentType(equipName: string): string; @@ -18,7 +18,7 @@ getEquipmentType(equipName: string): string; | --- | --- | --- | | equipName | string | Name of equipment. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.gang.getganginformation.md b/markdown/bitburner.gang.getganginformation.md index 5e325c073..54d9ec7bb 100644 --- a/markdown/bitburner.gang.getganginformation.md +++ b/markdown/bitburner.gang.getganginformation.md @@ -6,12 +6,12 @@ Get information about your gang. -Signature: +**Signature:** ```typescript getGangInformation(): GangGenInfo; ``` -Returns: +**Returns:** [GangGenInfo](./bitburner.ganggeninfo.md) diff --git a/markdown/bitburner.gang.getmemberinformation.md b/markdown/bitburner.gang.getmemberinformation.md index 13033bfaa..76ce8db05 100644 --- a/markdown/bitburner.gang.getmemberinformation.md +++ b/markdown/bitburner.gang.getmemberinformation.md @@ -6,7 +6,7 @@ Get information about a specific gang member. -Signature: +**Signature:** ```typescript getMemberInformation(name: string): GangMemberInfo; @@ -18,7 +18,7 @@ getMemberInformation(name: string): GangMemberInfo; | --- | --- | --- | | name | string | Name of member. | -Returns: +**Returns:** [GangMemberInfo](./bitburner.gangmemberinfo.md) diff --git a/markdown/bitburner.gang.getmembernames.md b/markdown/bitburner.gang.getmembernames.md index 08a766c42..bc92bde6f 100644 --- a/markdown/bitburner.gang.getmembernames.md +++ b/markdown/bitburner.gang.getmembernames.md @@ -6,12 +6,12 @@ List all gang members. -Signature: +**Signature:** ```typescript getMemberNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.gang.getotherganginformation.md b/markdown/bitburner.gang.getotherganginformation.md index 6764033f3..d260ae011 100644 --- a/markdown/bitburner.gang.getotherganginformation.md +++ b/markdown/bitburner.gang.getotherganginformation.md @@ -6,12 +6,12 @@ Get information about the other gangs. -Signature: +**Signature:** ```typescript getOtherGangInformation(): GangOtherInfo; ``` -Returns: +**Returns:** [GangOtherInfo](./bitburner.gangotherinfo.md) diff --git a/markdown/bitburner.gang.gettasknames.md b/markdown/bitburner.gang.gettasknames.md index 4e1b1d885..8b13fa38d 100644 --- a/markdown/bitburner.gang.gettasknames.md +++ b/markdown/bitburner.gang.gettasknames.md @@ -6,12 +6,12 @@ List member task names. -Signature: +**Signature:** ```typescript getTaskNames(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.gang.gettaskstats.md b/markdown/bitburner.gang.gettaskstats.md index cfd2a62a5..c80e52687 100644 --- a/markdown/bitburner.gang.gettaskstats.md +++ b/markdown/bitburner.gang.gettaskstats.md @@ -6,7 +6,7 @@ Get stats of a task. -Signature: +**Signature:** ```typescript getTaskStats(name: string): GangTaskStats; @@ -18,7 +18,7 @@ getTaskStats(name: string): GangTaskStats; | --- | --- | --- | | name | string | Name of the task. | -Returns: +**Returns:** [GangTaskStats](./bitburner.gangtaskstats.md) diff --git a/markdown/bitburner.gang.ingang.md b/markdown/bitburner.gang.ingang.md index 4cd0021f9..d1470ecbc 100644 --- a/markdown/bitburner.gang.ingang.md +++ b/markdown/bitburner.gang.ingang.md @@ -6,12 +6,12 @@ Check if you're in a gang. -Signature: +**Signature:** ```typescript inGang(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.md b/markdown/bitburner.gang.md index de2e20ca5..9f825ef5a 100644 --- a/markdown/bitburner.gang.md +++ b/markdown/bitburner.gang.md @@ -6,7 +6,7 @@ Gang API -Signature: +**Signature:** ```typescript export interface Gang diff --git a/markdown/bitburner.gang.purchaseequipment.md b/markdown/bitburner.gang.purchaseequipment.md index c5cb20db2..0d8206691 100644 --- a/markdown/bitburner.gang.purchaseequipment.md +++ b/markdown/bitburner.gang.purchaseequipment.md @@ -6,7 +6,7 @@ Purchase an equipment for a gang member. -Signature: +**Signature:** ```typescript purchaseEquipment(memberName: string, equipName: string): boolean; @@ -19,7 +19,7 @@ purchaseEquipment(memberName: string, equipName: string): boolean; | memberName | string | Name of Gang member to purchase the equipment for. | | equipName | string | Name of Equipment/Augmentation to purchase. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.recruitmember.md b/markdown/bitburner.gang.recruitmember.md index d74689ed8..3468d4f35 100644 --- a/markdown/bitburner.gang.recruitmember.md +++ b/markdown/bitburner.gang.recruitmember.md @@ -6,7 +6,7 @@ Recruit a new gang member. -Signature: +**Signature:** ```typescript recruitMember(name: string): boolean; @@ -18,7 +18,7 @@ recruitMember(name: string): boolean; | --- | --- | --- | | name | string | Name of member to recruit. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.setmembertask.md b/markdown/bitburner.gang.setmembertask.md index 972af190b..d6981dd2a 100644 --- a/markdown/bitburner.gang.setmembertask.md +++ b/markdown/bitburner.gang.setmembertask.md @@ -6,7 +6,7 @@ Set gang member to task. -Signature: +**Signature:** ```typescript setMemberTask(memberName: string, taskName: string): boolean; @@ -19,7 +19,7 @@ setMemberTask(memberName: string, taskName: string): boolean; | memberName | string | Name of Gang member to assign. | | taskName | string | Task to assign. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.gang.setterritorywarfare.md b/markdown/bitburner.gang.setterritorywarfare.md index 068b0abce..70e3f0c39 100644 --- a/markdown/bitburner.gang.setterritorywarfare.md +++ b/markdown/bitburner.gang.setterritorywarfare.md @@ -6,7 +6,7 @@ Enable/Disable territory warfare. -Signature: +**Signature:** ```typescript setTerritoryWarfare(engage: boolean): void; @@ -18,7 +18,7 @@ setTerritoryWarfare(engage: boolean): void; | --- | --- | --- | | engage | boolean | Whether or not to engage in territory warfare. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.gangformulas.ascensionmultiplier.md b/markdown/bitburner.gangformulas.ascensionmultiplier.md index b654ddf26..8b2148a7c 100644 --- a/markdown/bitburner.gangformulas.ascensionmultiplier.md +++ b/markdown/bitburner.gangformulas.ascensionmultiplier.md @@ -6,7 +6,7 @@ Calculate ascension mult. -Signature: +**Signature:** ```typescript ascensionMultiplier(points: number): number; @@ -18,7 +18,7 @@ ascensionMultiplier(points: number): number; | --- | --- | --- | | points | number | Amount of ascension points. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gangformulas.ascensionpointsgain.md b/markdown/bitburner.gangformulas.ascensionpointsgain.md index 796be6b58..6f06887a6 100644 --- a/markdown/bitburner.gangformulas.ascensionpointsgain.md +++ b/markdown/bitburner.gangformulas.ascensionpointsgain.md @@ -6,7 +6,7 @@ Calculate ascension point gain. -Signature: +**Signature:** ```typescript ascensionPointsGain(exp: number): number; @@ -18,7 +18,7 @@ ascensionPointsGain(exp: number): number; | --- | --- | --- | | exp | number | Experience point before ascension. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gangformulas.md b/markdown/bitburner.gangformulas.md index eea043ad0..3d58751fa 100644 --- a/markdown/bitburner.gangformulas.md +++ b/markdown/bitburner.gangformulas.md @@ -6,7 +6,7 @@ Gang formulas -Signature: +**Signature:** ```typescript interface GangFormulas diff --git a/markdown/bitburner.gangformulas.moneygain.md b/markdown/bitburner.gangformulas.moneygain.md index 4eec2828a..58717f7df 100644 --- a/markdown/bitburner.gangformulas.moneygain.md +++ b/markdown/bitburner.gangformulas.moneygain.md @@ -6,7 +6,7 @@ Calculate money gain per tick. -Signature: +**Signature:** ```typescript moneyGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; @@ -20,7 +20,7 @@ moneyGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): numbe | member | [GangMemberInfo](./bitburner.gangmemberinfo.md) | Member info from [getMemberInformation](./bitburner.gang.getmemberinformation.md) | | task | [GangTaskStats](./bitburner.gangtaskstats.md) | Task info from [getTaskStats](./bitburner.gang.gettaskstats.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gangformulas.respectgain.md b/markdown/bitburner.gangformulas.respectgain.md index 3bc6e4f49..e6fadaa9a 100644 --- a/markdown/bitburner.gangformulas.respectgain.md +++ b/markdown/bitburner.gangformulas.respectgain.md @@ -6,7 +6,7 @@ Calculate respect gain per tick. -Signature: +**Signature:** ```typescript respectGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; @@ -20,7 +20,7 @@ respectGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): num | member | [GangMemberInfo](./bitburner.gangmemberinfo.md) | Gang info from [getMemberInformation](./bitburner.gang.getmemberinformation.md) | | task | [GangTaskStats](./bitburner.gangtaskstats.md) | Gang info from [getTaskStats](./bitburner.gang.gettaskstats.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gangformulas.wantedlevelgain.md b/markdown/bitburner.gangformulas.wantedlevelgain.md index f86d30fef..f3400e600 100644 --- a/markdown/bitburner.gangformulas.wantedlevelgain.md +++ b/markdown/bitburner.gangformulas.wantedlevelgain.md @@ -6,7 +6,7 @@ Calculate wanted gain per tick. -Signature: +**Signature:** ```typescript wantedLevelGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): number; @@ -20,7 +20,7 @@ wantedLevelGain(gang: GangGenInfo, member: GangMemberInfo, task: GangTaskStats): | member | [GangMemberInfo](./bitburner.gangmemberinfo.md) | Member info from [getMemberInformation](./bitburner.gang.getmemberinformation.md) | | task | [GangTaskStats](./bitburner.gangtaskstats.md) | Task info from [getTaskStats](./bitburner.gang.gettaskstats.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.gangformulas.wantedpenalty.md b/markdown/bitburner.gangformulas.wantedpenalty.md index 966de0885..295af76f8 100644 --- a/markdown/bitburner.gangformulas.wantedpenalty.md +++ b/markdown/bitburner.gangformulas.wantedpenalty.md @@ -6,7 +6,7 @@ Calculate the wanted penalty. -Signature: +**Signature:** ```typescript wantedPenalty(gang: GangGenInfo): number; @@ -18,7 +18,7 @@ wantedPenalty(gang: GangGenInfo): number; | --- | --- | --- | | gang | [GangGenInfo](./bitburner.ganggeninfo.md) | Gang info from [getGangInformation](./bitburner.gang.getganginformation.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ganggeninfo.faction.md b/markdown/bitburner.ganggeninfo.faction.md index 0b36ac034..0707407c6 100644 --- a/markdown/bitburner.ganggeninfo.faction.md +++ b/markdown/bitburner.ganggeninfo.faction.md @@ -6,7 +6,7 @@ Name of faction that the gang belongs to ("Slum Snakes", etc.) -Signature: +**Signature:** ```typescript faction: string; diff --git a/markdown/bitburner.ganggeninfo.ishacking.md b/markdown/bitburner.ganggeninfo.ishacking.md index e92362c16..12da3e697 100644 --- a/markdown/bitburner.ganggeninfo.ishacking.md +++ b/markdown/bitburner.ganggeninfo.ishacking.md @@ -6,7 +6,7 @@ Indicating whether or not it's a hacking gang -Signature: +**Signature:** ```typescript isHacking: boolean; diff --git a/markdown/bitburner.ganggeninfo.md b/markdown/bitburner.ganggeninfo.md index 4bfa5686f..0d116966d 100644 --- a/markdown/bitburner.ganggeninfo.md +++ b/markdown/bitburner.ganggeninfo.md @@ -6,7 +6,7 @@ Gang general info. -Signature: +**Signature:** ```typescript interface GangGenInfo @@ -14,18 +14,18 @@ interface GangGenInfo ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [faction](./bitburner.ganggeninfo.faction.md) | string | Name of faction that the gang belongs to ("Slum Snakes", etc.) | -| [isHacking](./bitburner.ganggeninfo.ishacking.md) | boolean | Indicating whether or not it's a hacking gang | -| [moneyGainRate](./bitburner.ganggeninfo.moneygainrate.md) | number | Money earned per game cycle | -| [power](./bitburner.ganggeninfo.power.md) | number | Gang's power for territory warfare | -| [respect](./bitburner.ganggeninfo.respect.md) | number | Gang's respect | -| [respectGainRate](./bitburner.ganggeninfo.respectgainrate.md) | number | Respect earned per game cycle | -| [territory](./bitburner.ganggeninfo.territory.md) | number | Amount of territory held | -| [territoryClashChance](./bitburner.ganggeninfo.territoryclashchance.md) | number | Clash chance | -| [territoryWarfareEngaged](./bitburner.ganggeninfo.territorywarfareengaged.md) | boolean | Indicating if territory warfare is enabled | -| [wantedLevel](./bitburner.ganggeninfo.wantedlevel.md) | number | Gang's wanted level | -| [wantedLevelGainRate](./bitburner.ganggeninfo.wantedlevelgainrate.md) | number | Wanted level gained/lost per game cycle (negative for losses) | -| [wantedPenalty](./bitburner.ganggeninfo.wantedpenalty.md) | number | Number indicating the current wanted penalty | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [faction](./bitburner.ganggeninfo.faction.md) | | string | Name of faction that the gang belongs to ("Slum Snakes", etc.) | +| [isHacking](./bitburner.ganggeninfo.ishacking.md) | | boolean | Indicating whether or not it's a hacking gang | +| [moneyGainRate](./bitburner.ganggeninfo.moneygainrate.md) | | number | Money earned per game cycle | +| [power](./bitburner.ganggeninfo.power.md) | | number | Gang's power for territory warfare | +| [respect](./bitburner.ganggeninfo.respect.md) | | number | Gang's respect | +| [respectGainRate](./bitburner.ganggeninfo.respectgainrate.md) | | number | Respect earned per game cycle | +| [territory](./bitburner.ganggeninfo.territory.md) | | number | Amount of territory held | +| [territoryClashChance](./bitburner.ganggeninfo.territoryclashchance.md) | | number | Clash chance | +| [territoryWarfareEngaged](./bitburner.ganggeninfo.territorywarfareengaged.md) | | boolean | Indicating if territory warfare is enabled | +| [wantedLevel](./bitburner.ganggeninfo.wantedlevel.md) | | number | Gang's wanted level | +| [wantedLevelGainRate](./bitburner.ganggeninfo.wantedlevelgainrate.md) | | number | Wanted level gained/lost per game cycle (negative for losses) | +| [wantedPenalty](./bitburner.ganggeninfo.wantedpenalty.md) | | number | Number indicating the current wanted penalty | diff --git a/markdown/bitburner.ganggeninfo.moneygainrate.md b/markdown/bitburner.ganggeninfo.moneygainrate.md index 4045ca547..38a73d5f5 100644 --- a/markdown/bitburner.ganggeninfo.moneygainrate.md +++ b/markdown/bitburner.ganggeninfo.moneygainrate.md @@ -6,7 +6,7 @@ Money earned per game cycle -Signature: +**Signature:** ```typescript moneyGainRate: number; diff --git a/markdown/bitburner.ganggeninfo.power.md b/markdown/bitburner.ganggeninfo.power.md index 013893ba8..822fdb899 100644 --- a/markdown/bitburner.ganggeninfo.power.md +++ b/markdown/bitburner.ganggeninfo.power.md @@ -6,7 +6,7 @@ Gang's power for territory warfare -Signature: +**Signature:** ```typescript power: number; diff --git a/markdown/bitburner.ganggeninfo.respect.md b/markdown/bitburner.ganggeninfo.respect.md index 981fd3014..0e77e5d3a 100644 --- a/markdown/bitburner.ganggeninfo.respect.md +++ b/markdown/bitburner.ganggeninfo.respect.md @@ -6,7 +6,7 @@ Gang's respect -Signature: +**Signature:** ```typescript respect: number; diff --git a/markdown/bitburner.ganggeninfo.respectgainrate.md b/markdown/bitburner.ganggeninfo.respectgainrate.md index c1046e588..103721da9 100644 --- a/markdown/bitburner.ganggeninfo.respectgainrate.md +++ b/markdown/bitburner.ganggeninfo.respectgainrate.md @@ -6,7 +6,7 @@ Respect earned per game cycle -Signature: +**Signature:** ```typescript respectGainRate: number; diff --git a/markdown/bitburner.ganggeninfo.territory.md b/markdown/bitburner.ganggeninfo.territory.md index 5bd6f7ece..9c16925a8 100644 --- a/markdown/bitburner.ganggeninfo.territory.md +++ b/markdown/bitburner.ganggeninfo.territory.md @@ -6,7 +6,7 @@ Amount of territory held -Signature: +**Signature:** ```typescript territory: number; diff --git a/markdown/bitburner.ganggeninfo.territoryclashchance.md b/markdown/bitburner.ganggeninfo.territoryclashchance.md index 179bf2381..b9477c9fb 100644 --- a/markdown/bitburner.ganggeninfo.territoryclashchance.md +++ b/markdown/bitburner.ganggeninfo.territoryclashchance.md @@ -6,7 +6,7 @@ Clash chance -Signature: +**Signature:** ```typescript territoryClashChance: number; diff --git a/markdown/bitburner.ganggeninfo.territorywarfareengaged.md b/markdown/bitburner.ganggeninfo.territorywarfareengaged.md index d0f4a02f0..7582ebf7a 100644 --- a/markdown/bitburner.ganggeninfo.territorywarfareengaged.md +++ b/markdown/bitburner.ganggeninfo.territorywarfareengaged.md @@ -6,7 +6,7 @@ Indicating if territory warfare is enabled -Signature: +**Signature:** ```typescript territoryWarfareEngaged: boolean; diff --git a/markdown/bitburner.ganggeninfo.wantedlevel.md b/markdown/bitburner.ganggeninfo.wantedlevel.md index 62e803bd4..fc1161ea4 100644 --- a/markdown/bitburner.ganggeninfo.wantedlevel.md +++ b/markdown/bitburner.ganggeninfo.wantedlevel.md @@ -6,7 +6,7 @@ Gang's wanted level -Signature: +**Signature:** ```typescript wantedLevel: number; diff --git a/markdown/bitburner.ganggeninfo.wantedlevelgainrate.md b/markdown/bitburner.ganggeninfo.wantedlevelgainrate.md index 20f3e1fa3..40d858c2c 100644 --- a/markdown/bitburner.ganggeninfo.wantedlevelgainrate.md +++ b/markdown/bitburner.ganggeninfo.wantedlevelgainrate.md @@ -6,7 +6,7 @@ Wanted level gained/lost per game cycle (negative for losses) -Signature: +**Signature:** ```typescript wantedLevelGainRate: number; diff --git a/markdown/bitburner.ganggeninfo.wantedpenalty.md b/markdown/bitburner.ganggeninfo.wantedpenalty.md index 17719bd2a..db21fb90e 100644 --- a/markdown/bitburner.ganggeninfo.wantedpenalty.md +++ b/markdown/bitburner.ganggeninfo.wantedpenalty.md @@ -6,7 +6,7 @@ Number indicating the current wanted penalty -Signature: +**Signature:** ```typescript wantedPenalty: number; diff --git a/markdown/bitburner.gangmemberascension.agi.md b/markdown/bitburner.gangmemberascension.agi.md index 75e15dc39..f5252ccaa 100644 --- a/markdown/bitburner.gangmemberascension.agi.md +++ b/markdown/bitburner.gangmemberascension.agi.md @@ -6,7 +6,7 @@ Agility multiplier gained from ascending -Signature: +**Signature:** ```typescript agi: number; diff --git a/markdown/bitburner.gangmemberascension.cha.md b/markdown/bitburner.gangmemberascension.cha.md index 24eb2cb04..2434cbe36 100644 --- a/markdown/bitburner.gangmemberascension.cha.md +++ b/markdown/bitburner.gangmemberascension.cha.md @@ -6,7 +6,7 @@ Charisma multiplier gained from ascending -Signature: +**Signature:** ```typescript cha: number; diff --git a/markdown/bitburner.gangmemberascension.def.md b/markdown/bitburner.gangmemberascension.def.md index 3ed9ae655..32f08317c 100644 --- a/markdown/bitburner.gangmemberascension.def.md +++ b/markdown/bitburner.gangmemberascension.def.md @@ -6,7 +6,7 @@ Defense multiplier gained from ascending -Signature: +**Signature:** ```typescript def: number; diff --git a/markdown/bitburner.gangmemberascension.dex.md b/markdown/bitburner.gangmemberascension.dex.md index d081d35a6..fb5de53bc 100644 --- a/markdown/bitburner.gangmemberascension.dex.md +++ b/markdown/bitburner.gangmemberascension.dex.md @@ -6,7 +6,7 @@ Dexterity multiplier gained from ascending -Signature: +**Signature:** ```typescript dex: number; diff --git a/markdown/bitburner.gangmemberascension.hack.md b/markdown/bitburner.gangmemberascension.hack.md index b42e99ebb..ad34eab91 100644 --- a/markdown/bitburner.gangmemberascension.hack.md +++ b/markdown/bitburner.gangmemberascension.hack.md @@ -6,7 +6,7 @@ Hacking multiplier gained from ascending -Signature: +**Signature:** ```typescript hack: number; diff --git a/markdown/bitburner.gangmemberascension.md b/markdown/bitburner.gangmemberascension.md index 8553bde4b..ecb555ff0 100644 --- a/markdown/bitburner.gangmemberascension.md +++ b/markdown/bitburner.gangmemberascension.md @@ -5,7 +5,7 @@ ## GangMemberAscension interface -Signature: +**Signature:** ```typescript interface GangMemberAscension @@ -13,13 +13,13 @@ interface GangMemberAscension ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agi](./bitburner.gangmemberascension.agi.md) | number | Agility multiplier gained from ascending | -| [cha](./bitburner.gangmemberascension.cha.md) | number | Charisma multiplier gained from ascending | -| [def](./bitburner.gangmemberascension.def.md) | number | Defense multiplier gained from ascending | -| [dex](./bitburner.gangmemberascension.dex.md) | number | Dexterity multiplier gained from ascending | -| [hack](./bitburner.gangmemberascension.hack.md) | number | Hacking multiplier gained from ascending | -| [respect](./bitburner.gangmemberascension.respect.md) | number | Amount of respect lost from ascending | -| [str](./bitburner.gangmemberascension.str.md) | number | Strength multiplier gained from ascending | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agi](./bitburner.gangmemberascension.agi.md) | | number | Agility multiplier gained from ascending | +| [cha](./bitburner.gangmemberascension.cha.md) | | number | Charisma multiplier gained from ascending | +| [def](./bitburner.gangmemberascension.def.md) | | number | Defense multiplier gained from ascending | +| [dex](./bitburner.gangmemberascension.dex.md) | | number | Dexterity multiplier gained from ascending | +| [hack](./bitburner.gangmemberascension.hack.md) | | number | Hacking multiplier gained from ascending | +| [respect](./bitburner.gangmemberascension.respect.md) | | number | Amount of respect lost from ascending | +| [str](./bitburner.gangmemberascension.str.md) | | number | Strength multiplier gained from ascending | diff --git a/markdown/bitburner.gangmemberascension.respect.md b/markdown/bitburner.gangmemberascension.respect.md index 45b3bd042..4d0258a24 100644 --- a/markdown/bitburner.gangmemberascension.respect.md +++ b/markdown/bitburner.gangmemberascension.respect.md @@ -6,7 +6,7 @@ Amount of respect lost from ascending -Signature: +**Signature:** ```typescript respect: number; diff --git a/markdown/bitburner.gangmemberascension.str.md b/markdown/bitburner.gangmemberascension.str.md index 647d4ca28..e882bd958 100644 --- a/markdown/bitburner.gangmemberascension.str.md +++ b/markdown/bitburner.gangmemberascension.str.md @@ -6,7 +6,7 @@ Strength multiplier gained from ascending -Signature: +**Signature:** ```typescript str: number; diff --git a/markdown/bitburner.gangmemberinfo.agi.md b/markdown/bitburner.gangmemberinfo.agi.md index 90deb5f11..94a09b2d5 100644 --- a/markdown/bitburner.gangmemberinfo.agi.md +++ b/markdown/bitburner.gangmemberinfo.agi.md @@ -6,7 +6,7 @@ Agility skill level -Signature: +**Signature:** ```typescript agi: number; diff --git a/markdown/bitburner.gangmemberinfo.agi_asc_mult.md b/markdown/bitburner.gangmemberinfo.agi_asc_mult.md index d3c2b2451..0ac098887 100644 --- a/markdown/bitburner.gangmemberinfo.agi_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.agi_asc_mult.md @@ -6,7 +6,7 @@ Agility multiplier from ascensions -Signature: +**Signature:** ```typescript agi_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.agi_asc_points.md b/markdown/bitburner.gangmemberinfo.agi_asc_points.md index d1c3d5d8b..bbfcde7b2 100644 --- a/markdown/bitburner.gangmemberinfo.agi_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.agi_asc_points.md @@ -6,7 +6,7 @@ Total earned agility experience -Signature: +**Signature:** ```typescript agi_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.agi_exp.md b/markdown/bitburner.gangmemberinfo.agi_exp.md index c5e9be1e0..d1927b3e0 100644 --- a/markdown/bitburner.gangmemberinfo.agi_exp.md +++ b/markdown/bitburner.gangmemberinfo.agi_exp.md @@ -6,7 +6,7 @@ Current agility experience -Signature: +**Signature:** ```typescript agi_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.agi_mult.md b/markdown/bitburner.gangmemberinfo.agi_mult.md index f44c859f0..3624bb855 100644 --- a/markdown/bitburner.gangmemberinfo.agi_mult.md +++ b/markdown/bitburner.gangmemberinfo.agi_mult.md @@ -6,7 +6,7 @@ Agility multiplier from equipment -Signature: +**Signature:** ```typescript agi_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.augmentations.md b/markdown/bitburner.gangmemberinfo.augmentations.md index 64ae3a6f3..a202d6112 100644 --- a/markdown/bitburner.gangmemberinfo.augmentations.md +++ b/markdown/bitburner.gangmemberinfo.augmentations.md @@ -4,7 +4,7 @@ ## GangMemberInfo.augmentations property -Signature: +**Signature:** ```typescript augmentations: string[]; diff --git a/markdown/bitburner.gangmemberinfo.cha.md b/markdown/bitburner.gangmemberinfo.cha.md index 1f1ef5676..7075627aa 100644 --- a/markdown/bitburner.gangmemberinfo.cha.md +++ b/markdown/bitburner.gangmemberinfo.cha.md @@ -6,7 +6,7 @@ Charisma skill level -Signature: +**Signature:** ```typescript cha: number; diff --git a/markdown/bitburner.gangmemberinfo.cha_asc_mult.md b/markdown/bitburner.gangmemberinfo.cha_asc_mult.md index fffb9ccbd..2db26514b 100644 --- a/markdown/bitburner.gangmemberinfo.cha_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.cha_asc_mult.md @@ -6,7 +6,7 @@ Charisma multiplier from ascensions -Signature: +**Signature:** ```typescript cha_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.cha_asc_points.md b/markdown/bitburner.gangmemberinfo.cha_asc_points.md index 79a736e04..92c7c94c4 100644 --- a/markdown/bitburner.gangmemberinfo.cha_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.cha_asc_points.md @@ -6,7 +6,7 @@ Total earned charisma experience -Signature: +**Signature:** ```typescript cha_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.cha_exp.md b/markdown/bitburner.gangmemberinfo.cha_exp.md index 77f6e0829..e49eb1902 100644 --- a/markdown/bitburner.gangmemberinfo.cha_exp.md +++ b/markdown/bitburner.gangmemberinfo.cha_exp.md @@ -6,7 +6,7 @@ Current charisma experience -Signature: +**Signature:** ```typescript cha_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.cha_mult.md b/markdown/bitburner.gangmemberinfo.cha_mult.md index fc68dffbc..0d03ed295 100644 --- a/markdown/bitburner.gangmemberinfo.cha_mult.md +++ b/markdown/bitburner.gangmemberinfo.cha_mult.md @@ -6,7 +6,7 @@ Charisma multiplier from equipment -Signature: +**Signature:** ```typescript cha_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.def.md b/markdown/bitburner.gangmemberinfo.def.md index e4b278562..40114348a 100644 --- a/markdown/bitburner.gangmemberinfo.def.md +++ b/markdown/bitburner.gangmemberinfo.def.md @@ -6,7 +6,7 @@ Defense skill level -Signature: +**Signature:** ```typescript def: number; diff --git a/markdown/bitburner.gangmemberinfo.def_asc_mult.md b/markdown/bitburner.gangmemberinfo.def_asc_mult.md index d21d98510..00b6e57de 100644 --- a/markdown/bitburner.gangmemberinfo.def_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.def_asc_mult.md @@ -6,7 +6,7 @@ Defense multiplier from ascensions -Signature: +**Signature:** ```typescript def_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.def_asc_points.md b/markdown/bitburner.gangmemberinfo.def_asc_points.md index bcd5d4fe2..5b6007823 100644 --- a/markdown/bitburner.gangmemberinfo.def_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.def_asc_points.md @@ -6,7 +6,7 @@ Total earned defense experience -Signature: +**Signature:** ```typescript def_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.def_exp.md b/markdown/bitburner.gangmemberinfo.def_exp.md index 5910078a4..2eb6d4d71 100644 --- a/markdown/bitburner.gangmemberinfo.def_exp.md +++ b/markdown/bitburner.gangmemberinfo.def_exp.md @@ -6,7 +6,7 @@ Current defense experience -Signature: +**Signature:** ```typescript def_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.def_mult.md b/markdown/bitburner.gangmemberinfo.def_mult.md index 82799b327..a628577cb 100644 --- a/markdown/bitburner.gangmemberinfo.def_mult.md +++ b/markdown/bitburner.gangmemberinfo.def_mult.md @@ -6,7 +6,7 @@ Defense multiplier from equipment -Signature: +**Signature:** ```typescript def_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.dex.md b/markdown/bitburner.gangmemberinfo.dex.md index e610fadab..9f7e9f3e8 100644 --- a/markdown/bitburner.gangmemberinfo.dex.md +++ b/markdown/bitburner.gangmemberinfo.dex.md @@ -6,7 +6,7 @@ Dexterity skill level -Signature: +**Signature:** ```typescript dex: number; diff --git a/markdown/bitburner.gangmemberinfo.dex_asc_mult.md b/markdown/bitburner.gangmemberinfo.dex_asc_mult.md index 79c2d80e6..c69e097f1 100644 --- a/markdown/bitburner.gangmemberinfo.dex_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.dex_asc_mult.md @@ -6,7 +6,7 @@ Dexterity multiplier from ascensions -Signature: +**Signature:** ```typescript dex_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.dex_asc_points.md b/markdown/bitburner.gangmemberinfo.dex_asc_points.md index d66448989..1a33578ac 100644 --- a/markdown/bitburner.gangmemberinfo.dex_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.dex_asc_points.md @@ -6,7 +6,7 @@ Total earned dexterity experience -Signature: +**Signature:** ```typescript dex_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.dex_exp.md b/markdown/bitburner.gangmemberinfo.dex_exp.md index ee7dafe70..a6b7697a5 100644 --- a/markdown/bitburner.gangmemberinfo.dex_exp.md +++ b/markdown/bitburner.gangmemberinfo.dex_exp.md @@ -6,7 +6,7 @@ Current dexterity experience -Signature: +**Signature:** ```typescript dex_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.dex_mult.md b/markdown/bitburner.gangmemberinfo.dex_mult.md index 4cdf259b0..cc6c22073 100644 --- a/markdown/bitburner.gangmemberinfo.dex_mult.md +++ b/markdown/bitburner.gangmemberinfo.dex_mult.md @@ -6,7 +6,7 @@ Dexterity multiplier from equipment -Signature: +**Signature:** ```typescript dex_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.earnedrespect.md b/markdown/bitburner.gangmemberinfo.earnedrespect.md index 561b98833..5dd4152a2 100644 --- a/markdown/bitburner.gangmemberinfo.earnedrespect.md +++ b/markdown/bitburner.gangmemberinfo.earnedrespect.md @@ -4,7 +4,7 @@ ## GangMemberInfo.earnedRespect property -Signature: +**Signature:** ```typescript earnedRespect: number; diff --git a/markdown/bitburner.gangmemberinfo.hack.md b/markdown/bitburner.gangmemberinfo.hack.md index 8e133a4dc..1c12d203a 100644 --- a/markdown/bitburner.gangmemberinfo.hack.md +++ b/markdown/bitburner.gangmemberinfo.hack.md @@ -6,7 +6,7 @@ Hack skill level -Signature: +**Signature:** ```typescript hack: number; diff --git a/markdown/bitburner.gangmemberinfo.hack_asc_mult.md b/markdown/bitburner.gangmemberinfo.hack_asc_mult.md index bc554e6bc..e8f14c9db 100644 --- a/markdown/bitburner.gangmemberinfo.hack_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.hack_asc_mult.md @@ -6,7 +6,7 @@ Hack multiplier from ascensions -Signature: +**Signature:** ```typescript hack_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.hack_asc_points.md b/markdown/bitburner.gangmemberinfo.hack_asc_points.md index 1c825d553..7e31485e6 100644 --- a/markdown/bitburner.gangmemberinfo.hack_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.hack_asc_points.md @@ -6,7 +6,7 @@ Total earned hack experience -Signature: +**Signature:** ```typescript hack_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.hack_exp.md b/markdown/bitburner.gangmemberinfo.hack_exp.md index b8ec2236b..7d41c398e 100644 --- a/markdown/bitburner.gangmemberinfo.hack_exp.md +++ b/markdown/bitburner.gangmemberinfo.hack_exp.md @@ -6,7 +6,7 @@ Current hack experience -Signature: +**Signature:** ```typescript hack_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.hack_mult.md b/markdown/bitburner.gangmemberinfo.hack_mult.md index f30e70624..d8e9c6753 100644 --- a/markdown/bitburner.gangmemberinfo.hack_mult.md +++ b/markdown/bitburner.gangmemberinfo.hack_mult.md @@ -6,7 +6,7 @@ Hack multiplier from equipment -Signature: +**Signature:** ```typescript hack_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.md b/markdown/bitburner.gangmemberinfo.md index 82f65eb01..4fdcf904f 100644 --- a/markdown/bitburner.gangmemberinfo.md +++ b/markdown/bitburner.gangmemberinfo.md @@ -5,7 +5,7 @@ ## GangMemberInfo interface -Signature: +**Signature:** ```typescript interface GangMemberInfo @@ -13,44 +13,44 @@ interface GangMemberInfo ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agi\_asc\_mult](./bitburner.gangmemberinfo.agi_asc_mult.md) | number | Agility multiplier from ascensions | -| [agi\_asc\_points](./bitburner.gangmemberinfo.agi_asc_points.md) | number | Total earned agility experience | -| [agi\_exp](./bitburner.gangmemberinfo.agi_exp.md) | number | Current agility experience | -| [agi\_mult](./bitburner.gangmemberinfo.agi_mult.md) | number | Agility multiplier from equipment | -| [agi](./bitburner.gangmemberinfo.agi.md) | number | Agility skill level | -| [augmentations](./bitburner.gangmemberinfo.augmentations.md) | string\[\] | | -| [cha\_asc\_mult](./bitburner.gangmemberinfo.cha_asc_mult.md) | number | Charisma multiplier from ascensions | -| [cha\_asc\_points](./bitburner.gangmemberinfo.cha_asc_points.md) | number | Total earned charisma experience | -| [cha\_exp](./bitburner.gangmemberinfo.cha_exp.md) | number | Current charisma experience | -| [cha\_mult](./bitburner.gangmemberinfo.cha_mult.md) | number | Charisma multiplier from equipment | -| [cha](./bitburner.gangmemberinfo.cha.md) | number | Charisma skill level | -| [def\_asc\_mult](./bitburner.gangmemberinfo.def_asc_mult.md) | number | Defense multiplier from ascensions | -| [def\_asc\_points](./bitburner.gangmemberinfo.def_asc_points.md) | number | Total earned defense experience | -| [def\_exp](./bitburner.gangmemberinfo.def_exp.md) | number | Current defense experience | -| [def\_mult](./bitburner.gangmemberinfo.def_mult.md) | number | Defense multiplier from equipment | -| [def](./bitburner.gangmemberinfo.def.md) | number | Defense skill level | -| [dex\_asc\_mult](./bitburner.gangmemberinfo.dex_asc_mult.md) | number | Dexterity multiplier from ascensions | -| [dex\_asc\_points](./bitburner.gangmemberinfo.dex_asc_points.md) | number | Total earned dexterity experience | -| [dex\_exp](./bitburner.gangmemberinfo.dex_exp.md) | number | Current dexterity experience | -| [dex\_mult](./bitburner.gangmemberinfo.dex_mult.md) | number | Dexterity multiplier from equipment | -| [dex](./bitburner.gangmemberinfo.dex.md) | number | Dexterity skill level | -| [earnedRespect](./bitburner.gangmemberinfo.earnedrespect.md) | number | | -| [hack\_asc\_mult](./bitburner.gangmemberinfo.hack_asc_mult.md) | number | Hack multiplier from ascensions | -| [hack\_asc\_points](./bitburner.gangmemberinfo.hack_asc_points.md) | number | Total earned hack experience | -| [hack\_exp](./bitburner.gangmemberinfo.hack_exp.md) | number | Current hack experience | -| [hack\_mult](./bitburner.gangmemberinfo.hack_mult.md) | number | Hack multiplier from equipment | -| [hack](./bitburner.gangmemberinfo.hack.md) | number | Hack skill level | -| [moneyGain](./bitburner.gangmemberinfo.moneygain.md) | number | | -| [name](./bitburner.gangmemberinfo.name.md) | string | Name of the gang member | -| [respectGain](./bitburner.gangmemberinfo.respectgain.md) | number | | -| [str\_asc\_mult](./bitburner.gangmemberinfo.str_asc_mult.md) | number | Strength multiplier from ascensions | -| [str\_asc\_points](./bitburner.gangmemberinfo.str_asc_points.md) | number | Total earned strength experience | -| [str\_exp](./bitburner.gangmemberinfo.str_exp.md) | number | Current strength experience | -| [str\_mult](./bitburner.gangmemberinfo.str_mult.md) | number | Strength multiplier from equipment | -| [str](./bitburner.gangmemberinfo.str.md) | number | Strength skill level | -| [task](./bitburner.gangmemberinfo.task.md) | string | Currently assigned task | -| [upgrades](./bitburner.gangmemberinfo.upgrades.md) | string\[\] | | -| [wantedLevelGain](./bitburner.gangmemberinfo.wantedlevelgain.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agi\_asc\_mult](./bitburner.gangmemberinfo.agi_asc_mult.md) | | number | Agility multiplier from ascensions | +| [agi\_asc\_points](./bitburner.gangmemberinfo.agi_asc_points.md) | | number | Total earned agility experience | +| [agi\_exp](./bitburner.gangmemberinfo.agi_exp.md) | | number | Current agility experience | +| [agi\_mult](./bitburner.gangmemberinfo.agi_mult.md) | | number | Agility multiplier from equipment | +| [agi](./bitburner.gangmemberinfo.agi.md) | | number | Agility skill level | +| [augmentations](./bitburner.gangmemberinfo.augmentations.md) | | string\[\] | | +| [cha\_asc\_mult](./bitburner.gangmemberinfo.cha_asc_mult.md) | | number | Charisma multiplier from ascensions | +| [cha\_asc\_points](./bitburner.gangmemberinfo.cha_asc_points.md) | | number | Total earned charisma experience | +| [cha\_exp](./bitburner.gangmemberinfo.cha_exp.md) | | number | Current charisma experience | +| [cha\_mult](./bitburner.gangmemberinfo.cha_mult.md) | | number | Charisma multiplier from equipment | +| [cha](./bitburner.gangmemberinfo.cha.md) | | number | Charisma skill level | +| [def\_asc\_mult](./bitburner.gangmemberinfo.def_asc_mult.md) | | number | Defense multiplier from ascensions | +| [def\_asc\_points](./bitburner.gangmemberinfo.def_asc_points.md) | | number | Total earned defense experience | +| [def\_exp](./bitburner.gangmemberinfo.def_exp.md) | | number | Current defense experience | +| [def\_mult](./bitburner.gangmemberinfo.def_mult.md) | | number | Defense multiplier from equipment | +| [def](./bitburner.gangmemberinfo.def.md) | | number | Defense skill level | +| [dex\_asc\_mult](./bitburner.gangmemberinfo.dex_asc_mult.md) | | number | Dexterity multiplier from ascensions | +| [dex\_asc\_points](./bitburner.gangmemberinfo.dex_asc_points.md) | | number | Total earned dexterity experience | +| [dex\_exp](./bitburner.gangmemberinfo.dex_exp.md) | | number | Current dexterity experience | +| [dex\_mult](./bitburner.gangmemberinfo.dex_mult.md) | | number | Dexterity multiplier from equipment | +| [dex](./bitburner.gangmemberinfo.dex.md) | | number | Dexterity skill level | +| [earnedRespect](./bitburner.gangmemberinfo.earnedrespect.md) | | number | | +| [hack\_asc\_mult](./bitburner.gangmemberinfo.hack_asc_mult.md) | | number | Hack multiplier from ascensions | +| [hack\_asc\_points](./bitburner.gangmemberinfo.hack_asc_points.md) | | number | Total earned hack experience | +| [hack\_exp](./bitburner.gangmemberinfo.hack_exp.md) | | number | Current hack experience | +| [hack\_mult](./bitburner.gangmemberinfo.hack_mult.md) | | number | Hack multiplier from equipment | +| [hack](./bitburner.gangmemberinfo.hack.md) | | number | Hack skill level | +| [moneyGain](./bitburner.gangmemberinfo.moneygain.md) | | number | | +| [name](./bitburner.gangmemberinfo.name.md) | | string | Name of the gang member | +| [respectGain](./bitburner.gangmemberinfo.respectgain.md) | | number | | +| [str\_asc\_mult](./bitburner.gangmemberinfo.str_asc_mult.md) | | number | Strength multiplier from ascensions | +| [str\_asc\_points](./bitburner.gangmemberinfo.str_asc_points.md) | | number | Total earned strength experience | +| [str\_exp](./bitburner.gangmemberinfo.str_exp.md) | | number | Current strength experience | +| [str\_mult](./bitburner.gangmemberinfo.str_mult.md) | | number | Strength multiplier from equipment | +| [str](./bitburner.gangmemberinfo.str.md) | | number | Strength skill level | +| [task](./bitburner.gangmemberinfo.task.md) | | string | Currently assigned task | +| [upgrades](./bitburner.gangmemberinfo.upgrades.md) | | string\[\] | | +| [wantedLevelGain](./bitburner.gangmemberinfo.wantedlevelgain.md) | | number | | diff --git a/markdown/bitburner.gangmemberinfo.moneygain.md b/markdown/bitburner.gangmemberinfo.moneygain.md index 98b42f676..1d33994e0 100644 --- a/markdown/bitburner.gangmemberinfo.moneygain.md +++ b/markdown/bitburner.gangmemberinfo.moneygain.md @@ -4,7 +4,7 @@ ## GangMemberInfo.moneyGain property -Signature: +**Signature:** ```typescript moneyGain: number; diff --git a/markdown/bitburner.gangmemberinfo.name.md b/markdown/bitburner.gangmemberinfo.name.md index f98233e8a..23610df46 100644 --- a/markdown/bitburner.gangmemberinfo.name.md +++ b/markdown/bitburner.gangmemberinfo.name.md @@ -6,7 +6,7 @@ Name of the gang member -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.gangmemberinfo.respectgain.md b/markdown/bitburner.gangmemberinfo.respectgain.md index 55654de17..0c778bbee 100644 --- a/markdown/bitburner.gangmemberinfo.respectgain.md +++ b/markdown/bitburner.gangmemberinfo.respectgain.md @@ -4,7 +4,7 @@ ## GangMemberInfo.respectGain property -Signature: +**Signature:** ```typescript respectGain: number; diff --git a/markdown/bitburner.gangmemberinfo.str.md b/markdown/bitburner.gangmemberinfo.str.md index ad8745274..bed661079 100644 --- a/markdown/bitburner.gangmemberinfo.str.md +++ b/markdown/bitburner.gangmemberinfo.str.md @@ -6,7 +6,7 @@ Strength skill level -Signature: +**Signature:** ```typescript str: number; diff --git a/markdown/bitburner.gangmemberinfo.str_asc_mult.md b/markdown/bitburner.gangmemberinfo.str_asc_mult.md index b0f512cac..329d98a28 100644 --- a/markdown/bitburner.gangmemberinfo.str_asc_mult.md +++ b/markdown/bitburner.gangmemberinfo.str_asc_mult.md @@ -6,7 +6,7 @@ Strength multiplier from ascensions -Signature: +**Signature:** ```typescript str_asc_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.str_asc_points.md b/markdown/bitburner.gangmemberinfo.str_asc_points.md index 9255896bf..935032e7d 100644 --- a/markdown/bitburner.gangmemberinfo.str_asc_points.md +++ b/markdown/bitburner.gangmemberinfo.str_asc_points.md @@ -6,7 +6,7 @@ Total earned strength experience -Signature: +**Signature:** ```typescript str_asc_points: number; diff --git a/markdown/bitburner.gangmemberinfo.str_exp.md b/markdown/bitburner.gangmemberinfo.str_exp.md index 5d2480a94..0427dcab4 100644 --- a/markdown/bitburner.gangmemberinfo.str_exp.md +++ b/markdown/bitburner.gangmemberinfo.str_exp.md @@ -6,7 +6,7 @@ Current strength experience -Signature: +**Signature:** ```typescript str_exp: number; diff --git a/markdown/bitburner.gangmemberinfo.str_mult.md b/markdown/bitburner.gangmemberinfo.str_mult.md index dffeb8b13..5f54500e8 100644 --- a/markdown/bitburner.gangmemberinfo.str_mult.md +++ b/markdown/bitburner.gangmemberinfo.str_mult.md @@ -6,7 +6,7 @@ Strength multiplier from equipment -Signature: +**Signature:** ```typescript str_mult: number; diff --git a/markdown/bitburner.gangmemberinfo.task.md b/markdown/bitburner.gangmemberinfo.task.md index ff967194a..a929e493c 100644 --- a/markdown/bitburner.gangmemberinfo.task.md +++ b/markdown/bitburner.gangmemberinfo.task.md @@ -6,7 +6,7 @@ Currently assigned task -Signature: +**Signature:** ```typescript task: string; diff --git a/markdown/bitburner.gangmemberinfo.upgrades.md b/markdown/bitburner.gangmemberinfo.upgrades.md index c0296de6d..2b606d48b 100644 --- a/markdown/bitburner.gangmemberinfo.upgrades.md +++ b/markdown/bitburner.gangmemberinfo.upgrades.md @@ -4,7 +4,7 @@ ## GangMemberInfo.upgrades property -Signature: +**Signature:** ```typescript upgrades: string[]; diff --git a/markdown/bitburner.gangmemberinfo.wantedlevelgain.md b/markdown/bitburner.gangmemberinfo.wantedlevelgain.md index d259fa0dd..a52d4b5a7 100644 --- a/markdown/bitburner.gangmemberinfo.wantedlevelgain.md +++ b/markdown/bitburner.gangmemberinfo.wantedlevelgain.md @@ -4,7 +4,7 @@ ## GangMemberInfo.wantedLevelGain property -Signature: +**Signature:** ```typescript wantedLevelGain: number; diff --git a/markdown/bitburner.gangotherinfo.md b/markdown/bitburner.gangotherinfo.md index 9279a709c..7609298e1 100644 --- a/markdown/bitburner.gangotherinfo.md +++ b/markdown/bitburner.gangotherinfo.md @@ -5,7 +5,7 @@ ## GangOtherInfo interface -Signature: +**Signature:** ```typescript interface GangOtherInfo diff --git a/markdown/bitburner.gangotherinfoobject.md b/markdown/bitburner.gangotherinfoobject.md index 32c870ca1..9191e75a1 100644 --- a/markdown/bitburner.gangotherinfoobject.md +++ b/markdown/bitburner.gangotherinfoobject.md @@ -5,7 +5,7 @@ ## GangOtherInfoObject interface -Signature: +**Signature:** ```typescript interface GangOtherInfoObject @@ -13,8 +13,8 @@ interface GangOtherInfoObject ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [power](./bitburner.gangotherinfoobject.power.md) | number | Gang power | -| [territory](./bitburner.gangotherinfoobject.territory.md) | number | Gang territory, in decimal form | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [power](./bitburner.gangotherinfoobject.power.md) | | number | Gang power | +| [territory](./bitburner.gangotherinfoobject.territory.md) | | number | Gang territory, in decimal form | diff --git a/markdown/bitburner.gangotherinfoobject.power.md b/markdown/bitburner.gangotherinfoobject.power.md index 58986c561..22b9fbc7a 100644 --- a/markdown/bitburner.gangotherinfoobject.power.md +++ b/markdown/bitburner.gangotherinfoobject.power.md @@ -6,7 +6,7 @@ Gang power -Signature: +**Signature:** ```typescript power: number; diff --git a/markdown/bitburner.gangotherinfoobject.territory.md b/markdown/bitburner.gangotherinfoobject.territory.md index 9314c4fc4..38a74f7f4 100644 --- a/markdown/bitburner.gangotherinfoobject.territory.md +++ b/markdown/bitburner.gangotherinfoobject.territory.md @@ -6,7 +6,7 @@ Gang territory, in decimal form -Signature: +**Signature:** ```typescript territory: number; diff --git a/markdown/bitburner.gangtaskstats.agiweight.md b/markdown/bitburner.gangtaskstats.agiweight.md index 422d3db6c..35afc11f6 100644 --- a/markdown/bitburner.gangtaskstats.agiweight.md +++ b/markdown/bitburner.gangtaskstats.agiweight.md @@ -6,7 +6,7 @@ Agility skill impact on task scaling -Signature: +**Signature:** ```typescript agiWeight: number; diff --git a/markdown/bitburner.gangtaskstats.basemoney.md b/markdown/bitburner.gangtaskstats.basemoney.md index 95e86a01a..be60d3ee3 100644 --- a/markdown/bitburner.gangtaskstats.basemoney.md +++ b/markdown/bitburner.gangtaskstats.basemoney.md @@ -6,7 +6,7 @@ Base money earned -Signature: +**Signature:** ```typescript baseMoney: number; diff --git a/markdown/bitburner.gangtaskstats.baserespect.md b/markdown/bitburner.gangtaskstats.baserespect.md index 4eebb322f..2620e4452 100644 --- a/markdown/bitburner.gangtaskstats.baserespect.md +++ b/markdown/bitburner.gangtaskstats.baserespect.md @@ -6,7 +6,7 @@ Base respect earned -Signature: +**Signature:** ```typescript baseRespect: number; diff --git a/markdown/bitburner.gangtaskstats.basewanted.md b/markdown/bitburner.gangtaskstats.basewanted.md index 789a2baf8..1af257b85 100644 --- a/markdown/bitburner.gangtaskstats.basewanted.md +++ b/markdown/bitburner.gangtaskstats.basewanted.md @@ -6,7 +6,7 @@ Base wanted earned -Signature: +**Signature:** ```typescript baseWanted: number; diff --git a/markdown/bitburner.gangtaskstats.chaweight.md b/markdown/bitburner.gangtaskstats.chaweight.md index 760e96a50..9ffcd8981 100644 --- a/markdown/bitburner.gangtaskstats.chaweight.md +++ b/markdown/bitburner.gangtaskstats.chaweight.md @@ -6,7 +6,7 @@ Charisma skill impact on task scaling -Signature: +**Signature:** ```typescript chaWeight: number; diff --git a/markdown/bitburner.gangtaskstats.defweight.md b/markdown/bitburner.gangtaskstats.defweight.md index ed2399bba..b99c27151 100644 --- a/markdown/bitburner.gangtaskstats.defweight.md +++ b/markdown/bitburner.gangtaskstats.defweight.md @@ -6,7 +6,7 @@ Defense skill impact on task scaling -Signature: +**Signature:** ```typescript defWeight: number; diff --git a/markdown/bitburner.gangtaskstats.desc.md b/markdown/bitburner.gangtaskstats.desc.md index 972036267..61a22daba 100644 --- a/markdown/bitburner.gangtaskstats.desc.md +++ b/markdown/bitburner.gangtaskstats.desc.md @@ -6,7 +6,7 @@ Task Description -Signature: +**Signature:** ```typescript desc: string; diff --git a/markdown/bitburner.gangtaskstats.dexweight.md b/markdown/bitburner.gangtaskstats.dexweight.md index 95eb529dd..ce1af2b21 100644 --- a/markdown/bitburner.gangtaskstats.dexweight.md +++ b/markdown/bitburner.gangtaskstats.dexweight.md @@ -6,7 +6,7 @@ Dexterity skill impact on task scaling -Signature: +**Signature:** ```typescript dexWeight: number; diff --git a/markdown/bitburner.gangtaskstats.difficulty.md b/markdown/bitburner.gangtaskstats.difficulty.md index ae6f83cca..5a7fd0ba8 100644 --- a/markdown/bitburner.gangtaskstats.difficulty.md +++ b/markdown/bitburner.gangtaskstats.difficulty.md @@ -6,7 +6,7 @@ Number representing the difficulty of the task -Signature: +**Signature:** ```typescript difficulty: number; diff --git a/markdown/bitburner.gangtaskstats.hackweight.md b/markdown/bitburner.gangtaskstats.hackweight.md index 2c1e81c26..999a42360 100644 --- a/markdown/bitburner.gangtaskstats.hackweight.md +++ b/markdown/bitburner.gangtaskstats.hackweight.md @@ -6,7 +6,7 @@ Hacking skill impact on task scaling -Signature: +**Signature:** ```typescript hackWeight: number; diff --git a/markdown/bitburner.gangtaskstats.iscombat.md b/markdown/bitburner.gangtaskstats.iscombat.md index b32351902..dc4654f68 100644 --- a/markdown/bitburner.gangtaskstats.iscombat.md +++ b/markdown/bitburner.gangtaskstats.iscombat.md @@ -6,7 +6,7 @@ Is a task of a combat gang -Signature: +**Signature:** ```typescript isCombat: boolean; diff --git a/markdown/bitburner.gangtaskstats.ishacking.md b/markdown/bitburner.gangtaskstats.ishacking.md index dcc183b74..edaf803e6 100644 --- a/markdown/bitburner.gangtaskstats.ishacking.md +++ b/markdown/bitburner.gangtaskstats.ishacking.md @@ -6,7 +6,7 @@ Is a task of a hacking gang -Signature: +**Signature:** ```typescript isHacking: boolean; diff --git a/markdown/bitburner.gangtaskstats.md b/markdown/bitburner.gangtaskstats.md index b1ce25db7..505443931 100644 --- a/markdown/bitburner.gangtaskstats.md +++ b/markdown/bitburner.gangtaskstats.md @@ -6,7 +6,7 @@ Object representing data representing a gang member task. -Signature: +**Signature:** ```typescript interface GangTaskStats @@ -14,21 +14,21 @@ interface GangTaskStats ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agiWeight](./bitburner.gangtaskstats.agiweight.md) | number | Agility skill impact on task scaling | -| [baseMoney](./bitburner.gangtaskstats.basemoney.md) | number | Base money earned | -| [baseRespect](./bitburner.gangtaskstats.baserespect.md) | number | Base respect earned | -| [baseWanted](./bitburner.gangtaskstats.basewanted.md) | number | Base wanted earned | -| [chaWeight](./bitburner.gangtaskstats.chaweight.md) | number | Charisma skill impact on task scaling | -| [defWeight](./bitburner.gangtaskstats.defweight.md) | number | Defense skill impact on task scaling | -| [desc](./bitburner.gangtaskstats.desc.md) | string | Task Description | -| [dexWeight](./bitburner.gangtaskstats.dexweight.md) | number | Dexterity skill impact on task scaling | -| [difficulty](./bitburner.gangtaskstats.difficulty.md) | number | Number representing the difficulty of the task | -| [hackWeight](./bitburner.gangtaskstats.hackweight.md) | number | Hacking skill impact on task scaling | -| [isCombat](./bitburner.gangtaskstats.iscombat.md) | boolean | Is a task of a combat gang | -| [isHacking](./bitburner.gangtaskstats.ishacking.md) | boolean | Is a task of a hacking gang | -| [name](./bitburner.gangtaskstats.name.md) | string | Task name | -| [strWeight](./bitburner.gangtaskstats.strweight.md) | number | Strength skill impact on task scaling | -| [territory](./bitburner.gangtaskstats.territory.md) | [GangTerritory](./bitburner.gangterritory.md) | Territory impact on task scaling | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agiWeight](./bitburner.gangtaskstats.agiweight.md) | | number | Agility skill impact on task scaling | +| [baseMoney](./bitburner.gangtaskstats.basemoney.md) | | number | Base money earned | +| [baseRespect](./bitburner.gangtaskstats.baserespect.md) | | number | Base respect earned | +| [baseWanted](./bitburner.gangtaskstats.basewanted.md) | | number | Base wanted earned | +| [chaWeight](./bitburner.gangtaskstats.chaweight.md) | | number | Charisma skill impact on task scaling | +| [defWeight](./bitburner.gangtaskstats.defweight.md) | | number | Defense skill impact on task scaling | +| [desc](./bitburner.gangtaskstats.desc.md) | | string | Task Description | +| [dexWeight](./bitburner.gangtaskstats.dexweight.md) | | number | Dexterity skill impact on task scaling | +| [difficulty](./bitburner.gangtaskstats.difficulty.md) | | number | Number representing the difficulty of the task | +| [hackWeight](./bitburner.gangtaskstats.hackweight.md) | | number | Hacking skill impact on task scaling | +| [isCombat](./bitburner.gangtaskstats.iscombat.md) | | boolean | Is a task of a combat gang | +| [isHacking](./bitburner.gangtaskstats.ishacking.md) | | boolean | Is a task of a hacking gang | +| [name](./bitburner.gangtaskstats.name.md) | | string | Task name | +| [strWeight](./bitburner.gangtaskstats.strweight.md) | | number | Strength skill impact on task scaling | +| [territory](./bitburner.gangtaskstats.territory.md) | | [GangTerritory](./bitburner.gangterritory.md) | Territory impact on task scaling | diff --git a/markdown/bitburner.gangtaskstats.name.md b/markdown/bitburner.gangtaskstats.name.md index 51cfbd6a5..1b76dcffe 100644 --- a/markdown/bitburner.gangtaskstats.name.md +++ b/markdown/bitburner.gangtaskstats.name.md @@ -6,7 +6,7 @@ Task name -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.gangtaskstats.strweight.md b/markdown/bitburner.gangtaskstats.strweight.md index 5c3b92f7f..5e943a6aa 100644 --- a/markdown/bitburner.gangtaskstats.strweight.md +++ b/markdown/bitburner.gangtaskstats.strweight.md @@ -6,7 +6,7 @@ Strength skill impact on task scaling -Signature: +**Signature:** ```typescript strWeight: number; diff --git a/markdown/bitburner.gangtaskstats.territory.md b/markdown/bitburner.gangtaskstats.territory.md index 65737c79f..f75ea7e1e 100644 --- a/markdown/bitburner.gangtaskstats.territory.md +++ b/markdown/bitburner.gangtaskstats.territory.md @@ -6,7 +6,7 @@ Territory impact on task scaling -Signature: +**Signature:** ```typescript territory: GangTerritory; diff --git a/markdown/bitburner.gangterritory.md b/markdown/bitburner.gangterritory.md index bacbdc449..1ef82b948 100644 --- a/markdown/bitburner.gangterritory.md +++ b/markdown/bitburner.gangterritory.md @@ -5,7 +5,7 @@ ## GangTerritory interface -Signature: +**Signature:** ```typescript interface GangTerritory @@ -13,9 +13,9 @@ interface GangTerritory ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [money](./bitburner.gangterritory.money.md) | number | Money gain impact on task scaling | -| [respect](./bitburner.gangterritory.respect.md) | number | Respect gain impact on task scaling | -| [wanted](./bitburner.gangterritory.wanted.md) | number | Wanted gain impact on task scaling | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [money](./bitburner.gangterritory.money.md) | | number | Money gain impact on task scaling | +| [respect](./bitburner.gangterritory.respect.md) | | number | Respect gain impact on task scaling | +| [wanted](./bitburner.gangterritory.wanted.md) | | number | Wanted gain impact on task scaling | diff --git a/markdown/bitburner.gangterritory.money.md b/markdown/bitburner.gangterritory.money.md index 9648f795f..faa389b54 100644 --- a/markdown/bitburner.gangterritory.money.md +++ b/markdown/bitburner.gangterritory.money.md @@ -6,7 +6,7 @@ Money gain impact on task scaling -Signature: +**Signature:** ```typescript money: number; diff --git a/markdown/bitburner.gangterritory.respect.md b/markdown/bitburner.gangterritory.respect.md index ebbe5fac6..84fb719cf 100644 --- a/markdown/bitburner.gangterritory.respect.md +++ b/markdown/bitburner.gangterritory.respect.md @@ -6,7 +6,7 @@ Respect gain impact on task scaling -Signature: +**Signature:** ```typescript respect: number; diff --git a/markdown/bitburner.gangterritory.wanted.md b/markdown/bitburner.gangterritory.wanted.md index 5e6c4f12e..5c5dc7cb5 100644 --- a/markdown/bitburner.gangterritory.wanted.md +++ b/markdown/bitburner.gangterritory.wanted.md @@ -6,7 +6,7 @@ Wanted gain impact on task scaling -Signature: +**Signature:** ```typescript wanted: number; diff --git a/markdown/bitburner.grafting.getaugmentationgraftprice.md b/markdown/bitburner.grafting.getaugmentationgraftprice.md index 1766e60d7..237a29a2b 100644 --- a/markdown/bitburner.grafting.getaugmentationgraftprice.md +++ b/markdown/bitburner.grafting.getaugmentationgraftprice.md @@ -6,7 +6,7 @@ Retrieve the grafting cost of an aug. -Signature: +**Signature:** ```typescript getAugmentationGraftPrice(augName: string): number; @@ -18,7 +18,7 @@ getAugmentationGraftPrice(augName: string): number; | --- | --- | --- | | augName | string | Name of the aug to check the price of. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.grafting.getaugmentationgrafttime.md b/markdown/bitburner.grafting.getaugmentationgrafttime.md index 2e4488d92..12f39dcb7 100644 --- a/markdown/bitburner.grafting.getaugmentationgrafttime.md +++ b/markdown/bitburner.grafting.getaugmentationgrafttime.md @@ -6,7 +6,7 @@ Retrieves the time required to graft an aug. -Signature: +**Signature:** ```typescript getAugmentationGraftTime(augName: string): number; @@ -18,7 +18,7 @@ getAugmentationGraftTime(augName: string): number; | --- | --- | --- | | augName | string | Name of the aug to check the grafting time of. Must be an exact match. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.grafting.getgraftableaugmentations.md b/markdown/bitburner.grafting.getgraftableaugmentations.md index 6bb0af8d9..b11713f13 100644 --- a/markdown/bitburner.grafting.getgraftableaugmentations.md +++ b/markdown/bitburner.grafting.getgraftableaugmentations.md @@ -6,12 +6,12 @@ Retrieves a list of Augmentations that can be grafted. -Signature: +**Signature:** ```typescript getGraftableAugmentations(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.grafting.graftaugmentation.md b/markdown/bitburner.grafting.graftaugmentation.md index 8d44d0185..2e203ae59 100644 --- a/markdown/bitburner.grafting.graftaugmentation.md +++ b/markdown/bitburner.grafting.graftaugmentation.md @@ -6,7 +6,7 @@ Begins grafting the named aug. You must be in New Tokyo to use this. -Signature: +**Signature:** ```typescript graftAugmentation(augName: string, focus?: boolean): boolean; @@ -17,9 +17,9 @@ graftAugmentation(augName: string, focus?: boolean): boolean; | Parameter | Type | Description | | --- | --- | --- | | augName | string | The name of the aug to begin grafting. Must be an exact match. | -| focus | boolean | Acquire player focus on this Augmentation grafting. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this Augmentation grafting. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.grafting.md b/markdown/bitburner.grafting.md index ddb90014c..af939323c 100644 --- a/markdown/bitburner.grafting.md +++ b/markdown/bitburner.grafting.md @@ -6,7 +6,7 @@ Grafting API -Signature: +**Signature:** ```typescript export interface Grafting diff --git a/markdown/bitburner.gymtype.md b/markdown/bitburner.gymtype.md index b340bbfa6..9ae1e45bf 100644 --- a/markdown/bitburner.gymtype.md +++ b/markdown/bitburner.gymtype.md @@ -5,7 +5,7 @@ ## GymType enum -Signature: +**Signature:** ```typescript declare enum GymType diff --git a/markdown/bitburner.hackingformulas.growpercent.md b/markdown/bitburner.hackingformulas.growpercent.md index 0f6cb7d7b..b25e3279e 100644 --- a/markdown/bitburner.hackingformulas.growpercent.md +++ b/markdown/bitburner.hackingformulas.growpercent.md @@ -6,7 +6,7 @@ Calculate the percent a server would grow to. Not exact due to limitations of mathematics. (Ex: 3.0 would would grow the server to 300% of its current value.) -Signature: +**Signature:** ```typescript growPercent(server: Server, threads: number, player: Person, cores?: number): number; @@ -19,9 +19,9 @@ growPercent(server: Server, threads: number, player: Person, cores?: number): nu | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | threads | number | Amount of thread. | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -| cores | number | Number of cores on the computer that will execute grow. | +| cores | number | _(Optional)_ Number of cores on the computer that will execute grow. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.growtime.md b/markdown/bitburner.hackingformulas.growtime.md index 20a393163..317dbc123 100644 --- a/markdown/bitburner.hackingformulas.growtime.md +++ b/markdown/bitburner.hackingformulas.growtime.md @@ -6,7 +6,7 @@ Calculate grow time. -Signature: +**Signature:** ```typescript growTime(server: Server, player: Person): number; @@ -19,7 +19,7 @@ growTime(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.hackchance.md b/markdown/bitburner.hackingformulas.hackchance.md index 3bae67598..0ef6007ad 100644 --- a/markdown/bitburner.hackingformulas.hackchance.md +++ b/markdown/bitburner.hackingformulas.hackchance.md @@ -6,7 +6,7 @@ Calculate hack chance. (Ex: 0.25 would indicate a 25% chance of success.) -Signature: +**Signature:** ```typescript hackChance(server: Server, player: Person): number; @@ -19,7 +19,7 @@ hackChance(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.hackexp.md b/markdown/bitburner.hackingformulas.hackexp.md index 998b7b600..27af1cc07 100644 --- a/markdown/bitburner.hackingformulas.hackexp.md +++ b/markdown/bitburner.hackingformulas.hackexp.md @@ -6,7 +6,7 @@ Calculate hack exp for one thread. -Signature: +**Signature:** ```typescript hackExp(server: Server, player: Person): number; @@ -19,7 +19,7 @@ hackExp(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.hackpercent.md b/markdown/bitburner.hackingformulas.hackpercent.md index 4c5f65e37..9f4f11dae 100644 --- a/markdown/bitburner.hackingformulas.hackpercent.md +++ b/markdown/bitburner.hackingformulas.hackpercent.md @@ -6,7 +6,7 @@ Calculate hack percent for one thread. (Ex: 0.25 would steal 25% of the server's current value.) -Signature: +**Signature:** ```typescript hackPercent(server: Server, player: Person): number; @@ -19,7 +19,7 @@ hackPercent(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.hacktime.md b/markdown/bitburner.hackingformulas.hacktime.md index 7e6886437..a9c27b3ec 100644 --- a/markdown/bitburner.hackingformulas.hacktime.md +++ b/markdown/bitburner.hackingformulas.hacktime.md @@ -6,7 +6,7 @@ Calculate hack time. -Signature: +**Signature:** ```typescript hackTime(server: Server, player: Person): number; @@ -19,7 +19,7 @@ hackTime(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingformulas.md b/markdown/bitburner.hackingformulas.md index 638b2da80..4bcf892de 100644 --- a/markdown/bitburner.hackingformulas.md +++ b/markdown/bitburner.hackingformulas.md @@ -6,7 +6,7 @@ Hacking formulas -Signature: +**Signature:** ```typescript interface HackingFormulas diff --git a/markdown/bitburner.hackingformulas.weakentime.md b/markdown/bitburner.hackingformulas.weakentime.md index a166a3cd2..dfc0656d7 100644 --- a/markdown/bitburner.hackingformulas.weakentime.md +++ b/markdown/bitburner.hackingformulas.weakentime.md @@ -6,7 +6,7 @@ Calculate weaken time. -Signature: +**Signature:** ```typescript weakenTime(server: Server, player: Person): number; @@ -19,7 +19,7 @@ weakenTime(server: Server, player: Person): number; | server | [Server](./bitburner.server.md) | Server info from [getServer](./bitburner.ns.getserver.md) | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hackingmultipliers.chance.md b/markdown/bitburner.hackingmultipliers.chance.md index 9f7b5c2b5..3259d9ffc 100644 --- a/markdown/bitburner.hackingmultipliers.chance.md +++ b/markdown/bitburner.hackingmultipliers.chance.md @@ -6,7 +6,7 @@ Player's hacking chance multiplier. -Signature: +**Signature:** ```typescript chance: number; diff --git a/markdown/bitburner.hackingmultipliers.growth.md b/markdown/bitburner.hackingmultipliers.growth.md index 43ad29e2d..c3798e32e 100644 --- a/markdown/bitburner.hackingmultipliers.growth.md +++ b/markdown/bitburner.hackingmultipliers.growth.md @@ -6,7 +6,7 @@ Player's hacking growth multiplier -Signature: +**Signature:** ```typescript growth: number; diff --git a/markdown/bitburner.hackingmultipliers.md b/markdown/bitburner.hackingmultipliers.md index f9a9fec2d..52041b712 100644 --- a/markdown/bitburner.hackingmultipliers.md +++ b/markdown/bitburner.hackingmultipliers.md @@ -6,7 +6,7 @@ Hack related multipliers. -Signature: +**Signature:** ```typescript interface HackingMultipliers @@ -14,10 +14,10 @@ interface HackingMultipliers ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [chance](./bitburner.hackingmultipliers.chance.md) | number | Player's hacking chance multiplier. | -| [growth](./bitburner.hackingmultipliers.growth.md) | number | Player's hacking growth multiplier | -| [money](./bitburner.hackingmultipliers.money.md) | number | Player's hacking money stolen multiplier. | -| [speed](./bitburner.hackingmultipliers.speed.md) | number | Player's hacking speed multiplier. | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [chance](./bitburner.hackingmultipliers.chance.md) | | number | Player's hacking chance multiplier. | +| [growth](./bitburner.hackingmultipliers.growth.md) | | number | Player's hacking growth multiplier | +| [money](./bitburner.hackingmultipliers.money.md) | | number | Player's hacking money stolen multiplier. | +| [speed](./bitburner.hackingmultipliers.speed.md) | | number | Player's hacking speed multiplier. | diff --git a/markdown/bitburner.hackingmultipliers.money.md b/markdown/bitburner.hackingmultipliers.money.md index e578aaa14..99811e151 100644 --- a/markdown/bitburner.hackingmultipliers.money.md +++ b/markdown/bitburner.hackingmultipliers.money.md @@ -6,7 +6,7 @@ Player's hacking money stolen multiplier. -Signature: +**Signature:** ```typescript money: number; diff --git a/markdown/bitburner.hackingmultipliers.speed.md b/markdown/bitburner.hackingmultipliers.speed.md index 646bec789..f59625335 100644 --- a/markdown/bitburner.hackingmultipliers.speed.md +++ b/markdown/bitburner.hackingmultipliers.speed.md @@ -6,7 +6,7 @@ Player's hacking speed multiplier. -Signature: +**Signature:** ```typescript speed: number; diff --git a/markdown/bitburner.hacknet.getcacheupgradecost.md b/markdown/bitburner.hacknet.getcacheupgradecost.md index 6a9d5055c..101ad8e53 100644 --- a/markdown/bitburner.hacknet.getcacheupgradecost.md +++ b/markdown/bitburner.hacknet.getcacheupgradecost.md @@ -6,7 +6,7 @@ Calculate the cost of upgrading hacknet node cache. -Signature: +**Signature:** ```typescript getCacheUpgradeCost(index: number, n: number): number; @@ -19,7 +19,7 @@ getCacheUpgradeCost(index: number, n: number): number; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of times to upgrade cache. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.getcoreupgradecost.md b/markdown/bitburner.hacknet.getcoreupgradecost.md index 47447d33c..6f34adad5 100644 --- a/markdown/bitburner.hacknet.getcoreupgradecost.md +++ b/markdown/bitburner.hacknet.getcoreupgradecost.md @@ -6,7 +6,7 @@ Calculate the cost of upgrading hacknet node cores. -Signature: +**Signature:** ```typescript getCoreUpgradeCost(index: number, n: number): number; @@ -19,7 +19,7 @@ getCoreUpgradeCost(index: number, n: number): number; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of times to upgrade cores. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.gethashupgradelevel.md b/markdown/bitburner.hacknet.gethashupgradelevel.md index db2237ae2..8bf459d69 100644 --- a/markdown/bitburner.hacknet.gethashupgradelevel.md +++ b/markdown/bitburner.hacknet.gethashupgradelevel.md @@ -6,7 +6,7 @@ Get the level of a hash upgrade. -Signature: +**Signature:** ```typescript getHashUpgradeLevel(upgName: string): number; @@ -18,7 +18,7 @@ getHashUpgradeLevel(upgName: string): number; | --- | --- | --- | | upgName | string | | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.gethashupgrades.md b/markdown/bitburner.hacknet.gethashupgrades.md index b0ef78eb1..2f606b063 100644 --- a/markdown/bitburner.hacknet.gethashupgrades.md +++ b/markdown/bitburner.hacknet.gethashupgrades.md @@ -6,12 +6,12 @@ Get the list of hash upgrades -Signature: +**Signature:** ```typescript getHashUpgrades(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.hacknet.getlevelupgradecost.md b/markdown/bitburner.hacknet.getlevelupgradecost.md index 13f8d07fa..8410bef52 100644 --- a/markdown/bitburner.hacknet.getlevelupgradecost.md +++ b/markdown/bitburner.hacknet.getlevelupgradecost.md @@ -6,7 +6,7 @@ Calculate the cost of upgrading hacknet node levels. -Signature: +**Signature:** ```typescript getLevelUpgradeCost(index: number, n: number): number; @@ -19,7 +19,7 @@ getLevelUpgradeCost(index: number, n: number): number; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of levels to upgrade. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.getnodestats.md b/markdown/bitburner.hacknet.getnodestats.md index 117d9d41c..d804503b2 100644 --- a/markdown/bitburner.hacknet.getnodestats.md +++ b/markdown/bitburner.hacknet.getnodestats.md @@ -6,7 +6,7 @@ Get the stats of a hacknet node. -Signature: +**Signature:** ```typescript getNodeStats(index: number): NodeStats; @@ -18,7 +18,7 @@ getNodeStats(index: number): NodeStats; | --- | --- | --- | | index | number | Index/Identifier of Hacknet Node | -Returns: +**Returns:** [NodeStats](./bitburner.nodestats.md) diff --git a/markdown/bitburner.hacknet.getpurchasenodecost.md b/markdown/bitburner.hacknet.getpurchasenodecost.md index a1d1908d1..5e8d2f787 100644 --- a/markdown/bitburner.hacknet.getpurchasenodecost.md +++ b/markdown/bitburner.hacknet.getpurchasenodecost.md @@ -6,12 +6,12 @@ Get the price of the next hacknet node. -Signature: +**Signature:** ```typescript getPurchaseNodeCost(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.getramupgradecost.md b/markdown/bitburner.hacknet.getramupgradecost.md index 7d449d345..a8c207316 100644 --- a/markdown/bitburner.hacknet.getramupgradecost.md +++ b/markdown/bitburner.hacknet.getramupgradecost.md @@ -6,7 +6,7 @@ Calculate the cost of upgrading hacknet node RAM. -Signature: +**Signature:** ```typescript getRamUpgradeCost(index: number, n: number): number; @@ -19,7 +19,7 @@ getRamUpgradeCost(index: number, n: number): number; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.getstudymult.md b/markdown/bitburner.hacknet.getstudymult.md index 509dfe9a3..43bb89616 100644 --- a/markdown/bitburner.hacknet.getstudymult.md +++ b/markdown/bitburner.hacknet.getstudymult.md @@ -6,12 +6,12 @@ Get the multiplier to study. -Signature: +**Signature:** ```typescript getStudyMult(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.gettrainingmult.md b/markdown/bitburner.hacknet.gettrainingmult.md index 8f657f402..672b64361 100644 --- a/markdown/bitburner.hacknet.gettrainingmult.md +++ b/markdown/bitburner.hacknet.gettrainingmult.md @@ -6,12 +6,12 @@ Get the multiplier to training. -Signature: +**Signature:** ```typescript getTrainingMult(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.hashcapacity.md b/markdown/bitburner.hacknet.hashcapacity.md index 833a621f9..46144a9f6 100644 --- a/markdown/bitburner.hacknet.hashcapacity.md +++ b/markdown/bitburner.hacknet.hashcapacity.md @@ -6,12 +6,12 @@ Get the maximum number of hashes you can store. -Signature: +**Signature:** ```typescript hashCapacity(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.hashcost.md b/markdown/bitburner.hacknet.hashcost.md index fcf2de983..8668d5101 100644 --- a/markdown/bitburner.hacknet.hashcost.md +++ b/markdown/bitburner.hacknet.hashcost.md @@ -6,7 +6,7 @@ Get the cost of a hash upgrade. -Signature: +**Signature:** ```typescript hashCost(upgName: string, count?: number): number; @@ -17,9 +17,9 @@ hashCost(upgName: string, count?: number): number; | Parameter | Type | Description | | --- | --- | --- | | upgName | string | Name of the upgrade of Hacknet Node. | -| count | number | Number of upgrades to buy at once. Defaults to 1 if not specified. | +| count | number | _(Optional)_ Number of upgrades to buy at once. Defaults to 1 if not specified. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.maxnumnodes.md b/markdown/bitburner.hacknet.maxnumnodes.md index dfb249f5d..d0fa22280 100644 --- a/markdown/bitburner.hacknet.maxnumnodes.md +++ b/markdown/bitburner.hacknet.maxnumnodes.md @@ -6,12 +6,12 @@ Get the maximum number of hacknet nodes. -Signature: +**Signature:** ```typescript maxNumNodes(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.md b/markdown/bitburner.hacknet.md index ccff15191..f51f7c904 100644 --- a/markdown/bitburner.hacknet.md +++ b/markdown/bitburner.hacknet.md @@ -6,7 +6,7 @@ Hacknet API -Signature: +**Signature:** ```typescript export interface Hacknet diff --git a/markdown/bitburner.hacknet.numhashes.md b/markdown/bitburner.hacknet.numhashes.md index 9c20440b2..d698d0e6c 100644 --- a/markdown/bitburner.hacknet.numhashes.md +++ b/markdown/bitburner.hacknet.numhashes.md @@ -6,12 +6,12 @@ Get the total number of hashes stored. -Signature: +**Signature:** ```typescript numHashes(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.numnodes.md b/markdown/bitburner.hacknet.numnodes.md index 420f1d83a..fed9b5696 100644 --- a/markdown/bitburner.hacknet.numnodes.md +++ b/markdown/bitburner.hacknet.numnodes.md @@ -6,12 +6,12 @@ Get the number of hacknet nodes you own. -Signature: +**Signature:** ```typescript numNodes(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.purchasenode.md b/markdown/bitburner.hacknet.purchasenode.md index 762a8845e..c84dc9cf7 100644 --- a/markdown/bitburner.hacknet.purchasenode.md +++ b/markdown/bitburner.hacknet.purchasenode.md @@ -6,12 +6,12 @@ Purchase a new hacknet node. -Signature: +**Signature:** ```typescript purchaseNode(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknet.spendhashes.md b/markdown/bitburner.hacknet.spendhashes.md index c71f063a4..7842143aa 100644 --- a/markdown/bitburner.hacknet.spendhashes.md +++ b/markdown/bitburner.hacknet.spendhashes.md @@ -6,7 +6,7 @@ Purchase a hash upgrade. -Signature: +**Signature:** ```typescript spendHashes(upgName: string, upgTarget?: string, count?: number): boolean; @@ -17,10 +17,10 @@ spendHashes(upgName: string, upgTarget?: string, count?: number): boolean; | Parameter | Type | Description | | --- | --- | --- | | upgName | string | Name of the upgrade of Hacknet Node. | -| upgTarget | string | Object to which upgrade applies. Required for certain upgrades. | -| count | number | Number of upgrades to buy at once. Defaults to 1 if not specified. For compatibility reasons, upgTarget must be specified, even if it is not used, in order to specify count. | +| upgTarget | string | _(Optional)_ Object to which upgrade applies. Required for certain upgrades. | +| count | number | _(Optional)_ Number of upgrades to buy at once. Defaults to 1 if not specified. For compatibility reasons, upgTarget must be specified, even if it is not used, in order to specify count. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.hacknet.upgradecache.md b/markdown/bitburner.hacknet.upgradecache.md index df6febe57..7a19e4028 100644 --- a/markdown/bitburner.hacknet.upgradecache.md +++ b/markdown/bitburner.hacknet.upgradecache.md @@ -6,7 +6,7 @@ Upgrade the cache of a hacknet node. -Signature: +**Signature:** ```typescript upgradeCache(index: number, n: number): boolean; @@ -19,7 +19,7 @@ upgradeCache(index: number, n: number): boolean; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of cache levels to purchase. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.hacknet.upgradecore.md b/markdown/bitburner.hacknet.upgradecore.md index cab7fe4bb..8f8e06c46 100644 --- a/markdown/bitburner.hacknet.upgradecore.md +++ b/markdown/bitburner.hacknet.upgradecore.md @@ -6,7 +6,7 @@ Upgrade the core of a hacknet node. -Signature: +**Signature:** ```typescript upgradeCore(index: number, n: number): boolean; @@ -19,7 +19,7 @@ upgradeCore(index: number, n: number): boolean; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of cores to purchase. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.hacknet.upgradelevel.md b/markdown/bitburner.hacknet.upgradelevel.md index fa286db87..a7b43cf75 100644 --- a/markdown/bitburner.hacknet.upgradelevel.md +++ b/markdown/bitburner.hacknet.upgradelevel.md @@ -6,7 +6,7 @@ Upgrade the level of a hacknet node. -Signature: +**Signature:** ```typescript upgradeLevel(index: number, n: number): boolean; @@ -19,7 +19,7 @@ upgradeLevel(index: number, n: number): boolean; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of levels to purchase. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.hacknet.upgraderam.md b/markdown/bitburner.hacknet.upgraderam.md index c69dbcbe0..8fe15e2ea 100644 --- a/markdown/bitburner.hacknet.upgraderam.md +++ b/markdown/bitburner.hacknet.upgraderam.md @@ -6,7 +6,7 @@ Upgrade the RAM of a hacknet node. -Signature: +**Signature:** ```typescript upgradeRam(index: number, n: number): boolean; @@ -19,7 +19,7 @@ upgradeRam(index: number, n: number): boolean; | index | number | Index/Identifier of Hacknet Node. | | n | number | Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.hacknetmultipliers.corecost.md b/markdown/bitburner.hacknetmultipliers.corecost.md index 2e9abb0dc..7bf382aae 100644 --- a/markdown/bitburner.hacknetmultipliers.corecost.md +++ b/markdown/bitburner.hacknetmultipliers.corecost.md @@ -6,7 +6,7 @@ Player's hacknet core cost multiplier -Signature: +**Signature:** ```typescript coreCost: number; diff --git a/markdown/bitburner.hacknetmultipliers.levelcost.md b/markdown/bitburner.hacknetmultipliers.levelcost.md index a09526c7e..a07febc83 100644 --- a/markdown/bitburner.hacknetmultipliers.levelcost.md +++ b/markdown/bitburner.hacknetmultipliers.levelcost.md @@ -6,7 +6,7 @@ Player's hacknet level cost multiplier -Signature: +**Signature:** ```typescript levelCost: number; diff --git a/markdown/bitburner.hacknetmultipliers.md b/markdown/bitburner.hacknetmultipliers.md index 6697e5eb6..e957cb8b9 100644 --- a/markdown/bitburner.hacknetmultipliers.md +++ b/markdown/bitburner.hacknetmultipliers.md @@ -6,7 +6,7 @@ Hacknet related multipliers. -Signature: +**Signature:** ```typescript interface HacknetMultipliers @@ -14,11 +14,11 @@ interface HacknetMultipliers ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [coreCost](./bitburner.hacknetmultipliers.corecost.md) | number | Player's hacknet core cost multiplier | -| [levelCost](./bitburner.hacknetmultipliers.levelcost.md) | number | Player's hacknet level cost multiplier | -| [production](./bitburner.hacknetmultipliers.production.md) | number | Player's hacknet production multiplier | -| [purchaseCost](./bitburner.hacknetmultipliers.purchasecost.md) | number | Player's hacknet purchase cost multiplier | -| [ramCost](./bitburner.hacknetmultipliers.ramcost.md) | number | Player's hacknet ram cost multiplier | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [coreCost](./bitburner.hacknetmultipliers.corecost.md) | | number | Player's hacknet core cost multiplier | +| [levelCost](./bitburner.hacknetmultipliers.levelcost.md) | | number | Player's hacknet level cost multiplier | +| [production](./bitburner.hacknetmultipliers.production.md) | | number | Player's hacknet production multiplier | +| [purchaseCost](./bitburner.hacknetmultipliers.purchasecost.md) | | number | Player's hacknet purchase cost multiplier | +| [ramCost](./bitburner.hacknetmultipliers.ramcost.md) | | number | Player's hacknet ram cost multiplier | diff --git a/markdown/bitburner.hacknetmultipliers.production.md b/markdown/bitburner.hacknetmultipliers.production.md index 5b60f1d4a..dabde6908 100644 --- a/markdown/bitburner.hacknetmultipliers.production.md +++ b/markdown/bitburner.hacknetmultipliers.production.md @@ -6,7 +6,7 @@ Player's hacknet production multiplier -Signature: +**Signature:** ```typescript production: number; diff --git a/markdown/bitburner.hacknetmultipliers.purchasecost.md b/markdown/bitburner.hacknetmultipliers.purchasecost.md index 04a481172..f4e8760c2 100644 --- a/markdown/bitburner.hacknetmultipliers.purchasecost.md +++ b/markdown/bitburner.hacknetmultipliers.purchasecost.md @@ -6,7 +6,7 @@ Player's hacknet purchase cost multiplier -Signature: +**Signature:** ```typescript purchaseCost: number; diff --git a/markdown/bitburner.hacknetmultipliers.ramcost.md b/markdown/bitburner.hacknetmultipliers.ramcost.md index 94ac4a3c8..8605d0df3 100644 --- a/markdown/bitburner.hacknetmultipliers.ramcost.md +++ b/markdown/bitburner.hacknetmultipliers.ramcost.md @@ -6,7 +6,7 @@ Player's hacknet ram cost multiplier -Signature: +**Signature:** ```typescript ramCost: number; diff --git a/markdown/bitburner.hacknetnodeconstants.basecost.md b/markdown/bitburner.hacknetnodeconstants.basecost.md index 2f696b00c..d0fdaa0da 100644 --- a/markdown/bitburner.hacknetnodeconstants.basecost.md +++ b/markdown/bitburner.hacknetnodeconstants.basecost.md @@ -6,7 +6,7 @@ Base cost for a new node -Signature: +**Signature:** ```typescript BaseCost: number; diff --git a/markdown/bitburner.hacknetnodeconstants.corebasecost.md b/markdown/bitburner.hacknetnodeconstants.corebasecost.md index 23431d27d..feccc5c23 100644 --- a/markdown/bitburner.hacknetnodeconstants.corebasecost.md +++ b/markdown/bitburner.hacknetnodeconstants.corebasecost.md @@ -6,7 +6,7 @@ Base cost to increase cores -Signature: +**Signature:** ```typescript CoreBaseCost: number; diff --git a/markdown/bitburner.hacknetnodeconstants.levelbasecost.md b/markdown/bitburner.hacknetnodeconstants.levelbasecost.md index 4bc92f2d7..5b5c63a4a 100644 --- a/markdown/bitburner.hacknetnodeconstants.levelbasecost.md +++ b/markdown/bitburner.hacknetnodeconstants.levelbasecost.md @@ -6,7 +6,7 @@ Base cost per level -Signature: +**Signature:** ```typescript LevelBaseCost: number; diff --git a/markdown/bitburner.hacknetnodeconstants.maxcores.md b/markdown/bitburner.hacknetnodeconstants.maxcores.md index 4484421ac..b2ded052b 100644 --- a/markdown/bitburner.hacknetnodeconstants.maxcores.md +++ b/markdown/bitburner.hacknetnodeconstants.maxcores.md @@ -6,7 +6,7 @@ Max number of cores -Signature: +**Signature:** ```typescript MaxCores: number; diff --git a/markdown/bitburner.hacknetnodeconstants.maxlevel.md b/markdown/bitburner.hacknetnodeconstants.maxlevel.md index 87cf76ee8..67f5b69b4 100644 --- a/markdown/bitburner.hacknetnodeconstants.maxlevel.md +++ b/markdown/bitburner.hacknetnodeconstants.maxlevel.md @@ -6,7 +6,7 @@ Max node level -Signature: +**Signature:** ```typescript MaxLevel: number; diff --git a/markdown/bitburner.hacknetnodeconstants.maxram.md b/markdown/bitburner.hacknetnodeconstants.maxram.md index f3c6ee99e..f6266c9e3 100644 --- a/markdown/bitburner.hacknetnodeconstants.maxram.md +++ b/markdown/bitburner.hacknetnodeconstants.maxram.md @@ -6,7 +6,7 @@ Max amount of RAM in GB -Signature: +**Signature:** ```typescript MaxRam: number; diff --git a/markdown/bitburner.hacknetnodeconstants.md b/markdown/bitburner.hacknetnodeconstants.md index d70c40c57..99ea44864 100644 --- a/markdown/bitburner.hacknetnodeconstants.md +++ b/markdown/bitburner.hacknetnodeconstants.md @@ -6,7 +6,7 @@ Hacknet node related constants -Signature: +**Signature:** ```typescript interface HacknetNodeConstants @@ -14,18 +14,18 @@ interface HacknetNodeConstants ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [BaseCost](./bitburner.hacknetnodeconstants.basecost.md) | number | Base cost for a new node | -| [CoreBaseCost](./bitburner.hacknetnodeconstants.corebasecost.md) | number | Base cost to increase cores | -| [LevelBaseCost](./bitburner.hacknetnodeconstants.levelbasecost.md) | number | Base cost per level | -| [MaxCores](./bitburner.hacknetnodeconstants.maxcores.md) | number | Max number of cores | -| [MaxLevel](./bitburner.hacknetnodeconstants.maxlevel.md) | number | Max node level | -| [MaxRam](./bitburner.hacknetnodeconstants.maxram.md) | number | Max amount of RAM in GB | -| [MoneyGainPerLevel](./bitburner.hacknetnodeconstants.moneygainperlevel.md) | number | Amount of money gained per level | -| [PurchaseNextMult](./bitburner.hacknetnodeconstants.purchasenextmult.md) | number | Multiplier to purchase new node | -| [RamBaseCost](./bitburner.hacknetnodeconstants.rambasecost.md) | number | Base cost to increase RAM | -| [UpgradeCoreMult](./bitburner.hacknetnodeconstants.upgradecoremult.md) | number | Multiplier to increase cores | -| [UpgradeLevelMult](./bitburner.hacknetnodeconstants.upgradelevelmult.md) | number | Multiplier to increase node level | -| [UpgradeRamMult](./bitburner.hacknetnodeconstants.upgraderammult.md) | number | Multiplier to increase RAM | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [BaseCost](./bitburner.hacknetnodeconstants.basecost.md) | | number | Base cost for a new node | +| [CoreBaseCost](./bitburner.hacknetnodeconstants.corebasecost.md) | | number | Base cost to increase cores | +| [LevelBaseCost](./bitburner.hacknetnodeconstants.levelbasecost.md) | | number | Base cost per level | +| [MaxCores](./bitburner.hacknetnodeconstants.maxcores.md) | | number | Max number of cores | +| [MaxLevel](./bitburner.hacknetnodeconstants.maxlevel.md) | | number | Max node level | +| [MaxRam](./bitburner.hacknetnodeconstants.maxram.md) | | number | Max amount of RAM in GB | +| [MoneyGainPerLevel](./bitburner.hacknetnodeconstants.moneygainperlevel.md) | | number | Amount of money gained per level | +| [PurchaseNextMult](./bitburner.hacknetnodeconstants.purchasenextmult.md) | | number | Multiplier to purchase new node | +| [RamBaseCost](./bitburner.hacknetnodeconstants.rambasecost.md) | | number | Base cost to increase RAM | +| [UpgradeCoreMult](./bitburner.hacknetnodeconstants.upgradecoremult.md) | | number | Multiplier to increase cores | +| [UpgradeLevelMult](./bitburner.hacknetnodeconstants.upgradelevelmult.md) | | number | Multiplier to increase node level | +| [UpgradeRamMult](./bitburner.hacknetnodeconstants.upgraderammult.md) | | number | Multiplier to increase RAM | diff --git a/markdown/bitburner.hacknetnodeconstants.moneygainperlevel.md b/markdown/bitburner.hacknetnodeconstants.moneygainperlevel.md index 456437ca2..deeb7e4ec 100644 --- a/markdown/bitburner.hacknetnodeconstants.moneygainperlevel.md +++ b/markdown/bitburner.hacknetnodeconstants.moneygainperlevel.md @@ -6,7 +6,7 @@ Amount of money gained per level -Signature: +**Signature:** ```typescript MoneyGainPerLevel: number; diff --git a/markdown/bitburner.hacknetnodeconstants.purchasenextmult.md b/markdown/bitburner.hacknetnodeconstants.purchasenextmult.md index fc9981f6a..10c419ed0 100644 --- a/markdown/bitburner.hacknetnodeconstants.purchasenextmult.md +++ b/markdown/bitburner.hacknetnodeconstants.purchasenextmult.md @@ -6,7 +6,7 @@ Multiplier to purchase new node -Signature: +**Signature:** ```typescript PurchaseNextMult: number; diff --git a/markdown/bitburner.hacknetnodeconstants.rambasecost.md b/markdown/bitburner.hacknetnodeconstants.rambasecost.md index 41e3e4045..ec21bc0e8 100644 --- a/markdown/bitburner.hacknetnodeconstants.rambasecost.md +++ b/markdown/bitburner.hacknetnodeconstants.rambasecost.md @@ -6,7 +6,7 @@ Base cost to increase RAM -Signature: +**Signature:** ```typescript RamBaseCost: number; diff --git a/markdown/bitburner.hacknetnodeconstants.upgradecoremult.md b/markdown/bitburner.hacknetnodeconstants.upgradecoremult.md index 4ddd2bbc2..17bbc6abf 100644 --- a/markdown/bitburner.hacknetnodeconstants.upgradecoremult.md +++ b/markdown/bitburner.hacknetnodeconstants.upgradecoremult.md @@ -6,7 +6,7 @@ Multiplier to increase cores -Signature: +**Signature:** ```typescript UpgradeCoreMult: number; diff --git a/markdown/bitburner.hacknetnodeconstants.upgradelevelmult.md b/markdown/bitburner.hacknetnodeconstants.upgradelevelmult.md index daa8553c4..c21cea64c 100644 --- a/markdown/bitburner.hacknetnodeconstants.upgradelevelmult.md +++ b/markdown/bitburner.hacknetnodeconstants.upgradelevelmult.md @@ -6,7 +6,7 @@ Multiplier to increase node level -Signature: +**Signature:** ```typescript UpgradeLevelMult: number; diff --git a/markdown/bitburner.hacknetnodeconstants.upgraderammult.md b/markdown/bitburner.hacknetnodeconstants.upgraderammult.md index 899902b70..d959ed744 100644 --- a/markdown/bitburner.hacknetnodeconstants.upgraderammult.md +++ b/markdown/bitburner.hacknetnodeconstants.upgraderammult.md @@ -6,7 +6,7 @@ Multiplier to increase RAM -Signature: +**Signature:** ```typescript UpgradeRamMult: number; diff --git a/markdown/bitburner.hacknetnodesformulas.constants.md b/markdown/bitburner.hacknetnodesformulas.constants.md index 455463122..5ffde21e3 100644 --- a/markdown/bitburner.hacknetnodesformulas.constants.md +++ b/markdown/bitburner.hacknetnodesformulas.constants.md @@ -6,12 +6,12 @@ All constants used by the game. -Signature: +**Signature:** ```typescript constants(): HacknetNodeConstants; ``` -Returns: +**Returns:** [HacknetNodeConstants](./bitburner.hacknetnodeconstants.md) diff --git a/markdown/bitburner.hacknetnodesformulas.coreupgradecost.md b/markdown/bitburner.hacknetnodesformulas.coreupgradecost.md index 3217b4cb7..bcc3ae9cd 100644 --- a/markdown/bitburner.hacknetnodesformulas.coreupgradecost.md +++ b/markdown/bitburner.hacknetnodesformulas.coreupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet node cores. -Signature: +**Signature:** ```typescript coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): number; @@ -17,10 +17,10 @@ coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): n | Parameter | Type | Description | | --- | --- | --- | | startingCore | number | starting cores | -| extraCores | number | amount of cores to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraCores | number | _(Optional)_ amount of cores to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetnodesformulas.hacknetnodecost.md b/markdown/bitburner.hacknetnodesformulas.hacknetnodecost.md index 7d88ecf86..afc300d85 100644 --- a/markdown/bitburner.hacknetnodesformulas.hacknetnodecost.md +++ b/markdown/bitburner.hacknetnodesformulas.hacknetnodecost.md @@ -6,7 +6,7 @@ Calculate the cost of a hacknet node. -Signature: +**Signature:** ```typescript hacknetNodeCost(n: number, mult: number): number; @@ -19,7 +19,7 @@ hacknetNodeCost(n: number, mult: number): number; | n | number | number of the hacknet node | | mult | number | player cost reduction (defaults to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetnodesformulas.levelupgradecost.md b/markdown/bitburner.hacknetnodesformulas.levelupgradecost.md index 53ac8090c..0852a0c40 100644 --- a/markdown/bitburner.hacknetnodesformulas.levelupgradecost.md +++ b/markdown/bitburner.hacknetnodesformulas.levelupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet node level. -Signature: +**Signature:** ```typescript levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number): number; @@ -17,10 +17,10 @@ levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number) | Parameter | Type | Description | | --- | --- | --- | | startingLevel | number | starting level | -| extraLevels | number | amount of level to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraLevels | number | _(Optional)_ amount of level to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetnodesformulas.md b/markdown/bitburner.hacknetnodesformulas.md index 90f7bc4ee..5c78af790 100644 --- a/markdown/bitburner.hacknetnodesformulas.md +++ b/markdown/bitburner.hacknetnodesformulas.md @@ -6,7 +6,7 @@ Hacknet Node formulas -Signature: +**Signature:** ```typescript interface HacknetNodesFormulas diff --git a/markdown/bitburner.hacknetnodesformulas.moneygainrate.md b/markdown/bitburner.hacknetnodesformulas.moneygainrate.md index deb51878f..60cc16ccc 100644 --- a/markdown/bitburner.hacknetnodesformulas.moneygainrate.md +++ b/markdown/bitburner.hacknetnodesformulas.moneygainrate.md @@ -6,7 +6,7 @@ Calculate money gain rate. -Signature: +**Signature:** ```typescript moneyGainRate(level: number, ram: number, cores: number, mult?: number): number; @@ -19,9 +19,9 @@ moneyGainRate(level: number, ram: number, cores: number, mult?: number): number; | level | number | level of the node. | | ram | number | ram of the node. | | cores | number | cores of the node. | -| mult | number | player production mult (default to 1) | +| mult | number | _(Optional)_ player production mult (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetnodesformulas.ramupgradecost.md b/markdown/bitburner.hacknetnodesformulas.ramupgradecost.md index 6be6a5c01..e343061aa 100644 --- a/markdown/bitburner.hacknetnodesformulas.ramupgradecost.md +++ b/markdown/bitburner.hacknetnodesformulas.ramupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet node ram. -Signature: +**Signature:** ```typescript ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): number; @@ -17,10 +17,10 @@ ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): nu | Parameter | Type | Description | | --- | --- | --- | | startingRam | number | starting ram | -| extraLevels | number | amount of level of ram to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraLevels | number | _(Optional)_ amount of level of ram to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserverconstants.basecost.md b/markdown/bitburner.hacknetserverconstants.basecost.md index ea787cddc..fcbd31917 100644 --- a/markdown/bitburner.hacknetserverconstants.basecost.md +++ b/markdown/bitburner.hacknetserverconstants.basecost.md @@ -6,7 +6,7 @@ Base cost for a new server -Signature: +**Signature:** ```typescript BaseCost: number; diff --git a/markdown/bitburner.hacknetserverconstants.cachebasecost.md b/markdown/bitburner.hacknetserverconstants.cachebasecost.md index d532f156d..442be3ec7 100644 --- a/markdown/bitburner.hacknetserverconstants.cachebasecost.md +++ b/markdown/bitburner.hacknetserverconstants.cachebasecost.md @@ -6,7 +6,7 @@ Base cost to upgrade cache -Signature: +**Signature:** ```typescript CacheBaseCost: number; diff --git a/markdown/bitburner.hacknetserverconstants.corebasecost.md b/markdown/bitburner.hacknetserverconstants.corebasecost.md index 856c37f59..fc8e79d20 100644 --- a/markdown/bitburner.hacknetserverconstants.corebasecost.md +++ b/markdown/bitburner.hacknetserverconstants.corebasecost.md @@ -6,7 +6,7 @@ Base cost to increase cores -Signature: +**Signature:** ```typescript CoreBaseCost: number; diff --git a/markdown/bitburner.hacknetserverconstants.hashesperlevel.md b/markdown/bitburner.hacknetserverconstants.hashesperlevel.md index 4c0a296e2..06085cdcd 100644 --- a/markdown/bitburner.hacknetserverconstants.hashesperlevel.md +++ b/markdown/bitburner.hacknetserverconstants.hashesperlevel.md @@ -6,7 +6,7 @@ Number of hashes calculated per level -Signature: +**Signature:** ```typescript HashesPerLevel: number; diff --git a/markdown/bitburner.hacknetserverconstants.maxcache.md b/markdown/bitburner.hacknetserverconstants.maxcache.md index b5beb72a2..22c7961da 100644 --- a/markdown/bitburner.hacknetserverconstants.maxcache.md +++ b/markdown/bitburner.hacknetserverconstants.maxcache.md @@ -6,7 +6,7 @@ Max cache size -Signature: +**Signature:** ```typescript MaxCache: number; diff --git a/markdown/bitburner.hacknetserverconstants.maxcores.md b/markdown/bitburner.hacknetserverconstants.maxcores.md index eecad52ca..bf2971e9c 100644 --- a/markdown/bitburner.hacknetserverconstants.maxcores.md +++ b/markdown/bitburner.hacknetserverconstants.maxcores.md @@ -6,7 +6,7 @@ Max number of cores -Signature: +**Signature:** ```typescript MaxCores: number; diff --git a/markdown/bitburner.hacknetserverconstants.maxlevel.md b/markdown/bitburner.hacknetserverconstants.maxlevel.md index 20a1d3167..a5548a942 100644 --- a/markdown/bitburner.hacknetserverconstants.maxlevel.md +++ b/markdown/bitburner.hacknetserverconstants.maxlevel.md @@ -6,7 +6,7 @@ Max level for a server -Signature: +**Signature:** ```typescript MaxLevel: number; diff --git a/markdown/bitburner.hacknetserverconstants.maxram.md b/markdown/bitburner.hacknetserverconstants.maxram.md index d67e2bb32..f39bce710 100644 --- a/markdown/bitburner.hacknetserverconstants.maxram.md +++ b/markdown/bitburner.hacknetserverconstants.maxram.md @@ -6,7 +6,7 @@ Max amount of RAM in GB -Signature: +**Signature:** ```typescript MaxRam: number; diff --git a/markdown/bitburner.hacknetserverconstants.maxservers.md b/markdown/bitburner.hacknetserverconstants.maxservers.md index d4808ddf9..b2f71ce4f 100644 --- a/markdown/bitburner.hacknetserverconstants.maxservers.md +++ b/markdown/bitburner.hacknetserverconstants.maxservers.md @@ -6,7 +6,7 @@ Max number of servers -Signature: +**Signature:** ```typescript MaxServers: number; diff --git a/markdown/bitburner.hacknetserverconstants.md b/markdown/bitburner.hacknetserverconstants.md index 01ddd2959..4c1e87013 100644 --- a/markdown/bitburner.hacknetserverconstants.md +++ b/markdown/bitburner.hacknetserverconstants.md @@ -6,7 +6,7 @@ Hacknet server related constants -Signature: +**Signature:** ```typescript interface HacknetServerConstants @@ -14,21 +14,21 @@ interface HacknetServerConstants ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [BaseCost](./bitburner.hacknetserverconstants.basecost.md) | number | Base cost for a new server | -| [CacheBaseCost](./bitburner.hacknetserverconstants.cachebasecost.md) | number | Base cost to upgrade cache | -| [CoreBaseCost](./bitburner.hacknetserverconstants.corebasecost.md) | number | Base cost to increase cores | -| [HashesPerLevel](./bitburner.hacknetserverconstants.hashesperlevel.md) | number | Number of hashes calculated per level | -| [MaxCache](./bitburner.hacknetserverconstants.maxcache.md) | number | Max cache size | -| [MaxCores](./bitburner.hacknetserverconstants.maxcores.md) | number | Max number of cores | -| [MaxLevel](./bitburner.hacknetserverconstants.maxlevel.md) | number | Max level for a server | -| [MaxRam](./bitburner.hacknetserverconstants.maxram.md) | number | Max amount of RAM in GB | -| [MaxServers](./bitburner.hacknetserverconstants.maxservers.md) | number | Max number of servers | -| [PurchaseMult](./bitburner.hacknetserverconstants.purchasemult.md) | number | Multiplier to purchase a new server | -| [RamBaseCost](./bitburner.hacknetserverconstants.rambasecost.md) | number | Base cost to increase RAM | -| [UpgradeCacheMult](./bitburner.hacknetserverconstants.upgradecachemult.md) | number | Multiplier to upgrade cache | -| [UpgradeCoreMult](./bitburner.hacknetserverconstants.upgradecoremult.md) | number | Multiplier to increase cores | -| [UpgradeLevelMult](./bitburner.hacknetserverconstants.upgradelevelmult.md) | number | Multiplier to increase server level | -| [UpgradeRamMult](./bitburner.hacknetserverconstants.upgraderammult.md) | number | Multiplier to increase RAM | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [BaseCost](./bitburner.hacknetserverconstants.basecost.md) | | number | Base cost for a new server | +| [CacheBaseCost](./bitburner.hacknetserverconstants.cachebasecost.md) | | number | Base cost to upgrade cache | +| [CoreBaseCost](./bitburner.hacknetserverconstants.corebasecost.md) | | number | Base cost to increase cores | +| [HashesPerLevel](./bitburner.hacknetserverconstants.hashesperlevel.md) | | number | Number of hashes calculated per level | +| [MaxCache](./bitburner.hacknetserverconstants.maxcache.md) | | number | Max cache size | +| [MaxCores](./bitburner.hacknetserverconstants.maxcores.md) | | number | Max number of cores | +| [MaxLevel](./bitburner.hacknetserverconstants.maxlevel.md) | | number | Max level for a server | +| [MaxRam](./bitburner.hacknetserverconstants.maxram.md) | | number | Max amount of RAM in GB | +| [MaxServers](./bitburner.hacknetserverconstants.maxservers.md) | | number | Max number of servers | +| [PurchaseMult](./bitburner.hacknetserverconstants.purchasemult.md) | | number | Multiplier to purchase a new server | +| [RamBaseCost](./bitburner.hacknetserverconstants.rambasecost.md) | | number | Base cost to increase RAM | +| [UpgradeCacheMult](./bitburner.hacknetserverconstants.upgradecachemult.md) | | number | Multiplier to upgrade cache | +| [UpgradeCoreMult](./bitburner.hacknetserverconstants.upgradecoremult.md) | | number | Multiplier to increase cores | +| [UpgradeLevelMult](./bitburner.hacknetserverconstants.upgradelevelmult.md) | | number | Multiplier to increase server level | +| [UpgradeRamMult](./bitburner.hacknetserverconstants.upgraderammult.md) | | number | Multiplier to increase RAM | diff --git a/markdown/bitburner.hacknetserverconstants.purchasemult.md b/markdown/bitburner.hacknetserverconstants.purchasemult.md index 32eef9e8a..3bf3d1912 100644 --- a/markdown/bitburner.hacknetserverconstants.purchasemult.md +++ b/markdown/bitburner.hacknetserverconstants.purchasemult.md @@ -6,7 +6,7 @@ Multiplier to purchase a new server -Signature: +**Signature:** ```typescript PurchaseMult: number; diff --git a/markdown/bitburner.hacknetserverconstants.rambasecost.md b/markdown/bitburner.hacknetserverconstants.rambasecost.md index 365a154ae..5f8008c01 100644 --- a/markdown/bitburner.hacknetserverconstants.rambasecost.md +++ b/markdown/bitburner.hacknetserverconstants.rambasecost.md @@ -6,7 +6,7 @@ Base cost to increase RAM -Signature: +**Signature:** ```typescript RamBaseCost: number; diff --git a/markdown/bitburner.hacknetserverconstants.upgradecachemult.md b/markdown/bitburner.hacknetserverconstants.upgradecachemult.md index 7fdfe9eb0..5d72eb649 100644 --- a/markdown/bitburner.hacknetserverconstants.upgradecachemult.md +++ b/markdown/bitburner.hacknetserverconstants.upgradecachemult.md @@ -6,7 +6,7 @@ Multiplier to upgrade cache -Signature: +**Signature:** ```typescript UpgradeCacheMult: number; diff --git a/markdown/bitburner.hacknetserverconstants.upgradecoremult.md b/markdown/bitburner.hacknetserverconstants.upgradecoremult.md index 2c6541d46..954b0d51c 100644 --- a/markdown/bitburner.hacknetserverconstants.upgradecoremult.md +++ b/markdown/bitburner.hacknetserverconstants.upgradecoremult.md @@ -6,7 +6,7 @@ Multiplier to increase cores -Signature: +**Signature:** ```typescript UpgradeCoreMult: number; diff --git a/markdown/bitburner.hacknetserverconstants.upgradelevelmult.md b/markdown/bitburner.hacknetserverconstants.upgradelevelmult.md index 81a67ecff..375bab319 100644 --- a/markdown/bitburner.hacknetserverconstants.upgradelevelmult.md +++ b/markdown/bitburner.hacknetserverconstants.upgradelevelmult.md @@ -6,7 +6,7 @@ Multiplier to increase server level -Signature: +**Signature:** ```typescript UpgradeLevelMult: number; diff --git a/markdown/bitburner.hacknetserverconstants.upgraderammult.md b/markdown/bitburner.hacknetserverconstants.upgraderammult.md index 5273537c3..77372d531 100644 --- a/markdown/bitburner.hacknetserverconstants.upgraderammult.md +++ b/markdown/bitburner.hacknetserverconstants.upgraderammult.md @@ -6,7 +6,7 @@ Multiplier to increase RAM -Signature: +**Signature:** ```typescript UpgradeRamMult: number; diff --git a/markdown/bitburner.hacknetserversformulas.cacheupgradecost.md b/markdown/bitburner.hacknetserversformulas.cacheupgradecost.md index cf7a00710..096d32142 100644 --- a/markdown/bitburner.hacknetserversformulas.cacheupgradecost.md +++ b/markdown/bitburner.hacknetserversformulas.cacheupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet server cache. -Signature: +**Signature:** ```typescript cacheUpgradeCost(startingCache: number, extraCache?: number): number; @@ -17,9 +17,9 @@ cacheUpgradeCost(startingCache: number, extraCache?: number): number; | Parameter | Type | Description | | --- | --- | --- | | startingCache | number | starting cache level | -| extraCache | number | amount of levels of cache to purchase (defaults to 1) | +| extraCache | number | _(Optional)_ amount of levels of cache to purchase (defaults to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.constants.md b/markdown/bitburner.hacknetserversformulas.constants.md index e17c88b5a..752415c7c 100644 --- a/markdown/bitburner.hacknetserversformulas.constants.md +++ b/markdown/bitburner.hacknetserversformulas.constants.md @@ -6,12 +6,12 @@ All constants used by the game. -Signature: +**Signature:** ```typescript constants(): HacknetServerConstants; ``` -Returns: +**Returns:** [HacknetServerConstants](./bitburner.hacknetserverconstants.md) diff --git a/markdown/bitburner.hacknetserversformulas.coreupgradecost.md b/markdown/bitburner.hacknetserversformulas.coreupgradecost.md index 82bcc923d..66b32bb52 100644 --- a/markdown/bitburner.hacknetserversformulas.coreupgradecost.md +++ b/markdown/bitburner.hacknetserversformulas.coreupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet server cores. -Signature: +**Signature:** ```typescript coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): number; @@ -17,10 +17,10 @@ coreUpgradeCost(startingCore: number, extraCores?: number, costMult?: number): n | Parameter | Type | Description | | --- | --- | --- | | startingCore | number | starting cores | -| extraCores | number | amount of cores to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraCores | number | _(Optional)_ amount of cores to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.hacknetservercost.md b/markdown/bitburner.hacknetserversformulas.hacknetservercost.md index 55f7fd29a..cd4d436f4 100644 --- a/markdown/bitburner.hacknetserversformulas.hacknetservercost.md +++ b/markdown/bitburner.hacknetserversformulas.hacknetservercost.md @@ -6,7 +6,7 @@ Calculate the cost of a hacknet server. -Signature: +**Signature:** ```typescript hacknetServerCost(n: number, mult?: number): number; @@ -17,9 +17,9 @@ hacknetServerCost(n: number, mult?: number): number; | Parameter | Type | Description | | --- | --- | --- | | n | number | number of the hacknet server | -| mult | number | player cost reduction (defaults to 1) | +| mult | number | _(Optional)_ player cost reduction (defaults to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.hashgainrate.md b/markdown/bitburner.hacknetserversformulas.hashgainrate.md index 51c960448..5ea1e8c7c 100644 --- a/markdown/bitburner.hacknetserversformulas.hashgainrate.md +++ b/markdown/bitburner.hacknetserversformulas.hashgainrate.md @@ -6,7 +6,7 @@ Calculate hash gain rate. -Signature: +**Signature:** ```typescript hashGainRate(level: number, ramUsed: number, maxRam: number, cores: number, mult?: number): number; @@ -20,9 +20,9 @@ hashGainRate(level: number, ramUsed: number, maxRam: number, cores: number, mult | ramUsed | number | ramUsed of the server. | | maxRam | number | maxRam of the server. | | cores | number | cores of the server. | -| mult | number | player production mult (default to 1) | +| mult | number | _(Optional)_ player production mult (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.hashupgradecost.md b/markdown/bitburner.hacknetserversformulas.hashupgradecost.md index 0cc4ec42b..7431ce569 100644 --- a/markdown/bitburner.hacknetserversformulas.hashupgradecost.md +++ b/markdown/bitburner.hacknetserversformulas.hashupgradecost.md @@ -6,7 +6,7 @@ Calculate hash cost of an upgrade. -Signature: +**Signature:** ```typescript hashUpgradeCost(upgName: number, level: number): number; @@ -19,7 +19,7 @@ hashUpgradeCost(upgName: number, level: number): number; | upgName | number | name of the upgrade | | level | number | level of the upgrade | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.levelupgradecost.md b/markdown/bitburner.hacknetserversformulas.levelupgradecost.md index de10d2a62..d679643c4 100644 --- a/markdown/bitburner.hacknetserversformulas.levelupgradecost.md +++ b/markdown/bitburner.hacknetserversformulas.levelupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet server level. -Signature: +**Signature:** ```typescript levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number): number; @@ -17,10 +17,10 @@ levelUpgradeCost(startingLevel: number, extraLevels?: number, costMult?: number) | Parameter | Type | Description | | --- | --- | --- | | startingLevel | number | starting level | -| extraLevels | number | amount of level to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraLevels | number | _(Optional)_ amount of level to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hacknetserversformulas.md b/markdown/bitburner.hacknetserversformulas.md index 059e4ba39..3ccee0895 100644 --- a/markdown/bitburner.hacknetserversformulas.md +++ b/markdown/bitburner.hacknetserversformulas.md @@ -6,7 +6,7 @@ Hacknet Server formulas -Signature: +**Signature:** ```typescript interface HacknetServersFormulas diff --git a/markdown/bitburner.hacknetserversformulas.ramupgradecost.md b/markdown/bitburner.hacknetserversformulas.ramupgradecost.md index 1cd2c4b43..70f688b8a 100644 --- a/markdown/bitburner.hacknetserversformulas.ramupgradecost.md +++ b/markdown/bitburner.hacknetserversformulas.ramupgradecost.md @@ -6,7 +6,7 @@ Calculate cost of upgrading hacknet server ram. -Signature: +**Signature:** ```typescript ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): number; @@ -17,10 +17,10 @@ ramUpgradeCost(startingRam: number, extraLevels?: number, costMult?: number): nu | Parameter | Type | Description | | --- | --- | --- | | startingRam | number | starting ram | -| extraLevels | number | amount of level of ram to purchase (defaults to 1) | -| costMult | number | player cost reduction (default to 1) | +| extraLevels | number | _(Optional)_ amount of level of ram to purchase (defaults to 1) | +| costMult | number | _(Optional)_ player cost reduction (default to 1) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.hp.current.md b/markdown/bitburner.hp.current.md index cebd3cbc7..26032ea7f 100644 --- a/markdown/bitburner.hp.current.md +++ b/markdown/bitburner.hp.current.md @@ -4,7 +4,7 @@ ## HP.current property -Signature: +**Signature:** ```typescript current: number; diff --git a/markdown/bitburner.hp.max.md b/markdown/bitburner.hp.max.md index e0a023eb6..16b1c1a6e 100644 --- a/markdown/bitburner.hp.max.md +++ b/markdown/bitburner.hp.max.md @@ -4,7 +4,7 @@ ## HP.max property -Signature: +**Signature:** ```typescript max: number; diff --git a/markdown/bitburner.hp.md b/markdown/bitburner.hp.md index 69c2ae850..7fe3d2ce5 100644 --- a/markdown/bitburner.hp.md +++ b/markdown/bitburner.hp.md @@ -5,7 +5,7 @@ ## HP interface -Signature: +**Signature:** ```typescript interface HP @@ -13,8 +13,8 @@ interface HP ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [current](./bitburner.hp.current.md) | number | | -| [max](./bitburner.hp.max.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [current](./bitburner.hp.current.md) | | number | | +| [max](./bitburner.hp.max.md) | | number | | diff --git a/markdown/bitburner.ilocation.city.md b/markdown/bitburner.ilocation.city.md index dfe1d9be2..48b525ef6 100644 --- a/markdown/bitburner.ilocation.city.md +++ b/markdown/bitburner.ilocation.city.md @@ -4,7 +4,7 @@ ## ILocation.city property -Signature: +**Signature:** ```typescript city: CityName; diff --git a/markdown/bitburner.ilocation.md b/markdown/bitburner.ilocation.md index e47b75a61..adb667c36 100644 --- a/markdown/bitburner.ilocation.md +++ b/markdown/bitburner.ilocation.md @@ -5,7 +5,7 @@ ## ILocation interface -Signature: +**Signature:** ```typescript interface ILocation @@ -13,8 +13,8 @@ interface ILocation ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [city](./bitburner.ilocation.city.md) | [CityName](./bitburner.cityname.md) | | -| [name](./bitburner.ilocation.name.md) | [LocationName](./bitburner.locationname.md) | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [city](./bitburner.ilocation.city.md) | | [CityName](./bitburner.cityname.md) | | +| [name](./bitburner.ilocation.name.md) | | [LocationName](./bitburner.locationname.md) | | diff --git a/markdown/bitburner.ilocation.name.md b/markdown/bitburner.ilocation.name.md index 9a7f08feb..e2d35036f 100644 --- a/markdown/bitburner.ilocation.name.md +++ b/markdown/bitburner.ilocation.name.md @@ -4,7 +4,7 @@ ## ILocation.name property -Signature: +**Signature:** ```typescript name: LocationName; diff --git a/markdown/bitburner.industrydata.cost.md b/markdown/bitburner.industrydata.cost.md index b41589a35..206b08947 100644 --- a/markdown/bitburner.industrydata.cost.md +++ b/markdown/bitburner.industrydata.cost.md @@ -6,7 +6,7 @@ Cost to expand to the division -Signature: +**Signature:** ```typescript cost: number; diff --git a/markdown/bitburner.industrydata.makesmaterials.md b/markdown/bitburner.industrydata.makesmaterials.md index db197a528..bcba6749e 100644 --- a/markdown/bitburner.industrydata.makesmaterials.md +++ b/markdown/bitburner.industrydata.makesmaterials.md @@ -6,7 +6,7 @@ Whether the division makes materials -Signature: +**Signature:** ```typescript makesMaterials: boolean; diff --git a/markdown/bitburner.industrydata.makesproducts.md b/markdown/bitburner.industrydata.makesproducts.md index 274118953..96e353482 100644 --- a/markdown/bitburner.industrydata.makesproducts.md +++ b/markdown/bitburner.industrydata.makesproducts.md @@ -6,7 +6,7 @@ Whether the division makes products -Signature: +**Signature:** ```typescript makesProducts: boolean; diff --git a/markdown/bitburner.industrydata.md b/markdown/bitburner.industrydata.md index 877ae4b24..d6046cc65 100644 --- a/markdown/bitburner.industrydata.md +++ b/markdown/bitburner.industrydata.md @@ -6,7 +6,7 @@ Corporation industry information -Signature: +**Signature:** ```typescript interface IndustryData @@ -14,13 +14,13 @@ interface IndustryData ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [cost](./bitburner.industrydata.cost.md) | number | Cost to expand to the division | -| [makesMaterials](./bitburner.industrydata.makesmaterials.md) | boolean | Whether the division makes materials | -| [makesProducts](./bitburner.industrydata.makesproducts.md) | boolean | Whether the division makes products | -| [producedMaterials?](./bitburner.industrydata.producedmaterials.md) | string\[\] | (Optional) Materials produced | -| [productType?](./bitburner.industrydata.producttype.md) | string | (Optional) Product type | -| [requiredMaterials](./bitburner.industrydata.requiredmaterials.md) | Record<string, number> | Materials required for production and their amounts | -| [type](./bitburner.industrydata.type.md) | [CorpIndustryName](./bitburner.corpindustryname.md) | Industry type | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [cost](./bitburner.industrydata.cost.md) | | number | Cost to expand to the division | +| [makesMaterials](./bitburner.industrydata.makesmaterials.md) | | boolean | Whether the division makes materials | +| [makesProducts](./bitburner.industrydata.makesproducts.md) | | boolean | Whether the division makes products | +| [producedMaterials?](./bitburner.industrydata.producedmaterials.md) | | string\[\] | _(Optional)_ Materials produced | +| [productType?](./bitburner.industrydata.producttype.md) | | string | _(Optional)_ Product type | +| [requiredMaterials](./bitburner.industrydata.requiredmaterials.md) | | Record<string, number> | Materials required for production and their amounts | +| [type](./bitburner.industrydata.type.md) | | [CorpIndustryName](./bitburner.corpindustryname.md) | Industry type | diff --git a/markdown/bitburner.industrydata.producedmaterials.md b/markdown/bitburner.industrydata.producedmaterials.md index 80feafb86..2ed0ee441 100644 --- a/markdown/bitburner.industrydata.producedmaterials.md +++ b/markdown/bitburner.industrydata.producedmaterials.md @@ -6,7 +6,7 @@ Materials produced -Signature: +**Signature:** ```typescript producedMaterials?: string[]; diff --git a/markdown/bitburner.industrydata.producttype.md b/markdown/bitburner.industrydata.producttype.md index 369fe80e1..c6b7c5383 100644 --- a/markdown/bitburner.industrydata.producttype.md +++ b/markdown/bitburner.industrydata.producttype.md @@ -6,7 +6,7 @@ Product type -Signature: +**Signature:** ```typescript productType?: string; diff --git a/markdown/bitburner.industrydata.requiredmaterials.md b/markdown/bitburner.industrydata.requiredmaterials.md index 6839e49d7..01c9334b7 100644 --- a/markdown/bitburner.industrydata.requiredmaterials.md +++ b/markdown/bitburner.industrydata.requiredmaterials.md @@ -6,7 +6,7 @@ Materials required for production and their amounts -Signature: +**Signature:** ```typescript requiredMaterials: Record; diff --git a/markdown/bitburner.industrydata.type.md b/markdown/bitburner.industrydata.type.md index 0c4ff151d..047e7185e 100644 --- a/markdown/bitburner.industrydata.type.md +++ b/markdown/bitburner.industrydata.type.md @@ -6,7 +6,7 @@ Industry type -Signature: +**Signature:** ```typescript type: CorpIndustryName; diff --git a/markdown/bitburner.infiltration.getinfiltration.md b/markdown/bitburner.infiltration.getinfiltration.md index 7dc5c5cf4..a553290bd 100644 --- a/markdown/bitburner.infiltration.getinfiltration.md +++ b/markdown/bitburner.infiltration.getinfiltration.md @@ -6,7 +6,7 @@ Get all infiltrations with difficulty, location and rewards. -Signature: +**Signature:** ```typescript getInfiltration(location: string): InfiltrationLocation; @@ -18,7 +18,7 @@ getInfiltration(location: string): InfiltrationLocation; | --- | --- | --- | | location | string | | -Returns: +**Returns:** [InfiltrationLocation](./bitburner.infiltrationlocation.md) diff --git a/markdown/bitburner.infiltration.getpossiblelocations.md b/markdown/bitburner.infiltration.getpossiblelocations.md index d2a78e55f..67b90929e 100644 --- a/markdown/bitburner.infiltration.getpossiblelocations.md +++ b/markdown/bitburner.infiltration.getpossiblelocations.md @@ -6,12 +6,12 @@ Get all locations that can be infiltrated. -Signature: +**Signature:** ```typescript getPossibleLocations(): ILocation[]; ``` -Returns: +**Returns:** [ILocation](./bitburner.ilocation.md)\[\] diff --git a/markdown/bitburner.infiltration.md b/markdown/bitburner.infiltration.md index cfcd284ac..673bb335b 100644 --- a/markdown/bitburner.infiltration.md +++ b/markdown/bitburner.infiltration.md @@ -6,7 +6,7 @@ Infiltration API. -Signature: +**Signature:** ```typescript interface Infiltration diff --git a/markdown/bitburner.infiltrationlocation.difficulty.md b/markdown/bitburner.infiltrationlocation.difficulty.md index 849f0cbe7..a44a20f05 100644 --- a/markdown/bitburner.infiltrationlocation.difficulty.md +++ b/markdown/bitburner.infiltrationlocation.difficulty.md @@ -4,7 +4,7 @@ ## InfiltrationLocation.difficulty property -Signature: +**Signature:** ```typescript difficulty: number; diff --git a/markdown/bitburner.infiltrationlocation.location.md b/markdown/bitburner.infiltrationlocation.location.md index d884e5c99..90881a25c 100644 --- a/markdown/bitburner.infiltrationlocation.location.md +++ b/markdown/bitburner.infiltrationlocation.location.md @@ -4,7 +4,7 @@ ## InfiltrationLocation.location property -Signature: +**Signature:** ```typescript location: ILocation; diff --git a/markdown/bitburner.infiltrationlocation.md b/markdown/bitburner.infiltrationlocation.md index edb6f071f..519e0368c 100644 --- a/markdown/bitburner.infiltrationlocation.md +++ b/markdown/bitburner.infiltrationlocation.md @@ -5,7 +5,7 @@ ## InfiltrationLocation interface -Signature: +**Signature:** ```typescript interface InfiltrationLocation @@ -13,9 +13,9 @@ interface InfiltrationLocation ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [difficulty](./bitburner.infiltrationlocation.difficulty.md) | number | | -| [location](./bitburner.infiltrationlocation.location.md) | [ILocation](./bitburner.ilocation.md) | | -| [reward](./bitburner.infiltrationlocation.reward.md) | [InfiltrationReward](./bitburner.infiltrationreward.md) | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [difficulty](./bitburner.infiltrationlocation.difficulty.md) | | number | | +| [location](./bitburner.infiltrationlocation.location.md) | | [ILocation](./bitburner.ilocation.md) | | +| [reward](./bitburner.infiltrationlocation.reward.md) | | [InfiltrationReward](./bitburner.infiltrationreward.md) | | diff --git a/markdown/bitburner.infiltrationlocation.reward.md b/markdown/bitburner.infiltrationlocation.reward.md index a6c38142e..3d7dc879b 100644 --- a/markdown/bitburner.infiltrationlocation.reward.md +++ b/markdown/bitburner.infiltrationlocation.reward.md @@ -4,7 +4,7 @@ ## InfiltrationLocation.reward property -Signature: +**Signature:** ```typescript reward: InfiltrationReward; diff --git a/markdown/bitburner.infiltrationreward.md b/markdown/bitburner.infiltrationreward.md index a8d09efc1..0becc6d0d 100644 --- a/markdown/bitburner.infiltrationreward.md +++ b/markdown/bitburner.infiltrationreward.md @@ -5,7 +5,7 @@ ## InfiltrationReward interface -Signature: +**Signature:** ```typescript interface InfiltrationReward @@ -13,9 +13,9 @@ interface InfiltrationReward ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [sellCash](./bitburner.infiltrationreward.sellcash.md) | number | | -| [SoARep](./bitburner.infiltrationreward.soarep.md) | number | | -| [tradeRep](./bitburner.infiltrationreward.traderep.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [sellCash](./bitburner.infiltrationreward.sellcash.md) | | number | | +| [SoARep](./bitburner.infiltrationreward.soarep.md) | | number | | +| [tradeRep](./bitburner.infiltrationreward.traderep.md) | | number | | diff --git a/markdown/bitburner.infiltrationreward.sellcash.md b/markdown/bitburner.infiltrationreward.sellcash.md index d98b2b67b..84fc224f7 100644 --- a/markdown/bitburner.infiltrationreward.sellcash.md +++ b/markdown/bitburner.infiltrationreward.sellcash.md @@ -4,7 +4,7 @@ ## InfiltrationReward.sellCash property -Signature: +**Signature:** ```typescript sellCash: number; diff --git a/markdown/bitburner.infiltrationreward.soarep.md b/markdown/bitburner.infiltrationreward.soarep.md index cac6ac50d..16b8c1bc2 100644 --- a/markdown/bitburner.infiltrationreward.soarep.md +++ b/markdown/bitburner.infiltrationreward.soarep.md @@ -4,7 +4,7 @@ ## InfiltrationReward.SoARep property -Signature: +**Signature:** ```typescript SoARep: number; diff --git a/markdown/bitburner.infiltrationreward.traderep.md b/markdown/bitburner.infiltrationreward.traderep.md index c3d1d8c79..32d58ea3a 100644 --- a/markdown/bitburner.infiltrationreward.traderep.md +++ b/markdown/bitburner.infiltrationreward.traderep.md @@ -4,7 +4,7 @@ ## InfiltrationReward.tradeRep property -Signature: +**Signature:** ```typescript tradeRep: number; diff --git a/markdown/bitburner.investmentoffer.funds.md b/markdown/bitburner.investmentoffer.funds.md index 77822d27f..286df9b72 100644 --- a/markdown/bitburner.investmentoffer.funds.md +++ b/markdown/bitburner.investmentoffer.funds.md @@ -6,7 +6,7 @@ Amount of funds you will get from this investment -Signature: +**Signature:** ```typescript funds: number; diff --git a/markdown/bitburner.investmentoffer.md b/markdown/bitburner.investmentoffer.md index 4768cc622..3af82ad66 100644 --- a/markdown/bitburner.investmentoffer.md +++ b/markdown/bitburner.investmentoffer.md @@ -6,7 +6,7 @@ Corporation investment offer -Signature: +**Signature:** ```typescript interface InvestmentOffer @@ -14,9 +14,9 @@ interface InvestmentOffer ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [funds](./bitburner.investmentoffer.funds.md) | number | Amount of funds you will get from this investment | -| [round](./bitburner.investmentoffer.round.md) | number | Current round of funding (max 4) | -| [shares](./bitburner.investmentoffer.shares.md) | number | Amount of share you will give in exchange for this investment | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [funds](./bitburner.investmentoffer.funds.md) | | number | Amount of funds you will get from this investment | +| [round](./bitburner.investmentoffer.round.md) | | number | Current round of funding (max 4) | +| [shares](./bitburner.investmentoffer.shares.md) | | number | Amount of share you will give in exchange for this investment | diff --git a/markdown/bitburner.investmentoffer.round.md b/markdown/bitburner.investmentoffer.round.md index 05095029c..ece4525ae 100644 --- a/markdown/bitburner.investmentoffer.round.md +++ b/markdown/bitburner.investmentoffer.round.md @@ -6,7 +6,7 @@ Current round of funding (max 4) -Signature: +**Signature:** ```typescript round: number; diff --git a/markdown/bitburner.investmentoffer.shares.md b/markdown/bitburner.investmentoffer.shares.md index 7c3a2e0a1..8c1cc18fd 100644 --- a/markdown/bitburner.investmentoffer.shares.md +++ b/markdown/bitburner.investmentoffer.shares.md @@ -6,7 +6,7 @@ Amount of share you will give in exchange for this investment -Signature: +**Signature:** ```typescript shares: number; diff --git a/markdown/bitburner.istylesettings.fontfamily.md b/markdown/bitburner.istylesettings.fontfamily.md index f4cbd265c..c6504fc7a 100644 --- a/markdown/bitburner.istylesettings.fontfamily.md +++ b/markdown/bitburner.istylesettings.fontfamily.md @@ -4,7 +4,7 @@ ## IStyleSettings.fontFamily property -Signature: +**Signature:** ```typescript fontFamily: string; diff --git a/markdown/bitburner.istylesettings.lineheight.md b/markdown/bitburner.istylesettings.lineheight.md index 23fa29863..a8bdb1004 100644 --- a/markdown/bitburner.istylesettings.lineheight.md +++ b/markdown/bitburner.istylesettings.lineheight.md @@ -4,7 +4,7 @@ ## IStyleSettings.lineHeight property -Signature: +**Signature:** ```typescript lineHeight: number; diff --git a/markdown/bitburner.istylesettings.md b/markdown/bitburner.istylesettings.md index 0b88e86ba..75c364318 100644 --- a/markdown/bitburner.istylesettings.md +++ b/markdown/bitburner.istylesettings.md @@ -6,7 +6,7 @@ Interface Styles -Signature: +**Signature:** ```typescript interface IStyleSettings @@ -14,8 +14,8 @@ interface IStyleSettings ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [fontFamily](./bitburner.istylesettings.fontfamily.md) | string | | -| [lineHeight](./bitburner.istylesettings.lineheight.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [fontFamily](./bitburner.istylesettings.fontfamily.md) | | string | | +| [lineHeight](./bitburner.istylesettings.lineheight.md) | | number | | diff --git a/markdown/bitburner.jobname.md b/markdown/bitburner.jobname.md index e39fc611a..14cdc4cef 100644 --- a/markdown/bitburner.jobname.md +++ b/markdown/bitburner.jobname.md @@ -5,7 +5,7 @@ ## JobName enum -Signature: +**Signature:** ```typescript declare enum JobName diff --git a/markdown/bitburner.locationname.md b/markdown/bitburner.locationname.md index 63a521d68..62f68d32e 100644 --- a/markdown/bitburner.locationname.md +++ b/markdown/bitburner.locationname.md @@ -6,7 +6,7 @@ Names of all locations -Signature: +**Signature:** ```typescript declare enum LocationName diff --git a/markdown/bitburner.material.cmp.md b/markdown/bitburner.material.cmp.md index 6abd37461..1175f7e19 100644 --- a/markdown/bitburner.material.cmp.md +++ b/markdown/bitburner.material.cmp.md @@ -6,7 +6,7 @@ Competition for the material, only present if "Market Research - Competition" unlocked -Signature: +**Signature:** ```typescript cmp: number | undefined; diff --git a/markdown/bitburner.material.cost.md b/markdown/bitburner.material.cost.md index 48f248d17..347cd5012 100644 --- a/markdown/bitburner.material.cost.md +++ b/markdown/bitburner.material.cost.md @@ -6,7 +6,7 @@ Cost to buy material -Signature: +**Signature:** ```typescript cost: number; diff --git a/markdown/bitburner.material.dmd.md b/markdown/bitburner.material.dmd.md index e68f29afd..770022ccb 100644 --- a/markdown/bitburner.material.dmd.md +++ b/markdown/bitburner.material.dmd.md @@ -6,7 +6,7 @@ Demand for the material, only present if "Market Research - Demand" unlocked -Signature: +**Signature:** ```typescript dmd: number | undefined; diff --git a/markdown/bitburner.material.exp.md b/markdown/bitburner.material.exp.md index 539a1d902..ec26b13c7 100644 --- a/markdown/bitburner.material.exp.md +++ b/markdown/bitburner.material.exp.md @@ -6,7 +6,7 @@ Export orders -Signature: +**Signature:** ```typescript exp: Export[]; diff --git a/markdown/bitburner.material.md b/markdown/bitburner.material.md index 537bdc6d9..e59bbc387 100644 --- a/markdown/bitburner.material.md +++ b/markdown/bitburner.material.md @@ -6,7 +6,7 @@ Material in a warehouse -Signature: +**Signature:** ```typescript interface Material @@ -14,16 +14,16 @@ interface Material ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [cmp](./bitburner.material.cmp.md) | number \| undefined | Competition for the material, only present if "Market Research - Competition" unlocked | -| [cost](./bitburner.material.cost.md) | number | Cost to buy material | -| [dmd](./bitburner.material.dmd.md) | number \| undefined | Demand for the material, only present if "Market Research - Demand" unlocked | -| [exp](./bitburner.material.exp.md) | [Export](./bitburner.export.md)\[\] | Export orders | -| [name](./bitburner.material.name.md) | [CorpMaterialName](./bitburner.corpmaterialname.md) | Name of the material | -| [prod](./bitburner.material.prod.md) | number | Amount of material produced | -| [qlt](./bitburner.material.qlt.md) | number | Quality of the material | -| [qty](./bitburner.material.qty.md) | number | Amount of material | -| [sCost](./bitburner.material.scost.md) | string \| number | Sell cost, can be "MP+5" | -| [sell](./bitburner.material.sell.md) | number | Amount of material sold | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [cmp](./bitburner.material.cmp.md) | | number \| undefined | Competition for the material, only present if "Market Research - Competition" unlocked | +| [cost](./bitburner.material.cost.md) | | number | Cost to buy material | +| [dmd](./bitburner.material.dmd.md) | | number \| undefined | Demand for the material, only present if "Market Research - Demand" unlocked | +| [exp](./bitburner.material.exp.md) | | [Export](./bitburner.export.md)\[\] | Export orders | +| [name](./bitburner.material.name.md) | | [CorpMaterialName](./bitburner.corpmaterialname.md) | Name of the material | +| [prod](./bitburner.material.prod.md) | | number | Amount of material produced | +| [qlt](./bitburner.material.qlt.md) | | number | Quality of the material | +| [qty](./bitburner.material.qty.md) | | number | Amount of material | +| [sCost](./bitburner.material.scost.md) | | string \| number | Sell cost, can be "MP+5" | +| [sell](./bitburner.material.sell.md) | | number | Amount of material sold | diff --git a/markdown/bitburner.material.name.md b/markdown/bitburner.material.name.md index a0780e632..634b3c782 100644 --- a/markdown/bitburner.material.name.md +++ b/markdown/bitburner.material.name.md @@ -6,7 +6,7 @@ Name of the material -Signature: +**Signature:** ```typescript name: CorpMaterialName; diff --git a/markdown/bitburner.material.prod.md b/markdown/bitburner.material.prod.md index e45e4f946..6f8970953 100644 --- a/markdown/bitburner.material.prod.md +++ b/markdown/bitburner.material.prod.md @@ -6,7 +6,7 @@ Amount of material produced -Signature: +**Signature:** ```typescript prod: number; diff --git a/markdown/bitburner.material.qlt.md b/markdown/bitburner.material.qlt.md index 1b0eccadc..4b9d7bf08 100644 --- a/markdown/bitburner.material.qlt.md +++ b/markdown/bitburner.material.qlt.md @@ -6,7 +6,7 @@ Quality of the material -Signature: +**Signature:** ```typescript qlt: number; diff --git a/markdown/bitburner.material.qty.md b/markdown/bitburner.material.qty.md index 148a724ac..b513825ba 100644 --- a/markdown/bitburner.material.qty.md +++ b/markdown/bitburner.material.qty.md @@ -6,7 +6,7 @@ Amount of material -Signature: +**Signature:** ```typescript qty: number; diff --git a/markdown/bitburner.material.scost.md b/markdown/bitburner.material.scost.md index 3a1fadbae..0704f080c 100644 --- a/markdown/bitburner.material.scost.md +++ b/markdown/bitburner.material.scost.md @@ -6,7 +6,7 @@ Sell cost, can be "MP+5" -Signature: +**Signature:** ```typescript sCost: string | number; diff --git a/markdown/bitburner.material.sell.md b/markdown/bitburner.material.sell.md index bde611e26..6c4b2042c 100644 --- a/markdown/bitburner.material.sell.md +++ b/markdown/bitburner.material.sell.md @@ -6,7 +6,7 @@ Amount of material sold -Signature: +**Signature:** ```typescript sell: number; diff --git a/markdown/bitburner.md b/markdown/bitburner.md index 605cb9c48..1a87e4e43 100644 --- a/markdown/bitburner.md +++ b/markdown/bitburner.md @@ -36,6 +36,7 @@ | [CorpMaterialConstantData](./bitburner.corpmaterialconstantdata.md) | Corporation material information | | [Corporation](./bitburner.corporation.md) | Corporation API | | [CorporationInfo](./bitburner.corporationinfo.md) | General info about a corporation | +| [CorpProductData](./bitburner.corpproductdata.md) | Product rating information | | [CrimeStats](./bitburner.crimestats.md) | Data representing the internal values of a crime. | | [Division](./bitburner.division.md) | Corporation division | | [EquipmentStats](./bitburner.equipmentstats.md) | Object representing data representing a gang member equipment. | @@ -93,7 +94,7 @@ | [SleevePerson](./bitburner.sleeveperson.md) | | | [SourceFileLvl](./bitburner.sourcefilelvl.md) | | | [Stanek](./bitburner.stanek.md) | Stanek's Gift API. | -| [StockOrder](./bitburner.stockorder.md) | Return value of [getOrders](./bitburner.tix.getorders.md)Keys are stock symbols, properties are arrays of [StockOrderObject](./bitburner.stockorderobject.md) | +| [StockOrder](./bitburner.stockorder.md) |

Return value of [getOrders](./bitburner.tix.getorders.md)

Keys are stock symbols, properties are arrays of [StockOrderObject](./bitburner.stockorderobject.md)

| | [StockOrderObject](./bitburner.stockorderobject.md) | Value in map of [StockOrder](./bitburner.stockorder.md) | | [TIX](./bitburner.tix.md) | Stock market API | | [UserInterface](./bitburner.userinterface.md) | User Interface API. | @@ -111,7 +112,6 @@ | [CorpEmployeePosition](./bitburner.corpemployeeposition.md) | | | [CorpIndustryName](./bitburner.corpindustryname.md) | | | [CorpMaterialName](./bitburner.corpmaterialname.md) | | -| [CorpProductData](./bitburner.corpproductdata.md) | Product rating information | | [CorpResearchName](./bitburner.corpresearchname.md) | | | [CorpStateName](./bitburner.corpstatename.md) | | | [CorpUnlockName](./bitburner.corpunlockname.md) | | diff --git a/markdown/bitburner.moneysource.augmentations.md b/markdown/bitburner.moneysource.augmentations.md index 93ef6ab91..76538e0f2 100644 --- a/markdown/bitburner.moneysource.augmentations.md +++ b/markdown/bitburner.moneysource.augmentations.md @@ -4,7 +4,7 @@ ## MoneySource.augmentations property -Signature: +**Signature:** ```typescript augmentations: number; diff --git a/markdown/bitburner.moneysource.bladeburner.md b/markdown/bitburner.moneysource.bladeburner.md index cbfe67ddd..807424362 100644 --- a/markdown/bitburner.moneysource.bladeburner.md +++ b/markdown/bitburner.moneysource.bladeburner.md @@ -4,7 +4,7 @@ ## MoneySource.bladeburner property -Signature: +**Signature:** ```typescript bladeburner: number; diff --git a/markdown/bitburner.moneysource.casino.md b/markdown/bitburner.moneysource.casino.md index 8b6349a6c..7edf448b9 100644 --- a/markdown/bitburner.moneysource.casino.md +++ b/markdown/bitburner.moneysource.casino.md @@ -4,7 +4,7 @@ ## MoneySource.casino property -Signature: +**Signature:** ```typescript casino: number; diff --git a/markdown/bitburner.moneysource.class.md b/markdown/bitburner.moneysource.class.md index 06de4e05e..2ece47255 100644 --- a/markdown/bitburner.moneysource.class.md +++ b/markdown/bitburner.moneysource.class.md @@ -4,7 +4,7 @@ ## MoneySource.class property -Signature: +**Signature:** ```typescript class: number; diff --git a/markdown/bitburner.moneysource.codingcontract.md b/markdown/bitburner.moneysource.codingcontract.md index 03a93781b..f6d32d602 100644 --- a/markdown/bitburner.moneysource.codingcontract.md +++ b/markdown/bitburner.moneysource.codingcontract.md @@ -4,7 +4,7 @@ ## MoneySource.codingcontract property -Signature: +**Signature:** ```typescript codingcontract: number; diff --git a/markdown/bitburner.moneysource.corporation.md b/markdown/bitburner.moneysource.corporation.md index 9bebb45f9..1586c3b9a 100644 --- a/markdown/bitburner.moneysource.corporation.md +++ b/markdown/bitburner.moneysource.corporation.md @@ -4,7 +4,7 @@ ## MoneySource.corporation property -Signature: +**Signature:** ```typescript corporation: number; diff --git a/markdown/bitburner.moneysource.crime.md b/markdown/bitburner.moneysource.crime.md index b2b25dc04..fd1f5a435 100644 --- a/markdown/bitburner.moneysource.crime.md +++ b/markdown/bitburner.moneysource.crime.md @@ -4,7 +4,7 @@ ## MoneySource.crime property -Signature: +**Signature:** ```typescript crime: number; diff --git a/markdown/bitburner.moneysource.gang.md b/markdown/bitburner.moneysource.gang.md index f5fce3239..7987db0ad 100644 --- a/markdown/bitburner.moneysource.gang.md +++ b/markdown/bitburner.moneysource.gang.md @@ -4,7 +4,7 @@ ## MoneySource.gang property -Signature: +**Signature:** ```typescript gang: number; diff --git a/markdown/bitburner.moneysource.hacking.md b/markdown/bitburner.moneysource.hacking.md index 267e0c18a..1f7a22e57 100644 --- a/markdown/bitburner.moneysource.hacking.md +++ b/markdown/bitburner.moneysource.hacking.md @@ -4,7 +4,7 @@ ## MoneySource.hacking property -Signature: +**Signature:** ```typescript hacking: number; diff --git a/markdown/bitburner.moneysource.hacknet.md b/markdown/bitburner.moneysource.hacknet.md index e699cc947..b9d934c16 100644 --- a/markdown/bitburner.moneysource.hacknet.md +++ b/markdown/bitburner.moneysource.hacknet.md @@ -4,7 +4,7 @@ ## MoneySource.hacknet property -Signature: +**Signature:** ```typescript hacknet: number; diff --git a/markdown/bitburner.moneysource.hacknet_expenses.md b/markdown/bitburner.moneysource.hacknet_expenses.md index 8d8c0accb..6bc12e450 100644 --- a/markdown/bitburner.moneysource.hacknet_expenses.md +++ b/markdown/bitburner.moneysource.hacknet_expenses.md @@ -4,7 +4,7 @@ ## MoneySource.hacknet\_expenses property -Signature: +**Signature:** ```typescript hacknet_expenses: number; diff --git a/markdown/bitburner.moneysource.hospitalization.md b/markdown/bitburner.moneysource.hospitalization.md index 147f09615..18d87ca4d 100644 --- a/markdown/bitburner.moneysource.hospitalization.md +++ b/markdown/bitburner.moneysource.hospitalization.md @@ -4,7 +4,7 @@ ## MoneySource.hospitalization property -Signature: +**Signature:** ```typescript hospitalization: number; diff --git a/markdown/bitburner.moneysource.infiltration.md b/markdown/bitburner.moneysource.infiltration.md index 313ca1559..bd41e3728 100644 --- a/markdown/bitburner.moneysource.infiltration.md +++ b/markdown/bitburner.moneysource.infiltration.md @@ -4,7 +4,7 @@ ## MoneySource.infiltration property -Signature: +**Signature:** ```typescript infiltration: number; diff --git a/markdown/bitburner.moneysource.md b/markdown/bitburner.moneysource.md index 4229f97e1..e057e8146 100644 --- a/markdown/bitburner.moneysource.md +++ b/markdown/bitburner.moneysource.md @@ -5,7 +5,7 @@ ## MoneySource interface -Signature: +**Signature:** ```typescript interface MoneySource @@ -13,25 +13,25 @@ interface MoneySource ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [augmentations](./bitburner.moneysource.augmentations.md) | number | | -| [bladeburner](./bitburner.moneysource.bladeburner.md) | number | | -| [casino](./bitburner.moneysource.casino.md) | number | | -| [class](./bitburner.moneysource.class.md) | number | | -| [codingcontract](./bitburner.moneysource.codingcontract.md) | number | | -| [corporation](./bitburner.moneysource.corporation.md) | number | | -| [crime](./bitburner.moneysource.crime.md) | number | | -| [gang](./bitburner.moneysource.gang.md) | number | | -| [hacking](./bitburner.moneysource.hacking.md) | number | | -| [hacknet\_expenses](./bitburner.moneysource.hacknet_expenses.md) | number | | -| [hacknet](./bitburner.moneysource.hacknet.md) | number | | -| [hospitalization](./bitburner.moneysource.hospitalization.md) | number | | -| [infiltration](./bitburner.moneysource.infiltration.md) | number | | -| [other](./bitburner.moneysource.other.md) | number | | -| [servers](./bitburner.moneysource.servers.md) | number | | -| [sleeves](./bitburner.moneysource.sleeves.md) | number | | -| [stock](./bitburner.moneysource.stock.md) | number | | -| [total](./bitburner.moneysource.total.md) | number | | -| [work](./bitburner.moneysource.work.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [augmentations](./bitburner.moneysource.augmentations.md) | | number | | +| [bladeburner](./bitburner.moneysource.bladeburner.md) | | number | | +| [casino](./bitburner.moneysource.casino.md) | | number | | +| [class](./bitburner.moneysource.class.md) | | number | | +| [codingcontract](./bitburner.moneysource.codingcontract.md) | | number | | +| [corporation](./bitburner.moneysource.corporation.md) | | number | | +| [crime](./bitburner.moneysource.crime.md) | | number | | +| [gang](./bitburner.moneysource.gang.md) | | number | | +| [hacking](./bitburner.moneysource.hacking.md) | | number | | +| [hacknet\_expenses](./bitburner.moneysource.hacknet_expenses.md) | | number | | +| [hacknet](./bitburner.moneysource.hacknet.md) | | number | | +| [hospitalization](./bitburner.moneysource.hospitalization.md) | | number | | +| [infiltration](./bitburner.moneysource.infiltration.md) | | number | | +| [other](./bitburner.moneysource.other.md) | | number | | +| [servers](./bitburner.moneysource.servers.md) | | number | | +| [sleeves](./bitburner.moneysource.sleeves.md) | | number | | +| [stock](./bitburner.moneysource.stock.md) | | number | | +| [total](./bitburner.moneysource.total.md) | | number | | +| [work](./bitburner.moneysource.work.md) | | number | | diff --git a/markdown/bitburner.moneysource.other.md b/markdown/bitburner.moneysource.other.md index 8325161b3..ad8e58bee 100644 --- a/markdown/bitburner.moneysource.other.md +++ b/markdown/bitburner.moneysource.other.md @@ -4,7 +4,7 @@ ## MoneySource.other property -Signature: +**Signature:** ```typescript other: number; diff --git a/markdown/bitburner.moneysource.servers.md b/markdown/bitburner.moneysource.servers.md index 2ed8fd6e1..8d6e612c5 100644 --- a/markdown/bitburner.moneysource.servers.md +++ b/markdown/bitburner.moneysource.servers.md @@ -4,7 +4,7 @@ ## MoneySource.servers property -Signature: +**Signature:** ```typescript servers: number; diff --git a/markdown/bitburner.moneysource.sleeves.md b/markdown/bitburner.moneysource.sleeves.md index edfa122b6..82dec8da1 100644 --- a/markdown/bitburner.moneysource.sleeves.md +++ b/markdown/bitburner.moneysource.sleeves.md @@ -4,7 +4,7 @@ ## MoneySource.sleeves property -Signature: +**Signature:** ```typescript sleeves: number; diff --git a/markdown/bitburner.moneysource.stock.md b/markdown/bitburner.moneysource.stock.md index 0945cffd7..748e36ce1 100644 --- a/markdown/bitburner.moneysource.stock.md +++ b/markdown/bitburner.moneysource.stock.md @@ -4,7 +4,7 @@ ## MoneySource.stock property -Signature: +**Signature:** ```typescript stock: number; diff --git a/markdown/bitburner.moneysource.total.md b/markdown/bitburner.moneysource.total.md index 3ecaf45f5..3f8ec2817 100644 --- a/markdown/bitburner.moneysource.total.md +++ b/markdown/bitburner.moneysource.total.md @@ -4,7 +4,7 @@ ## MoneySource.total property -Signature: +**Signature:** ```typescript total: number; diff --git a/markdown/bitburner.moneysource.work.md b/markdown/bitburner.moneysource.work.md index 651a296a9..f5703a576 100644 --- a/markdown/bitburner.moneysource.work.md +++ b/markdown/bitburner.moneysource.work.md @@ -4,7 +4,7 @@ ## MoneySource.work property -Signature: +**Signature:** ```typescript work: number; diff --git a/markdown/bitburner.moneysources.md b/markdown/bitburner.moneysources.md index 6a4feb072..810b8fe88 100644 --- a/markdown/bitburner.moneysources.md +++ b/markdown/bitburner.moneysources.md @@ -5,7 +5,7 @@ ## MoneySources interface -Signature: +**Signature:** ```typescript interface MoneySources @@ -13,8 +13,8 @@ interface MoneySources ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [sinceInstall](./bitburner.moneysources.sinceinstall.md) | [MoneySource](./bitburner.moneysource.md) | | -| [sinceStart](./bitburner.moneysources.sincestart.md) | [MoneySource](./bitburner.moneysource.md) | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [sinceInstall](./bitburner.moneysources.sinceinstall.md) | | [MoneySource](./bitburner.moneysource.md) | | +| [sinceStart](./bitburner.moneysources.sincestart.md) | | [MoneySource](./bitburner.moneysource.md) | | diff --git a/markdown/bitburner.moneysources.sinceinstall.md b/markdown/bitburner.moneysources.sinceinstall.md index f49ec1d50..ef322fbe1 100644 --- a/markdown/bitburner.moneysources.sinceinstall.md +++ b/markdown/bitburner.moneysources.sinceinstall.md @@ -4,7 +4,7 @@ ## MoneySources.sinceInstall property -Signature: +**Signature:** ```typescript sinceInstall: MoneySource; diff --git a/markdown/bitburner.moneysources.sincestart.md b/markdown/bitburner.moneysources.sincestart.md index b3815d1ff..ff4879d40 100644 --- a/markdown/bitburner.moneysources.sincestart.md +++ b/markdown/bitburner.moneysources.sincestart.md @@ -4,7 +4,7 @@ ## MoneySources.sinceStart property -Signature: +**Signature:** ```typescript sinceStart: MoneySource; diff --git a/markdown/bitburner.multipliers.agility.md b/markdown/bitburner.multipliers.agility.md index 20585bc38..8fd919522 100644 --- a/markdown/bitburner.multipliers.agility.md +++ b/markdown/bitburner.multipliers.agility.md @@ -6,7 +6,7 @@ Multiplier to agility skill -Signature: +**Signature:** ```typescript agility: number; diff --git a/markdown/bitburner.multipliers.agility_exp.md b/markdown/bitburner.multipliers.agility_exp.md index 8fa3bd538..4a4380398 100644 --- a/markdown/bitburner.multipliers.agility_exp.md +++ b/markdown/bitburner.multipliers.agility_exp.md @@ -6,7 +6,7 @@ Multiplier to agility experience gain rate -Signature: +**Signature:** ```typescript agility_exp: number; diff --git a/markdown/bitburner.multipliers.bladeburner_analysis.md b/markdown/bitburner.multipliers.bladeburner_analysis.md index 2d9139730..53652b41c 100644 --- a/markdown/bitburner.multipliers.bladeburner_analysis.md +++ b/markdown/bitburner.multipliers.bladeburner_analysis.md @@ -6,7 +6,7 @@ Multiplier to effectiveness in Bladeburner Field Analysis -Signature: +**Signature:** ```typescript bladeburner_analysis: number; diff --git a/markdown/bitburner.multipliers.bladeburner_max_stamina.md b/markdown/bitburner.multipliers.bladeburner_max_stamina.md index a8cc6e894..57a2db124 100644 --- a/markdown/bitburner.multipliers.bladeburner_max_stamina.md +++ b/markdown/bitburner.multipliers.bladeburner_max_stamina.md @@ -6,7 +6,7 @@ Multiplier to Bladeburner max stamina -Signature: +**Signature:** ```typescript bladeburner_max_stamina: number; diff --git a/markdown/bitburner.multipliers.bladeburner_stamina_gain.md b/markdown/bitburner.multipliers.bladeburner_stamina_gain.md index e788d5270..e29f38f5b 100644 --- a/markdown/bitburner.multipliers.bladeburner_stamina_gain.md +++ b/markdown/bitburner.multipliers.bladeburner_stamina_gain.md @@ -6,7 +6,7 @@ Multiplier to Bladeburner stamina gain rate -Signature: +**Signature:** ```typescript bladeburner_stamina_gain: number; diff --git a/markdown/bitburner.multipliers.bladeburner_success_chance.md b/markdown/bitburner.multipliers.bladeburner_success_chance.md index 7fdadf337..bd6a07e05 100644 --- a/markdown/bitburner.multipliers.bladeburner_success_chance.md +++ b/markdown/bitburner.multipliers.bladeburner_success_chance.md @@ -6,7 +6,7 @@ Multiplier to success chance in Bladeburner contracts/operations -Signature: +**Signature:** ```typescript bladeburner_success_chance: number; diff --git a/markdown/bitburner.multipliers.charisma.md b/markdown/bitburner.multipliers.charisma.md index a0e97bb18..00a6707c4 100644 --- a/markdown/bitburner.multipliers.charisma.md +++ b/markdown/bitburner.multipliers.charisma.md @@ -6,7 +6,7 @@ Multiplier to charisma skill -Signature: +**Signature:** ```typescript charisma: number; diff --git a/markdown/bitburner.multipliers.charisma_exp.md b/markdown/bitburner.multipliers.charisma_exp.md index 0df9127b0..a05c98bc0 100644 --- a/markdown/bitburner.multipliers.charisma_exp.md +++ b/markdown/bitburner.multipliers.charisma_exp.md @@ -6,7 +6,7 @@ Multiplier to charisma experience gain rate -Signature: +**Signature:** ```typescript charisma_exp: number; diff --git a/markdown/bitburner.multipliers.company_rep.md b/markdown/bitburner.multipliers.company_rep.md index 437fd6899..1584d713a 100644 --- a/markdown/bitburner.multipliers.company_rep.md +++ b/markdown/bitburner.multipliers.company_rep.md @@ -6,7 +6,7 @@ Multiplier to amount of reputation gained when working -Signature: +**Signature:** ```typescript company_rep: number; diff --git a/markdown/bitburner.multipliers.crime_money.md b/markdown/bitburner.multipliers.crime_money.md index 2661c6a5b..fd50aec2e 100644 --- a/markdown/bitburner.multipliers.crime_money.md +++ b/markdown/bitburner.multipliers.crime_money.md @@ -6,7 +6,7 @@ Multiplier to amount of money gained from crimes -Signature: +**Signature:** ```typescript crime_money: number; diff --git a/markdown/bitburner.multipliers.crime_success.md b/markdown/bitburner.multipliers.crime_success.md index 786833272..a7c924613 100644 --- a/markdown/bitburner.multipliers.crime_success.md +++ b/markdown/bitburner.multipliers.crime_success.md @@ -6,7 +6,7 @@ Multiplier to crime success rate -Signature: +**Signature:** ```typescript crime_success: number; diff --git a/markdown/bitburner.multipliers.defense.md b/markdown/bitburner.multipliers.defense.md index ac3f167a7..8b5b05756 100644 --- a/markdown/bitburner.multipliers.defense.md +++ b/markdown/bitburner.multipliers.defense.md @@ -6,7 +6,7 @@ Multiplier to defense skill -Signature: +**Signature:** ```typescript defense: number; diff --git a/markdown/bitburner.multipliers.defense_exp.md b/markdown/bitburner.multipliers.defense_exp.md index 75f00f129..1b48ef7a3 100644 --- a/markdown/bitburner.multipliers.defense_exp.md +++ b/markdown/bitburner.multipliers.defense_exp.md @@ -6,7 +6,7 @@ Multiplier to defense experience gain rate -Signature: +**Signature:** ```typescript defense_exp: number; diff --git a/markdown/bitburner.multipliers.dexterity.md b/markdown/bitburner.multipliers.dexterity.md index 8b6b06871..4a86d26ba 100644 --- a/markdown/bitburner.multipliers.dexterity.md +++ b/markdown/bitburner.multipliers.dexterity.md @@ -6,7 +6,7 @@ Multiplier to dexterity skill -Signature: +**Signature:** ```typescript dexterity: number; diff --git a/markdown/bitburner.multipliers.dexterity_exp.md b/markdown/bitburner.multipliers.dexterity_exp.md index ac8257621..09d22c2b7 100644 --- a/markdown/bitburner.multipliers.dexterity_exp.md +++ b/markdown/bitburner.multipliers.dexterity_exp.md @@ -6,7 +6,7 @@ Multiplier to dexterity experience gain rate -Signature: +**Signature:** ```typescript dexterity_exp: number; diff --git a/markdown/bitburner.multipliers.faction_rep.md b/markdown/bitburner.multipliers.faction_rep.md index fe87569a6..99afafacf 100644 --- a/markdown/bitburner.multipliers.faction_rep.md +++ b/markdown/bitburner.multipliers.faction_rep.md @@ -6,7 +6,7 @@ Multiplier to amount of reputation gained when working -Signature: +**Signature:** ```typescript faction_rep: number; diff --git a/markdown/bitburner.multipliers.hacking.md b/markdown/bitburner.multipliers.hacking.md index 724b17954..ea58e86f2 100644 --- a/markdown/bitburner.multipliers.hacking.md +++ b/markdown/bitburner.multipliers.hacking.md @@ -6,7 +6,7 @@ Multiplier to hacking skill -Signature: +**Signature:** ```typescript hacking: number; diff --git a/markdown/bitburner.multipliers.hacking_chance.md b/markdown/bitburner.multipliers.hacking_chance.md index 13c132daa..3e22ec055 100644 --- a/markdown/bitburner.multipliers.hacking_chance.md +++ b/markdown/bitburner.multipliers.hacking_chance.md @@ -6,7 +6,7 @@ Multiplier to chance of successfully performing a hack -Signature: +**Signature:** ```typescript hacking_chance: number; diff --git a/markdown/bitburner.multipliers.hacking_exp.md b/markdown/bitburner.multipliers.hacking_exp.md index 8f2254ef7..ce3d2d480 100644 --- a/markdown/bitburner.multipliers.hacking_exp.md +++ b/markdown/bitburner.multipliers.hacking_exp.md @@ -6,7 +6,7 @@ Multiplier to hacking experience gain rate -Signature: +**Signature:** ```typescript hacking_exp: number; diff --git a/markdown/bitburner.multipliers.hacking_grow.md b/markdown/bitburner.multipliers.hacking_grow.md index ed99b9dc8..f582665a4 100644 --- a/markdown/bitburner.multipliers.hacking_grow.md +++ b/markdown/bitburner.multipliers.hacking_grow.md @@ -6,7 +6,7 @@ Multiplier to amount of money injected into servers using grow -Signature: +**Signature:** ```typescript hacking_grow: number; diff --git a/markdown/bitburner.multipliers.hacking_money.md b/markdown/bitburner.multipliers.hacking_money.md index 3f2711589..72ff7adb6 100644 --- a/markdown/bitburner.multipliers.hacking_money.md +++ b/markdown/bitburner.multipliers.hacking_money.md @@ -6,7 +6,7 @@ Multiplier to amount of money the player gains from hacking -Signature: +**Signature:** ```typescript hacking_money: number; diff --git a/markdown/bitburner.multipliers.hacking_speed.md b/markdown/bitburner.multipliers.hacking_speed.md index 9829bd592..f044a386d 100644 --- a/markdown/bitburner.multipliers.hacking_speed.md +++ b/markdown/bitburner.multipliers.hacking_speed.md @@ -6,7 +6,7 @@ Multiplier to hacking speed -Signature: +**Signature:** ```typescript hacking_speed: number; diff --git a/markdown/bitburner.multipliers.hacknet_node_core_cost.md b/markdown/bitburner.multipliers.hacknet_node_core_cost.md index 80c146d22..bd04ff0e7 100644 --- a/markdown/bitburner.multipliers.hacknet_node_core_cost.md +++ b/markdown/bitburner.multipliers.hacknet_node_core_cost.md @@ -6,7 +6,7 @@ Multiplier to cost of core for a Hacknet Node -Signature: +**Signature:** ```typescript hacknet_node_core_cost: number; diff --git a/markdown/bitburner.multipliers.hacknet_node_level_cost.md b/markdown/bitburner.multipliers.hacknet_node_level_cost.md index 31c531c6f..b9cc5ed99 100644 --- a/markdown/bitburner.multipliers.hacknet_node_level_cost.md +++ b/markdown/bitburner.multipliers.hacknet_node_level_cost.md @@ -6,7 +6,7 @@ Multiplier to cost of leveling up a Hacknet Node -Signature: +**Signature:** ```typescript hacknet_node_level_cost: number; diff --git a/markdown/bitburner.multipliers.hacknet_node_money.md b/markdown/bitburner.multipliers.hacknet_node_money.md index 68a8f64a4..19545bd11 100644 --- a/markdown/bitburner.multipliers.hacknet_node_money.md +++ b/markdown/bitburner.multipliers.hacknet_node_money.md @@ -6,7 +6,7 @@ Multiplier to amount of money produced by Hacknet Nodes -Signature: +**Signature:** ```typescript hacknet_node_money: number; diff --git a/markdown/bitburner.multipliers.hacknet_node_purchase_cost.md b/markdown/bitburner.multipliers.hacknet_node_purchase_cost.md index 4a2f82561..a13c5c8c0 100644 --- a/markdown/bitburner.multipliers.hacknet_node_purchase_cost.md +++ b/markdown/bitburner.multipliers.hacknet_node_purchase_cost.md @@ -6,7 +6,7 @@ Multiplier to cost of purchasing a Hacknet Node -Signature: +**Signature:** ```typescript hacknet_node_purchase_cost: number; diff --git a/markdown/bitburner.multipliers.hacknet_node_ram_cost.md b/markdown/bitburner.multipliers.hacknet_node_ram_cost.md index 214f09893..8a3ee7dc8 100644 --- a/markdown/bitburner.multipliers.hacknet_node_ram_cost.md +++ b/markdown/bitburner.multipliers.hacknet_node_ram_cost.md @@ -6,7 +6,7 @@ Multiplier to cost of ram for a Hacknet Node -Signature: +**Signature:** ```typescript hacknet_node_ram_cost: number; diff --git a/markdown/bitburner.multipliers.md b/markdown/bitburner.multipliers.md index 5e713fe7b..1d8c82102 100644 --- a/markdown/bitburner.multipliers.md +++ b/markdown/bitburner.multipliers.md @@ -5,7 +5,7 @@ ## Multipliers interface -Signature: +**Signature:** ```typescript interface Multipliers @@ -13,36 +13,36 @@ interface Multipliers ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agility\_exp](./bitburner.multipliers.agility_exp.md) | number | Multiplier to agility experience gain rate | -| [agility](./bitburner.multipliers.agility.md) | number | Multiplier to agility skill | -| [bladeburner\_analysis](./bitburner.multipliers.bladeburner_analysis.md) | number | Multiplier to effectiveness in Bladeburner Field Analysis | -| [bladeburner\_max\_stamina](./bitburner.multipliers.bladeburner_max_stamina.md) | number | Multiplier to Bladeburner max stamina | -| [bladeburner\_stamina\_gain](./bitburner.multipliers.bladeburner_stamina_gain.md) | number | Multiplier to Bladeburner stamina gain rate | -| [bladeburner\_success\_chance](./bitburner.multipliers.bladeburner_success_chance.md) | number | Multiplier to success chance in Bladeburner contracts/operations | -| [charisma\_exp](./bitburner.multipliers.charisma_exp.md) | number | Multiplier to charisma experience gain rate | -| [charisma](./bitburner.multipliers.charisma.md) | number | Multiplier to charisma skill | -| [company\_rep](./bitburner.multipliers.company_rep.md) | number | Multiplier to amount of reputation gained when working | -| [crime\_money](./bitburner.multipliers.crime_money.md) | number | Multiplier to amount of money gained from crimes | -| [crime\_success](./bitburner.multipliers.crime_success.md) | number | Multiplier to crime success rate | -| [defense\_exp](./bitburner.multipliers.defense_exp.md) | number | Multiplier to defense experience gain rate | -| [defense](./bitburner.multipliers.defense.md) | number | Multiplier to defense skill | -| [dexterity\_exp](./bitburner.multipliers.dexterity_exp.md) | number | Multiplier to dexterity experience gain rate | -| [dexterity](./bitburner.multipliers.dexterity.md) | number | Multiplier to dexterity skill | -| [faction\_rep](./bitburner.multipliers.faction_rep.md) | number | Multiplier to amount of reputation gained when working | -| [hacking\_chance](./bitburner.multipliers.hacking_chance.md) | number | Multiplier to chance of successfully performing a hack | -| [hacking\_exp](./bitburner.multipliers.hacking_exp.md) | number | Multiplier to hacking experience gain rate | -| [hacking\_grow](./bitburner.multipliers.hacking_grow.md) | number | Multiplier to amount of money injected into servers using grow | -| [hacking\_money](./bitburner.multipliers.hacking_money.md) | number | Multiplier to amount of money the player gains from hacking | -| [hacking\_speed](./bitburner.multipliers.hacking_speed.md) | number | Multiplier to hacking speed | -| [hacking](./bitburner.multipliers.hacking.md) | number | Multiplier to hacking skill | -| [hacknet\_node\_core\_cost](./bitburner.multipliers.hacknet_node_core_cost.md) | number | Multiplier to cost of core for a Hacknet Node | -| [hacknet\_node\_level\_cost](./bitburner.multipliers.hacknet_node_level_cost.md) | number | Multiplier to cost of leveling up a Hacknet Node | -| [hacknet\_node\_money](./bitburner.multipliers.hacknet_node_money.md) | number | Multiplier to amount of money produced by Hacknet Nodes | -| [hacknet\_node\_purchase\_cost](./bitburner.multipliers.hacknet_node_purchase_cost.md) | number | Multiplier to cost of purchasing a Hacknet Node | -| [hacknet\_node\_ram\_cost](./bitburner.multipliers.hacknet_node_ram_cost.md) | number | Multiplier to cost of ram for a Hacknet Node | -| [strength\_exp](./bitburner.multipliers.strength_exp.md) | number | Multiplier to strength experience gain rate | -| [strength](./bitburner.multipliers.strength.md) | number | Multiplier to strength skill | -| [work\_money](./bitburner.multipliers.work_money.md) | number | Multiplier to amount of money gained from working | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agility\_exp](./bitburner.multipliers.agility_exp.md) | | number | Multiplier to agility experience gain rate | +| [agility](./bitburner.multipliers.agility.md) | | number | Multiplier to agility skill | +| [bladeburner\_analysis](./bitburner.multipliers.bladeburner_analysis.md) | | number | Multiplier to effectiveness in Bladeburner Field Analysis | +| [bladeburner\_max\_stamina](./bitburner.multipliers.bladeburner_max_stamina.md) | | number | Multiplier to Bladeburner max stamina | +| [bladeburner\_stamina\_gain](./bitburner.multipliers.bladeburner_stamina_gain.md) | | number | Multiplier to Bladeburner stamina gain rate | +| [bladeburner\_success\_chance](./bitburner.multipliers.bladeburner_success_chance.md) | | number | Multiplier to success chance in Bladeburner contracts/operations | +| [charisma\_exp](./bitburner.multipliers.charisma_exp.md) | | number | Multiplier to charisma experience gain rate | +| [charisma](./bitburner.multipliers.charisma.md) | | number | Multiplier to charisma skill | +| [company\_rep](./bitburner.multipliers.company_rep.md) | | number | Multiplier to amount of reputation gained when working | +| [crime\_money](./bitburner.multipliers.crime_money.md) | | number | Multiplier to amount of money gained from crimes | +| [crime\_success](./bitburner.multipliers.crime_success.md) | | number | Multiplier to crime success rate | +| [defense\_exp](./bitburner.multipliers.defense_exp.md) | | number | Multiplier to defense experience gain rate | +| [defense](./bitburner.multipliers.defense.md) | | number | Multiplier to defense skill | +| [dexterity\_exp](./bitburner.multipliers.dexterity_exp.md) | | number | Multiplier to dexterity experience gain rate | +| [dexterity](./bitburner.multipliers.dexterity.md) | | number | Multiplier to dexterity skill | +| [faction\_rep](./bitburner.multipliers.faction_rep.md) | | number | Multiplier to amount of reputation gained when working | +| [hacking\_chance](./bitburner.multipliers.hacking_chance.md) | | number | Multiplier to chance of successfully performing a hack | +| [hacking\_exp](./bitburner.multipliers.hacking_exp.md) | | number | Multiplier to hacking experience gain rate | +| [hacking\_grow](./bitburner.multipliers.hacking_grow.md) | | number | Multiplier to amount of money injected into servers using grow | +| [hacking\_money](./bitburner.multipliers.hacking_money.md) | | number | Multiplier to amount of money the player gains from hacking | +| [hacking\_speed](./bitburner.multipliers.hacking_speed.md) | | number | Multiplier to hacking speed | +| [hacking](./bitburner.multipliers.hacking.md) | | number | Multiplier to hacking skill | +| [hacknet\_node\_core\_cost](./bitburner.multipliers.hacknet_node_core_cost.md) | | number | Multiplier to cost of core for a Hacknet Node | +| [hacknet\_node\_level\_cost](./bitburner.multipliers.hacknet_node_level_cost.md) | | number | Multiplier to cost of leveling up a Hacknet Node | +| [hacknet\_node\_money](./bitburner.multipliers.hacknet_node_money.md) | | number | Multiplier to amount of money produced by Hacknet Nodes | +| [hacknet\_node\_purchase\_cost](./bitburner.multipliers.hacknet_node_purchase_cost.md) | | number | Multiplier to cost of purchasing a Hacknet Node | +| [hacknet\_node\_ram\_cost](./bitburner.multipliers.hacknet_node_ram_cost.md) | | number | Multiplier to cost of ram for a Hacknet Node | +| [strength\_exp](./bitburner.multipliers.strength_exp.md) | | number | Multiplier to strength experience gain rate | +| [strength](./bitburner.multipliers.strength.md) | | number | Multiplier to strength skill | +| [work\_money](./bitburner.multipliers.work_money.md) | | number | Multiplier to amount of money gained from working | diff --git a/markdown/bitburner.multipliers.strength.md b/markdown/bitburner.multipliers.strength.md index 8ada3414d..b94d0b9b5 100644 --- a/markdown/bitburner.multipliers.strength.md +++ b/markdown/bitburner.multipliers.strength.md @@ -6,7 +6,7 @@ Multiplier to strength skill -Signature: +**Signature:** ```typescript strength: number; diff --git a/markdown/bitburner.multipliers.strength_exp.md b/markdown/bitburner.multipliers.strength_exp.md index a4d1d8645..1fad80020 100644 --- a/markdown/bitburner.multipliers.strength_exp.md +++ b/markdown/bitburner.multipliers.strength_exp.md @@ -6,7 +6,7 @@ Multiplier to strength experience gain rate -Signature: +**Signature:** ```typescript strength_exp: number; diff --git a/markdown/bitburner.multipliers.work_money.md b/markdown/bitburner.multipliers.work_money.md index c6e4e2a8a..037640a78 100644 --- a/markdown/bitburner.multipliers.work_money.md +++ b/markdown/bitburner.multipliers.work_money.md @@ -6,7 +6,7 @@ Multiplier to amount of money gained from working -Signature: +**Signature:** ```typescript work_money: number; diff --git a/markdown/bitburner.netscriptport.clear.md b/markdown/bitburner.netscriptport.clear.md index a3c2d5267..380fecce6 100644 --- a/markdown/bitburner.netscriptport.clear.md +++ b/markdown/bitburner.netscriptport.clear.md @@ -6,12 +6,12 @@ Empties all data from the port. -Signature: +**Signature:** ```typescript clear(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.netscriptport.empty.md b/markdown/bitburner.netscriptport.empty.md index 50e3b972d..a195af76d 100644 --- a/markdown/bitburner.netscriptport.empty.md +++ b/markdown/bitburner.netscriptport.empty.md @@ -6,12 +6,12 @@ Check if the port is empty. -Signature: +**Signature:** ```typescript empty(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.netscriptport.full.md b/markdown/bitburner.netscriptport.full.md index b21d20999..bdeae6f44 100644 --- a/markdown/bitburner.netscriptport.full.md +++ b/markdown/bitburner.netscriptport.full.md @@ -6,12 +6,12 @@ Check if the port is full. -Signature: +**Signature:** ```typescript full(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.netscriptport.md b/markdown/bitburner.netscriptport.md index af210fcea..e6214424b 100644 --- a/markdown/bitburner.netscriptport.md +++ b/markdown/bitburner.netscriptport.md @@ -6,7 +6,7 @@ Object representing a port. A port is a serialized queue. -Signature: +**Signature:** ```typescript interface NetscriptPort diff --git a/markdown/bitburner.netscriptport.nextwrite.md b/markdown/bitburner.netscriptport.nextwrite.md index 7edee092b..fa7ebffcd 100644 --- a/markdown/bitburner.netscriptport.nextwrite.md +++ b/markdown/bitburner.netscriptport.nextwrite.md @@ -6,12 +6,12 @@ Sleeps until the port is written to. -Signature: +**Signature:** ```typescript nextWrite(): Promise; ``` -Returns: +**Returns:** Promise<void> diff --git a/markdown/bitburner.netscriptport.peek.md b/markdown/bitburner.netscriptport.peek.md index 4a3363045..6c2267d04 100644 --- a/markdown/bitburner.netscriptport.peek.md +++ b/markdown/bitburner.netscriptport.peek.md @@ -6,12 +6,12 @@ Retrieve the first element from the port without removing it. -Signature: +**Signature:** ```typescript peek(): PortData; ``` -Returns: +**Returns:** [PortData](./bitburner.portdata.md) diff --git a/markdown/bitburner.netscriptport.read.md b/markdown/bitburner.netscriptport.read.md index 6f22960cb..b9eea7bd8 100644 --- a/markdown/bitburner.netscriptport.read.md +++ b/markdown/bitburner.netscriptport.read.md @@ -6,12 +6,12 @@ Shift an element out of the port. -Signature: +**Signature:** ```typescript read(): PortData; ``` -Returns: +**Returns:** [PortData](./bitburner.portdata.md) diff --git a/markdown/bitburner.netscriptport.trywrite.md b/markdown/bitburner.netscriptport.trywrite.md index 0a7df6d19..051a54839 100644 --- a/markdown/bitburner.netscriptport.trywrite.md +++ b/markdown/bitburner.netscriptport.trywrite.md @@ -6,7 +6,7 @@ Attempt to write data to the port. -Signature: +**Signature:** ```typescript tryWrite(value: string | number): boolean; @@ -18,7 +18,7 @@ tryWrite(value: string | number): boolean; | --- | --- | --- | | value | string \| number | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.netscriptport.write.md b/markdown/bitburner.netscriptport.write.md index f4435e944..f099676e4 100644 --- a/markdown/bitburner.netscriptport.write.md +++ b/markdown/bitburner.netscriptport.write.md @@ -6,7 +6,7 @@ Write data to a port. -Signature: +**Signature:** ```typescript write(value: string | number): PortData | null; @@ -18,7 +18,7 @@ write(value: string | number): PortData | null; | --- | --- | --- | | value | string \| number | | -Returns: +**Returns:** [PortData](./bitburner.portdata.md) \| null diff --git a/markdown/bitburner.nodestats.cache.md b/markdown/bitburner.nodestats.cache.md index dc7f46034..7344f194c 100644 --- a/markdown/bitburner.nodestats.cache.md +++ b/markdown/bitburner.nodestats.cache.md @@ -6,7 +6,7 @@ Cache level. Only applicable for Hacknet Servers -Signature: +**Signature:** ```typescript cache?: number; diff --git a/markdown/bitburner.nodestats.cores.md b/markdown/bitburner.nodestats.cores.md index 1f172625d..f2ed1265d 100644 --- a/markdown/bitburner.nodestats.cores.md +++ b/markdown/bitburner.nodestats.cores.md @@ -6,7 +6,7 @@ Node's number of cores -Signature: +**Signature:** ```typescript cores: number; diff --git a/markdown/bitburner.nodestats.hashcapacity.md b/markdown/bitburner.nodestats.hashcapacity.md index c63301993..6db11020b 100644 --- a/markdown/bitburner.nodestats.hashcapacity.md +++ b/markdown/bitburner.nodestats.hashcapacity.md @@ -6,7 +6,7 @@ Hash Capacity provided by this Node. Only applicable for Hacknet Servers -Signature: +**Signature:** ```typescript hashCapacity?: number; diff --git a/markdown/bitburner.nodestats.level.md b/markdown/bitburner.nodestats.level.md index f4831524c..6be275a42 100644 --- a/markdown/bitburner.nodestats.level.md +++ b/markdown/bitburner.nodestats.level.md @@ -6,7 +6,7 @@ Node's level -Signature: +**Signature:** ```typescript level: number; diff --git a/markdown/bitburner.nodestats.md b/markdown/bitburner.nodestats.md index b0ade5673..88c5b8100 100644 --- a/markdown/bitburner.nodestats.md +++ b/markdown/bitburner.nodestats.md @@ -6,7 +6,7 @@ Object representing all the values related to a hacknet node. -Signature: +**Signature:** ```typescript interface NodeStats @@ -14,16 +14,16 @@ interface NodeStats ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [cache?](./bitburner.nodestats.cache.md) | number | (Optional) Cache level. Only applicable for Hacknet Servers | -| [cores](./bitburner.nodestats.cores.md) | number | Node's number of cores | -| [hashCapacity?](./bitburner.nodestats.hashcapacity.md) | number | (Optional) Hash Capacity provided by this Node. Only applicable for Hacknet Servers | -| [level](./bitburner.nodestats.level.md) | number | Node's level | -| [name](./bitburner.nodestats.name.md) | string | Node's name | -| [production](./bitburner.nodestats.production.md) | number | Node's production per second | -| [ram](./bitburner.nodestats.ram.md) | number | Node's RAM (GB) | -| [ramUsed?](./bitburner.nodestats.ramused.md) | number | (Optional) Node's used RAM (GB) | -| [timeOnline](./bitburner.nodestats.timeonline.md) | number | Number of seconds since Node has been purchased | -| [totalProduction](./bitburner.nodestats.totalproduction.md) | number | Total number of money Node has produced | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [cache?](./bitburner.nodestats.cache.md) | | number | _(Optional)_ Cache level. Only applicable for Hacknet Servers | +| [cores](./bitburner.nodestats.cores.md) | | number | Node's number of cores | +| [hashCapacity?](./bitburner.nodestats.hashcapacity.md) | | number | _(Optional)_ Hash Capacity provided by this Node. Only applicable for Hacknet Servers | +| [level](./bitburner.nodestats.level.md) | | number | Node's level | +| [name](./bitburner.nodestats.name.md) | | string | Node's name | +| [production](./bitburner.nodestats.production.md) | | number | Node's production per second | +| [ram](./bitburner.nodestats.ram.md) | | number | Node's RAM (GB) | +| [ramUsed?](./bitburner.nodestats.ramused.md) | | number | _(Optional)_ Node's used RAM (GB) | +| [timeOnline](./bitburner.nodestats.timeonline.md) | | number | Number of seconds since Node has been purchased | +| [totalProduction](./bitburner.nodestats.totalproduction.md) | | number | Total number of money Node has produced | diff --git a/markdown/bitburner.nodestats.name.md b/markdown/bitburner.nodestats.name.md index 04b7ec8d2..bf948c05f 100644 --- a/markdown/bitburner.nodestats.name.md +++ b/markdown/bitburner.nodestats.name.md @@ -6,7 +6,7 @@ Node's name -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.nodestats.production.md b/markdown/bitburner.nodestats.production.md index efa0eecb0..b374fd118 100644 --- a/markdown/bitburner.nodestats.production.md +++ b/markdown/bitburner.nodestats.production.md @@ -6,7 +6,7 @@ Node's production per second -Signature: +**Signature:** ```typescript production: number; diff --git a/markdown/bitburner.nodestats.ram.md b/markdown/bitburner.nodestats.ram.md index 4160f7b9c..1a2ff33bc 100644 --- a/markdown/bitburner.nodestats.ram.md +++ b/markdown/bitburner.nodestats.ram.md @@ -6,7 +6,7 @@ Node's RAM (GB) -Signature: +**Signature:** ```typescript ram: number; diff --git a/markdown/bitburner.nodestats.ramused.md b/markdown/bitburner.nodestats.ramused.md index a7f79cfb0..b90f73ff6 100644 --- a/markdown/bitburner.nodestats.ramused.md +++ b/markdown/bitburner.nodestats.ramused.md @@ -6,7 +6,7 @@ Node's used RAM (GB) -Signature: +**Signature:** ```typescript ramUsed?: number; diff --git a/markdown/bitburner.nodestats.timeonline.md b/markdown/bitburner.nodestats.timeonline.md index 0ce7e92e9..a4238d9db 100644 --- a/markdown/bitburner.nodestats.timeonline.md +++ b/markdown/bitburner.nodestats.timeonline.md @@ -6,7 +6,7 @@ Number of seconds since Node has been purchased -Signature: +**Signature:** ```typescript timeOnline: number; diff --git a/markdown/bitburner.nodestats.totalproduction.md b/markdown/bitburner.nodestats.totalproduction.md index d5e3c7b7e..7f825fa91 100644 --- a/markdown/bitburner.nodestats.totalproduction.md +++ b/markdown/bitburner.nodestats.totalproduction.md @@ -6,7 +6,7 @@ Total number of money Node has produced -Signature: +**Signature:** ```typescript totalProduction: number; diff --git a/markdown/bitburner.ns.alert.md b/markdown/bitburner.ns.alert.md index 0a9f1ccce..5772ebcdc 100644 --- a/markdown/bitburner.ns.alert.md +++ b/markdown/bitburner.ns.alert.md @@ -6,7 +6,7 @@ Open up a message box. -Signature: +**Signature:** ```typescript alert(msg: string): void; @@ -18,7 +18,7 @@ alert(msg: string): void; | --- | --- | --- | | msg | string | Message to alert. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.args.md b/markdown/bitburner.ns.args.md index 60c8c1a41..4d3222ad5 100644 --- a/markdown/bitburner.ns.args.md +++ b/markdown/bitburner.ns.args.md @@ -6,7 +6,7 @@ Arguments passed into the script. -Signature: +**Signature:** ```typescript readonly args: (string | number | boolean)[]; diff --git a/markdown/bitburner.ns.asleep.md b/markdown/bitburner.ns.asleep.md index 275690aa0..7f44ebdd6 100644 --- a/markdown/bitburner.ns.asleep.md +++ b/markdown/bitburner.ns.asleep.md @@ -6,7 +6,7 @@ Suspends the script for n milliseconds. Doesn't block with concurrent calls. You should prefer 'sleep' over 'asleep' except when doing very complex UI work. -Signature: +**Signature:** ```typescript asleep(millis: number): Promise; @@ -18,7 +18,7 @@ asleep(millis: number): Promise; | --- | --- | --- | | millis | number | Number of milliseconds to sleep. | -Returns: +**Returns:** Promise<true> diff --git a/markdown/bitburner.ns.atexit.md b/markdown/bitburner.ns.atexit.md index 872dbfc8c..21d5cd077 100644 --- a/markdown/bitburner.ns.atexit.md +++ b/markdown/bitburner.ns.atexit.md @@ -6,7 +6,7 @@ Add callback function when the script dies -Signature: +**Signature:** ```typescript atExit(f: () => void): void; @@ -18,7 +18,7 @@ atExit(f: () => void): void; | --- | --- | --- | | f | () => void | | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.bladeburner.md b/markdown/bitburner.ns.bladeburner.md index 77ab1fef7..c7d12efe7 100644 --- a/markdown/bitburner.ns.bladeburner.md +++ b/markdown/bitburner.ns.bladeburner.md @@ -6,7 +6,7 @@ Namespace for bladeburner functions. -Signature: +**Signature:** ```typescript readonly bladeburner: Bladeburner; diff --git a/markdown/bitburner.ns.brutessh.md b/markdown/bitburner.ns.brutessh.md index 071fc6854..0f99657e7 100644 --- a/markdown/bitburner.ns.brutessh.md +++ b/markdown/bitburner.ns.brutessh.md @@ -6,7 +6,7 @@ Runs BruteSSH.exe on a server. -Signature: +**Signature:** ```typescript brutessh(host: string): void; @@ -18,7 +18,7 @@ brutessh(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.clear.md b/markdown/bitburner.ns.clear.md index 263f0f969..71e502544 100644 --- a/markdown/bitburner.ns.clear.md +++ b/markdown/bitburner.ns.clear.md @@ -6,7 +6,7 @@ Clear data from a file. -Signature: +**Signature:** ```typescript clear(handle: string): void; @@ -18,7 +18,7 @@ clear(handle: string): void; | --- | --- | --- | | handle | string | Text file to clear. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.clearlog.md b/markdown/bitburner.ns.clearlog.md index 9e33e2d42..6cd2d140c 100644 --- a/markdown/bitburner.ns.clearlog.md +++ b/markdown/bitburner.ns.clearlog.md @@ -6,12 +6,12 @@ Clears the script’s logs. -Signature: +**Signature:** ```typescript clearLog(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.clearport.md b/markdown/bitburner.ns.clearport.md index 50038926f..84d44a9a8 100644 --- a/markdown/bitburner.ns.clearport.md +++ b/markdown/bitburner.ns.clearport.md @@ -6,7 +6,7 @@ Clear data from a port. -Signature: +**Signature:** ```typescript clearPort(handle: number): void; @@ -18,7 +18,7 @@ clearPort(handle: number): void; | --- | --- | --- | | handle | number | Port to clear. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.closetail.md b/markdown/bitburner.ns.closetail.md index 5db4eb00c..9e013acac 100644 --- a/markdown/bitburner.ns.closetail.md +++ b/markdown/bitburner.ns.closetail.md @@ -6,7 +6,7 @@ Close the tail window of a script. -Signature: +**Signature:** ```typescript closeTail(pid?: number): void; @@ -16,9 +16,9 @@ closeTail(pid?: number): void; | Parameter | Type | Description | | --- | --- | --- | -| pid | number | Optional. PID of the script having its tail closed. If omitted, the current script is used. | +| pid | number | _(Optional)_ Optional. PID of the script having its tail closed. If omitted, the current script is used. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.codingcontract.md b/markdown/bitburner.ns.codingcontract.md index 2b4cd02cc..c9b6decd4 100644 --- a/markdown/bitburner.ns.codingcontract.md +++ b/markdown/bitburner.ns.codingcontract.md @@ -6,7 +6,7 @@ Namespace for codingcontract functions. -Signature: +**Signature:** ```typescript readonly codingcontract: CodingContract; diff --git a/markdown/bitburner.ns.corporation.md b/markdown/bitburner.ns.corporation.md index 92ffd5222..69f37cddd 100644 --- a/markdown/bitburner.ns.corporation.md +++ b/markdown/bitburner.ns.corporation.md @@ -6,7 +6,7 @@ Namespace for corporation functions. RAM cost: 1022.4 GB -Signature: +**Signature:** ```typescript readonly corporation: Corporation; diff --git a/markdown/bitburner.ns.deleteserver.md b/markdown/bitburner.ns.deleteserver.md index b4d202230..b2634328c 100644 --- a/markdown/bitburner.ns.deleteserver.md +++ b/markdown/bitburner.ns.deleteserver.md @@ -6,7 +6,7 @@ Delete a purchased server. -Signature: +**Signature:** ```typescript deleteServer(host: string): boolean; @@ -18,7 +18,7 @@ deleteServer(host: string): boolean; | --- | --- | --- | | host | string | Hostname of the server to delete. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.disablelog.md b/markdown/bitburner.ns.disablelog.md index 00ea2294d..f18b08695 100644 --- a/markdown/bitburner.ns.disablelog.md +++ b/markdown/bitburner.ns.disablelog.md @@ -6,7 +6,7 @@ Disables logging for the given function. -Signature: +**Signature:** ```typescript disableLog(fn: string): void; @@ -18,7 +18,7 @@ disableLog(fn: string): void; | --- | --- | --- | | fn | string | Name of function for which to disable logging. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.enablelog.md b/markdown/bitburner.ns.enablelog.md index 415e3a145..6c45ee335 100644 --- a/markdown/bitburner.ns.enablelog.md +++ b/markdown/bitburner.ns.enablelog.md @@ -6,7 +6,7 @@ Enable logging for a certain function. -Signature: +**Signature:** ```typescript enableLog(fn: string): void; @@ -18,7 +18,7 @@ enableLog(fn: string): void; | --- | --- | --- | | fn | string | Name of function for which to enable logging. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.enums.md b/markdown/bitburner.ns.enums.md index 8e1654518..012803ebf 100644 --- a/markdown/bitburner.ns.enums.md +++ b/markdown/bitburner.ns.enums.md @@ -4,7 +4,7 @@ ## NS.enums property -Signature: +**Signature:** ```typescript enums: NSEnums; diff --git a/markdown/bitburner.ns.exec.md b/markdown/bitburner.ns.exec.md index 3aea59eca..7cd454036 100644 --- a/markdown/bitburner.ns.exec.md +++ b/markdown/bitburner.ns.exec.md @@ -6,7 +6,7 @@ Start another script on any server. -Signature: +**Signature:** ```typescript exec(script: string, host: string, numThreads?: number, ...args: (string | number | boolean)[]): number; @@ -18,10 +18,10 @@ exec(script: string, host: string, numThreads?: number, ...args: (string | numbe | --- | --- | --- | | script | string | Filename of script to execute. | | host | string | Hostname of the target server on which to execute the script. | -| numThreads | number | Optional thread count for new script. Set to 1 by default. Will be rounded down to the nearest integer. | +| numThreads | number | _(Optional)_ Optional thread count for new script. Set to 1 by default. Will be rounded down to the nearest integer. | | args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument numThreads must be filled in with a value. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.exit.md b/markdown/bitburner.ns.exit.md index de6dd483c..c6bc44b4c 100644 --- a/markdown/bitburner.ns.exit.md +++ b/markdown/bitburner.ns.exit.md @@ -6,12 +6,12 @@ Terminates the current script immediately. -Signature: +**Signature:** ```typescript exit(): never; ``` -Returns: +**Returns:** never diff --git a/markdown/bitburner.ns.fileexists.md b/markdown/bitburner.ns.fileexists.md index 839830b48..b995a4b94 100644 --- a/markdown/bitburner.ns.fileexists.md +++ b/markdown/bitburner.ns.fileexists.md @@ -6,7 +6,7 @@ Check if a file exists. -Signature: +**Signature:** ```typescript fileExists(filename: string, host?: string): boolean; @@ -17,9 +17,9 @@ fileExists(filename: string, host?: string): boolean; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Filename of file to check. | -| host | string | Host of target server. This is optional. If it is not specified then the function will use the current server as the target server. | +| host | string | _(Optional)_ Host of target server. This is optional. If it is not specified then the function will use the current server as the target server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.flags.md b/markdown/bitburner.ns.flags.md index dc2935077..532f91ff3 100644 --- a/markdown/bitburner.ns.flags.md +++ b/markdown/bitburner.ns.flags.md @@ -6,7 +6,7 @@ Parse command line flags. -Signature: +**Signature:** ```typescript flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] }; @@ -18,7 +18,7 @@ flags(schema: [string, string | number | boolean | string[]][]): { [key: string] | --- | --- | --- | | schema | \[string, string \| number \| boolean \| string\[\]\]\[\] | | -Returns: +**Returns:** { \[key: string\]: [ScriptArg](./bitburner.scriptarg.md) \| string\[\] } diff --git a/markdown/bitburner.ns.formatnumber.md b/markdown/bitburner.ns.formatnumber.md new file mode 100644 index 000000000..68bfabb26 --- /dev/null +++ b/markdown/bitburner.ns.formatnumber.md @@ -0,0 +1,35 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [formatNumber](./bitburner.ns.formatnumber.md) + +## NS.formatNumber() method + +Format a number. + +**Signature:** + +```typescript +formatNumber(n: number, fractionalDigits?: number, suffixStart?: number, isInteger?: boolean): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| n | number | Number to format. | +| fractionalDigits | number | _(Optional)_ Number of digits to show in the fractional part of the decimal number. Optional, defaults to 3. | +| suffixStart | number | _(Optional)_ How high a number must be before a suffix will be added. Optional, defaults to 1000. | +| isInteger | boolean | _(Optional)_ Whether the number represents an integer. Integers do not display fractional digits until a suffix is present. Optional, defaults to false. | + +**Returns:** + +string + +Formatted number. + +## Remarks + +RAM cost: 0 GB + +Converts a number into a numeric string with the specified format options. This is the same function that the game itself uses to display numbers. The format also depends on the Numeric Display settings (all options on the "Numeric Display" options page) To format ram or percentages, see [formatRam](./bitburner.ns.formatram.md) and [formatPercent](./bitburner.ns.formatpercent.md) + diff --git a/markdown/bitburner.ns.formatpercent.md b/markdown/bitburner.ns.formatpercent.md new file mode 100644 index 000000000..0b09af1a3 --- /dev/null +++ b/markdown/bitburner.ns.formatpercent.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [formatPercent](./bitburner.ns.formatpercent.md) + +## NS.formatPercent() method + +Format a number as a percentage. + +**Signature:** + +```typescript +formatPercent(n: number, fractionalDigits?: number): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| n | number | Number to format as a percentage. | +| fractionalDigits | number | _(Optional)_ Number of digits to show in the fractional part of the decimal number. Optional, defaults to 2. | + +**Returns:** + +string + +Formatted percentage. + +## Remarks + +RAM cost: 0 GB + +Converts a number into a percentage string with the specified number of fractional digits. This is the same function that the game itself uses to display percentages. The format also depends on the Numeric Display settings (all options on the "Numeric Display" options page) To format plain numbers or ram, see [formatNumber](./bitburner.ns.formatnumber.md) and [formatRam](./bitburner.ns.formatram.md) + diff --git a/markdown/bitburner.ns.formatram.md b/markdown/bitburner.ns.formatram.md new file mode 100644 index 000000000..d5b0ae71d --- /dev/null +++ b/markdown/bitburner.ns.formatram.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [formatRam](./bitburner.ns.formatram.md) + +## NS.formatRam() method + +Format a number as an amount of ram. + +**Signature:** + +```typescript +formatRam(n: number, fractionalDigits?: number): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| n | number | Number to format as an amount of ram, in base units of GB (or GiB if that Numeric Display option is set). | +| fractionalDigits | number | _(Optional)_ Number of digits to show in the fractional part of the decimal number. Optional, defaults to 2. | + +**Returns:** + +string + +Formatted ram amount. + +## Remarks + +RAM cost: 0 GB + +Converts a number into a ram string with the specified number of fractional digits. This is the same function that the game itself uses to display ram. The format also depends on the Numeric Display settings (all options on the "Numeric Display" options page) To format plain numbers or percentages, see [formatNumber](./bitburner.ns.formatnumber.md) and [formatPercent](./bitburner.ns.formatpercent.md) + diff --git a/markdown/bitburner.ns.formulas.md b/markdown/bitburner.ns.formulas.md index 0d7de9755..4b4a88efa 100644 --- a/markdown/bitburner.ns.formulas.md +++ b/markdown/bitburner.ns.formulas.md @@ -6,7 +6,7 @@ Namespace for formulas functions. -Signature: +**Signature:** ```typescript readonly formulas: Formulas; diff --git a/markdown/bitburner.ns.ftpcrack.md b/markdown/bitburner.ns.ftpcrack.md index 27b58dc53..3b6c3abad 100644 --- a/markdown/bitburner.ns.ftpcrack.md +++ b/markdown/bitburner.ns.ftpcrack.md @@ -6,7 +6,7 @@ Runs FTPCrack.exe on a server. -Signature: +**Signature:** ```typescript ftpcrack(host: string): void; @@ -18,7 +18,7 @@ ftpcrack(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.gang.md b/markdown/bitburner.ns.gang.md index b9c0918bc..a72442ec7 100644 --- a/markdown/bitburner.ns.gang.md +++ b/markdown/bitburner.ns.gang.md @@ -6,7 +6,7 @@ Namespace for gang functions. -Signature: +**Signature:** ```typescript readonly gang: Gang; diff --git a/markdown/bitburner.ns.getbitnodemultipliers.md b/markdown/bitburner.ns.getbitnodemultipliers.md index f08055cb0..334400295 100644 --- a/markdown/bitburner.ns.getbitnodemultipliers.md +++ b/markdown/bitburner.ns.getbitnodemultipliers.md @@ -6,7 +6,7 @@ Get the current Bitnode multipliers. -Signature: +**Signature:** ```typescript getBitNodeMultipliers(n?: number, lvl?: number): BitNodeMultipliers; @@ -16,10 +16,10 @@ getBitNodeMultipliers(n?: number, lvl?: number): BitNodeMultipliers; | Parameter | Type | Description | | --- | --- | --- | -| n | number | | -| lvl | number | | +| n | number | _(Optional)_ | +| lvl | number | _(Optional)_ | -Returns: +**Returns:** [BitNodeMultipliers](./bitburner.bitnodemultipliers.md) diff --git a/markdown/bitburner.ns.getfavortodonate.md b/markdown/bitburner.ns.getfavortodonate.md index 0d4ac030b..44faf5531 100644 --- a/markdown/bitburner.ns.getfavortodonate.md +++ b/markdown/bitburner.ns.getfavortodonate.md @@ -6,12 +6,12 @@ Returns the amount of Faction favor required to be able to donate to a faction. -Signature: +**Signature:** ```typescript getFavorToDonate(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getgrowtime.md b/markdown/bitburner.ns.getgrowtime.md index 0944be815..2a39a5cdf 100644 --- a/markdown/bitburner.ns.getgrowtime.md +++ b/markdown/bitburner.ns.getgrowtime.md @@ -6,7 +6,7 @@ Get the execution time of a grow() call. -Signature: +**Signature:** ```typescript getGrowTime(host: string): number; @@ -18,7 +18,7 @@ getGrowTime(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gethackinglevel.md b/markdown/bitburner.ns.gethackinglevel.md index 2499e349c..c3b277b62 100644 --- a/markdown/bitburner.ns.gethackinglevel.md +++ b/markdown/bitburner.ns.gethackinglevel.md @@ -6,12 +6,12 @@ Returns the player’s current hacking level. -Signature: +**Signature:** ```typescript getHackingLevel(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gethackingmultipliers.md b/markdown/bitburner.ns.gethackingmultipliers.md index 9a8be05f2..cbe41431e 100644 --- a/markdown/bitburner.ns.gethackingmultipliers.md +++ b/markdown/bitburner.ns.gethackingmultipliers.md @@ -6,12 +6,12 @@ Get hacking related multipliers. -Signature: +**Signature:** ```typescript getHackingMultipliers(): HackingMultipliers; ``` -Returns: +**Returns:** [HackingMultipliers](./bitburner.hackingmultipliers.md) diff --git a/markdown/bitburner.ns.gethacknetmultipliers.md b/markdown/bitburner.ns.gethacknetmultipliers.md index 8deeba51f..854c29046 100644 --- a/markdown/bitburner.ns.gethacknetmultipliers.md +++ b/markdown/bitburner.ns.gethacknetmultipliers.md @@ -6,12 +6,12 @@ Get hacknet related multipliers. -Signature: +**Signature:** ```typescript getHacknetMultipliers(): HacknetMultipliers; ``` -Returns: +**Returns:** [HacknetMultipliers](./bitburner.hacknetmultipliers.md) diff --git a/markdown/bitburner.ns.gethacktime.md b/markdown/bitburner.ns.gethacktime.md index 4a7a6a2f1..ca4a508d4 100644 --- a/markdown/bitburner.ns.gethacktime.md +++ b/markdown/bitburner.ns.gethacktime.md @@ -6,7 +6,7 @@ Get the execution time of a hack() call. -Signature: +**Signature:** ```typescript getHackTime(host: string): number; @@ -18,7 +18,7 @@ getHackTime(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gethostname.md b/markdown/bitburner.ns.gethostname.md index c61dab7b6..666abfe77 100644 --- a/markdown/bitburner.ns.gethostname.md +++ b/markdown/bitburner.ns.gethostname.md @@ -6,12 +6,12 @@ Returns a string with the hostname of the server that the script is running on. -Signature: +**Signature:** ```typescript getHostname(): string; ``` -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.getmoneysources.md b/markdown/bitburner.ns.getmoneysources.md index 5269f7007..8a5523666 100644 --- a/markdown/bitburner.ns.getmoneysources.md +++ b/markdown/bitburner.ns.getmoneysources.md @@ -6,12 +6,12 @@ Get information about the sources of income for this run. -Signature: +**Signature:** ```typescript getMoneySources(): MoneySources; ``` -Returns: +**Returns:** [MoneySources](./bitburner.moneysources.md) diff --git a/markdown/bitburner.ns.getplayer.md b/markdown/bitburner.ns.getplayer.md index 737a9a447..861a4e80e 100644 --- a/markdown/bitburner.ns.getplayer.md +++ b/markdown/bitburner.ns.getplayer.md @@ -6,12 +6,12 @@ Get information about the player. -Signature: +**Signature:** ```typescript getPlayer(): Player; ``` -Returns: +**Returns:** [Player](./bitburner.player.md) diff --git a/markdown/bitburner.ns.getporthandle.md b/markdown/bitburner.ns.getporthandle.md index b448275ca..65154ffa7 100644 --- a/markdown/bitburner.ns.getporthandle.md +++ b/markdown/bitburner.ns.getporthandle.md @@ -6,7 +6,7 @@ Get all data on a port. -Signature: +**Signature:** ```typescript getPortHandle(port: number): NetscriptPort; @@ -18,7 +18,7 @@ getPortHandle(port: number): NetscriptPort; | --- | --- | --- | | port | number | Port number. Must be an integer between 1 and 20. | -Returns: +**Returns:** [NetscriptPort](./bitburner.netscriptport.md) diff --git a/markdown/bitburner.ns.getpurchasedservercost.md b/markdown/bitburner.ns.getpurchasedservercost.md index ece08176d..6389192e5 100644 --- a/markdown/bitburner.ns.getpurchasedservercost.md +++ b/markdown/bitburner.ns.getpurchasedservercost.md @@ -6,7 +6,7 @@ Get cost of purchasing a server. -Signature: +**Signature:** ```typescript getPurchasedServerCost(ram: number): number; @@ -18,7 +18,7 @@ getPurchasedServerCost(ram: number): number; | --- | --- | --- | | ram | number | Amount of RAM of a potential purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getpurchasedserverlimit.md b/markdown/bitburner.ns.getpurchasedserverlimit.md index b4c0de297..2ba389ccd 100644 --- a/markdown/bitburner.ns.getpurchasedserverlimit.md +++ b/markdown/bitburner.ns.getpurchasedserverlimit.md @@ -6,12 +6,12 @@ Returns the maximum number of servers you can purchase. -Signature: +**Signature:** ```typescript getPurchasedServerLimit(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getpurchasedservermaxram.md b/markdown/bitburner.ns.getpurchasedservermaxram.md index d48a0ef88..8c781f5a4 100644 --- a/markdown/bitburner.ns.getpurchasedservermaxram.md +++ b/markdown/bitburner.ns.getpurchasedservermaxram.md @@ -6,12 +6,12 @@ Returns the maximum RAM that a purchased server can have. -Signature: +**Signature:** ```typescript getPurchasedServerMaxRam(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getpurchasedservers.md b/markdown/bitburner.ns.getpurchasedservers.md index 3117ef93c..2dcaa5cb4 100644 --- a/markdown/bitburner.ns.getpurchasedservers.md +++ b/markdown/bitburner.ns.getpurchasedservers.md @@ -6,12 +6,12 @@ Returns an array with the hostnames of all of the servers you have purchased. -Signature: +**Signature:** ```typescript getPurchasedServers(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.ns.getpurchasedserverupgradecost.md b/markdown/bitburner.ns.getpurchasedserverupgradecost.md index f00891b60..5d99b17ac 100644 --- a/markdown/bitburner.ns.getpurchasedserverupgradecost.md +++ b/markdown/bitburner.ns.getpurchasedserverupgradecost.md @@ -6,7 +6,7 @@ Get cost of upgrading a purchased server to the given ram. -Signature: +**Signature:** ```typescript getPurchasedServerUpgradeCost(hostname: string, ram: number): number; @@ -19,7 +19,7 @@ getPurchasedServerUpgradeCost(hostname: string, ram: number): number; | hostname | string | Hostname of the server to upgrade. | | ram | number | Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getrecentscripts.md b/markdown/bitburner.ns.getrecentscripts.md index d02afe86c..4caf196f1 100644 --- a/markdown/bitburner.ns.getrecentscripts.md +++ b/markdown/bitburner.ns.getrecentscripts.md @@ -6,12 +6,12 @@ Get an array of recently killed scripts across all servers. -Signature: +**Signature:** ```typescript getRecentScripts(): RecentScript[]; ``` -Returns: +**Returns:** [RecentScript](./bitburner.recentscript.md)\[\] diff --git a/markdown/bitburner.ns.getrunningscript.md b/markdown/bitburner.ns.getrunningscript.md index dc7488f17..52d9dcd26 100644 --- a/markdown/bitburner.ns.getrunningscript.md +++ b/markdown/bitburner.ns.getrunningscript.md @@ -6,7 +6,7 @@ Get general info about a running script. -Signature: +**Signature:** ```typescript getRunningScript( @@ -20,11 +20,11 @@ getRunningScript( | Parameter | Type | Description | | --- | --- | --- | -| filename | [FilenameOrPID](./bitburner.filenameorpid.md) | Optional. Filename or PID of the script. | -| hostname | string | Optional. Name of host server the script is running on. | +| filename | [FilenameOrPID](./bitburner.filenameorpid.md) | _(Optional)_ Optional. Filename or PID of the script. | +| hostname | string | _(Optional)_ Optional. Name of host server the script is running on. | | args | (string \| number \| boolean)\[\] | Arguments to identify the script | -Returns: +**Returns:** [RunningScript](./bitburner.runningscript.md) \| null diff --git a/markdown/bitburner.ns.getscriptexpgain.md b/markdown/bitburner.ns.getscriptexpgain.md index 0e4baa4f3..682b5cc40 100644 --- a/markdown/bitburner.ns.getscriptexpgain.md +++ b/markdown/bitburner.ns.getscriptexpgain.md @@ -6,7 +6,7 @@ Get the exp gain of a script. -Signature: +**Signature:** ```typescript getScriptExpGain(script: string, host: string, ...args: (string | number | boolean)[]): number; @@ -20,7 +20,7 @@ getScriptExpGain(script: string, host: string, ...args: (string | number | boole | host | string | Server on which script is running. | | args | (string \| number \| boolean)\[\] | Arguments that the script is running with. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getscriptincome.md b/markdown/bitburner.ns.getscriptincome.md index 8d226d597..ad6a53f01 100644 --- a/markdown/bitburner.ns.getscriptincome.md +++ b/markdown/bitburner.ns.getscriptincome.md @@ -6,7 +6,7 @@ Get the income of a script. -Signature: +**Signature:** ```typescript getScriptIncome(script: string, host: string, ...args: (string | number | boolean)[]): number; @@ -20,7 +20,7 @@ getScriptIncome(script: string, host: string, ...args: (string | number | boolea | host | string | Server on which script is running. | | args | (string \| number \| boolean)\[\] | Arguments that the script is running with. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getscriptlogs.md b/markdown/bitburner.ns.getscriptlogs.md index 54c4058e7..5a512957a 100644 --- a/markdown/bitburner.ns.getscriptlogs.md +++ b/markdown/bitburner.ns.getscriptlogs.md @@ -6,7 +6,7 @@ Get all the logs of a script. -Signature: +**Signature:** ```typescript getScriptLogs(fn?: string, host?: string, ...args: (string | number | boolean)[]): string[]; @@ -16,11 +16,11 @@ getScriptLogs(fn?: string, host?: string, ...args: (string | number | boolean)[] | Parameter | Type | Description | | --- | --- | --- | -| fn | string | Optional. Filename of script to get logs from. | -| host | string | Optional. Hostname of the server that the script is on. | +| fn | string | _(Optional)_ Optional. Filename of script to get logs from. | +| host | string | _(Optional)_ Optional. Hostname of the server that the script is on. | | args | (string \| number \| boolean)\[\] | Arguments to identify which scripts to get logs for. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.ns.getscriptname.md b/markdown/bitburner.ns.getscriptname.md index 99566c884..419e25c6e 100644 --- a/markdown/bitburner.ns.getscriptname.md +++ b/markdown/bitburner.ns.getscriptname.md @@ -6,12 +6,12 @@ Returns the current script name. -Signature: +**Signature:** ```typescript getScriptName(): string; ``` -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.getscriptram.md b/markdown/bitburner.ns.getscriptram.md index 98761bb1a..abfc4fd2b 100644 --- a/markdown/bitburner.ns.getscriptram.md +++ b/markdown/bitburner.ns.getscriptram.md @@ -6,7 +6,7 @@ Get the ram cost of a script. -Signature: +**Signature:** ```typescript getScriptRam(script: string, host?: string): number; @@ -17,9 +17,9 @@ getScriptRam(script: string, host?: string): number; | Parameter | Type | Description | | --- | --- | --- | | script | string | Filename of script. This is case-sensitive. | -| host | string | Hostname of target server the script is located on. This is optional. If it is not specified then the function will use the current server as the target server. | +| host | string | _(Optional)_ Hostname of target server the script is located on. This is optional. If it is not specified then the function will use the current server as the target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getserver.md b/markdown/bitburner.ns.getserver.md index 95d130658..5f6af7975 100644 --- a/markdown/bitburner.ns.getserver.md +++ b/markdown/bitburner.ns.getserver.md @@ -6,7 +6,7 @@ Returns a server object for the given server. Defaults to the running script's server if host is not specified. -Signature: +**Signature:** ```typescript getServer(host?: string): Server; @@ -16,9 +16,9 @@ getServer(host?: string): Server; | Parameter | Type | Description | | --- | --- | --- | -| host | string | Optional. Hostname for the requested server object. | +| host | string | _(Optional)_ Optional. Hostname for the requested server object. | -Returns: +**Returns:** [Server](./bitburner.server.md) diff --git a/markdown/bitburner.ns.getserverbasesecuritylevel.md b/markdown/bitburner.ns.getserverbasesecuritylevel.md index 14394b32e..b565079ed 100644 --- a/markdown/bitburner.ns.getserverbasesecuritylevel.md +++ b/markdown/bitburner.ns.getserverbasesecuritylevel.md @@ -9,7 +9,7 @@ > useless > -Signature: +**Signature:** ```typescript getServerBaseSecurityLevel(host: string): number; @@ -21,7 +21,7 @@ getServerBaseSecurityLevel(host: string): number; | --- | --- | --- | | host | string | Host of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getservergrowth.md b/markdown/bitburner.ns.getservergrowth.md index cd6d5a355..faf4eef7a 100644 --- a/markdown/bitburner.ns.getservergrowth.md +++ b/markdown/bitburner.ns.getservergrowth.md @@ -6,7 +6,7 @@ Get a server growth parameter. -Signature: +**Signature:** ```typescript getServerGrowth(host: string): number; @@ -18,7 +18,7 @@ getServerGrowth(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getservermaxmoney.md b/markdown/bitburner.ns.getservermaxmoney.md index 2dc71c4d6..2f581ca6c 100644 --- a/markdown/bitburner.ns.getservermaxmoney.md +++ b/markdown/bitburner.ns.getservermaxmoney.md @@ -6,7 +6,7 @@ Get the maximum money available on a server. -Signature: +**Signature:** ```typescript getServerMaxMoney(host: string): number; @@ -18,7 +18,7 @@ getServerMaxMoney(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getservermaxram.md b/markdown/bitburner.ns.getservermaxram.md index 63a7872c2..988657733 100644 --- a/markdown/bitburner.ns.getservermaxram.md +++ b/markdown/bitburner.ns.getservermaxram.md @@ -6,7 +6,7 @@ Get the maximum amount of RAM on a server. -Signature: +**Signature:** ```typescript getServerMaxRam(host: string): number; @@ -18,7 +18,7 @@ getServerMaxRam(host: string): number; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getserverminsecuritylevel.md b/markdown/bitburner.ns.getserverminsecuritylevel.md index cc905cbed..76cce08fd 100644 --- a/markdown/bitburner.ns.getserverminsecuritylevel.md +++ b/markdown/bitburner.ns.getserverminsecuritylevel.md @@ -6,7 +6,7 @@ Returns the minimum security level of the target server. -Signature: +**Signature:** ```typescript getServerMinSecurityLevel(host: string): number; @@ -18,7 +18,7 @@ getServerMinSecurityLevel(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getservermoneyavailable.md b/markdown/bitburner.ns.getservermoneyavailable.md index 70d824875..6d31d4d11 100644 --- a/markdown/bitburner.ns.getservermoneyavailable.md +++ b/markdown/bitburner.ns.getservermoneyavailable.md @@ -6,7 +6,7 @@ Get money available on a server. -Signature: +**Signature:** ```typescript getServerMoneyAvailable(host: string): number; @@ -18,7 +18,7 @@ getServerMoneyAvailable(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getservernumportsrequired.md b/markdown/bitburner.ns.getservernumportsrequired.md index 29def63c1..299bdbd46 100644 --- a/markdown/bitburner.ns.getservernumportsrequired.md +++ b/markdown/bitburner.ns.getservernumportsrequired.md @@ -6,7 +6,7 @@ Returns the number of open ports required to successfully run NUKE.exe on the specified server. -Signature: +**Signature:** ```typescript getServerNumPortsRequired(host: string): number; @@ -18,7 +18,7 @@ getServerNumPortsRequired(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getserverrequiredhackinglevel.md b/markdown/bitburner.ns.getserverrequiredhackinglevel.md index e5d8f24fb..24e3535fb 100644 --- a/markdown/bitburner.ns.getserverrequiredhackinglevel.md +++ b/markdown/bitburner.ns.getserverrequiredhackinglevel.md @@ -6,7 +6,7 @@ Returns the required hacking level of the target server. -Signature: +**Signature:** ```typescript getServerRequiredHackingLevel(host: string): number; @@ -18,7 +18,7 @@ getServerRequiredHackingLevel(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getserversecuritylevel.md b/markdown/bitburner.ns.getserversecuritylevel.md index 190028a91..4a3853fe7 100644 --- a/markdown/bitburner.ns.getserversecuritylevel.md +++ b/markdown/bitburner.ns.getserversecuritylevel.md @@ -6,7 +6,7 @@ Get server security level. -Signature: +**Signature:** ```typescript getServerSecurityLevel(host: string): number; @@ -18,7 +18,7 @@ getServerSecurityLevel(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getserverusedram.md b/markdown/bitburner.ns.getserverusedram.md index ab97cce0c..192d55bcf 100644 --- a/markdown/bitburner.ns.getserverusedram.md +++ b/markdown/bitburner.ns.getserverusedram.md @@ -6,7 +6,7 @@ Get the used RAM on a server. -Signature: +**Signature:** ```typescript getServerUsedRam(host: string): number; @@ -18,7 +18,7 @@ getServerUsedRam(host: string): number; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.getsharepower.md b/markdown/bitburner.ns.getsharepower.md index d615c728f..932d4bfb6 100644 --- a/markdown/bitburner.ns.getsharepower.md +++ b/markdown/bitburner.ns.getsharepower.md @@ -6,12 +6,12 @@ Calculate your share power. Based on all the active share calls. -Signature: +**Signature:** ```typescript getSharePower(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gettimesincelastaug.md b/markdown/bitburner.ns.gettimesincelastaug.md index 8b5fdd543..8b490176c 100644 --- a/markdown/bitburner.ns.gettimesincelastaug.md +++ b/markdown/bitburner.ns.gettimesincelastaug.md @@ -6,12 +6,12 @@ Returns the amount of time in milliseconds that have passed since you last installed Augmentations. -Signature: +**Signature:** ```typescript getTimeSinceLastAug(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gettotalscriptexpgain.md b/markdown/bitburner.ns.gettotalscriptexpgain.md index b89cf93d5..e89e71ef4 100644 --- a/markdown/bitburner.ns.gettotalscriptexpgain.md +++ b/markdown/bitburner.ns.gettotalscriptexpgain.md @@ -6,12 +6,12 @@ Get the exp gain of all scripts. -Signature: +**Signature:** ```typescript getTotalScriptExpGain(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.gettotalscriptincome.md b/markdown/bitburner.ns.gettotalscriptincome.md index 211904263..28bfe7ec6 100644 --- a/markdown/bitburner.ns.gettotalscriptincome.md +++ b/markdown/bitburner.ns.gettotalscriptincome.md @@ -6,12 +6,12 @@ Get the income of all scripts. -Signature: +**Signature:** ```typescript getTotalScriptIncome(): [number, number]; ``` -Returns: +**Returns:** \[number, number\] diff --git a/markdown/bitburner.ns.getweakentime.md b/markdown/bitburner.ns.getweakentime.md index abf6567fc..896185287 100644 --- a/markdown/bitburner.ns.getweakentime.md +++ b/markdown/bitburner.ns.getweakentime.md @@ -6,7 +6,7 @@ Get the execution time of a weaken() call. -Signature: +**Signature:** ```typescript getWeakenTime(host: string): number; @@ -18,7 +18,7 @@ getWeakenTime(host: string): number; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.grafting.md b/markdown/bitburner.ns.grafting.md index ef2cafa5d..7c7bdbf6d 100644 --- a/markdown/bitburner.ns.grafting.md +++ b/markdown/bitburner.ns.grafting.md @@ -6,7 +6,7 @@ Namespace for grafting functions. -Signature: +**Signature:** ```typescript readonly grafting: Grafting; diff --git a/markdown/bitburner.ns.grow.md b/markdown/bitburner.ns.grow.md index d87cb049e..5cb3182a9 100644 --- a/markdown/bitburner.ns.grow.md +++ b/markdown/bitburner.ns.grow.md @@ -6,7 +6,7 @@ Spoof money in a server's bank account, increasing the amount available. -Signature: +**Signature:** ```typescript grow(host: string, opts?: BasicHGWOptions): Promise; @@ -17,9 +17,9 @@ grow(host: string, opts?: BasicHGWOptions): Promise; | Parameter | Type | Description | | --- | --- | --- | | host | string | Hostname of the target server to grow. | -| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | Optional parameters for configuring function behavior. | +| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | _(Optional)_ Optional parameters for configuring function behavior. | -Returns: +**Returns:** Promise<number> diff --git a/markdown/bitburner.ns.growthanalyze.md b/markdown/bitburner.ns.growthanalyze.md index 7644fd058..6cc5d4c14 100644 --- a/markdown/bitburner.ns.growthanalyze.md +++ b/markdown/bitburner.ns.growthanalyze.md @@ -6,7 +6,7 @@ Calculate the number of grow threads needed to grow a server by a certain multiplier. -Signature: +**Signature:** ```typescript growthAnalyze(host: string, growthAmount: number, cores?: number): number; @@ -18,9 +18,9 @@ growthAnalyze(host: string, growthAmount: number, cores?: number): number; | --- | --- | --- | | host | string | Hostname of the target server. | | growthAmount | number | Multiplicative factor by which the server is grown. Decimal form. | -| cores | number | | +| cores | number | _(Optional)_ | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.growthanalyzesecurity.md b/markdown/bitburner.ns.growthanalyzesecurity.md index 367986b37..8ca794a5a 100644 --- a/markdown/bitburner.ns.growthanalyzesecurity.md +++ b/markdown/bitburner.ns.growthanalyzesecurity.md @@ -6,7 +6,7 @@ Calculate the security increase for a number of threads. -Signature: +**Signature:** ```typescript growthAnalyzeSecurity(threads: number, hostname?: string, cores?: number): number; @@ -17,10 +17,10 @@ growthAnalyzeSecurity(threads: number, hostname?: string, cores?: number): numbe | Parameter | Type | Description | | --- | --- | --- | | threads | number | Amount of threads that will be used. | -| hostname | string | Optional. Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. | -| cores | number | Optional. The number of cores of the server that would run grow. | +| hostname | string | _(Optional)_ Optional. Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. | +| cores | number | _(Optional)_ Optional. The number of cores of the server that would run grow. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.hack.md b/markdown/bitburner.ns.hack.md index 93de34b32..1a9b86f8f 100644 --- a/markdown/bitburner.ns.hack.md +++ b/markdown/bitburner.ns.hack.md @@ -6,7 +6,7 @@ Steal a server's money. -Signature: +**Signature:** ```typescript hack(host: string, opts?: BasicHGWOptions): Promise; @@ -17,9 +17,9 @@ hack(host: string, opts?: BasicHGWOptions): Promise; | Parameter | Type | Description | | --- | --- | --- | | host | string | Hostname of the target server to hack. | -| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | Optional parameters for configuring function behavior. | +| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | _(Optional)_ Optional parameters for configuring function behavior. | -Returns: +**Returns:** Promise<number> diff --git a/markdown/bitburner.ns.hackanalyze.md b/markdown/bitburner.ns.hackanalyze.md index 51499edb1..ea0d098fc 100644 --- a/markdown/bitburner.ns.hackanalyze.md +++ b/markdown/bitburner.ns.hackanalyze.md @@ -6,7 +6,7 @@ Get the part of money stolen with a single thread. -Signature: +**Signature:** ```typescript hackAnalyze(host: string): number; @@ -18,7 +18,7 @@ hackAnalyze(host: string): number; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.hackanalyzechance.md b/markdown/bitburner.ns.hackanalyzechance.md index 123adf014..3fd969053 100644 --- a/markdown/bitburner.ns.hackanalyzechance.md +++ b/markdown/bitburner.ns.hackanalyzechance.md @@ -6,7 +6,7 @@ Get the chance of successfully hacking a server. -Signature: +**Signature:** ```typescript hackAnalyzeChance(host: string): number; @@ -18,7 +18,7 @@ hackAnalyzeChance(host: string): number; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.hackanalyzesecurity.md b/markdown/bitburner.ns.hackanalyzesecurity.md index f25b4c663..5d2505a50 100644 --- a/markdown/bitburner.ns.hackanalyzesecurity.md +++ b/markdown/bitburner.ns.hackanalyzesecurity.md @@ -6,7 +6,7 @@ Get the security increase for a number of threads. -Signature: +**Signature:** ```typescript hackAnalyzeSecurity(threads: number, hostname?: string): number; @@ -17,9 +17,9 @@ hackAnalyzeSecurity(threads: number, hostname?: string): number; | Parameter | Type | Description | | --- | --- | --- | | threads | number | Amount of threads that will be used. | -| hostname | string | Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. | +| hostname | string | _(Optional)_ Hostname of the target server. The number of threads is limited to the number needed to hack the server's maximum amount of money. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.hackanalyzethreads.md b/markdown/bitburner.ns.hackanalyzethreads.md index ef07429c2..3a1cf7c25 100644 --- a/markdown/bitburner.ns.hackanalyzethreads.md +++ b/markdown/bitburner.ns.hackanalyzethreads.md @@ -6,7 +6,7 @@ Predict the effect of hack. -Signature: +**Signature:** ```typescript hackAnalyzeThreads(host: string, hackAmount: number): number; @@ -19,7 +19,7 @@ hackAnalyzeThreads(host: string, hackAmount: number): number; | host | string | Hostname of the target server to analyze. | | hackAmount | number | Amount of money you want to hack from the server. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.hacknet.md b/markdown/bitburner.ns.hacknet.md index d4413dc59..7d211408b 100644 --- a/markdown/bitburner.ns.hacknet.md +++ b/markdown/bitburner.ns.hacknet.md @@ -6,7 +6,7 @@ Namespace for hacknet functions. -Signature: +**Signature:** ```typescript readonly hacknet: Hacknet; diff --git a/markdown/bitburner.ns.hasrootaccess.md b/markdown/bitburner.ns.hasrootaccess.md index ca25dd0f8..d6573595b 100644 --- a/markdown/bitburner.ns.hasrootaccess.md +++ b/markdown/bitburner.ns.hasrootaccess.md @@ -6,7 +6,7 @@ Check if you have root access on a server. -Signature: +**Signature:** ```typescript hasRootAccess(host: string): boolean; @@ -18,7 +18,7 @@ hasRootAccess(host: string): boolean; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.hastorrouter.md b/markdown/bitburner.ns.hastorrouter.md index 9bc5a4e2f..6b54a42bc 100644 --- a/markdown/bitburner.ns.hastorrouter.md +++ b/markdown/bitburner.ns.hastorrouter.md @@ -6,12 +6,12 @@ Returns whether the player has access to the darkweb. -Signature: +**Signature:** ```typescript hasTorRouter(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.httpworm.md b/markdown/bitburner.ns.httpworm.md index 1d8c3f154..f32262fc6 100644 --- a/markdown/bitburner.ns.httpworm.md +++ b/markdown/bitburner.ns.httpworm.md @@ -6,7 +6,7 @@ Runs HTTPWorm.exe on a server. -Signature: +**Signature:** ```typescript httpworm(host: string): void; @@ -18,7 +18,7 @@ httpworm(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.infiltration.md b/markdown/bitburner.ns.infiltration.md index 009fb148e..69c510826 100644 --- a/markdown/bitburner.ns.infiltration.md +++ b/markdown/bitburner.ns.infiltration.md @@ -6,7 +6,7 @@ Namespace for infiltration functions. RAM cost: 0 GB -Signature: +**Signature:** ```typescript readonly infiltration: Infiltration; diff --git a/markdown/bitburner.ns.islogenabled.md b/markdown/bitburner.ns.islogenabled.md index 6ae575e63..80eebe130 100644 --- a/markdown/bitburner.ns.islogenabled.md +++ b/markdown/bitburner.ns.islogenabled.md @@ -6,7 +6,7 @@ Checks the status of the logging for the given function. -Signature: +**Signature:** ```typescript isLogEnabled(fn: string): boolean; @@ -18,7 +18,7 @@ isLogEnabled(fn: string): boolean; | --- | --- | --- | | fn | string | Name of function to check. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.isrunning.md b/markdown/bitburner.ns.isrunning.md index d26a5d83b..584dd317b 100644 --- a/markdown/bitburner.ns.isrunning.md +++ b/markdown/bitburner.ns.isrunning.md @@ -6,7 +6,7 @@ Check if a script is running. -Signature: +**Signature:** ```typescript isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): boolean; @@ -17,10 +17,10 @@ isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | bool | Parameter | Type | Description | | --- | --- | --- | | script | [FilenameOrPID](./bitburner.filenameorpid.md) | Filename or PID of script to check. This is case-sensitive. | -| host | string | Hostname of target server. | +| host | string | _(Optional)_ Hostname of target server. | | args | (string \| number \| boolean)\[\] | Arguments to specify/identify which scripts to search for. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.kill.md b/markdown/bitburner.ns.kill.md index 0708953dd..67e3a39e5 100644 --- a/markdown/bitburner.ns.kill.md +++ b/markdown/bitburner.ns.kill.md @@ -6,7 +6,7 @@ Terminate another script. -Signature: +**Signature:** ```typescript kill(script: number): boolean; @@ -18,7 +18,7 @@ kill(script: number): boolean; | --- | --- | --- | | script | number | Filename or PID of the script to kill. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.kill_1.md b/markdown/bitburner.ns.kill_1.md index c50d38ec5..c8d25bba5 100644 --- a/markdown/bitburner.ns.kill_1.md +++ b/markdown/bitburner.ns.kill_1.md @@ -6,7 +6,7 @@ Terminate another script. -Signature: +**Signature:** ```typescript kill(script: string, host: string, ...args: (string | number | boolean)[]): boolean; @@ -20,7 +20,7 @@ kill(script: string, host: string, ...args: (string | number | boolean)[]): bool | host | string | Hostname of the server on which to kill the script. | | args | (string \| number \| boolean)\[\] | Arguments to identify which script to kill. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.killall.md b/markdown/bitburner.ns.killall.md index f7b9cff6c..9d86eb527 100644 --- a/markdown/bitburner.ns.killall.md +++ b/markdown/bitburner.ns.killall.md @@ -6,7 +6,7 @@ Terminate all scripts on a server. -Signature: +**Signature:** ```typescript killall(host?: string, safetyguard?: boolean): boolean; @@ -16,10 +16,10 @@ killall(host?: string, safetyguard?: boolean): boolean; | Parameter | Type | Description | | --- | --- | --- | -| host | string | IP or hostname of the server on which to kill all scripts. | -| safetyguard | boolean | Skips the script that calls this function | +| host | string | _(Optional)_ IP or hostname of the server on which to kill all scripts. | +| safetyguard | boolean | _(Optional)_ Skips the script that calls this function | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.ls.md b/markdown/bitburner.ns.ls.md index 64ce4b423..16b2c4cc9 100644 --- a/markdown/bitburner.ns.ls.md +++ b/markdown/bitburner.ns.ls.md @@ -6,7 +6,7 @@ List files on a server. -Signature: +**Signature:** ```typescript ls(host: string, grep?: string): string[]; @@ -17,9 +17,9 @@ ls(host: string, grep?: string): string[]; | Parameter | Type | Description | | --- | --- | --- | | host | string | Hostname of the target server. | -| grep | string | A substring to search for in the filename. | +| grep | string | _(Optional)_ A substring to search for in the filename. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.ns.md b/markdown/bitburner.ns.md index 8a17009a8..035d2b135 100644 --- a/markdown/bitburner.ns.md +++ b/markdown/bitburner.ns.md @@ -6,7 +6,7 @@ Collection of all functions passed to scripts -Signature: +**Signature:** ```typescript export interface NS @@ -22,7 +22,7 @@ export interface NS // Some related functions are gathered within a common namespace stock.getPrice(); ``` -[ns1 in-game docs](https://bitburner.readthedocs.io/en/latest/netscript/netscript1.html)
Basic ns2 usage example: +[ns1 in-game docs](https://bitburner-official.readthedocs.io/en/latest/netscript/netscript1.html)
Basic ns2 usage example: ```ts export async function main(ns) { @@ -34,28 +34,28 @@ export async function main(ns) { await ns.hack('n00dles'); } ``` -[ns2 in-game docs](https://bitburner.readthedocs.io/en/latest/netscript/netscriptjs.html)
+[ns2 in-game docs](https://bitburner-official.readthedocs.io/en/latest/netscript/netscriptjs.html)
## Properties -| Property | Type | Description | -| --- | --- | --- | -| [args](./bitburner.ns.args.md) | (string \| number \| boolean)\[\] | Arguments passed into the script. | -| [bladeburner](./bitburner.ns.bladeburner.md) | [Bladeburner](./bitburner.bladeburner.md) | Namespace for bladeburner functions. | -| [codingcontract](./bitburner.ns.codingcontract.md) | [CodingContract](./bitburner.codingcontract.md) | Namespace for codingcontract functions. | -| [corporation](./bitburner.ns.corporation.md) | [Corporation](./bitburner.corporation.md) | Namespace for corporation functions. RAM cost: 1022.4 GB | -| [enums](./bitburner.ns.enums.md) | [NSEnums](./bitburner.nsenums.md) | | -| [formulas](./bitburner.ns.formulas.md) | [Formulas](./bitburner.formulas.md) | Namespace for formulas functions. | -| [gang](./bitburner.ns.gang.md) | [Gang](./bitburner.gang.md) | Namespace for gang functions. | -| [grafting](./bitburner.ns.grafting.md) | [Grafting](./bitburner.grafting.md) | Namespace for grafting functions. | -| [hacknet](./bitburner.ns.hacknet.md) | [Hacknet](./bitburner.hacknet.md) | Namespace for hacknet functions. | -| [infiltration](./bitburner.ns.infiltration.md) | [Infiltration](./bitburner.infiltration.md) | Namespace for infiltration functions. RAM cost: 0 GB | -| [pid](./bitburner.ns.pid.md) | number | The current script's PID | -| [singularity](./bitburner.ns.singularity.md) | [Singularity](./bitburner.singularity.md) | Namespace for singularity functions. RAM cost: 0 GB | -| [sleeve](./bitburner.ns.sleeve.md) | [Sleeve](./bitburner.sleeve.md) | Namespace for sleeve functions. | -| [stanek](./bitburner.ns.stanek.md) | [Stanek](./bitburner.stanek.md) | Namespace for stanek functions. RAM cost: 0 GB | -| [stock](./bitburner.ns.stock.md) | [TIX](./bitburner.tix.md) | Namespace for stock functions. | -| [ui](./bitburner.ns.ui.md) | [UserInterface](./bitburner.userinterface.md) | Namespace for user interface functions. RAM cost: 0 GB | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [args](./bitburner.ns.args.md) | readonly | (string \| number \| boolean)\[\] | Arguments passed into the script. | +| [bladeburner](./bitburner.ns.bladeburner.md) | readonly | [Bladeburner](./bitburner.bladeburner.md) | Namespace for bladeburner functions. | +| [codingcontract](./bitburner.ns.codingcontract.md) | readonly | [CodingContract](./bitburner.codingcontract.md) | Namespace for codingcontract functions. | +| [corporation](./bitburner.ns.corporation.md) | readonly | [Corporation](./bitburner.corporation.md) | Namespace for corporation functions. RAM cost: 1022.4 GB | +| [enums](./bitburner.ns.enums.md) | | [NSEnums](./bitburner.nsenums.md) | | +| [formulas](./bitburner.ns.formulas.md) | readonly | [Formulas](./bitburner.formulas.md) | Namespace for formulas functions. | +| [gang](./bitburner.ns.gang.md) | readonly | [Gang](./bitburner.gang.md) | Namespace for gang functions. | +| [grafting](./bitburner.ns.grafting.md) | readonly | [Grafting](./bitburner.grafting.md) | Namespace for grafting functions. | +| [hacknet](./bitburner.ns.hacknet.md) | readonly | [Hacknet](./bitburner.hacknet.md) | Namespace for hacknet functions. | +| [infiltration](./bitburner.ns.infiltration.md) | readonly | [Infiltration](./bitburner.infiltration.md) | Namespace for infiltration functions. RAM cost: 0 GB | +| [pid](./bitburner.ns.pid.md) | readonly | number | The current script's PID | +| [singularity](./bitburner.ns.singularity.md) | readonly | [Singularity](./bitburner.singularity.md) | Namespace for singularity functions. RAM cost: 0 GB | +| [sleeve](./bitburner.ns.sleeve.md) | readonly | [Sleeve](./bitburner.sleeve.md) | Namespace for sleeve functions. | +| [stanek](./bitburner.ns.stanek.md) | readonly | [Stanek](./bitburner.stanek.md) | Namespace for stanek functions. RAM cost: 0 GB | +| [stock](./bitburner.ns.stock.md) | readonly | [TIX](./bitburner.tix.md) | Namespace for stock functions. | +| [ui](./bitburner.ns.ui.md) | readonly | [UserInterface](./bitburner.userinterface.md) | Namespace for user interface functions. RAM cost: 0 GB | ## Methods @@ -76,6 +76,9 @@ export async function main(ns) { | [exit()](./bitburner.ns.exit.md) | Terminates the current script immediately. | | [fileExists(filename, host)](./bitburner.ns.fileexists.md) | Check if a file exists. | | [flags(schema)](./bitburner.ns.flags.md) | Parse command line flags. | +| [formatNumber(n, fractionalDigits, suffixStart, isInteger)](./bitburner.ns.formatnumber.md) | Format a number. | +| [formatPercent(n, fractionalDigits)](./bitburner.ns.formatpercent.md) | Format a number as a percentage. | +| [formatRam(n, fractionalDigits)](./bitburner.ns.formatram.md) | Format a number as an amount of ram. | | [ftpcrack(host)](./bitburner.ns.ftpcrack.md) | Runs FTPCrack.exe on a server. | | [getBitNodeMultipliers(n, lvl)](./bitburner.ns.getbitnodemultipliers.md) | Get the current Bitnode multipliers. | | [getFavorToDonate()](./bitburner.ns.getfavortodonate.md) | Returns the amount of Faction favor required to be able to donate to a faction. | @@ -135,7 +138,7 @@ export async function main(ns) { | [ls(host, grep)](./bitburner.ns.ls.md) | List files on a server. | | [moveTail(x, y, pid)](./bitburner.ns.movetail.md) | Move a tail window. | | [mv(host, source, destination)](./bitburner.ns.mv.md) | Move a file on the target server. | -| [nFormat(n, format)](./bitburner.ns.nformat.md) | Format a number. | +| [nFormat(n, format)](./bitburner.ns.nformat.md) | Format a number using the numeral library. This function is deprecated and will be removed in 2.3. | | [nuke(host)](./bitburner.ns.nuke.md) | Runs NUKE.exe on a server. | | [peek(port)](./bitburner.ns.peek.md) | Get a copy of the data from a port without popping it. | | [print(args)](./bitburner.ns.print.md) | Prints one or more values or variables to the script’s logs. | diff --git a/markdown/bitburner.ns.movetail.md b/markdown/bitburner.ns.movetail.md index 4c2b51e0c..5c59cecf1 100644 --- a/markdown/bitburner.ns.movetail.md +++ b/markdown/bitburner.ns.movetail.md @@ -6,7 +6,7 @@ Move a tail window. -Signature: +**Signature:** ```typescript moveTail(x: number, y: number, pid?: number): void; @@ -18,9 +18,9 @@ moveTail(x: number, y: number, pid?: number): void; | --- | --- | --- | | x | number | x coordinate. | | y | number | y coordinate. | -| pid | number | Optional. PID of the script having its tail moved. If omitted, the current script is used. | +| pid | number | _(Optional)_ Optional. PID of the script having its tail moved. If omitted, the current script is used. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.mv.md b/markdown/bitburner.ns.mv.md index fb2532ab3..af2ee56b9 100644 --- a/markdown/bitburner.ns.mv.md +++ b/markdown/bitburner.ns.mv.md @@ -6,7 +6,7 @@ Move a file on the target server. -Signature: +**Signature:** ```typescript mv(host: string, source: string, destination: string): void; @@ -20,7 +20,7 @@ mv(host: string, source: string, destination: string): void; | source | string | Filename of the source file. | | destination | string | Filename of the destination file. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.nformat.md b/markdown/bitburner.ns.nformat.md index 3e69c91f4..ef7bb6fb4 100644 --- a/markdown/bitburner.ns.nformat.md +++ b/markdown/bitburner.ns.nformat.md @@ -4,9 +4,9 @@ ## NS.nFormat() method -Format a number. +Format a number using the numeral library. This function is deprecated and will be removed in 2.3. -Signature: +**Signature:** ```typescript nFormat(n: number, format: string): string; @@ -17,9 +17,9 @@ nFormat(n: number, format: string): string; | Parameter | Type | Description | | --- | --- | --- | | n | number | Number to format. | -| format | string | Formatter. | +| format | string | Formatting options. See http://numeraljs.com/\#format for valid formats. | -Returns: +**Returns:** string @@ -29,7 +29,7 @@ Formatted number. RAM cost: 0 GB -Converts a number into a string with the specified formatter. This uses the numeral.js library, so the formatters must be compatible with that. This is the same function that the game itself uses to display numbers. +Converts a number into a string with the specified format options. See http://numeraljs.com/\#format for documentation on format strings supported. -For more information, see: http://numeraljs.com/ +This function is deprecated and will be removed in 2.3. diff --git a/markdown/bitburner.ns.nuke.md b/markdown/bitburner.ns.nuke.md index 2375d3466..4eeaf9bd1 100644 --- a/markdown/bitburner.ns.nuke.md +++ b/markdown/bitburner.ns.nuke.md @@ -6,7 +6,7 @@ Runs NUKE.exe on a server. -Signature: +**Signature:** ```typescript nuke(host: string): void; @@ -18,7 +18,7 @@ nuke(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.peek.md b/markdown/bitburner.ns.peek.md index 017d79d04..a33f38b20 100644 --- a/markdown/bitburner.ns.peek.md +++ b/markdown/bitburner.ns.peek.md @@ -6,7 +6,7 @@ Get a copy of the data from a port without popping it. -Signature: +**Signature:** ```typescript peek(port: number): PortData; @@ -18,7 +18,7 @@ peek(port: number): PortData; | --- | --- | --- | | port | number | Port to peek. Must be an integer between 1 and 20. | -Returns: +**Returns:** [PortData](./bitburner.portdata.md) diff --git a/markdown/bitburner.ns.pid.md b/markdown/bitburner.ns.pid.md index d2f666a2e..ffd8a84ca 100644 --- a/markdown/bitburner.ns.pid.md +++ b/markdown/bitburner.ns.pid.md @@ -6,7 +6,7 @@ The current script's PID -Signature: +**Signature:** ```typescript readonly pid: number; diff --git a/markdown/bitburner.ns.print.md b/markdown/bitburner.ns.print.md index d8ce5a74f..221105327 100644 --- a/markdown/bitburner.ns.print.md +++ b/markdown/bitburner.ns.print.md @@ -6,7 +6,7 @@ Prints one or more values or variables to the script’s logs. -Signature: +**Signature:** ```typescript print(...args: any[]): void; @@ -18,7 +18,7 @@ print(...args: any[]): void; | --- | --- | --- | | args | any\[\] | Value(s) to be printed. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.printf.md b/markdown/bitburner.ns.printf.md index 2ca1f16c1..d65c1f2fc 100644 --- a/markdown/bitburner.ns.printf.md +++ b/markdown/bitburner.ns.printf.md @@ -6,7 +6,7 @@ Prints a formatted string to the script’s logs. -Signature: +**Signature:** ```typescript printf(format: string, ...args: any[]): void; @@ -19,7 +19,7 @@ printf(format: string, ...args: any[]): void; | format | string | Format of the message. | | args | any\[\] | Value(s) to be printed. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.prompt.md b/markdown/bitburner.ns.prompt.md index 725855444..937b77abb 100644 --- a/markdown/bitburner.ns.prompt.md +++ b/markdown/bitburner.ns.prompt.md @@ -6,7 +6,7 @@ Prompt the player with an input modal. -Signature: +**Signature:** ```typescript prompt( @@ -20,9 +20,9 @@ prompt( | Parameter | Type | Description | | --- | --- | --- | | txt | string | Text to appear in the prompt dialog box. | -| options | { type?: "boolean" \| "text" \| "select"; choices?: string\[\] } | Options to modify the prompt the player is shown. | +| options | { type?: "boolean" \| "text" \| "select"; choices?: string\[\] } | _(Optional)_ Options to modify the prompt the player is shown. | -Returns: +**Returns:** Promise<boolean \| string> diff --git a/markdown/bitburner.ns.ps.md b/markdown/bitburner.ns.ps.md index 532969c20..0aaf7a867 100644 --- a/markdown/bitburner.ns.ps.md +++ b/markdown/bitburner.ns.ps.md @@ -6,7 +6,7 @@ List running scripts on a server. -Signature: +**Signature:** ```typescript ps(host?: string): ProcessInfo[]; @@ -16,9 +16,9 @@ ps(host?: string): ProcessInfo[]; | Parameter | Type | Description | | --- | --- | --- | -| host | string | Host address of the target server. If not specified, it will be the current server’s IP by default. | +| host | string | _(Optional)_ Host address of the target server. If not specified, it will be the current server’s IP by default. | -Returns: +**Returns:** [ProcessInfo](./bitburner.processinfo.md)\[\] diff --git a/markdown/bitburner.ns.purchaseserver.md b/markdown/bitburner.ns.purchaseserver.md index 7f1f90087..6e81bef09 100644 --- a/markdown/bitburner.ns.purchaseserver.md +++ b/markdown/bitburner.ns.purchaseserver.md @@ -6,7 +6,7 @@ Purchase a server. -Signature: +**Signature:** ```typescript purchaseServer(hostname: string, ram: number): string; @@ -19,7 +19,7 @@ purchaseServer(hostname: string, ram: number): string; | hostname | string | Hostname of the purchased server. | | ram | number | Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). | -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.read.md b/markdown/bitburner.ns.read.md index 005316929..af55f6dab 100644 --- a/markdown/bitburner.ns.read.md +++ b/markdown/bitburner.ns.read.md @@ -6,7 +6,7 @@ Read content of a file. -Signature: +**Signature:** ```typescript read(filename: string): string; @@ -18,7 +18,7 @@ read(filename: string): string; | --- | --- | --- | | filename | string | Name of the file to be read. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.readport.md b/markdown/bitburner.ns.readport.md index a6677acff..1d86dc094 100644 --- a/markdown/bitburner.ns.readport.md +++ b/markdown/bitburner.ns.readport.md @@ -6,7 +6,7 @@ Read data from a port. -Signature: +**Signature:** ```typescript readPort(port: number): PortData; @@ -18,7 +18,7 @@ readPort(port: number): PortData; | --- | --- | --- | | port | number | | -Returns: +**Returns:** [PortData](./bitburner.portdata.md) diff --git a/markdown/bitburner.ns.relaysmtp.md b/markdown/bitburner.ns.relaysmtp.md index ccbeb6016..389f7a312 100644 --- a/markdown/bitburner.ns.relaysmtp.md +++ b/markdown/bitburner.ns.relaysmtp.md @@ -6,7 +6,7 @@ Runs relaySMTP.exe on a server. -Signature: +**Signature:** ```typescript relaysmtp(host: string): void; @@ -18,7 +18,7 @@ relaysmtp(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.renamepurchasedserver.md b/markdown/bitburner.ns.renamepurchasedserver.md index 9a0b74f83..9538662f6 100644 --- a/markdown/bitburner.ns.renamepurchasedserver.md +++ b/markdown/bitburner.ns.renamepurchasedserver.md @@ -6,7 +6,7 @@ Rename a purchased server. -Signature: +**Signature:** ```typescript renamePurchasedServer(hostname: string, newName: string): boolean; @@ -19,7 +19,7 @@ renamePurchasedServer(hostname: string, newName: string): boolean; | hostname | string | Current server hostname. | | newName | string | New server hostname. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.resizetail.md b/markdown/bitburner.ns.resizetail.md index 0c606780d..e0f47959a 100644 --- a/markdown/bitburner.ns.resizetail.md +++ b/markdown/bitburner.ns.resizetail.md @@ -6,7 +6,7 @@ Resize a tail window. -Signature: +**Signature:** ```typescript resizeTail(width: number, height: number, pid?: number): void; @@ -18,9 +18,9 @@ resizeTail(width: number, height: number, pid?: number): void; | --- | --- | --- | | width | number | Width of the window. | | height | number | Height of the window. | -| pid | number | Optional. PID of the script having its tail resized. If omitted, the current script is used. | +| pid | number | _(Optional)_ Optional. PID of the script having its tail resized. If omitted, the current script is used. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.rm.md b/markdown/bitburner.ns.rm.md index 56621f077..c39b74885 100644 --- a/markdown/bitburner.ns.rm.md +++ b/markdown/bitburner.ns.rm.md @@ -6,7 +6,7 @@ Delete a file. -Signature: +**Signature:** ```typescript rm(name: string, host?: string): boolean; @@ -17,9 +17,9 @@ rm(name: string, host?: string): boolean; | Parameter | Type | Description | | --- | --- | --- | | name | string | Filename of file to remove. Must include the extension. | -| host | string | Hostname of the server on which to delete the file. Optional. Defaults to current server. | +| host | string | _(Optional)_ Hostname of the server on which to delete the file. Optional. Defaults to current server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.run.md b/markdown/bitburner.ns.run.md index 842d46bca..7c0ed432c 100644 --- a/markdown/bitburner.ns.run.md +++ b/markdown/bitburner.ns.run.md @@ -6,7 +6,7 @@ Start another script on the current server. -Signature: +**Signature:** ```typescript run(script: string, numThreads?: number, ...args: (string | number | boolean)[]): number; @@ -17,10 +17,10 @@ run(script: string, numThreads?: number, ...args: (string | number | boolean)[]) | Parameter | Type | Description | | --- | --- | --- | | script | string | Filename of script to run. | -| numThreads | number | Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. | +| numThreads | number | _(Optional)_ Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. | | args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument numThreads must be filled in with a value. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.scan.md b/markdown/bitburner.ns.scan.md index a51c1886b..8a7e2fc9f 100644 --- a/markdown/bitburner.ns.scan.md +++ b/markdown/bitburner.ns.scan.md @@ -6,7 +6,7 @@ Get the list of servers connected to a server. -Signature: +**Signature:** ```typescript scan(host?: string): string[]; @@ -16,9 +16,9 @@ scan(host?: string): string[]; | Parameter | Type | Description | | --- | --- | --- | -| host | string | Optional. Hostname of the server to scan, default to current server. | +| host | string | _(Optional)_ Optional. Hostname of the server to scan, default to current server. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.ns.scp.md b/markdown/bitburner.ns.scp.md index 8bd95155e..b8dd1d685 100644 --- a/markdown/bitburner.ns.scp.md +++ b/markdown/bitburner.ns.scp.md @@ -6,7 +6,7 @@ Copy file between servers. -Signature: +**Signature:** ```typescript scp(files: string | string[], destination: string, source?: string): boolean; @@ -18,9 +18,9 @@ scp(files: string | string[], destination: string, source?: string): boolean; | --- | --- | --- | | files | string \| string\[\] | Filename or an array of filenames of script/literature files to copy. Note that if a file is located in a subdirectory, the filename must include the leading /. | | destination | string | Hostname of the destination server, which is the server to which the file will be copied. | -| source | string | Hostname of the source server, which is the server from which the file will be copied. This argument is optional and if it’s omitted the source will be the current server. | +| source | string | _(Optional)_ Hostname of the source server, which is the server from which the file will be copied. This argument is optional and if it’s omitted the source will be the current server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.scriptkill.md b/markdown/bitburner.ns.scriptkill.md index 639f930be..d256b2e12 100644 --- a/markdown/bitburner.ns.scriptkill.md +++ b/markdown/bitburner.ns.scriptkill.md @@ -6,7 +6,7 @@ Kill all scripts with a filename. -Signature: +**Signature:** ```typescript scriptKill(script: string, host: string): boolean; @@ -19,7 +19,7 @@ scriptKill(script: string, host: string): boolean; | script | string | Filename of script to kill. This is case-sensitive. | | host | string | Hostname of target server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.scriptrunning.md b/markdown/bitburner.ns.scriptrunning.md index 46e107478..8c2a64a00 100644 --- a/markdown/bitburner.ns.scriptrunning.md +++ b/markdown/bitburner.ns.scriptrunning.md @@ -6,7 +6,7 @@ Check if any script with a filename is running. -Signature: +**Signature:** ```typescript scriptRunning(script: string, host: string): boolean; @@ -19,7 +19,7 @@ scriptRunning(script: string, host: string): boolean; | script | string | Filename of script to check. This is case-sensitive. | | host | string | Hostname of target server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.serverexists.md b/markdown/bitburner.ns.serverexists.md index 1f9c2cee7..2f287a41a 100644 --- a/markdown/bitburner.ns.serverexists.md +++ b/markdown/bitburner.ns.serverexists.md @@ -6,7 +6,7 @@ Returns a boolean denoting whether or not the specified server exists. -Signature: +**Signature:** ```typescript serverExists(host: string): boolean; @@ -18,7 +18,7 @@ serverExists(host: string): boolean; | --- | --- | --- | | host | string | Hostname of target server. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.share.md b/markdown/bitburner.ns.share.md index 421e3e032..b308966f5 100644 --- a/markdown/bitburner.ns.share.md +++ b/markdown/bitburner.ns.share.md @@ -6,12 +6,12 @@ Share your computer with your factions. -Signature: +**Signature:** ```typescript share(): Promise; ``` -Returns: +**Returns:** Promise<void> @@ -19,5 +19,5 @@ Promise<void> RAM cost: 2.4 GB -Increases your rep gain of hacking contracts while share is called. Scales with thread count. +Increases your rep gain of all faction work types while share is called. Scales with thread count. diff --git a/markdown/bitburner.ns.singularity.md b/markdown/bitburner.ns.singularity.md index 23f31db42..3dd1ca02d 100644 --- a/markdown/bitburner.ns.singularity.md +++ b/markdown/bitburner.ns.singularity.md @@ -6,7 +6,7 @@ Namespace for singularity functions. RAM cost: 0 GB -Signature: +**Signature:** ```typescript readonly singularity: Singularity; diff --git a/markdown/bitburner.ns.sleep.md b/markdown/bitburner.ns.sleep.md index 857992f86..d3784a225 100644 --- a/markdown/bitburner.ns.sleep.md +++ b/markdown/bitburner.ns.sleep.md @@ -6,7 +6,7 @@ Suspends the script for n milliseconds. -Signature: +**Signature:** ```typescript sleep(millis: number): Promise; @@ -18,7 +18,7 @@ sleep(millis: number): Promise; | --- | --- | --- | | millis | number | Number of milliseconds to sleep. | -Returns: +**Returns:** Promise<true> diff --git a/markdown/bitburner.ns.sleeve.md b/markdown/bitburner.ns.sleeve.md index bc3be1dd9..67fb98070 100644 --- a/markdown/bitburner.ns.sleeve.md +++ b/markdown/bitburner.ns.sleeve.md @@ -6,7 +6,7 @@ Namespace for sleeve functions. -Signature: +**Signature:** ```typescript readonly sleeve: Sleeve; diff --git a/markdown/bitburner.ns.spawn.md b/markdown/bitburner.ns.spawn.md index 7596ee3a8..00b0fa557 100644 --- a/markdown/bitburner.ns.spawn.md +++ b/markdown/bitburner.ns.spawn.md @@ -6,7 +6,7 @@ Terminate current script and start another in 10 seconds. -Signature: +**Signature:** ```typescript spawn(script: string, numThreads?: number, ...args: (string | number | boolean)[]): void; @@ -17,10 +17,10 @@ spawn(script: string, numThreads?: number, ...args: (string | number | boolean)[ | Parameter | Type | Description | | --- | --- | --- | | script | string | Filename of script to execute. | -| numThreads | number | Number of threads to spawn new script with. Will be rounded to nearest integer. | +| numThreads | number | _(Optional)_ Number of threads to spawn new script with. Will be rounded to nearest integer. | | args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.sprintf.md b/markdown/bitburner.ns.sprintf.md index cda063926..6912ff691 100644 --- a/markdown/bitburner.ns.sprintf.md +++ b/markdown/bitburner.ns.sprintf.md @@ -6,7 +6,7 @@ Format a string. -Signature: +**Signature:** ```typescript sprintf(format: string, ...args: any[]): string; @@ -19,7 +19,7 @@ sprintf(format: string, ...args: any[]): string; | format | string | String to format. | | args | any\[\] | Formatting arguments. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.sqlinject.md b/markdown/bitburner.ns.sqlinject.md index e5b4797cf..b1585b3fe 100644 --- a/markdown/bitburner.ns.sqlinject.md +++ b/markdown/bitburner.ns.sqlinject.md @@ -6,7 +6,7 @@ Runs SQLInject.exe on a server. -Signature: +**Signature:** ```typescript sqlinject(host: string): void; @@ -18,7 +18,7 @@ sqlinject(host: string): void; | --- | --- | --- | | host | string | Hostname of the target server. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.stanek.md b/markdown/bitburner.ns.stanek.md index b1d10e2e7..820fcf9dc 100644 --- a/markdown/bitburner.ns.stanek.md +++ b/markdown/bitburner.ns.stanek.md @@ -6,7 +6,7 @@ Namespace for stanek functions. RAM cost: 0 GB -Signature: +**Signature:** ```typescript readonly stanek: Stanek; diff --git a/markdown/bitburner.ns.stock.md b/markdown/bitburner.ns.stock.md index 14a1bc388..057e38bf7 100644 --- a/markdown/bitburner.ns.stock.md +++ b/markdown/bitburner.ns.stock.md @@ -6,7 +6,7 @@ Namespace for stock functions. -Signature: +**Signature:** ```typescript readonly stock: TIX; diff --git a/markdown/bitburner.ns.tail.md b/markdown/bitburner.ns.tail.md index 333d594af..9bf3d5035 100644 --- a/markdown/bitburner.ns.tail.md +++ b/markdown/bitburner.ns.tail.md @@ -6,7 +6,7 @@ Open the tail window of a script. -Signature: +**Signature:** ```typescript tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): void; @@ -16,11 +16,11 @@ tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): | Parameter | Type | Description | | --- | --- | --- | -| fn | [FilenameOrPID](./bitburner.filenameorpid.md) | Optional. Filename or PID of the script being tailed. If omitted, the current script is tailed. | -| host | string | Optional. Hostname of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. | +| fn | [FilenameOrPID](./bitburner.filenameorpid.md) | _(Optional)_ Optional. Filename or PID of the script being tailed. If omitted, the current script is tailed. | +| host | string | _(Optional)_ Optional. Hostname of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. | | args | (string \| number \| boolean)\[\] | Arguments for the script being tailed. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.tformat.md b/markdown/bitburner.ns.tformat.md index f5b658448..54b06b02a 100644 --- a/markdown/bitburner.ns.tformat.md +++ b/markdown/bitburner.ns.tformat.md @@ -6,7 +6,7 @@ Format time to a readable string. -Signature: +**Signature:** ```typescript tFormat(milliseconds: number, milliPrecision?: boolean): string; @@ -17,9 +17,9 @@ tFormat(milliseconds: number, milliPrecision?: boolean): string; | Parameter | Type | Description | | --- | --- | --- | | milliseconds | number | Number of millisecond to format. | -| milliPrecision | boolean | Format time with subsecond precision. Defaults to false. | +| milliPrecision | boolean | _(Optional)_ Format time with subsecond precision. Defaults to false. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.toast.md b/markdown/bitburner.ns.toast.md index f9e801c26..00a46e530 100644 --- a/markdown/bitburner.ns.toast.md +++ b/markdown/bitburner.ns.toast.md @@ -6,7 +6,7 @@ Queue a toast (bottom-right notification). -Signature: +**Signature:** ```typescript toast(msg: string, variant?: ToastVariant | `${ToastVariant}`, duration?: number | null): void; @@ -17,10 +17,10 @@ toast(msg: string, variant?: ToastVariant | `${ToastVariant}`, duration?: number | Parameter | Type | Description | | --- | --- | --- | | msg | string | Message in the toast. | -| variant | [ToastVariant](./bitburner.toastvariant.md) \| \`${[ToastVariant](./bitburner.toastvariant.md)}\` | Type of toast. Must be one of success, info, warning, error. Defaults to success. | -| duration | number \| null | Duration of toast in ms. Can also be null to create a persistent toast. Defaults to 2000. | +| variant | [ToastVariant](./bitburner.toastvariant.md) \| \`${[ToastVariant](./bitburner.toastvariant.md)}\` | _(Optional)_ Type of toast. Must be one of success, info, warning, error. Defaults to success. | +| duration | number \| null | _(Optional)_ Duration of toast in ms. Can also be null to create a persistent toast. Defaults to 2000. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.tprint.md b/markdown/bitburner.ns.tprint.md index 4e8cd8d8a..ccd8ea126 100644 --- a/markdown/bitburner.ns.tprint.md +++ b/markdown/bitburner.ns.tprint.md @@ -6,7 +6,7 @@ Prints one or more values or variables to the Terminal. -Signature: +**Signature:** ```typescript tprint(...args: any[]): void; @@ -18,7 +18,7 @@ tprint(...args: any[]): void; | --- | --- | --- | | args | any\[\] | Value(s) to be printed. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.tprintf.md b/markdown/bitburner.ns.tprintf.md index 1005b9be8..e05129a1d 100644 --- a/markdown/bitburner.ns.tprintf.md +++ b/markdown/bitburner.ns.tprintf.md @@ -6,7 +6,7 @@ Prints a raw value or a variable to the Terminal. -Signature: +**Signature:** ```typescript tprintf(format: string, ...values: any[]): void; @@ -19,7 +19,7 @@ tprintf(format: string, ...values: any[]): void; | format | string | Format of the message. | | values | any\[\] | Value(s) to be printed. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.trywriteport.md b/markdown/bitburner.ns.trywriteport.md index e2ea77324..7ce514a2b 100644 --- a/markdown/bitburner.ns.trywriteport.md +++ b/markdown/bitburner.ns.trywriteport.md @@ -6,7 +6,7 @@ Attempt to write to a port. -Signature: +**Signature:** ```typescript tryWritePort(port: number, data: string | number): boolean; @@ -19,7 +19,7 @@ tryWritePort(port: number, data: string | number): boolean; | port | number | Port or text file that will be written to. | | data | string \| number | Data to write. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.ui.md b/markdown/bitburner.ns.ui.md index 445717055..687f7242f 100644 --- a/markdown/bitburner.ns.ui.md +++ b/markdown/bitburner.ns.ui.md @@ -6,7 +6,7 @@ Namespace for user interface functions. RAM cost: 0 GB -Signature: +**Signature:** ```typescript readonly ui: UserInterface; diff --git a/markdown/bitburner.ns.upgradepurchasedserver.md b/markdown/bitburner.ns.upgradepurchasedserver.md index e61279b5a..d36f2e877 100644 --- a/markdown/bitburner.ns.upgradepurchasedserver.md +++ b/markdown/bitburner.ns.upgradepurchasedserver.md @@ -6,7 +6,7 @@ Upgrade a purchased server's RAM. -Signature: +**Signature:** ```typescript upgradePurchasedServer(hostname: string, ram: number): boolean; @@ -19,7 +19,7 @@ upgradePurchasedServer(hostname: string, ram: number): boolean; | hostname | string | Hostname of the server to upgrade. | | ram | number | Amount of RAM of the purchased server, in GB. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.ns.vsprintf.md b/markdown/bitburner.ns.vsprintf.md index 17b4c4ae7..ef807f8ce 100644 --- a/markdown/bitburner.ns.vsprintf.md +++ b/markdown/bitburner.ns.vsprintf.md @@ -6,7 +6,7 @@ Format a string with an array of arguments. -Signature: +**Signature:** ```typescript vsprintf(format: string, args: any[]): string; @@ -19,7 +19,7 @@ vsprintf(format: string, args: any[]): string; | format | string | String to format. | | args | any\[\] | Formatting arguments. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.ns.weaken.md b/markdown/bitburner.ns.weaken.md index 4794e9f21..d025ef8cc 100644 --- a/markdown/bitburner.ns.weaken.md +++ b/markdown/bitburner.ns.weaken.md @@ -6,7 +6,7 @@ Reduce a server's security level. -Signature: +**Signature:** ```typescript weaken(host: string, opts?: BasicHGWOptions): Promise; @@ -17,9 +17,9 @@ weaken(host: string, opts?: BasicHGWOptions): Promise; | Parameter | Type | Description | | --- | --- | --- | | host | string | Hostname of the target server to weaken. | -| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | Optional parameters for configuring function behavior. | +| opts | [BasicHGWOptions](./bitburner.basichgwoptions.md) | _(Optional)_ Optional parameters for configuring function behavior. | -Returns: +**Returns:** Promise<number> diff --git a/markdown/bitburner.ns.weakenanalyze.md b/markdown/bitburner.ns.weakenanalyze.md index 4dabf061a..211de8bb5 100644 --- a/markdown/bitburner.ns.weakenanalyze.md +++ b/markdown/bitburner.ns.weakenanalyze.md @@ -6,7 +6,7 @@ Predict the effect of weaken. -Signature: +**Signature:** ```typescript weakenAnalyze(threads: number, cores?: number): number; @@ -17,9 +17,9 @@ weakenAnalyze(threads: number, cores?: number): number; | Parameter | Type | Description | | --- | --- | --- | | threads | number | Amount of threads that will be used. | -| cores | number | Optional. The number of cores of the server that would run weaken. | +| cores | number | _(Optional)_ Optional. The number of cores of the server that would run weaken. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.ns.wget.md b/markdown/bitburner.ns.wget.md index 3fa300806..4761fa669 100644 --- a/markdown/bitburner.ns.wget.md +++ b/markdown/bitburner.ns.wget.md @@ -6,7 +6,7 @@ Download a file from the internet. -Signature: +**Signature:** ```typescript wget(url: string, target: string, host?: string): Promise; @@ -18,9 +18,9 @@ wget(url: string, target: string, host?: string): Promise; | --- | --- | --- | | url | string | URL to pull data from. | | target | string | Filename to write data to. Must be script or text file. | -| host | string | Optional hostname/ip of server for target file. | +| host | string | _(Optional)_ Optional hostname/ip of server for target file. | -Returns: +**Returns:** Promise<boolean> diff --git a/markdown/bitburner.ns.write.md b/markdown/bitburner.ns.write.md index eb3a41029..85605f1df 100644 --- a/markdown/bitburner.ns.write.md +++ b/markdown/bitburner.ns.write.md @@ -6,7 +6,7 @@ Write data to a file. -Signature: +**Signature:** ```typescript write(filename: string, data?: string, mode?: "w" | "a"): void; @@ -17,10 +17,10 @@ write(filename: string, data?: string, mode?: "w" | "a"): void; | Parameter | Type | Description | | --- | --- | --- | | filename | string | Name of the file to be written to. | -| data | string | Data to write. | -| mode | "w" \| "a" | Defines the write mode. | +| data | string | _(Optional)_ Data to write. | +| mode | "w" \| "a" | _(Optional)_ Defines the write mode. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ns.writeport.md b/markdown/bitburner.ns.writeport.md index eb98c6b2a..f1f751d45 100644 --- a/markdown/bitburner.ns.writeport.md +++ b/markdown/bitburner.ns.writeport.md @@ -6,7 +6,7 @@ Write data to a port. -Signature: +**Signature:** ```typescript writePort(port: number, data: string | number): PortData | null; @@ -19,7 +19,7 @@ writePort(port: number, data: string | number): PortData | null; | port | number | | | data | string \| number | | -Returns: +**Returns:** [PortData](./bitburner.portdata.md) \| null diff --git a/markdown/bitburner.nsenums.md b/markdown/bitburner.nsenums.md index 3324c47f6..a7dfb431b 100644 --- a/markdown/bitburner.nsenums.md +++ b/markdown/bitburner.nsenums.md @@ -5,7 +5,7 @@ ## NSEnums type -Signature: +**Signature:** ```typescript export type NSEnums = { @@ -19,5 +19,5 @@ export type NSEnums = { UniversityClassType: typeof UniversityClassType; }; ``` -References: [CityName](./bitburner.cityname.md), [CrimeType](./bitburner.crimetype.md), [FactionWorkType](./bitburner.factionworktype.md), [GymType](./bitburner.gymtype.md), [JobName](./bitburner.jobname.md), [LocationName](./bitburner.locationname.md), [ToastVariant](./bitburner.toastvariant.md), [UniversityClassType](./bitburner.universityclasstype.md) +**References:** [CityName](./bitburner.cityname.md), [CrimeType](./bitburner.crimetype.md), [FactionWorkType](./bitburner.factionworktype.md), [GymType](./bitburner.gymtype.md), [JobName](./bitburner.jobname.md), [LocationName](./bitburner.locationname.md), [ToastVariant](./bitburner.toastvariant.md), [UniversityClassType](./bitburner.universityclasstype.md) diff --git a/markdown/bitburner.office.avgene.md b/markdown/bitburner.office.avgene.md index 551fcc6e4..0ad56b7d6 100644 --- a/markdown/bitburner.office.avgene.md +++ b/markdown/bitburner.office.avgene.md @@ -6,7 +6,7 @@ Average energy of the employees -Signature: +**Signature:** ```typescript avgEne: number; diff --git a/markdown/bitburner.office.avghap.md b/markdown/bitburner.office.avghap.md index 7d9ec2855..0131d16d9 100644 --- a/markdown/bitburner.office.avghap.md +++ b/markdown/bitburner.office.avghap.md @@ -6,7 +6,7 @@ Average happiness of the employees -Signature: +**Signature:** ```typescript avgHap: number; diff --git a/markdown/bitburner.office.avgmor.md b/markdown/bitburner.office.avgmor.md index 5397ae3a8..0b0c1bf44 100644 --- a/markdown/bitburner.office.avgmor.md +++ b/markdown/bitburner.office.avgmor.md @@ -6,7 +6,7 @@ Average morale of the employees -Signature: +**Signature:** ```typescript avgMor: number; diff --git a/markdown/bitburner.office.employeejobs.md b/markdown/bitburner.office.employeejobs.md index debdb5eff..cc9be3c4c 100644 --- a/markdown/bitburner.office.employeejobs.md +++ b/markdown/bitburner.office.employeejobs.md @@ -6,7 +6,7 @@ Positions of the employees -Signature: +**Signature:** ```typescript employeeJobs: Record; diff --git a/markdown/bitburner.office.employeeprod.md b/markdown/bitburner.office.employeeprod.md index 9efcdbe6e..9d30748ab 100644 --- a/markdown/bitburner.office.employeeprod.md +++ b/markdown/bitburner.office.employeeprod.md @@ -6,7 +6,7 @@ Production of the employees -Signature: +**Signature:** ```typescript employeeProd: Record; diff --git a/markdown/bitburner.office.employees.md b/markdown/bitburner.office.employees.md index a38f423ca..28fe01312 100644 --- a/markdown/bitburner.office.employees.md +++ b/markdown/bitburner.office.employees.md @@ -6,7 +6,7 @@ Amount of employees -Signature: +**Signature:** ```typescript employees: number; diff --git a/markdown/bitburner.office.loc.md b/markdown/bitburner.office.loc.md index 4e544bd6d..5002b6357 100644 --- a/markdown/bitburner.office.loc.md +++ b/markdown/bitburner.office.loc.md @@ -6,7 +6,7 @@ City of the office -Signature: +**Signature:** ```typescript loc: CityName; diff --git a/markdown/bitburner.office.maxene.md b/markdown/bitburner.office.maxene.md index 92554bb97..081ad48a2 100644 --- a/markdown/bitburner.office.maxene.md +++ b/markdown/bitburner.office.maxene.md @@ -6,7 +6,7 @@ Maximum amount of energy of the employees -Signature: +**Signature:** ```typescript maxEne: number; diff --git a/markdown/bitburner.office.maxhap.md b/markdown/bitburner.office.maxhap.md index 03e619dec..9e62ed6da 100644 --- a/markdown/bitburner.office.maxhap.md +++ b/markdown/bitburner.office.maxhap.md @@ -6,7 +6,7 @@ Maximum happiness of the employees -Signature: +**Signature:** ```typescript maxHap: number; diff --git a/markdown/bitburner.office.maxmor.md b/markdown/bitburner.office.maxmor.md index ae0c55f3d..423a204ae 100644 --- a/markdown/bitburner.office.maxmor.md +++ b/markdown/bitburner.office.maxmor.md @@ -6,7 +6,7 @@ Maximum morale of the employees -Signature: +**Signature:** ```typescript maxMor: number; diff --git a/markdown/bitburner.office.md b/markdown/bitburner.office.md index 541512def..82553ffcb 100644 --- a/markdown/bitburner.office.md +++ b/markdown/bitburner.office.md @@ -6,7 +6,7 @@ Office for a division in a city. -Signature: +**Signature:** ```typescript export interface Office @@ -14,17 +14,17 @@ export interface Office ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [avgEne](./bitburner.office.avgene.md) | number | Average energy of the employees | -| [avgHap](./bitburner.office.avghap.md) | number | Average happiness of the employees | -| [avgMor](./bitburner.office.avgmor.md) | number | Average morale of the employees | -| [employeeJobs](./bitburner.office.employeejobs.md) | Record<[CorpEmployeePosition](./bitburner.corpemployeeposition.md), number> | Positions of the employees | -| [employeeProd](./bitburner.office.employeeprod.md) | Record<[CorpEmployeePosition](./bitburner.corpemployeeposition.md), number> | Production of the employees | -| [employees](./bitburner.office.employees.md) | number | Amount of employees | -| [loc](./bitburner.office.loc.md) | [CityName](./bitburner.cityname.md) | City of the office | -| [maxEne](./bitburner.office.maxene.md) | number | Maximum amount of energy of the employees | -| [maxHap](./bitburner.office.maxhap.md) | number | Maximum happiness of the employees | -| [maxMor](./bitburner.office.maxmor.md) | number | Maximum morale of the employees | -| [size](./bitburner.office.size.md) | number | Maximum number of employee | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [avgEne](./bitburner.office.avgene.md) | | number | Average energy of the employees | +| [avgHap](./bitburner.office.avghap.md) | | number | Average happiness of the employees | +| [avgMor](./bitburner.office.avgmor.md) | | number | Average morale of the employees | +| [employeeJobs](./bitburner.office.employeejobs.md) | | Record<[CorpEmployeePosition](./bitburner.corpemployeeposition.md), number> | Positions of the employees | +| [employeeProd](./bitburner.office.employeeprod.md) | | Record<[CorpEmployeePosition](./bitburner.corpemployeeposition.md), number> | Production of the employees | +| [employees](./bitburner.office.employees.md) | | number | Amount of employees | +| [loc](./bitburner.office.loc.md) | | [CityName](./bitburner.cityname.md) | City of the office | +| [maxEne](./bitburner.office.maxene.md) | | number | Maximum amount of energy of the employees | +| [maxHap](./bitburner.office.maxhap.md) | | number | Maximum happiness of the employees | +| [maxMor](./bitburner.office.maxmor.md) | | number | Maximum morale of the employees | +| [size](./bitburner.office.size.md) | | number | Maximum number of employee | diff --git a/markdown/bitburner.office.size.md b/markdown/bitburner.office.size.md index 696e614c0..369897e38 100644 --- a/markdown/bitburner.office.size.md +++ b/markdown/bitburner.office.size.md @@ -6,7 +6,7 @@ Maximum number of employee -Signature: +**Signature:** ```typescript size: number; diff --git a/markdown/bitburner.officeapi.buycoffee.md b/markdown/bitburner.officeapi.buycoffee.md index 337e89594..e5a4b05dc 100644 --- a/markdown/bitburner.officeapi.buycoffee.md +++ b/markdown/bitburner.officeapi.buycoffee.md @@ -6,7 +6,7 @@ Buy coffee for your employees -Signature: +**Signature:** ```typescript buyCoffee(divisionName: string, city: CityName | `${CityName}`): boolean; @@ -19,7 +19,7 @@ buyCoffee(divisionName: string, city: CityName | `${CityName}`): boolean; | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.officeapi.gethireadvertcost.md b/markdown/bitburner.officeapi.gethireadvertcost.md index 9b4a4b565..ff32ee420 100644 --- a/markdown/bitburner.officeapi.gethireadvertcost.md +++ b/markdown/bitburner.officeapi.gethireadvertcost.md @@ -6,7 +6,7 @@ Get the cost to hire AdVert. -Signature: +**Signature:** ```typescript getHireAdVertCost(divisionName: string): number; @@ -18,7 +18,7 @@ getHireAdVertCost(divisionName: string): number; | --- | --- | --- | | divisionName | string | Name of the division. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.officeapi.gethireadvertcount.md b/markdown/bitburner.officeapi.gethireadvertcount.md index 9ba4e048d..41c2e375f 100644 --- a/markdown/bitburner.officeapi.gethireadvertcount.md +++ b/markdown/bitburner.officeapi.gethireadvertcount.md @@ -6,7 +6,7 @@ Get the number of times you have hired AdVert. -Signature: +**Signature:** ```typescript getHireAdVertCount(divisionName: string): number; @@ -18,7 +18,7 @@ getHireAdVertCount(divisionName: string): number; | --- | --- | --- | | divisionName | string | Name of the division. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.officeapi.getoffice.md b/markdown/bitburner.officeapi.getoffice.md index fc2f18b67..2ba2ef7ca 100644 --- a/markdown/bitburner.officeapi.getoffice.md +++ b/markdown/bitburner.officeapi.getoffice.md @@ -6,7 +6,7 @@ Get data about an office -Signature: +**Signature:** ```typescript getOffice(divisionName: string, city: CityName | `${CityName}`): Office; @@ -19,7 +19,7 @@ getOffice(divisionName: string, city: CityName | `${CityName}`): Office; | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -Returns: +**Returns:** [Office](./bitburner.office.md) diff --git a/markdown/bitburner.officeapi.getofficesizeupgradecost.md b/markdown/bitburner.officeapi.getofficesizeupgradecost.md index 0defaf090..5e32e8e80 100644 --- a/markdown/bitburner.officeapi.getofficesizeupgradecost.md +++ b/markdown/bitburner.officeapi.getofficesizeupgradecost.md @@ -6,7 +6,7 @@ Cost to Upgrade office size. -Signature: +**Signature:** ```typescript getOfficeSizeUpgradeCost(divisionName: string, city: CityName | `${CityName}`, asize: number): number; @@ -20,7 +20,7 @@ getOfficeSizeUpgradeCost(divisionName: string, city: CityName | `${CityName}`, a | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | | asize | number | | -Returns: +**Returns:** number diff --git a/markdown/bitburner.officeapi.getresearchcost.md b/markdown/bitburner.officeapi.getresearchcost.md index 14899201a..84195156f 100644 --- a/markdown/bitburner.officeapi.getresearchcost.md +++ b/markdown/bitburner.officeapi.getresearchcost.md @@ -6,7 +6,7 @@ Get the cost to unlock research -Signature: +**Signature:** ```typescript getResearchCost(divisionName: string, researchName: string): number; @@ -19,7 +19,7 @@ getResearchCost(divisionName: string, researchName: string): number; | divisionName | string | Name of the division | | researchName | string | Name of the research | -Returns: +**Returns:** number diff --git a/markdown/bitburner.officeapi.hasresearched.md b/markdown/bitburner.officeapi.hasresearched.md index 362af2bd7..7b775c76e 100644 --- a/markdown/bitburner.officeapi.hasresearched.md +++ b/markdown/bitburner.officeapi.hasresearched.md @@ -6,7 +6,7 @@ Gets if you have unlocked a research -Signature: +**Signature:** ```typescript hasResearched(divisionName: string, researchName: string): boolean; @@ -19,7 +19,7 @@ hasResearched(divisionName: string, researchName: string): boolean; | divisionName | string | Name of the division | | researchName | string | Name of the research | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.officeapi.hireadvert.md b/markdown/bitburner.officeapi.hireadvert.md index 87a6cd787..225112cfd 100644 --- a/markdown/bitburner.officeapi.hireadvert.md +++ b/markdown/bitburner.officeapi.hireadvert.md @@ -6,7 +6,7 @@ Hire AdVert. -Signature: +**Signature:** ```typescript hireAdVert(divisionName: string): void; @@ -18,7 +18,7 @@ hireAdVert(divisionName: string): void; | --- | --- | --- | | divisionName | string | Name of the division | -Returns: +**Returns:** void diff --git a/markdown/bitburner.officeapi.hireemployee.md b/markdown/bitburner.officeapi.hireemployee.md index e2ab99ad0..3b617dd73 100644 --- a/markdown/bitburner.officeapi.hireemployee.md +++ b/markdown/bitburner.officeapi.hireemployee.md @@ -6,7 +6,7 @@ Hire an employee. -Signature: +**Signature:** ```typescript hireEmployee(divisionName: string, city: CityName | `${CityName}`, employeePosition?: CorpEmployeePosition): boolean; @@ -18,9 +18,9 @@ hireEmployee(divisionName: string, city: CityName | `${CityName}`, employeePosit | --- | --- | --- | | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -| employeePosition | [CorpEmployeePosition](./bitburner.corpemployeeposition.md) | Position to place into. Defaults to "Unassigned". | +| employeePosition | [CorpEmployeePosition](./bitburner.corpemployeeposition.md) | _(Optional)_ Position to place into. Defaults to "Unassigned". | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.officeapi.md b/markdown/bitburner.officeapi.md index a08b02ab4..fdbfb2f4a 100644 --- a/markdown/bitburner.officeapi.md +++ b/markdown/bitburner.officeapi.md @@ -6,7 +6,7 @@ Corporation Office API -Signature: +**Signature:** ```typescript export interface OfficeAPI diff --git a/markdown/bitburner.officeapi.research.md b/markdown/bitburner.officeapi.research.md index 112f48f38..885c0c676 100644 --- a/markdown/bitburner.officeapi.research.md +++ b/markdown/bitburner.officeapi.research.md @@ -6,7 +6,7 @@ Purchase a research -Signature: +**Signature:** ```typescript research(divisionName: string, researchName: string): void; @@ -19,7 +19,7 @@ research(divisionName: string, researchName: string): void; | divisionName | string | Name of the division | | researchName | string | Name of the research | -Returns: +**Returns:** void diff --git a/markdown/bitburner.officeapi.setautojobassignment.md b/markdown/bitburner.officeapi.setautojobassignment.md index db5113da4..942672cc0 100644 --- a/markdown/bitburner.officeapi.setautojobassignment.md +++ b/markdown/bitburner.officeapi.setautojobassignment.md @@ -6,7 +6,7 @@ Set the auto job assignment for a job -Signature: +**Signature:** ```typescript setAutoJobAssignment(divisionName: string, city: CityName | `${CityName}`, job: string, amount: number): boolean; @@ -21,7 +21,7 @@ setAutoJobAssignment(divisionName: string, city: CityName | `${CityName}`, job: | job | string | Name of the job | | amount | number | Number of employees to assign to that job | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.officeapi.throwparty.md b/markdown/bitburner.officeapi.throwparty.md index 9c4b7cd40..2e8366549 100644 --- a/markdown/bitburner.officeapi.throwparty.md +++ b/markdown/bitburner.officeapi.throwparty.md @@ -6,7 +6,7 @@ Throw a party for your employees -Signature: +**Signature:** ```typescript throwParty(divisionName: string, city: CityName | `${CityName}`, costPerEmployee: number): number; @@ -20,7 +20,7 @@ throwParty(divisionName: string, city: CityName | `${CityName}`, costPerEmployee | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | | costPerEmployee | number | Amount to spend per employee. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.officeapi.upgradeofficesize.md b/markdown/bitburner.officeapi.upgradeofficesize.md index e99a3f638..e17159c45 100644 --- a/markdown/bitburner.officeapi.upgradeofficesize.md +++ b/markdown/bitburner.officeapi.upgradeofficesize.md @@ -6,7 +6,7 @@ Upgrade office size. -Signature: +**Signature:** ```typescript upgradeOfficeSize(divisionName: string, city: CityName | `${CityName}`, size: number): void; @@ -20,7 +20,7 @@ upgradeOfficeSize(divisionName: string, city: CityName | `${CityName}`, size: nu | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | | size | number | Amount of positions to open | -Returns: +**Returns:** void diff --git a/markdown/bitburner.ordertypes.md b/markdown/bitburner.ordertypes.md index f17bfba71..dadfcc3e2 100644 --- a/markdown/bitburner.ordertypes.md +++ b/markdown/bitburner.ordertypes.md @@ -5,7 +5,7 @@ ## OrderTypes enum -Signature: +**Signature:** ```typescript declare enum OrderTypes diff --git a/markdown/bitburner.person.city.md b/markdown/bitburner.person.city.md index 3f83b97b1..27591c6c1 100644 --- a/markdown/bitburner.person.city.md +++ b/markdown/bitburner.person.city.md @@ -4,7 +4,7 @@ ## Person.city property -Signature: +**Signature:** ```typescript city: CityName; diff --git a/markdown/bitburner.person.exp.md b/markdown/bitburner.person.exp.md index e1a40b733..ce5fb7627 100644 --- a/markdown/bitburner.person.exp.md +++ b/markdown/bitburner.person.exp.md @@ -4,7 +4,7 @@ ## Person.exp property -Signature: +**Signature:** ```typescript exp: Skills; diff --git a/markdown/bitburner.person.hp.md b/markdown/bitburner.person.hp.md index 0acf6dce4..ca3b87b5a 100644 --- a/markdown/bitburner.person.hp.md +++ b/markdown/bitburner.person.hp.md @@ -4,7 +4,7 @@ ## Person.hp property -Signature: +**Signature:** ```typescript hp: HP; diff --git a/markdown/bitburner.person.md b/markdown/bitburner.person.md index c9f44349a..571bc20ce 100644 --- a/markdown/bitburner.person.md +++ b/markdown/bitburner.person.md @@ -5,7 +5,7 @@ ## Person interface -Signature: +**Signature:** ```typescript interface Person @@ -13,11 +13,11 @@ interface Person ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [city](./bitburner.person.city.md) | [CityName](./bitburner.cityname.md) | | -| [exp](./bitburner.person.exp.md) | [Skills](./bitburner.skills.md) | | -| [hp](./bitburner.person.hp.md) | [HP](./bitburner.hp.md) | | -| [mults](./bitburner.person.mults.md) | [Multipliers](./bitburner.multipliers.md) | | -| [skills](./bitburner.person.skills.md) | [Skills](./bitburner.skills.md) | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [city](./bitburner.person.city.md) | | [CityName](./bitburner.cityname.md) | | +| [exp](./bitburner.person.exp.md) | | [Skills](./bitburner.skills.md) | | +| [hp](./bitburner.person.hp.md) | | [HP](./bitburner.hp.md) | | +| [mults](./bitburner.person.mults.md) | | [Multipliers](./bitburner.multipliers.md) | | +| [skills](./bitburner.person.skills.md) | | [Skills](./bitburner.skills.md) | | diff --git a/markdown/bitburner.person.mults.md b/markdown/bitburner.person.mults.md index 8e058476b..3cd9d3444 100644 --- a/markdown/bitburner.person.mults.md +++ b/markdown/bitburner.person.mults.md @@ -4,7 +4,7 @@ ## Person.mults property -Signature: +**Signature:** ```typescript mults: Multipliers; diff --git a/markdown/bitburner.person.skills.md b/markdown/bitburner.person.skills.md index 3cd6423bc..173640f1a 100644 --- a/markdown/bitburner.person.skills.md +++ b/markdown/bitburner.person.skills.md @@ -4,7 +4,7 @@ ## Person.skills property -Signature: +**Signature:** ```typescript skills: Skills; diff --git a/markdown/bitburner.player.bitnoden.md b/markdown/bitburner.player.bitnoden.md index dc10d8bce..dd1e15262 100644 --- a/markdown/bitburner.player.bitnoden.md +++ b/markdown/bitburner.player.bitnoden.md @@ -4,7 +4,7 @@ ## Player.bitNodeN property -Signature: +**Signature:** ```typescript bitNodeN: number; diff --git a/markdown/bitburner.player.entropy.md b/markdown/bitburner.player.entropy.md index 2209c8c9e..f9fe4679d 100644 --- a/markdown/bitburner.player.entropy.md +++ b/markdown/bitburner.player.entropy.md @@ -4,7 +4,7 @@ ## Player.entropy property -Signature: +**Signature:** ```typescript entropy: number; diff --git a/markdown/bitburner.player.factions.md b/markdown/bitburner.player.factions.md index 929d0df30..9fa0e33bc 100644 --- a/markdown/bitburner.player.factions.md +++ b/markdown/bitburner.player.factions.md @@ -4,7 +4,7 @@ ## Player.factions property -Signature: +**Signature:** ```typescript factions: string[]; diff --git a/markdown/bitburner.player.jobs.md b/markdown/bitburner.player.jobs.md index 708eee8b8..7d5ac16a2 100644 --- a/markdown/bitburner.player.jobs.md +++ b/markdown/bitburner.player.jobs.md @@ -4,7 +4,7 @@ ## Player.jobs property -Signature: +**Signature:** ```typescript jobs: Record; diff --git a/markdown/bitburner.player.location.md b/markdown/bitburner.player.location.md index 306830baf..abd704680 100644 --- a/markdown/bitburner.player.location.md +++ b/markdown/bitburner.player.location.md @@ -4,7 +4,7 @@ ## Player.location property -Signature: +**Signature:** ```typescript location: string; diff --git a/markdown/bitburner.player.md b/markdown/bitburner.player.md index 547ce99a1..7e11ff83d 100644 --- a/markdown/bitburner.player.md +++ b/markdown/bitburner.player.md @@ -5,25 +5,25 @@ ## Player interface -Signature: +**Signature:** ```typescript interface Player extends Person ``` -Extends: [Person](./bitburner.person.md) +**Extends:** [Person](./bitburner.person.md) ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [bitNodeN](./bitburner.player.bitnoden.md) | number | | -| [entropy](./bitburner.player.entropy.md) | number | | -| [factions](./bitburner.player.factions.md) | string\[\] | | -| [jobs](./bitburner.player.jobs.md) | Record<string, string> | | -| [location](./bitburner.player.location.md) | string | | -| [money](./bitburner.player.money.md) | number | | -| [numPeopleKilled](./bitburner.player.numpeoplekilled.md) | number | | -| [playtimeSinceLastAug](./bitburner.player.playtimesincelastaug.md) | number | | -| [playtimeSinceLastBitnode](./bitburner.player.playtimesincelastbitnode.md) | number | | -| [totalPlaytime](./bitburner.player.totalplaytime.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [bitNodeN](./bitburner.player.bitnoden.md) | | number | | +| [entropy](./bitburner.player.entropy.md) | | number | | +| [factions](./bitburner.player.factions.md) | | string\[\] | | +| [jobs](./bitburner.player.jobs.md) | | Record<string, string> | | +| [location](./bitburner.player.location.md) | | string | | +| [money](./bitburner.player.money.md) | | number | | +| [numPeopleKilled](./bitburner.player.numpeoplekilled.md) | | number | | +| [playtimeSinceLastAug](./bitburner.player.playtimesincelastaug.md) | | number | | +| [playtimeSinceLastBitnode](./bitburner.player.playtimesincelastbitnode.md) | | number | | +| [totalPlaytime](./bitburner.player.totalplaytime.md) | | number | | diff --git a/markdown/bitburner.player.money.md b/markdown/bitburner.player.money.md index 8aafa95d0..6d4657a1e 100644 --- a/markdown/bitburner.player.money.md +++ b/markdown/bitburner.player.money.md @@ -4,7 +4,7 @@ ## Player.money property -Signature: +**Signature:** ```typescript money: number; diff --git a/markdown/bitburner.player.numpeoplekilled.md b/markdown/bitburner.player.numpeoplekilled.md index 10c50bc2f..3c7646213 100644 --- a/markdown/bitburner.player.numpeoplekilled.md +++ b/markdown/bitburner.player.numpeoplekilled.md @@ -4,7 +4,7 @@ ## Player.numPeopleKilled property -Signature: +**Signature:** ```typescript numPeopleKilled: number; diff --git a/markdown/bitburner.player.playtimesincelastaug.md b/markdown/bitburner.player.playtimesincelastaug.md index a35e3d02d..30aa57c14 100644 --- a/markdown/bitburner.player.playtimesincelastaug.md +++ b/markdown/bitburner.player.playtimesincelastaug.md @@ -4,7 +4,7 @@ ## Player.playtimeSinceLastAug property -Signature: +**Signature:** ```typescript playtimeSinceLastAug: number; diff --git a/markdown/bitburner.player.playtimesincelastbitnode.md b/markdown/bitburner.player.playtimesincelastbitnode.md index 7023b6780..da28bf946 100644 --- a/markdown/bitburner.player.playtimesincelastbitnode.md +++ b/markdown/bitburner.player.playtimesincelastbitnode.md @@ -4,7 +4,7 @@ ## Player.playtimeSinceLastBitnode property -Signature: +**Signature:** ```typescript playtimeSinceLastBitnode: number; diff --git a/markdown/bitburner.player.totalplaytime.md b/markdown/bitburner.player.totalplaytime.md index 0a0469be7..3546db054 100644 --- a/markdown/bitburner.player.totalplaytime.md +++ b/markdown/bitburner.player.totalplaytime.md @@ -4,7 +4,7 @@ ## Player.totalPlaytime property -Signature: +**Signature:** ```typescript totalPlaytime: number; diff --git a/markdown/bitburner.portdata.md b/markdown/bitburner.portdata.md index c5b77a426..9c0226984 100644 --- a/markdown/bitburner.portdata.md +++ b/markdown/bitburner.portdata.md @@ -5,7 +5,7 @@ ## PortData type -Signature: +**Signature:** ```typescript type PortData = string | number; diff --git a/markdown/bitburner.positiontypes.md b/markdown/bitburner.positiontypes.md index e8c376699..1ab4b2e96 100644 --- a/markdown/bitburner.positiontypes.md +++ b/markdown/bitburner.positiontypes.md @@ -5,7 +5,7 @@ ## PositionTypes enum -Signature: +**Signature:** ```typescript declare enum PositionTypes diff --git a/markdown/bitburner.processinfo.args.md b/markdown/bitburner.processinfo.args.md index 868fad1cd..d23799ff3 100644 --- a/markdown/bitburner.processinfo.args.md +++ b/markdown/bitburner.processinfo.args.md @@ -6,7 +6,7 @@ Script's arguments -Signature: +**Signature:** ```typescript args: (string | number | boolean)[]; diff --git a/markdown/bitburner.processinfo.filename.md b/markdown/bitburner.processinfo.filename.md index 1a969a65b..3735b0d25 100644 --- a/markdown/bitburner.processinfo.filename.md +++ b/markdown/bitburner.processinfo.filename.md @@ -6,7 +6,7 @@ Script name. -Signature: +**Signature:** ```typescript filename: string; diff --git a/markdown/bitburner.processinfo.md b/markdown/bitburner.processinfo.md index 840e08283..cd4460b1c 100644 --- a/markdown/bitburner.processinfo.md +++ b/markdown/bitburner.processinfo.md @@ -6,7 +6,7 @@ A single process on a server. -Signature: +**Signature:** ```typescript interface ProcessInfo @@ -14,10 +14,10 @@ interface ProcessInfo ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [args](./bitburner.processinfo.args.md) | (string \| number \| boolean)\[\] | Script's arguments | -| [filename](./bitburner.processinfo.filename.md) | string | Script name. | -| [pid](./bitburner.processinfo.pid.md) | number | Process ID | -| [threads](./bitburner.processinfo.threads.md) | number | Number of threads script is running with | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [args](./bitburner.processinfo.args.md) | | (string \| number \| boolean)\[\] | Script's arguments | +| [filename](./bitburner.processinfo.filename.md) | | string | Script name. | +| [pid](./bitburner.processinfo.pid.md) | | number | Process ID | +| [threads](./bitburner.processinfo.threads.md) | | number | Number of threads script is running with | diff --git a/markdown/bitburner.processinfo.pid.md b/markdown/bitburner.processinfo.pid.md index 395a72be3..eb284aeea 100644 --- a/markdown/bitburner.processinfo.pid.md +++ b/markdown/bitburner.processinfo.pid.md @@ -6,7 +6,7 @@ Process ID -Signature: +**Signature:** ```typescript pid: number; diff --git a/markdown/bitburner.processinfo.threads.md b/markdown/bitburner.processinfo.threads.md index 8ba00b6ce..b50505b2e 100644 --- a/markdown/bitburner.processinfo.threads.md +++ b/markdown/bitburner.processinfo.threads.md @@ -6,7 +6,7 @@ Number of threads script is running with -Signature: +**Signature:** ```typescript threads: number; diff --git a/markdown/bitburner.product.citydata.md b/markdown/bitburner.product.citydata.md index fac1296f2..9816006fd 100644 --- a/markdown/bitburner.product.citydata.md +++ b/markdown/bitburner.product.citydata.md @@ -6,7 +6,7 @@ Data refers to the production, sale, and quantity of the products These values are specific to a city For each city, the data is \[qty, prod, sell\] -Signature: +**Signature:** ```typescript cityData: Record; diff --git a/markdown/bitburner.product.cmp.md b/markdown/bitburner.product.cmp.md index 88e186780..12cad48b0 100644 --- a/markdown/bitburner.product.cmp.md +++ b/markdown/bitburner.product.cmp.md @@ -6,7 +6,7 @@ Competition for the product, only present if "Market Research - Competition" unlocked -Signature: +**Signature:** ```typescript cmp: number | undefined; diff --git a/markdown/bitburner.product.developmentprogress.md b/markdown/bitburner.product.developmentprogress.md index 0949fb793..77394b9ae 100644 --- a/markdown/bitburner.product.developmentprogress.md +++ b/markdown/bitburner.product.developmentprogress.md @@ -6,7 +6,7 @@ Creation progress - A number between 0-100 representing percentage -Signature: +**Signature:** ```typescript developmentProgress: number; diff --git a/markdown/bitburner.product.dmd.md b/markdown/bitburner.product.dmd.md index f771d6e4b..435553d48 100644 --- a/markdown/bitburner.product.dmd.md +++ b/markdown/bitburner.product.dmd.md @@ -6,7 +6,7 @@ Demand for the product, only present if "Market Research - Demand" unlocked -Signature: +**Signature:** ```typescript dmd: number | undefined; diff --git a/markdown/bitburner.product.md b/markdown/bitburner.product.md index c694eb033..29403c422 100644 --- a/markdown/bitburner.product.md +++ b/markdown/bitburner.product.md @@ -6,7 +6,7 @@ Product in a warehouse -Signature: +**Signature:** ```typescript interface Product @@ -14,15 +14,15 @@ interface Product ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [cityData](./bitburner.product.citydata.md) | Record<[CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\`, number\[\]> | Data refers to the production, sale, and quantity of the products These values are specific to a city For each city, the data is \[qty, prod, sell\] | -| [cmp](./bitburner.product.cmp.md) | number \| undefined | Competition for the product, only present if "Market Research - Competition" unlocked | -| [developmentProgress](./bitburner.product.developmentprogress.md) | number | Creation progress - A number between 0-100 representing percentage | -| [dmd](./bitburner.product.dmd.md) | number \| undefined | Demand for the product, only present if "Market Research - Demand" unlocked | -| [name](./bitburner.product.name.md) | string | Name of the product | -| [pCost](./bitburner.product.pcost.md) | number | Production cost | -| [properties](./bitburner.product.properties.md) | { \[key: string\]: number } | Product Properties. The data is {qlt, per, dur, rel, aes, fea} | -| [rat](./bitburner.product.rat.md) | number | Product Rating | -| [sCost](./bitburner.product.scost.md) | string \| number | Sell cost, can be "MP+5" | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [cityData](./bitburner.product.citydata.md) | | Record<[CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\`, number\[\]> | Data refers to the production, sale, and quantity of the products These values are specific to a city For each city, the data is \[qty, prod, sell\] | +| [cmp](./bitburner.product.cmp.md) | | number \| undefined | Competition for the product, only present if "Market Research - Competition" unlocked | +| [developmentProgress](./bitburner.product.developmentprogress.md) | | number | Creation progress - A number between 0-100 representing percentage | +| [dmd](./bitburner.product.dmd.md) | | number \| undefined | Demand for the product, only present if "Market Research - Demand" unlocked | +| [name](./bitburner.product.name.md) | | string | Name of the product | +| [pCost](./bitburner.product.pcost.md) | | number | Production cost | +| [properties](./bitburner.product.properties.md) | | { \[key: string\]: number } | Product Properties. The data is {qlt, per, dur, rel, aes, fea} | +| [rat](./bitburner.product.rat.md) | | number | Product Rating | +| [sCost](./bitburner.product.scost.md) | | string \| number | Sell cost, can be "MP+5" | diff --git a/markdown/bitburner.product.name.md b/markdown/bitburner.product.name.md index 1652c1672..f73567444 100644 --- a/markdown/bitburner.product.name.md +++ b/markdown/bitburner.product.name.md @@ -6,7 +6,7 @@ Name of the product -Signature: +**Signature:** ```typescript name: string; diff --git a/markdown/bitburner.product.pcost.md b/markdown/bitburner.product.pcost.md index b1b130910..ba9d50aa2 100644 --- a/markdown/bitburner.product.pcost.md +++ b/markdown/bitburner.product.pcost.md @@ -6,7 +6,7 @@ Production cost -Signature: +**Signature:** ```typescript pCost: number; diff --git a/markdown/bitburner.product.properties.md b/markdown/bitburner.product.properties.md index bd202079d..33a0853ab 100644 --- a/markdown/bitburner.product.properties.md +++ b/markdown/bitburner.product.properties.md @@ -6,7 +6,7 @@ Product Properties. The data is {qlt, per, dur, rel, aes, fea} -Signature: +**Signature:** ```typescript properties: { [key: string]: number }; diff --git a/markdown/bitburner.product.rat.md b/markdown/bitburner.product.rat.md index d65342786..20dd8d38f 100644 --- a/markdown/bitburner.product.rat.md +++ b/markdown/bitburner.product.rat.md @@ -6,7 +6,7 @@ Product Rating -Signature: +**Signature:** ```typescript rat: number; diff --git a/markdown/bitburner.product.scost.md b/markdown/bitburner.product.scost.md index b226e879e..97825a85f 100644 --- a/markdown/bitburner.product.scost.md +++ b/markdown/bitburner.product.scost.md @@ -6,7 +6,7 @@ Sell cost, can be "MP+5" -Signature: +**Signature:** ```typescript sCost: string | number; diff --git a/markdown/bitburner.recentscript.md b/markdown/bitburner.recentscript.md index 804d09bc4..e1c57a34e 100644 --- a/markdown/bitburner.recentscript.md +++ b/markdown/bitburner.recentscript.md @@ -5,16 +5,16 @@ ## RecentScript interface -Signature: +**Signature:** ```typescript interface RecentScript extends RunningScript ``` -Extends: [RunningScript](./bitburner.runningscript.md) +**Extends:** [RunningScript](./bitburner.runningscript.md) ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [timeOfDeath](./bitburner.recentscript.timeofdeath.md) | Date | Timestamp of when the script was killed | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [timeOfDeath](./bitburner.recentscript.timeofdeath.md) | | Date | Timestamp of when the script was killed | diff --git a/markdown/bitburner.recentscript.timeofdeath.md b/markdown/bitburner.recentscript.timeofdeath.md index 306281be1..fa0a79ff1 100644 --- a/markdown/bitburner.recentscript.timeofdeath.md +++ b/markdown/bitburner.recentscript.timeofdeath.md @@ -6,7 +6,7 @@ Timestamp of when the script was killed -Signature: +**Signature:** ```typescript timeOfDeath: Date; diff --git a/markdown/bitburner.reputationformulas.calculatefavortorep.md b/markdown/bitburner.reputationformulas.calculatefavortorep.md index eeb6f6a5b..5fab32e5b 100644 --- a/markdown/bitburner.reputationformulas.calculatefavortorep.md +++ b/markdown/bitburner.reputationformulas.calculatefavortorep.md @@ -6,7 +6,7 @@ Calculate the total required amount of faction reputation to reach a target favor. -Signature: +**Signature:** ```typescript calculateFavorToRep(favor: number): number; @@ -18,7 +18,7 @@ calculateFavorToRep(favor: number): number; | --- | --- | --- | | favor | number | target faction favor. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.reputationformulas.calculatereptofavor.md b/markdown/bitburner.reputationformulas.calculatereptofavor.md index 98790966c..053c2beb7 100644 --- a/markdown/bitburner.reputationformulas.calculatereptofavor.md +++ b/markdown/bitburner.reputationformulas.calculatereptofavor.md @@ -6,7 +6,7 @@ Calculate the resulting faction favor of a total amount of reputation. (Faction favor is gained whenever you install an Augmentation.) -Signature: +**Signature:** ```typescript calculateRepToFavor(rep: number): number; @@ -18,7 +18,7 @@ calculateRepToFavor(rep: number): number; | --- | --- | --- | | rep | number | amount of reputation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.reputationformulas.md b/markdown/bitburner.reputationformulas.md index 65e3bc7ea..398e67e50 100644 --- a/markdown/bitburner.reputationformulas.md +++ b/markdown/bitburner.reputationformulas.md @@ -6,7 +6,7 @@ Reputation formulas -Signature: +**Signature:** ```typescript interface ReputationFormulas diff --git a/markdown/bitburner.reputationformulas.repfromdonation.md b/markdown/bitburner.reputationformulas.repfromdonation.md index 114a2663c..1fe5b1245 100644 --- a/markdown/bitburner.reputationformulas.repfromdonation.md +++ b/markdown/bitburner.reputationformulas.repfromdonation.md @@ -6,7 +6,7 @@ Calculate how much rep would be gained. -Signature: +**Signature:** ```typescript repFromDonation(amount: number, player: Person): number; @@ -19,7 +19,7 @@ repFromDonation(amount: number, player: Person): number; | amount | number | Amount of money donated | | player | [Person](./bitburner.person.md) | Player info from [getPlayer](./bitburner.ns.getplayer.md) | -Returns: +**Returns:** number diff --git a/markdown/bitburner.runningscript.args.md b/markdown/bitburner.runningscript.args.md index c615d1534..a0d42d023 100644 --- a/markdown/bitburner.runningscript.args.md +++ b/markdown/bitburner.runningscript.args.md @@ -6,7 +6,7 @@ Arguments the script was called with -Signature: +**Signature:** ```typescript args: (string | number | boolean)[]; diff --git a/markdown/bitburner.runningscript.filename.md b/markdown/bitburner.runningscript.filename.md index 9df32ed16..9fec679a3 100644 --- a/markdown/bitburner.runningscript.filename.md +++ b/markdown/bitburner.runningscript.filename.md @@ -6,7 +6,7 @@ Filename of the script -Signature: +**Signature:** ```typescript filename: string; diff --git a/markdown/bitburner.runningscript.logs.md b/markdown/bitburner.runningscript.logs.md index 503a0861e..77de9f10b 100644 --- a/markdown/bitburner.runningscript.logs.md +++ b/markdown/bitburner.runningscript.logs.md @@ -6,7 +6,7 @@ Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside `[brackets]` at the start of each line. -Signature: +**Signature:** ```typescript logs: string[]; diff --git a/markdown/bitburner.runningscript.md b/markdown/bitburner.runningscript.md index 21d7ce519..5f4d27dd9 100644 --- a/markdown/bitburner.runningscript.md +++ b/markdown/bitburner.runningscript.md @@ -5,7 +5,7 @@ ## RunningScript interface -Signature: +**Signature:** ```typescript interface RunningScript @@ -13,19 +13,19 @@ interface RunningScript ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [args](./bitburner.runningscript.args.md) | (string \| number \| boolean)\[\] | Arguments the script was called with | -| [filename](./bitburner.runningscript.filename.md) | string | Filename of the script | -| [logs](./bitburner.runningscript.logs.md) | string\[\] | Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside [brackets] at the start of each line. | -| [offlineExpGained](./bitburner.runningscript.offlineexpgained.md) | number | Total amount of hacking experience earned from this script when offline | -| [offlineMoneyMade](./bitburner.runningscript.offlinemoneymade.md) | number | Total amount of money made by this script when offline | -| [offlineRunningTime](./bitburner.runningscript.offlinerunningtime.md) | number | Number of seconds that the script has been running offline | -| [onlineExpGained](./bitburner.runningscript.onlineexpgained.md) | number | Total amount of hacking experience earned from this script when online | -| [onlineMoneyMade](./bitburner.runningscript.onlinemoneymade.md) | number | Total amount of money made by this script when online | -| [onlineRunningTime](./bitburner.runningscript.onlinerunningtime.md) | number | Number of seconds that this script has been running online | -| [pid](./bitburner.runningscript.pid.md) | number | Process ID. Must be an integer | -| [ramUsage](./bitburner.runningscript.ramusage.md) | number | How much RAM this script uses for ONE thread | -| [server](./bitburner.runningscript.server.md) | string | Hostname of the server on which this script runs | -| [threads](./bitburner.runningscript.threads.md) | number | Number of threads that this script runs with | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [args](./bitburner.runningscript.args.md) | | (string \| number \| boolean)\[\] | Arguments the script was called with | +| [filename](./bitburner.runningscript.filename.md) | | string | Filename of the script | +| [logs](./bitburner.runningscript.logs.md) | | string\[\] | Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside [brackets] at the start of each line. | +| [offlineExpGained](./bitburner.runningscript.offlineexpgained.md) | | number | Total amount of hacking experience earned from this script when offline | +| [offlineMoneyMade](./bitburner.runningscript.offlinemoneymade.md) | | number | Total amount of money made by this script when offline | +| [offlineRunningTime](./bitburner.runningscript.offlinerunningtime.md) | | number | Number of seconds that the script has been running offline | +| [onlineExpGained](./bitburner.runningscript.onlineexpgained.md) | | number | Total amount of hacking experience earned from this script when online | +| [onlineMoneyMade](./bitburner.runningscript.onlinemoneymade.md) | | number | Total amount of money made by this script when online | +| [onlineRunningTime](./bitburner.runningscript.onlinerunningtime.md) | | number | Number of seconds that this script has been running online | +| [pid](./bitburner.runningscript.pid.md) | | number | Process ID. Must be an integer | +| [ramUsage](./bitburner.runningscript.ramusage.md) | | number | How much RAM this script uses for ONE thread | +| [server](./bitburner.runningscript.server.md) | | string | Hostname of the server on which this script runs | +| [threads](./bitburner.runningscript.threads.md) | | number | Number of threads that this script runs with | diff --git a/markdown/bitburner.runningscript.offlineexpgained.md b/markdown/bitburner.runningscript.offlineexpgained.md index 34b8aa729..fbb9bf796 100644 --- a/markdown/bitburner.runningscript.offlineexpgained.md +++ b/markdown/bitburner.runningscript.offlineexpgained.md @@ -6,7 +6,7 @@ Total amount of hacking experience earned from this script when offline -Signature: +**Signature:** ```typescript offlineExpGained: number; diff --git a/markdown/bitburner.runningscript.offlinemoneymade.md b/markdown/bitburner.runningscript.offlinemoneymade.md index e55bccd89..42ed7c795 100644 --- a/markdown/bitburner.runningscript.offlinemoneymade.md +++ b/markdown/bitburner.runningscript.offlinemoneymade.md @@ -6,7 +6,7 @@ Total amount of money made by this script when offline -Signature: +**Signature:** ```typescript offlineMoneyMade: number; diff --git a/markdown/bitburner.runningscript.offlinerunningtime.md b/markdown/bitburner.runningscript.offlinerunningtime.md index ebe6b1467..a815e02dc 100644 --- a/markdown/bitburner.runningscript.offlinerunningtime.md +++ b/markdown/bitburner.runningscript.offlinerunningtime.md @@ -6,7 +6,7 @@ Number of seconds that the script has been running offline -Signature: +**Signature:** ```typescript offlineRunningTime: number; diff --git a/markdown/bitburner.runningscript.onlineexpgained.md b/markdown/bitburner.runningscript.onlineexpgained.md index dafe1fcdf..d5119bd79 100644 --- a/markdown/bitburner.runningscript.onlineexpgained.md +++ b/markdown/bitburner.runningscript.onlineexpgained.md @@ -6,7 +6,7 @@ Total amount of hacking experience earned from this script when online -Signature: +**Signature:** ```typescript onlineExpGained: number; diff --git a/markdown/bitburner.runningscript.onlinemoneymade.md b/markdown/bitburner.runningscript.onlinemoneymade.md index d206f7b33..7afd59127 100644 --- a/markdown/bitburner.runningscript.onlinemoneymade.md +++ b/markdown/bitburner.runningscript.onlinemoneymade.md @@ -6,7 +6,7 @@ Total amount of money made by this script when online -Signature: +**Signature:** ```typescript onlineMoneyMade: number; diff --git a/markdown/bitburner.runningscript.onlinerunningtime.md b/markdown/bitburner.runningscript.onlinerunningtime.md index 280d2ab44..978f45eca 100644 --- a/markdown/bitburner.runningscript.onlinerunningtime.md +++ b/markdown/bitburner.runningscript.onlinerunningtime.md @@ -6,7 +6,7 @@ Number of seconds that this script has been running online -Signature: +**Signature:** ```typescript onlineRunningTime: number; diff --git a/markdown/bitburner.runningscript.pid.md b/markdown/bitburner.runningscript.pid.md index 0399d5593..b104637cc 100644 --- a/markdown/bitburner.runningscript.pid.md +++ b/markdown/bitburner.runningscript.pid.md @@ -6,7 +6,7 @@ Process ID. Must be an integer -Signature: +**Signature:** ```typescript pid: number; diff --git a/markdown/bitburner.runningscript.ramusage.md b/markdown/bitburner.runningscript.ramusage.md index ce45ffc33..2ddbb3a14 100644 --- a/markdown/bitburner.runningscript.ramusage.md +++ b/markdown/bitburner.runningscript.ramusage.md @@ -6,7 +6,7 @@ How much RAM this script uses for ONE thread -Signature: +**Signature:** ```typescript ramUsage: number; diff --git a/markdown/bitburner.runningscript.server.md b/markdown/bitburner.runningscript.server.md index 246ca1a75..814c4160d 100644 --- a/markdown/bitburner.runningscript.server.md +++ b/markdown/bitburner.runningscript.server.md @@ -6,7 +6,7 @@ Hostname of the server on which this script runs -Signature: +**Signature:** ```typescript server: string; diff --git a/markdown/bitburner.runningscript.threads.md b/markdown/bitburner.runningscript.threads.md index 83ec797c5..d4cdd7177 100644 --- a/markdown/bitburner.runningscript.threads.md +++ b/markdown/bitburner.runningscript.threads.md @@ -6,7 +6,7 @@ Number of threads that this script runs with -Signature: +**Signature:** ```typescript threads: number; diff --git a/markdown/bitburner.scriptarg.md b/markdown/bitburner.scriptarg.md index d898c4053..3288922aa 100644 --- a/markdown/bitburner.scriptarg.md +++ b/markdown/bitburner.scriptarg.md @@ -5,7 +5,7 @@ ## ScriptArg type -Signature: +**Signature:** ```typescript type ScriptArg = string | number | boolean; diff --git a/markdown/bitburner.server.backdoorinstalled.md b/markdown/bitburner.server.backdoorinstalled.md index dc8b9f19e..01374d889 100644 --- a/markdown/bitburner.server.backdoorinstalled.md +++ b/markdown/bitburner.server.backdoorinstalled.md @@ -6,7 +6,7 @@ Flag indicating whether this server has a backdoor installed by a player -Signature: +**Signature:** ```typescript backdoorInstalled: boolean; diff --git a/markdown/bitburner.server.basedifficulty.md b/markdown/bitburner.server.basedifficulty.md index 56a418311..c19160de1 100644 --- a/markdown/bitburner.server.basedifficulty.md +++ b/markdown/bitburner.server.basedifficulty.md @@ -6,7 +6,7 @@ Initial server security level (i.e. security level when the server was created) -Signature: +**Signature:** ```typescript baseDifficulty: number; diff --git a/markdown/bitburner.server.cpucores.md b/markdown/bitburner.server.cpucores.md index 0bf4287dc..e70b3970a 100644 --- a/markdown/bitburner.server.cpucores.md +++ b/markdown/bitburner.server.cpucores.md @@ -6,7 +6,7 @@ How many CPU cores this server has. Maximum of 8. Affects magnitude of grow and weaken. -Signature: +**Signature:** ```typescript cpuCores: number; diff --git a/markdown/bitburner.server.ftpportopen.md b/markdown/bitburner.server.ftpportopen.md index 6d1fd9490..156e38ad8 100644 --- a/markdown/bitburner.server.ftpportopen.md +++ b/markdown/bitburner.server.ftpportopen.md @@ -6,7 +6,7 @@ Flag indicating whether the FTP port is open -Signature: +**Signature:** ```typescript ftpPortOpen: boolean; diff --git a/markdown/bitburner.server.hackdifficulty.md b/markdown/bitburner.server.hackdifficulty.md index e9c8b4b68..4d17c60c9 100644 --- a/markdown/bitburner.server.hackdifficulty.md +++ b/markdown/bitburner.server.hackdifficulty.md @@ -6,7 +6,7 @@ Server Security Level -Signature: +**Signature:** ```typescript hackDifficulty: number; diff --git a/markdown/bitburner.server.hasadminrights.md b/markdown/bitburner.server.hasadminrights.md index 4dc4892d7..3cc6c80fb 100644 --- a/markdown/bitburner.server.hasadminrights.md +++ b/markdown/bitburner.server.hasadminrights.md @@ -6,7 +6,7 @@ Flag indicating whether player has admin/root access to this server -Signature: +**Signature:** ```typescript hasAdminRights: boolean; diff --git a/markdown/bitburner.server.hostname.md b/markdown/bitburner.server.hostname.md index f0aaea4bd..8e766c7d1 100644 --- a/markdown/bitburner.server.hostname.md +++ b/markdown/bitburner.server.hostname.md @@ -6,7 +6,7 @@ Hostname. Must be unique -Signature: +**Signature:** ```typescript hostname: string; diff --git a/markdown/bitburner.server.httpportopen.md b/markdown/bitburner.server.httpportopen.md index 6c5568a8a..4434a5b4d 100644 --- a/markdown/bitburner.server.httpportopen.md +++ b/markdown/bitburner.server.httpportopen.md @@ -6,7 +6,7 @@ Flag indicating whether HTTP Port is open -Signature: +**Signature:** ```typescript httpPortOpen: boolean; diff --git a/markdown/bitburner.server.ip.md b/markdown/bitburner.server.ip.md index 64e46a81b..485b6326c 100644 --- a/markdown/bitburner.server.ip.md +++ b/markdown/bitburner.server.ip.md @@ -6,7 +6,7 @@ IP Address. Must be unique -Signature: +**Signature:** ```typescript ip: string; diff --git a/markdown/bitburner.server.isconnectedto.md b/markdown/bitburner.server.isconnectedto.md index d32099e16..e7400304e 100644 --- a/markdown/bitburner.server.isconnectedto.md +++ b/markdown/bitburner.server.isconnectedto.md @@ -6,7 +6,7 @@ Flag indicating whether player is currently connected to this server -Signature: +**Signature:** ```typescript isConnectedTo: boolean; diff --git a/markdown/bitburner.server.maxram.md b/markdown/bitburner.server.maxram.md index 75bb5bcb3..740585138 100644 --- a/markdown/bitburner.server.maxram.md +++ b/markdown/bitburner.server.maxram.md @@ -6,7 +6,7 @@ RAM (GB) available on this server -Signature: +**Signature:** ```typescript maxRam: number; diff --git a/markdown/bitburner.server.md b/markdown/bitburner.server.md index e6c092412..d2a488892 100644 --- a/markdown/bitburner.server.md +++ b/markdown/bitburner.server.md @@ -6,7 +6,7 @@ A single server. -Signature: +**Signature:** ```typescript interface Server @@ -14,30 +14,30 @@ interface Server ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [backdoorInstalled](./bitburner.server.backdoorinstalled.md) | boolean | Flag indicating whether this server has a backdoor installed by a player | -| [baseDifficulty](./bitburner.server.basedifficulty.md) | number | Initial server security level (i.e. security level when the server was created) | -| [cpuCores](./bitburner.server.cpucores.md) | number | How many CPU cores this server has. Maximum of 8. Affects magnitude of grow and weaken. | -| [ftpPortOpen](./bitburner.server.ftpportopen.md) | boolean | Flag indicating whether the FTP port is open | -| [hackDifficulty](./bitburner.server.hackdifficulty.md) | number | Server Security Level | -| [hasAdminRights](./bitburner.server.hasadminrights.md) | boolean | Flag indicating whether player has admin/root access to this server | -| [hostname](./bitburner.server.hostname.md) | string | Hostname. Must be unique | -| [httpPortOpen](./bitburner.server.httpportopen.md) | boolean | Flag indicating whether HTTP Port is open | -| [ip](./bitburner.server.ip.md) | string | IP Address. Must be unique | -| [isConnectedTo](./bitburner.server.isconnectedto.md) | boolean | Flag indicating whether player is currently connected to this server | -| [maxRam](./bitburner.server.maxram.md) | number | RAM (GB) available on this server | -| [minDifficulty](./bitburner.server.mindifficulty.md) | number | Minimum server security level that this server can be weakened to | -| [moneyAvailable](./bitburner.server.moneyavailable.md) | number | How much money currently resides on the server and can be hacked | -| [moneyMax](./bitburner.server.moneymax.md) | number | Maximum amount of money that this server can hold | -| [numOpenPortsRequired](./bitburner.server.numopenportsrequired.md) | number | Number of open ports required in order to gain admin/root access | -| [openPortCount](./bitburner.server.openportcount.md) | number | How many ports are currently opened on the server | -| [organizationName](./bitburner.server.organizationname.md) | string | Name of company/faction/etc. that this server belongs to. Optional, not applicable to all Servers | -| [purchasedByPlayer](./bitburner.server.purchasedbyplayer.md) | boolean | Flag indicating whether this is a purchased server | -| [ramUsed](./bitburner.server.ramused.md) | number | RAM (GB) used. i.e. unavailable RAM | -| [requiredHackingSkill](./bitburner.server.requiredhackingskill.md) | number | Hacking level required to hack this server | -| [serverGrowth](./bitburner.server.servergrowth.md) | number | Parameter that affects how effectively this server's money can be increased using the grow() Netscript function | -| [smtpPortOpen](./bitburner.server.smtpportopen.md) | boolean | Flag indicating whether SMTP Port is open | -| [sqlPortOpen](./bitburner.server.sqlportopen.md) | boolean | Flag indicating whether SQL Port is open | -| [sshPortOpen](./bitburner.server.sshportopen.md) | boolean | Flag indicating whether the SSH Port is open | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [backdoorInstalled](./bitburner.server.backdoorinstalled.md) | | boolean | Flag indicating whether this server has a backdoor installed by a player | +| [baseDifficulty](./bitburner.server.basedifficulty.md) | | number | Initial server security level (i.e. security level when the server was created) | +| [cpuCores](./bitburner.server.cpucores.md) | | number | How many CPU cores this server has. Maximum of 8. Affects magnitude of grow and weaken. | +| [ftpPortOpen](./bitburner.server.ftpportopen.md) | | boolean | Flag indicating whether the FTP port is open | +| [hackDifficulty](./bitburner.server.hackdifficulty.md) | | number | Server Security Level | +| [hasAdminRights](./bitburner.server.hasadminrights.md) | | boolean | Flag indicating whether player has admin/root access to this server | +| [hostname](./bitburner.server.hostname.md) | | string | Hostname. Must be unique | +| [httpPortOpen](./bitburner.server.httpportopen.md) | | boolean | Flag indicating whether HTTP Port is open | +| [ip](./bitburner.server.ip.md) | | string | IP Address. Must be unique | +| [isConnectedTo](./bitburner.server.isconnectedto.md) | | boolean | Flag indicating whether player is currently connected to this server | +| [maxRam](./bitburner.server.maxram.md) | | number | RAM (GB) available on this server | +| [minDifficulty](./bitburner.server.mindifficulty.md) | | number | Minimum server security level that this server can be weakened to | +| [moneyAvailable](./bitburner.server.moneyavailable.md) | | number | How much money currently resides on the server and can be hacked | +| [moneyMax](./bitburner.server.moneymax.md) | | number | Maximum amount of money that this server can hold | +| [numOpenPortsRequired](./bitburner.server.numopenportsrequired.md) | | number | Number of open ports required in order to gain admin/root access | +| [openPortCount](./bitburner.server.openportcount.md) | | number | How many ports are currently opened on the server | +| [organizationName](./bitburner.server.organizationname.md) | | string | Name of company/faction/etc. that this server belongs to. Optional, not applicable to all Servers | +| [purchasedByPlayer](./bitburner.server.purchasedbyplayer.md) | | boolean | Flag indicating whether this is a purchased server | +| [ramUsed](./bitburner.server.ramused.md) | | number | RAM (GB) used. i.e. unavailable RAM | +| [requiredHackingSkill](./bitburner.server.requiredhackingskill.md) | | number | Hacking level required to hack this server | +| [serverGrowth](./bitburner.server.servergrowth.md) | | number | Parameter that affects how effectively this server's money can be increased using the grow() Netscript function | +| [smtpPortOpen](./bitburner.server.smtpportopen.md) | | boolean | Flag indicating whether SMTP Port is open | +| [sqlPortOpen](./bitburner.server.sqlportopen.md) | | boolean | Flag indicating whether SQL Port is open | +| [sshPortOpen](./bitburner.server.sshportopen.md) | | boolean | Flag indicating whether the SSH Port is open | diff --git a/markdown/bitburner.server.mindifficulty.md b/markdown/bitburner.server.mindifficulty.md index 4f8ad40ae..1bcbf958f 100644 --- a/markdown/bitburner.server.mindifficulty.md +++ b/markdown/bitburner.server.mindifficulty.md @@ -6,7 +6,7 @@ Minimum server security level that this server can be weakened to -Signature: +**Signature:** ```typescript minDifficulty: number; diff --git a/markdown/bitburner.server.moneyavailable.md b/markdown/bitburner.server.moneyavailable.md index f8c3ed2ad..2612fd1c8 100644 --- a/markdown/bitburner.server.moneyavailable.md +++ b/markdown/bitburner.server.moneyavailable.md @@ -6,7 +6,7 @@ How much money currently resides on the server and can be hacked -Signature: +**Signature:** ```typescript moneyAvailable: number; diff --git a/markdown/bitburner.server.moneymax.md b/markdown/bitburner.server.moneymax.md index 40fba72c0..8118387a0 100644 --- a/markdown/bitburner.server.moneymax.md +++ b/markdown/bitburner.server.moneymax.md @@ -6,7 +6,7 @@ Maximum amount of money that this server can hold -Signature: +**Signature:** ```typescript moneyMax: number; diff --git a/markdown/bitburner.server.numopenportsrequired.md b/markdown/bitburner.server.numopenportsrequired.md index eb8d16369..e145d607a 100644 --- a/markdown/bitburner.server.numopenportsrequired.md +++ b/markdown/bitburner.server.numopenportsrequired.md @@ -6,7 +6,7 @@ Number of open ports required in order to gain admin/root access -Signature: +**Signature:** ```typescript numOpenPortsRequired: number; diff --git a/markdown/bitburner.server.openportcount.md b/markdown/bitburner.server.openportcount.md index f57694725..a206af08a 100644 --- a/markdown/bitburner.server.openportcount.md +++ b/markdown/bitburner.server.openportcount.md @@ -6,7 +6,7 @@ How many ports are currently opened on the server -Signature: +**Signature:** ```typescript openPortCount: number; diff --git a/markdown/bitburner.server.organizationname.md b/markdown/bitburner.server.organizationname.md index 5becf3a28..cdaed7c20 100644 --- a/markdown/bitburner.server.organizationname.md +++ b/markdown/bitburner.server.organizationname.md @@ -6,7 +6,7 @@ Name of company/faction/etc. that this server belongs to. Optional, not applicable to all Servers -Signature: +**Signature:** ```typescript organizationName: string; diff --git a/markdown/bitburner.server.purchasedbyplayer.md b/markdown/bitburner.server.purchasedbyplayer.md index c1bf7862a..ebd49a4df 100644 --- a/markdown/bitburner.server.purchasedbyplayer.md +++ b/markdown/bitburner.server.purchasedbyplayer.md @@ -6,7 +6,7 @@ Flag indicating whether this is a purchased server -Signature: +**Signature:** ```typescript purchasedByPlayer: boolean; diff --git a/markdown/bitburner.server.ramused.md b/markdown/bitburner.server.ramused.md index 59c5d1447..534c88a7d 100644 --- a/markdown/bitburner.server.ramused.md +++ b/markdown/bitburner.server.ramused.md @@ -6,7 +6,7 @@ RAM (GB) used. i.e. unavailable RAM -Signature: +**Signature:** ```typescript ramUsed: number; diff --git a/markdown/bitburner.server.requiredhackingskill.md b/markdown/bitburner.server.requiredhackingskill.md index 0617859a4..cc2081490 100644 --- a/markdown/bitburner.server.requiredhackingskill.md +++ b/markdown/bitburner.server.requiredhackingskill.md @@ -6,7 +6,7 @@ Hacking level required to hack this server -Signature: +**Signature:** ```typescript requiredHackingSkill: number; diff --git a/markdown/bitburner.server.servergrowth.md b/markdown/bitburner.server.servergrowth.md index 549490455..cf6f60045 100644 --- a/markdown/bitburner.server.servergrowth.md +++ b/markdown/bitburner.server.servergrowth.md @@ -6,7 +6,7 @@ Parameter that affects how effectively this server's money can be increased using the grow() Netscript function -Signature: +**Signature:** ```typescript serverGrowth: number; diff --git a/markdown/bitburner.server.smtpportopen.md b/markdown/bitburner.server.smtpportopen.md index e958832fa..c1d4fddda 100644 --- a/markdown/bitburner.server.smtpportopen.md +++ b/markdown/bitburner.server.smtpportopen.md @@ -6,7 +6,7 @@ Flag indicating whether SMTP Port is open -Signature: +**Signature:** ```typescript smtpPortOpen: boolean; diff --git a/markdown/bitburner.server.sqlportopen.md b/markdown/bitburner.server.sqlportopen.md index 1b964977d..d7c74757b 100644 --- a/markdown/bitburner.server.sqlportopen.md +++ b/markdown/bitburner.server.sqlportopen.md @@ -6,7 +6,7 @@ Flag indicating whether SQL Port is open -Signature: +**Signature:** ```typescript sqlPortOpen: boolean; diff --git a/markdown/bitburner.server.sshportopen.md b/markdown/bitburner.server.sshportopen.md index b1f086ab5..3e6b01ab9 100644 --- a/markdown/bitburner.server.sshportopen.md +++ b/markdown/bitburner.server.sshportopen.md @@ -6,7 +6,7 @@ Flag indicating whether the SSH Port is open -Signature: +**Signature:** ```typescript sshPortOpen: boolean; diff --git a/markdown/bitburner.singularity.applytocompany.md b/markdown/bitburner.singularity.applytocompany.md index eeeb6b45a..0c897375a 100644 --- a/markdown/bitburner.singularity.applytocompany.md +++ b/markdown/bitburner.singularity.applytocompany.md @@ -6,7 +6,7 @@ Apply for a job at a company. -Signature: +**Signature:** ```typescript applyToCompany(companyName: string, field: string): boolean; @@ -19,7 +19,7 @@ applyToCompany(companyName: string, field: string): boolean; | companyName | string | Name of company to apply to. | | field | string | Field to which you want to apply. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.b1tflum3.md b/markdown/bitburner.singularity.b1tflum3.md index 0b3c6b451..33c28a898 100644 --- a/markdown/bitburner.singularity.b1tflum3.md +++ b/markdown/bitburner.singularity.b1tflum3.md @@ -6,7 +6,7 @@ b1t\_flum3 into a different BN. -Signature: +**Signature:** ```typescript b1tflum3(nextBN: number, callbackScript?: string): void; @@ -17,9 +17,9 @@ b1tflum3(nextBN: number, callbackScript?: string): void; | Parameter | Type | Description | | --- | --- | --- | | nextBN | number | BN number to jump to | -| callbackScript | string | Name of the script to launch in the next BN. | +| callbackScript | string | _(Optional)_ Name of the script to launch in the next BN. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.checkfactioninvitations.md b/markdown/bitburner.singularity.checkfactioninvitations.md index 6c75e54c7..3574f8c28 100644 --- a/markdown/bitburner.singularity.checkfactioninvitations.md +++ b/markdown/bitburner.singularity.checkfactioninvitations.md @@ -6,12 +6,12 @@ List all current faction invitations. -Signature: +**Signature:** ```typescript checkFactionInvitations(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.singularity.commitcrime.md b/markdown/bitburner.singularity.commitcrime.md index 7ff0da6fc..60fc756f8 100644 --- a/markdown/bitburner.singularity.commitcrime.md +++ b/markdown/bitburner.singularity.commitcrime.md @@ -6,7 +6,7 @@ Commit a crime. -Signature: +**Signature:** ```typescript commitCrime(crime: CrimeType | `${CrimeType}`, focus?: boolean): number; @@ -17,9 +17,9 @@ commitCrime(crime: CrimeType | `${CrimeType}`, focus?: boolean): number; | Parameter | Type | Description | | --- | --- | --- | | crime | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | Name of crime to attempt. | -| focus | boolean | Acquire player focus on this crime. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this crime. Optional. Defaults to true. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.connect.md b/markdown/bitburner.singularity.connect.md index 97fe2ffa0..320313e3d 100644 --- a/markdown/bitburner.singularity.connect.md +++ b/markdown/bitburner.singularity.connect.md @@ -6,7 +6,7 @@ Connect to a server. -Signature: +**Signature:** ```typescript connect(hostname: string): boolean; @@ -18,7 +18,7 @@ connect(hostname: string): boolean; | --- | --- | --- | | hostname | string | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.createprogram.md b/markdown/bitburner.singularity.createprogram.md index f856dcc9e..7e09b99c2 100644 --- a/markdown/bitburner.singularity.createprogram.md +++ b/markdown/bitburner.singularity.createprogram.md @@ -6,7 +6,7 @@ Create a program. -Signature: +**Signature:** ```typescript createProgram(program: string, focus?: boolean): boolean; @@ -17,9 +17,9 @@ createProgram(program: string, focus?: boolean): boolean; | Parameter | Type | Description | | --- | --- | --- | | program | string | Name of program to create. | -| focus | boolean | Acquire player focus on this program creation. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this program creation. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.destroyw0r1dd43m0n.md b/markdown/bitburner.singularity.destroyw0r1dd43m0n.md index a0987f783..f4ccd8c5f 100644 --- a/markdown/bitburner.singularity.destroyw0r1dd43m0n.md +++ b/markdown/bitburner.singularity.destroyw0r1dd43m0n.md @@ -6,7 +6,7 @@ Destroy the w0r1d\_d43m0n and move on to the next BN. -Signature: +**Signature:** ```typescript destroyW0r1dD43m0n(nextBN: number, callbackScript?: string): void; @@ -17,9 +17,9 @@ destroyW0r1dD43m0n(nextBN: number, callbackScript?: string): void; | Parameter | Type | Description | | --- | --- | --- | | nextBN | number | BN number to jump to | -| callbackScript | string | Name of the script to launch in the next BN. | +| callbackScript | string | _(Optional)_ Name of the script to launch in the next BN. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.donatetofaction.md b/markdown/bitburner.singularity.donatetofaction.md index 1fa0e81b6..feae473d1 100644 --- a/markdown/bitburner.singularity.donatetofaction.md +++ b/markdown/bitburner.singularity.donatetofaction.md @@ -6,7 +6,7 @@ Donate to a faction. -Signature: +**Signature:** ```typescript donateToFaction(faction: string, amount: number): boolean; @@ -19,7 +19,7 @@ donateToFaction(faction: string, amount: number): boolean; | faction | string | Name of faction to donate to. | | amount | number | Amount of money to donate. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.exportgame.md b/markdown/bitburner.singularity.exportgame.md index 3f97fe5cb..2ee0219c1 100644 --- a/markdown/bitburner.singularity.exportgame.md +++ b/markdown/bitburner.singularity.exportgame.md @@ -6,12 +6,12 @@ Backup game save. -Signature: +**Signature:** ```typescript exportGame(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.exportgamebonus.md b/markdown/bitburner.singularity.exportgamebonus.md index b439ffa0e..caefe7c52 100644 --- a/markdown/bitburner.singularity.exportgamebonus.md +++ b/markdown/bitburner.singularity.exportgamebonus.md @@ -6,12 +6,12 @@ Returns Backup save bonus availability. -Signature: +**Signature:** ```typescript exportGameBonus(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.getaugmentationbaseprice.md b/markdown/bitburner.singularity.getaugmentationbaseprice.md index 7a4fcb5df..61309a968 100644 --- a/markdown/bitburner.singularity.getaugmentationbaseprice.md +++ b/markdown/bitburner.singularity.getaugmentationbaseprice.md @@ -6,7 +6,7 @@ Get base price of an augmentation. -Signature: +**Signature:** ```typescript getAugmentationBasePrice(augName: string): number; @@ -18,7 +18,7 @@ getAugmentationBasePrice(augName: string): number; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getaugmentationprereq.md b/markdown/bitburner.singularity.getaugmentationprereq.md index 5eea5c996..754c21660 100644 --- a/markdown/bitburner.singularity.getaugmentationprereq.md +++ b/markdown/bitburner.singularity.getaugmentationprereq.md @@ -6,7 +6,7 @@ Get the pre-requisite of an augmentation. -Signature: +**Signature:** ```typescript getAugmentationPrereq(augName: string): string[]; @@ -18,7 +18,7 @@ getAugmentationPrereq(augName: string): string[]; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.singularity.getaugmentationprice.md b/markdown/bitburner.singularity.getaugmentationprice.md index d071bd667..a21cd9cf2 100644 --- a/markdown/bitburner.singularity.getaugmentationprice.md +++ b/markdown/bitburner.singularity.getaugmentationprice.md @@ -6,7 +6,7 @@ Get price of an augmentation. -Signature: +**Signature:** ```typescript getAugmentationPrice(augName: string): number; @@ -18,7 +18,7 @@ getAugmentationPrice(augName: string): number; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getaugmentationrepreq.md b/markdown/bitburner.singularity.getaugmentationrepreq.md index 4813a92dc..d1583f4f4 100644 --- a/markdown/bitburner.singularity.getaugmentationrepreq.md +++ b/markdown/bitburner.singularity.getaugmentationrepreq.md @@ -6,7 +6,7 @@ Get reputation requirement of an augmentation. -Signature: +**Signature:** ```typescript getAugmentationRepReq(augName: string): number; @@ -18,7 +18,7 @@ getAugmentationRepReq(augName: string): number; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getaugmentationsfromfaction.md b/markdown/bitburner.singularity.getaugmentationsfromfaction.md index d12b08943..9a2fc2933 100644 --- a/markdown/bitburner.singularity.getaugmentationsfromfaction.md +++ b/markdown/bitburner.singularity.getaugmentationsfromfaction.md @@ -6,7 +6,7 @@ Get a list of augmentation available from a faction. -Signature: +**Signature:** ```typescript getAugmentationsFromFaction(faction: string): string[]; @@ -18,7 +18,7 @@ getAugmentationsFromFaction(faction: string): string[]; | --- | --- | --- | | faction | string | Name of faction. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.singularity.getaugmentationstats.md b/markdown/bitburner.singularity.getaugmentationstats.md index 12056f334..2cd3134e5 100644 --- a/markdown/bitburner.singularity.getaugmentationstats.md +++ b/markdown/bitburner.singularity.getaugmentationstats.md @@ -6,7 +6,7 @@ Get the stats of an augmentation. -Signature: +**Signature:** ```typescript getAugmentationStats(name: string): Multipliers; @@ -18,7 +18,7 @@ getAugmentationStats(name: string): Multipliers; | --- | --- | --- | | name | string | Name of Augmentation. CASE-SENSITIVE. | -Returns: +**Returns:** [Multipliers](./bitburner.multipliers.md) diff --git a/markdown/bitburner.singularity.getcompanyfavor.md b/markdown/bitburner.singularity.getcompanyfavor.md index 5d43bce39..1ebeece5b 100644 --- a/markdown/bitburner.singularity.getcompanyfavor.md +++ b/markdown/bitburner.singularity.getcompanyfavor.md @@ -6,7 +6,7 @@ Get company favor. -Signature: +**Signature:** ```typescript getCompanyFavor(companyName: string): number; @@ -18,7 +18,7 @@ getCompanyFavor(companyName: string): number; | --- | --- | --- | | companyName | string | Name of the company. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getcompanyfavorgain.md b/markdown/bitburner.singularity.getcompanyfavorgain.md index 84582a29a..4beaa7b18 100644 --- a/markdown/bitburner.singularity.getcompanyfavorgain.md +++ b/markdown/bitburner.singularity.getcompanyfavorgain.md @@ -6,7 +6,7 @@ Get company favor gain. -Signature: +**Signature:** ```typescript getCompanyFavorGain(companyName: string): number; @@ -18,7 +18,7 @@ getCompanyFavorGain(companyName: string): number; | --- | --- | --- | | companyName | string | Name of the company. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getcompanyrep.md b/markdown/bitburner.singularity.getcompanyrep.md index d0e0755ce..93957814e 100644 --- a/markdown/bitburner.singularity.getcompanyrep.md +++ b/markdown/bitburner.singularity.getcompanyrep.md @@ -6,7 +6,7 @@ Get company reputation. -Signature: +**Signature:** ```typescript getCompanyRep(companyName: string): number; @@ -18,7 +18,7 @@ getCompanyRep(companyName: string): number; | --- | --- | --- | | companyName | string | Name of the company. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getcrimechance.md b/markdown/bitburner.singularity.getcrimechance.md index fb50c3b6a..11a0ccaea 100644 --- a/markdown/bitburner.singularity.getcrimechance.md +++ b/markdown/bitburner.singularity.getcrimechance.md @@ -6,7 +6,7 @@ Get chance to successfully commit a crime. -Signature: +**Signature:** ```typescript getCrimeChance(crime: CrimeType | `${CrimeType}`): number; @@ -18,7 +18,7 @@ getCrimeChance(crime: CrimeType | `${CrimeType}`): number; | --- | --- | --- | | crime | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | Name of crime. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getcrimestats.md b/markdown/bitburner.singularity.getcrimestats.md index 287906ca9..f034d673b 100644 --- a/markdown/bitburner.singularity.getcrimestats.md +++ b/markdown/bitburner.singularity.getcrimestats.md @@ -6,7 +6,7 @@ Get stats related to a crime. -Signature: +**Signature:** ```typescript getCrimeStats(crime: CrimeType | `${CrimeType}`): CrimeStats; @@ -18,7 +18,7 @@ getCrimeStats(crime: CrimeType | `${CrimeType}`): CrimeStats; | --- | --- | --- | | crime | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | Name of crime. | -Returns: +**Returns:** [CrimeStats](./bitburner.crimestats.md) diff --git a/markdown/bitburner.singularity.getcurrentserver.md b/markdown/bitburner.singularity.getcurrentserver.md index 32aab3285..b9d5b0b9e 100644 --- a/markdown/bitburner.singularity.getcurrentserver.md +++ b/markdown/bitburner.singularity.getcurrentserver.md @@ -6,12 +6,12 @@ Get the current server. -Signature: +**Signature:** ```typescript getCurrentServer(): string; ``` -Returns: +**Returns:** string diff --git a/markdown/bitburner.singularity.getcurrentwork.md b/markdown/bitburner.singularity.getcurrentwork.md index 3bdd61d08..8bf524a46 100644 --- a/markdown/bitburner.singularity.getcurrentwork.md +++ b/markdown/bitburner.singularity.getcurrentwork.md @@ -6,12 +6,12 @@ Get the current work the player is doing. -Signature: +**Signature:** ```typescript getCurrentWork(): any | null; ``` -Returns: +**Returns:** any \| null diff --git a/markdown/bitburner.singularity.getdarkwebprogramcost.md b/markdown/bitburner.singularity.getdarkwebprogramcost.md index fb32cae82..ecc22f2ae 100644 --- a/markdown/bitburner.singularity.getdarkwebprogramcost.md +++ b/markdown/bitburner.singularity.getdarkwebprogramcost.md @@ -6,7 +6,7 @@ Check the price of an exploit on the dark web -Signature: +**Signature:** ```typescript getDarkwebProgramCost(programName: string): number; @@ -18,7 +18,7 @@ getDarkwebProgramCost(programName: string): number; | --- | --- | --- | | programName | string | Name of program to check the price of | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getdarkwebprograms.md b/markdown/bitburner.singularity.getdarkwebprograms.md index 3887dcfd9..4562f1588 100644 --- a/markdown/bitburner.singularity.getdarkwebprograms.md +++ b/markdown/bitburner.singularity.getdarkwebprograms.md @@ -6,12 +6,12 @@ Get a list of programs offered on the dark web. -Signature: +**Signature:** ```typescript getDarkwebPrograms(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.singularity.getfactionfavor.md b/markdown/bitburner.singularity.getfactionfavor.md index abdfc46f7..4c46a2a8b 100644 --- a/markdown/bitburner.singularity.getfactionfavor.md +++ b/markdown/bitburner.singularity.getfactionfavor.md @@ -6,7 +6,7 @@ Get faction favor. -Signature: +**Signature:** ```typescript getFactionFavor(faction: string): number; @@ -18,7 +18,7 @@ getFactionFavor(faction: string): number; | --- | --- | --- | | faction | string | Name of faction. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getfactionfavorgain.md b/markdown/bitburner.singularity.getfactionfavorgain.md index ca8d8b384..dab454bc4 100644 --- a/markdown/bitburner.singularity.getfactionfavorgain.md +++ b/markdown/bitburner.singularity.getfactionfavorgain.md @@ -6,7 +6,7 @@ Get faction favor gain. -Signature: +**Signature:** ```typescript getFactionFavorGain(faction: string): number; @@ -18,7 +18,7 @@ getFactionFavorGain(faction: string): number; | --- | --- | --- | | faction | string | Name of faction. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getfactionrep.md b/markdown/bitburner.singularity.getfactionrep.md index 5c2f0b661..c645637ea 100644 --- a/markdown/bitburner.singularity.getfactionrep.md +++ b/markdown/bitburner.singularity.getfactionrep.md @@ -6,7 +6,7 @@ Get faction reputation. -Signature: +**Signature:** ```typescript getFactionRep(faction: string): number; @@ -18,7 +18,7 @@ getFactionRep(faction: string): number; | --- | --- | --- | | faction | string | Name of faction to work for. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getownedaugmentations.md b/markdown/bitburner.singularity.getownedaugmentations.md index 34cd7f36f..c5d08c8a3 100644 --- a/markdown/bitburner.singularity.getownedaugmentations.md +++ b/markdown/bitburner.singularity.getownedaugmentations.md @@ -6,7 +6,7 @@ Get a list of owned augmentation. -Signature: +**Signature:** ```typescript getOwnedAugmentations(purchased?: boolean): string[]; @@ -16,9 +16,9 @@ getOwnedAugmentations(purchased?: boolean): string[]; | Parameter | Type | Description | | --- | --- | --- | -| purchased | boolean | Specifies whether the returned array should include Augmentations you have purchased but not yet installed. By default, this argument is false which means that the return value will NOT have the purchased Augmentations. | +| purchased | boolean | _(Optional)_ Specifies whether the returned array should include Augmentations you have purchased but not yet installed. By default, this argument is false which means that the return value will NOT have the purchased Augmentations. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.singularity.getownedsourcefiles.md b/markdown/bitburner.singularity.getownedsourcefiles.md index de472bff2..7613cd881 100644 --- a/markdown/bitburner.singularity.getownedsourcefiles.md +++ b/markdown/bitburner.singularity.getownedsourcefiles.md @@ -6,12 +6,12 @@ Get a list of acquired Source-Files. -Signature: +**Signature:** ```typescript getOwnedSourceFiles(): SourceFileLvl[]; ``` -Returns: +**Returns:** [SourceFileLvl](./bitburner.sourcefilelvl.md)\[\] diff --git a/markdown/bitburner.singularity.getupgradehomecorescost.md b/markdown/bitburner.singularity.getupgradehomecorescost.md index 1c1ee5944..fcd724667 100644 --- a/markdown/bitburner.singularity.getupgradehomecorescost.md +++ b/markdown/bitburner.singularity.getupgradehomecorescost.md @@ -6,12 +6,12 @@ Get the price of upgrading home cores. -Signature: +**Signature:** ```typescript getUpgradeHomeCoresCost(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.getupgradehomeramcost.md b/markdown/bitburner.singularity.getupgradehomeramcost.md index 5e250742f..f9ae0b307 100644 --- a/markdown/bitburner.singularity.getupgradehomeramcost.md +++ b/markdown/bitburner.singularity.getupgradehomeramcost.md @@ -6,12 +6,12 @@ Get the price of upgrading home RAM. -Signature: +**Signature:** ```typescript getUpgradeHomeRamCost(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.singularity.gotolocation.md b/markdown/bitburner.singularity.gotolocation.md index 6f40592e4..e756edf39 100644 --- a/markdown/bitburner.singularity.gotolocation.md +++ b/markdown/bitburner.singularity.gotolocation.md @@ -6,7 +6,7 @@ Go to a location. -Signature: +**Signature:** ```typescript goToLocation(locationName: string): boolean; @@ -18,7 +18,7 @@ goToLocation(locationName: string): boolean; | --- | --- | --- | | locationName | string | Name of the location. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.gymworkout.md b/markdown/bitburner.singularity.gymworkout.md index 7b57d4736..274e3397f 100644 --- a/markdown/bitburner.singularity.gymworkout.md +++ b/markdown/bitburner.singularity.gymworkout.md @@ -6,7 +6,7 @@ Workout at the gym. -Signature: +**Signature:** ```typescript gymWorkout(gymName: string, stat: string, focus?: boolean): boolean; @@ -18,9 +18,9 @@ gymWorkout(gymName: string, stat: string, focus?: boolean): boolean; | --- | --- | --- | | gymName | string | Name of gym. You must be in the correct city for whatever gym you specify. | | stat | string | The stat you want to train. | -| focus | boolean | Acquire player focus on this gym workout. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this gym workout. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.hospitalize.md b/markdown/bitburner.singularity.hospitalize.md index 16f491c4b..8d54d6dc2 100644 --- a/markdown/bitburner.singularity.hospitalize.md +++ b/markdown/bitburner.singularity.hospitalize.md @@ -6,12 +6,12 @@ Hospitalize the player. -Signature: +**Signature:** ```typescript hospitalize(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.installaugmentations.md b/markdown/bitburner.singularity.installaugmentations.md index d6cc103b9..5a23cbbb7 100644 --- a/markdown/bitburner.singularity.installaugmentations.md +++ b/markdown/bitburner.singularity.installaugmentations.md @@ -6,7 +6,7 @@ Install your purchased augmentations. -Signature: +**Signature:** ```typescript installAugmentations(cbScript?: string): void; @@ -16,9 +16,9 @@ installAugmentations(cbScript?: string): void; | Parameter | Type | Description | | --- | --- | --- | -| cbScript | string | This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. | +| cbScript | string | _(Optional)_ This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.installbackdoor.md b/markdown/bitburner.singularity.installbackdoor.md index 3d85dac5c..7979aa267 100644 --- a/markdown/bitburner.singularity.installbackdoor.md +++ b/markdown/bitburner.singularity.installbackdoor.md @@ -6,12 +6,12 @@ Run the backdoor command in the terminal. -Signature: +**Signature:** ```typescript installBackdoor(): Promise; ``` -Returns: +**Returns:** Promise<void> diff --git a/markdown/bitburner.singularity.isbusy.md b/markdown/bitburner.singularity.isbusy.md index 5c0e5725b..120519224 100644 --- a/markdown/bitburner.singularity.isbusy.md +++ b/markdown/bitburner.singularity.isbusy.md @@ -6,12 +6,12 @@ Check if the player is busy. -Signature: +**Signature:** ```typescript isBusy(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.isfocused.md b/markdown/bitburner.singularity.isfocused.md index 4f65c51ce..c27c778bc 100644 --- a/markdown/bitburner.singularity.isfocused.md +++ b/markdown/bitburner.singularity.isfocused.md @@ -6,12 +6,12 @@ Check if the player is focused. -Signature: +**Signature:** ```typescript isFocused(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.joinfaction.md b/markdown/bitburner.singularity.joinfaction.md index 4fe141f51..d3f4c8eb3 100644 --- a/markdown/bitburner.singularity.joinfaction.md +++ b/markdown/bitburner.singularity.joinfaction.md @@ -6,7 +6,7 @@ Join a faction. -Signature: +**Signature:** ```typescript joinFaction(faction: string): boolean; @@ -18,7 +18,7 @@ joinFaction(faction: string): boolean; | --- | --- | --- | | faction | string | Name of faction to join. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.manualhack.md b/markdown/bitburner.singularity.manualhack.md index f36865fac..078ea1e81 100644 --- a/markdown/bitburner.singularity.manualhack.md +++ b/markdown/bitburner.singularity.manualhack.md @@ -6,12 +6,12 @@ Run the hack command in the terminal. -Signature: +**Signature:** ```typescript manualHack(): Promise; ``` -Returns: +**Returns:** Promise<number> diff --git a/markdown/bitburner.singularity.md b/markdown/bitburner.singularity.md index bbbe3ffc3..f5a9d52af 100644 --- a/markdown/bitburner.singularity.md +++ b/markdown/bitburner.singularity.md @@ -6,7 +6,7 @@ Singularity API -Signature: +**Signature:** ```typescript export interface Singularity diff --git a/markdown/bitburner.singularity.purchaseaugmentation.md b/markdown/bitburner.singularity.purchaseaugmentation.md index b7d8645a4..e3d6141d9 100644 --- a/markdown/bitburner.singularity.purchaseaugmentation.md +++ b/markdown/bitburner.singularity.purchaseaugmentation.md @@ -6,7 +6,7 @@ Purchase an augmentation -Signature: +**Signature:** ```typescript purchaseAugmentation(faction: string, augmentation: string): boolean; @@ -19,7 +19,7 @@ purchaseAugmentation(faction: string, augmentation: string): boolean; | faction | string | Name of faction to purchase Augmentation from. | | augmentation | string | Name of Augmentation to purchase. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.purchaseprogram.md b/markdown/bitburner.singularity.purchaseprogram.md index 3f1e7c4a0..f1c1a5c06 100644 --- a/markdown/bitburner.singularity.purchaseprogram.md +++ b/markdown/bitburner.singularity.purchaseprogram.md @@ -6,7 +6,7 @@ Purchase a program from the dark web. -Signature: +**Signature:** ```typescript purchaseProgram(programName: string): boolean; @@ -18,7 +18,7 @@ purchaseProgram(programName: string): boolean; | --- | --- | --- | | programName | string | Name of program to purchase. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.purchasetor.md b/markdown/bitburner.singularity.purchasetor.md index 5989ae07d..3ce2aa72c 100644 --- a/markdown/bitburner.singularity.purchasetor.md +++ b/markdown/bitburner.singularity.purchasetor.md @@ -6,12 +6,12 @@ Purchase the TOR router. -Signature: +**Signature:** ```typescript purchaseTor(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.quitjob.md b/markdown/bitburner.singularity.quitjob.md index 08ae0b937..ef11e8b18 100644 --- a/markdown/bitburner.singularity.quitjob.md +++ b/markdown/bitburner.singularity.quitjob.md @@ -6,7 +6,7 @@ Quit jobs by company. -Signature: +**Signature:** ```typescript quitJob(companyName?: string): void; @@ -16,9 +16,9 @@ quitJob(companyName?: string): void; | Parameter | Type | Description | | --- | --- | --- | -| companyName | string | Name of the company. | +| companyName | string | _(Optional)_ Name of the company. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.setfocus.md b/markdown/bitburner.singularity.setfocus.md index febb40905..dca3cffaa 100644 --- a/markdown/bitburner.singularity.setfocus.md +++ b/markdown/bitburner.singularity.setfocus.md @@ -6,7 +6,7 @@ Set the players focus. -Signature: +**Signature:** ```typescript setFocus(focus: boolean): boolean; @@ -18,7 +18,7 @@ setFocus(focus: boolean): boolean; | --- | --- | --- | | focus | boolean | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.softreset.md b/markdown/bitburner.singularity.softreset.md index f55ac6dc9..d04535560 100644 --- a/markdown/bitburner.singularity.softreset.md +++ b/markdown/bitburner.singularity.softreset.md @@ -6,7 +6,7 @@ Soft reset the game. -Signature: +**Signature:** ```typescript softReset(cbScript: string): void; @@ -18,7 +18,7 @@ softReset(cbScript: string): void; | --- | --- | --- | | cbScript | string | This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.singularity.stopaction.md b/markdown/bitburner.singularity.stopaction.md index b5331446e..35ea8c1e1 100644 --- a/markdown/bitburner.singularity.stopaction.md +++ b/markdown/bitburner.singularity.stopaction.md @@ -6,12 +6,12 @@ Stop the current action. -Signature: +**Signature:** ```typescript stopAction(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.traveltocity.md b/markdown/bitburner.singularity.traveltocity.md index 5936c8a6a..426222dd9 100644 --- a/markdown/bitburner.singularity.traveltocity.md +++ b/markdown/bitburner.singularity.traveltocity.md @@ -6,7 +6,7 @@ Travel to another city. -Signature: +**Signature:** ```typescript travelToCity(city: CityName | `${CityName}`): boolean; @@ -18,7 +18,7 @@ travelToCity(city: CityName | `${CityName}`): boolean; | --- | --- | --- | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | City to travel to. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.universitycourse.md b/markdown/bitburner.singularity.universitycourse.md index fcf4bc8e7..0388e0daf 100644 --- a/markdown/bitburner.singularity.universitycourse.md +++ b/markdown/bitburner.singularity.universitycourse.md @@ -6,7 +6,7 @@ Take university class. -Signature: +**Signature:** ```typescript universityCourse(universityName: string, courseName: string, focus?: boolean): boolean; @@ -18,9 +18,9 @@ universityCourse(universityName: string, courseName: string, focus?: boolean): b | --- | --- | --- | | universityName | string | Name of university. You must be in the correct city for whatever university you specify. | | courseName | string | Name of course. | -| focus | boolean | Acquire player focus on this class. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this class. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.upgradehomecores.md b/markdown/bitburner.singularity.upgradehomecores.md index 4351e56b5..930b942fd 100644 --- a/markdown/bitburner.singularity.upgradehomecores.md +++ b/markdown/bitburner.singularity.upgradehomecores.md @@ -6,12 +6,12 @@ Upgrade home computer cores. -Signature: +**Signature:** ```typescript upgradeHomeCores(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.upgradehomeram.md b/markdown/bitburner.singularity.upgradehomeram.md index f8f0e700d..5c638e9d1 100644 --- a/markdown/bitburner.singularity.upgradehomeram.md +++ b/markdown/bitburner.singularity.upgradehomeram.md @@ -6,12 +6,12 @@ Upgrade home computer RAM. -Signature: +**Signature:** ```typescript upgradeHomeRam(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.workforcompany.md b/markdown/bitburner.singularity.workforcompany.md index 5082c9f36..67dd1598e 100644 --- a/markdown/bitburner.singularity.workforcompany.md +++ b/markdown/bitburner.singularity.workforcompany.md @@ -6,7 +6,7 @@ Work for a company. -Signature: +**Signature:** ```typescript workForCompany(companyName: string, focus?: boolean): boolean; @@ -17,9 +17,9 @@ workForCompany(companyName: string, focus?: boolean): boolean; | Parameter | Type | Description | | --- | --- | --- | | companyName | string | Name of company to work for. Must be an exact match. Optional. If not specified, this argument defaults to the last job that you worked. | -| focus | boolean | Acquire player focus on this work operation. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this work operation. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.singularity.workforfaction.md b/markdown/bitburner.singularity.workforfaction.md index ab694fa57..e6f27de2b 100644 --- a/markdown/bitburner.singularity.workforfaction.md +++ b/markdown/bitburner.singularity.workforfaction.md @@ -6,7 +6,7 @@ Work for a faction. -Signature: +**Signature:** ```typescript workForFaction(faction: string, workType: FactionWorkType | `${FactionWorkType}`, focus?: boolean): boolean; @@ -18,9 +18,9 @@ workForFaction(faction: string, workType: FactionWorkType | `${FactionWorkType}` | --- | --- | --- | | faction | string | Name of faction to work for. | | workType | [FactionWorkType](./bitburner.factionworktype.md) \| \`${[FactionWorkType](./bitburner.factionworktype.md)}\` | Type of work to perform for the faction. | -| focus | boolean | Acquire player focus on this work operation. Optional. Defaults to true. | +| focus | boolean | _(Optional)_ Acquire player focus on this work operation. Optional. Defaults to true. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.skills.agility.md b/markdown/bitburner.skills.agility.md index fd430d5ee..e3a39bf39 100644 --- a/markdown/bitburner.skills.agility.md +++ b/markdown/bitburner.skills.agility.md @@ -4,7 +4,7 @@ ## Skills.agility property -Signature: +**Signature:** ```typescript agility: number; diff --git a/markdown/bitburner.skills.charisma.md b/markdown/bitburner.skills.charisma.md index 060c46db2..a89542cb6 100644 --- a/markdown/bitburner.skills.charisma.md +++ b/markdown/bitburner.skills.charisma.md @@ -4,7 +4,7 @@ ## Skills.charisma property -Signature: +**Signature:** ```typescript charisma: number; diff --git a/markdown/bitburner.skills.defense.md b/markdown/bitburner.skills.defense.md index 1a0be1730..62263fe70 100644 --- a/markdown/bitburner.skills.defense.md +++ b/markdown/bitburner.skills.defense.md @@ -4,7 +4,7 @@ ## Skills.defense property -Signature: +**Signature:** ```typescript defense: number; diff --git a/markdown/bitburner.skills.dexterity.md b/markdown/bitburner.skills.dexterity.md index 80aca09ad..001043539 100644 --- a/markdown/bitburner.skills.dexterity.md +++ b/markdown/bitburner.skills.dexterity.md @@ -4,7 +4,7 @@ ## Skills.dexterity property -Signature: +**Signature:** ```typescript dexterity: number; diff --git a/markdown/bitburner.skills.hacking.md b/markdown/bitburner.skills.hacking.md index 97b169f6e..1252a51a0 100644 --- a/markdown/bitburner.skills.hacking.md +++ b/markdown/bitburner.skills.hacking.md @@ -4,7 +4,7 @@ ## Skills.hacking property -Signature: +**Signature:** ```typescript hacking: number; diff --git a/markdown/bitburner.skills.intelligence.md b/markdown/bitburner.skills.intelligence.md index c64a3ebca..90e7a469c 100644 --- a/markdown/bitburner.skills.intelligence.md +++ b/markdown/bitburner.skills.intelligence.md @@ -4,7 +4,7 @@ ## Skills.intelligence property -Signature: +**Signature:** ```typescript intelligence: number; diff --git a/markdown/bitburner.skills.md b/markdown/bitburner.skills.md index 42d7673ef..6f12f94a7 100644 --- a/markdown/bitburner.skills.md +++ b/markdown/bitburner.skills.md @@ -5,7 +5,7 @@ ## Skills interface -Signature: +**Signature:** ```typescript interface Skills @@ -13,13 +13,13 @@ interface Skills ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agility](./bitburner.skills.agility.md) | number | | -| [charisma](./bitburner.skills.charisma.md) | number | | -| [defense](./bitburner.skills.defense.md) | number | | -| [dexterity](./bitburner.skills.dexterity.md) | number | | -| [hacking](./bitburner.skills.hacking.md) | number | | -| [intelligence](./bitburner.skills.intelligence.md) | number | | -| [strength](./bitburner.skills.strength.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agility](./bitburner.skills.agility.md) | | number | | +| [charisma](./bitburner.skills.charisma.md) | | number | | +| [defense](./bitburner.skills.defense.md) | | number | | +| [dexterity](./bitburner.skills.dexterity.md) | | number | | +| [hacking](./bitburner.skills.hacking.md) | | number | | +| [intelligence](./bitburner.skills.intelligence.md) | | number | | +| [strength](./bitburner.skills.strength.md) | | number | | diff --git a/markdown/bitburner.skills.strength.md b/markdown/bitburner.skills.strength.md index 67cda549f..49e91e304 100644 --- a/markdown/bitburner.skills.strength.md +++ b/markdown/bitburner.skills.strength.md @@ -4,7 +4,7 @@ ## Skills.strength property -Signature: +**Signature:** ```typescript strength: number; diff --git a/markdown/bitburner.skillsformulas.calculateexp.md b/markdown/bitburner.skillsformulas.calculateexp.md index bf4dd7027..36824ffd1 100644 --- a/markdown/bitburner.skillsformulas.calculateexp.md +++ b/markdown/bitburner.skillsformulas.calculateexp.md @@ -6,7 +6,7 @@ Calculate exp for skill level. -Signature: +**Signature:** ```typescript calculateExp(skill: number, skillMult?: number): number; @@ -17,9 +17,9 @@ calculateExp(skill: number, skillMult?: number): number; | Parameter | Type | Description | | --- | --- | --- | | skill | number | target skill level | -| skillMult | number | Multiplier for that skill, defaults to 1. | +| skillMult | number | _(Optional)_ Multiplier for that skill, defaults to 1. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.skillsformulas.calculateskill.md b/markdown/bitburner.skillsformulas.calculateskill.md index 09a1609d2..e4b3645bc 100644 --- a/markdown/bitburner.skillsformulas.calculateskill.md +++ b/markdown/bitburner.skillsformulas.calculateskill.md @@ -6,7 +6,7 @@ Calculate skill level. -Signature: +**Signature:** ```typescript calculateSkill(exp: number, skillMult?: number): number; @@ -17,9 +17,9 @@ calculateSkill(exp: number, skillMult?: number): number; | Parameter | Type | Description | | --- | --- | --- | | exp | number | experience for that skill | -| skillMult | number | Multiplier for that skill, defaults to 1. | +| skillMult | number | _(Optional)_ Multiplier for that skill, defaults to 1. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.skillsformulas.md b/markdown/bitburner.skillsformulas.md index 223495210..cc2ad1aa5 100644 --- a/markdown/bitburner.skillsformulas.md +++ b/markdown/bitburner.skillsformulas.md @@ -6,7 +6,7 @@ Skills formulas -Signature: +**Signature:** ```typescript interface SkillsFormulas diff --git a/markdown/bitburner.sleeve.getnumsleeves.md b/markdown/bitburner.sleeve.getnumsleeves.md index e456fed41..b6b1f9c60 100644 --- a/markdown/bitburner.sleeve.getnumsleeves.md +++ b/markdown/bitburner.sleeve.getnumsleeves.md @@ -6,12 +6,12 @@ Get the number of sleeves you own. -Signature: +**Signature:** ```typescript getNumSleeves(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.sleeve.getsleeve.md b/markdown/bitburner.sleeve.getsleeve.md index 4f8dfde26..fee90101c 100644 --- a/markdown/bitburner.sleeve.getsleeve.md +++ b/markdown/bitburner.sleeve.getsleeve.md @@ -6,7 +6,7 @@ Get information about a sleeve. -Signature: +**Signature:** ```typescript getSleeve(sleeveNumber: number): SleevePerson; @@ -18,7 +18,7 @@ getSleeve(sleeveNumber: number): SleevePerson; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to retrieve information. | -Returns: +**Returns:** [SleevePerson](./bitburner.sleeveperson.md) diff --git a/markdown/bitburner.sleeve.getsleeveaugmentationprice.md b/markdown/bitburner.sleeve.getsleeveaugmentationprice.md index 387a4ee49..54110904e 100644 --- a/markdown/bitburner.sleeve.getsleeveaugmentationprice.md +++ b/markdown/bitburner.sleeve.getsleeveaugmentationprice.md @@ -6,7 +6,7 @@ Get price of an augmentation. -Signature: +**Signature:** ```typescript getSleeveAugmentationPrice(augName: string): number; @@ -18,7 +18,7 @@ getSleeveAugmentationPrice(augName: string): number; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.sleeve.getsleeveaugmentationrepreq.md b/markdown/bitburner.sleeve.getsleeveaugmentationrepreq.md index 9fd86d7b6..625654184 100644 --- a/markdown/bitburner.sleeve.getsleeveaugmentationrepreq.md +++ b/markdown/bitburner.sleeve.getsleeveaugmentationrepreq.md @@ -6,7 +6,7 @@ Get reputation requirement of an augmentation. -Signature: +**Signature:** ```typescript getSleeveAugmentationRepReq(augName: string): number; @@ -18,7 +18,7 @@ getSleeveAugmentationRepReq(augName: string): number; | --- | --- | --- | | augName | string | Name of Augmentation. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.sleeve.getsleeveaugmentations.md b/markdown/bitburner.sleeve.getsleeveaugmentations.md index d3835eac0..4240fee16 100644 --- a/markdown/bitburner.sleeve.getsleeveaugmentations.md +++ b/markdown/bitburner.sleeve.getsleeveaugmentations.md @@ -6,7 +6,7 @@ Get augmentations installed on a sleeve. -Signature: +**Signature:** ```typescript getSleeveAugmentations(sleeveNumber: number): string[]; @@ -18,7 +18,7 @@ getSleeveAugmentations(sleeveNumber: number): string[]; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to retrieve augmentations from. | -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.sleeve.getsleevepurchasableaugs.md b/markdown/bitburner.sleeve.getsleevepurchasableaugs.md index b4c635a4f..34ee999c6 100644 --- a/markdown/bitburner.sleeve.getsleevepurchasableaugs.md +++ b/markdown/bitburner.sleeve.getsleevepurchasableaugs.md @@ -6,7 +6,7 @@ List purchasable augs for a sleeve. -Signature: +**Signature:** ```typescript getSleevePurchasableAugs(sleeveNumber: number): AugmentPair[]; @@ -18,7 +18,7 @@ getSleevePurchasableAugs(sleeveNumber: number): AugmentPair[]; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to retrieve purchasable augmentations from. | -Returns: +**Returns:** [AugmentPair](./bitburner.augmentpair.md)\[\] diff --git a/markdown/bitburner.sleeve.gettask.md b/markdown/bitburner.sleeve.gettask.md index 11fec4014..890636b8c 100644 --- a/markdown/bitburner.sleeve.gettask.md +++ b/markdown/bitburner.sleeve.gettask.md @@ -6,7 +6,7 @@ Get task of a sleeve. -Signature: +**Signature:** ```typescript getTask(sleeveNumber: number): SleeveTask | null; @@ -18,7 +18,7 @@ getTask(sleeveNumber: number): SleeveTask | null; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to retrieve task from. | -Returns: +**Returns:** [SleeveTask](./bitburner.sleevetask.md) \| null diff --git a/markdown/bitburner.sleeve.md b/markdown/bitburner.sleeve.md index 28040a996..17107a3b5 100644 --- a/markdown/bitburner.sleeve.md +++ b/markdown/bitburner.sleeve.md @@ -6,7 +6,7 @@ Sleeve API -Signature: +**Signature:** ```typescript export interface Sleeve diff --git a/markdown/bitburner.sleeve.purchasesleeveaug.md b/markdown/bitburner.sleeve.purchasesleeveaug.md index 16d6f836a..423a23d0e 100644 --- a/markdown/bitburner.sleeve.purchasesleeveaug.md +++ b/markdown/bitburner.sleeve.purchasesleeveaug.md @@ -6,7 +6,7 @@ Purchase an aug for a sleeve. -Signature: +**Signature:** ```typescript purchaseSleeveAug(sleeveNumber: number, augName: string): boolean; @@ -19,7 +19,7 @@ purchaseSleeveAug(sleeveNumber: number, augName: string): boolean; | sleeveNumber | number | Index of the sleeve to buy an aug for. | | augName | string | Name of the aug to buy. Must be an exact match. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settobladeburneraction.md b/markdown/bitburner.sleeve.settobladeburneraction.md index 3d9bf246c..96b8cc734 100644 --- a/markdown/bitburner.sleeve.settobladeburneraction.md +++ b/markdown/bitburner.sleeve.settobladeburneraction.md @@ -6,7 +6,7 @@ Set a sleeve to perform bladeburner actions. -Signature: +**Signature:** ```typescript setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): boolean; @@ -18,9 +18,9 @@ setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to workout at the gym. | | action | string | Name of the action to be performed. | -| contract | string | Name of the contract if applicable. | +| contract | string | _(Optional)_ Name of the contract if applicable. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settocommitcrime.md b/markdown/bitburner.sleeve.settocommitcrime.md index 835be4e00..5d0c07fa8 100644 --- a/markdown/bitburner.sleeve.settocommitcrime.md +++ b/markdown/bitburner.sleeve.settocommitcrime.md @@ -6,7 +6,7 @@ Set a sleeve to commit crime. -Signature: +**Signature:** ```typescript setToCommitCrime(sleeveNumber: number, crimeType: CrimeType | `${CrimeType}`): boolean; @@ -19,7 +19,7 @@ setToCommitCrime(sleeveNumber: number, crimeType: CrimeType | `${CrimeType}`): b | sleeveNumber | number | Index of the sleeve to start committing crime. Sleeves are numbered starting from 0. | | crimeType | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settocompanywork.md b/markdown/bitburner.sleeve.settocompanywork.md index bc8d93a0d..72691b7c9 100644 --- a/markdown/bitburner.sleeve.settocompanywork.md +++ b/markdown/bitburner.sleeve.settocompanywork.md @@ -6,7 +6,7 @@ Set a sleeve to work for a company. -Signature: +**Signature:** ```typescript setToCompanyWork(sleeveNumber: number, companyName: string): boolean; @@ -19,7 +19,7 @@ setToCompanyWork(sleeveNumber: number, companyName: string): boolean; | sleeveNumber | number | Index of the sleeve to work for the company. | | companyName | string | Name of the company to work for. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settofactionwork.md b/markdown/bitburner.sleeve.settofactionwork.md index 2d5b6ea17..f6d4b0619 100644 --- a/markdown/bitburner.sleeve.settofactionwork.md +++ b/markdown/bitburner.sleeve.settofactionwork.md @@ -6,7 +6,7 @@ Set a sleeve to work for a faction. -Signature: +**Signature:** ```typescript setToFactionWork( @@ -24,7 +24,7 @@ setToFactionWork( | factionName | string | Name of the faction to work for. | | factionWorkType | [FactionWorkType](./bitburner.factionworktype.md) \| \`${[FactionWorkType](./bitburner.factionworktype.md)}\` | Name of the action to perform for this faction. | -Returns: +**Returns:** boolean \| undefined diff --git a/markdown/bitburner.sleeve.settogymworkout.md b/markdown/bitburner.sleeve.settogymworkout.md index b092838eb..07ee824c9 100644 --- a/markdown/bitburner.sleeve.settogymworkout.md +++ b/markdown/bitburner.sleeve.settogymworkout.md @@ -6,7 +6,7 @@ Set a sleeve to workout at the gym. -Signature: +**Signature:** ```typescript setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean; @@ -20,7 +20,7 @@ setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean; | gymName | string | Name of the gym. | | stat | string | Name of the stat to train. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settoshockrecovery.md b/markdown/bitburner.sleeve.settoshockrecovery.md index 93a1ef01c..07f1bb891 100644 --- a/markdown/bitburner.sleeve.settoshockrecovery.md +++ b/markdown/bitburner.sleeve.settoshockrecovery.md @@ -6,7 +6,7 @@ Set a sleeve to shock recovery. -Signature: +**Signature:** ```typescript setToShockRecovery(sleeveNumber: number): boolean; @@ -18,7 +18,7 @@ setToShockRecovery(sleeveNumber: number): boolean; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to start recovery. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settosynchronize.md b/markdown/bitburner.sleeve.settosynchronize.md index 17fa4ca6d..2c44e74f3 100644 --- a/markdown/bitburner.sleeve.settosynchronize.md +++ b/markdown/bitburner.sleeve.settosynchronize.md @@ -6,7 +6,7 @@ Set a sleeve to synchronize. -Signature: +**Signature:** ```typescript setToSynchronize(sleeveNumber: number): boolean; @@ -18,7 +18,7 @@ setToSynchronize(sleeveNumber: number): boolean; | --- | --- | --- | | sleeveNumber | number | Index of the sleeve to start synchronizing. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.settouniversitycourse.md b/markdown/bitburner.sleeve.settouniversitycourse.md index f96d60a8b..9fcf24ceb 100644 --- a/markdown/bitburner.sleeve.settouniversitycourse.md +++ b/markdown/bitburner.sleeve.settouniversitycourse.md @@ -6,7 +6,7 @@ Set a sleeve to take a class at a university. -Signature: +**Signature:** ```typescript setToUniversityCourse(sleeveNumber: number, university: string, className: string): boolean; @@ -20,7 +20,7 @@ setToUniversityCourse(sleeveNumber: number, university: string, className: strin | university | string | Name of the university to attend. | | className | string | Name of the class to follow. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleeve.travel.md b/markdown/bitburner.sleeve.travel.md index 8ff1d85cb..3b3c18b82 100644 --- a/markdown/bitburner.sleeve.travel.md +++ b/markdown/bitburner.sleeve.travel.md @@ -6,7 +6,7 @@ Make a sleeve travel to another city. -Signature: +**Signature:** ```typescript travel(sleeveNumber: number, city: CityName | `${CityName}`): boolean; @@ -19,7 +19,7 @@ travel(sleeveNumber: number, city: CityName | `${CityName}`): boolean; | sleeveNumber | number | Index of the sleeve to travel. | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the destination city. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.sleevebladeburnertask.md b/markdown/bitburner.sleevebladeburnertask.md index 62bbd4193..798bab62e 100644 --- a/markdown/bitburner.sleevebladeburnertask.md +++ b/markdown/bitburner.sleevebladeburnertask.md @@ -5,12 +5,13 @@ ## SleeveBladeburnerTask type -Signature: +**Signature:** ```typescript type SleeveBladeburnerTask = { type: "BLADEBURNER"; actionType: "General" | "Contracts"; actionName: string; + cyclesWorked: number; }; ``` diff --git a/markdown/bitburner.sleeveclasstask.md b/markdown/bitburner.sleeveclasstask.md index 304d374b6..b39475abc 100644 --- a/markdown/bitburner.sleeveclasstask.md +++ b/markdown/bitburner.sleeveclasstask.md @@ -5,7 +5,7 @@ ## SleeveClassTask type -Signature: +**Signature:** ```typescript type SleeveClassTask = { @@ -14,5 +14,5 @@ type SleeveClassTask = { location: LocationName | `${LocationName}`; }; ``` -References: [UniversityClassType](./bitburner.universityclasstype.md), [GymType](./bitburner.gymtype.md), [LocationName](./bitburner.locationname.md) +**References:** [UniversityClassType](./bitburner.universityclasstype.md), [GymType](./bitburner.gymtype.md), [LocationName](./bitburner.locationname.md) diff --git a/markdown/bitburner.sleevecompanytask.md b/markdown/bitburner.sleevecompanytask.md index 97ec5c680..58b869626 100644 --- a/markdown/bitburner.sleevecompanytask.md +++ b/markdown/bitburner.sleevecompanytask.md @@ -5,7 +5,7 @@ ## SleeveCompanyTask type -Signature: +**Signature:** ```typescript type SleeveCompanyTask = { type: "COMPANY"; companyName: string }; diff --git a/markdown/bitburner.sleevecrimetask.md b/markdown/bitburner.sleevecrimetask.md index f23063f3e..e4ef12182 100644 --- a/markdown/bitburner.sleevecrimetask.md +++ b/markdown/bitburner.sleevecrimetask.md @@ -5,10 +5,10 @@ ## SleeveCrimeTask type -Signature: +**Signature:** ```typescript -type SleeveCrimeTask = { type: "CRIME"; crimeType: CrimeType | `${CrimeType}` }; +type SleeveCrimeTask = { type: "CRIME"; crimeType: CrimeType | `${CrimeType}`; cyclesWorked: number }; ``` -References: [CrimeType](./bitburner.crimetype.md) +**References:** [CrimeType](./bitburner.crimetype.md) diff --git a/markdown/bitburner.sleevefactiontask.md b/markdown/bitburner.sleevefactiontask.md index 132ca9e62..e24a57b1e 100644 --- a/markdown/bitburner.sleevefactiontask.md +++ b/markdown/bitburner.sleevefactiontask.md @@ -5,7 +5,7 @@ ## SleeveFactionTask type -Signature: +**Signature:** ```typescript type SleeveFactionTask = { @@ -14,5 +14,5 @@ type SleeveFactionTask = { factionName: string; }; ``` -References: [FactionWorkType](./bitburner.factionworktype.md) +**References:** [FactionWorkType](./bitburner.factionworktype.md) diff --git a/markdown/bitburner.sleeveinfiltratetask.md b/markdown/bitburner.sleeveinfiltratetask.md index 4e46e3861..c4076cbc3 100644 --- a/markdown/bitburner.sleeveinfiltratetask.md +++ b/markdown/bitburner.sleeveinfiltratetask.md @@ -5,8 +5,8 @@ ## SleeveInfiltrateTask type -Signature: +**Signature:** ```typescript -type SleeveInfiltrateTask = { type: "INFILTRATE" }; +type SleeveInfiltrateTask = { type: "INFILTRATE"; cyclesWorked: number }; ``` diff --git a/markdown/bitburner.sleeveperson.md b/markdown/bitburner.sleeveperson.md index bdc651570..7454801e4 100644 --- a/markdown/bitburner.sleeveperson.md +++ b/markdown/bitburner.sleeveperson.md @@ -5,19 +5,19 @@ ## SleevePerson interface -Signature: +**Signature:** ```typescript interface SleevePerson extends Person ``` -Extends: [Person](./bitburner.person.md) +**Extends:** [Person](./bitburner.person.md) ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [memory](./bitburner.sleeveperson.memory.md) | number | Number 1-100 initial Value of sync on BN start | -| [shock](./bitburner.sleeveperson.shock.md) | number | Number 0-100 Experience earned and shared is multiplied with shock% before sync% | -| [storedCycles](./bitburner.sleeveperson.storedcycles.md) | number | Number of 200ms cycles which are stored as bonus time | -| [sync](./bitburner.sleeveperson.sync.md) | number | Number 1-100 Experience earned by this sleeve and shared with the player is multiplied with sync% after shock% | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [memory](./bitburner.sleeveperson.memory.md) | | number | Number 1-100 initial Value of sync on BN start | +| [shock](./bitburner.sleeveperson.shock.md) | | number | Number 0-100 Experience earned and shared is multiplied with shock% before sync% | +| [storedCycles](./bitburner.sleeveperson.storedcycles.md) | | number | Number of 200ms cycles which are stored as bonus time | +| [sync](./bitburner.sleeveperson.sync.md) | | number | Number 1-100 Experience earned by this sleeve and shared with the player is multiplied with sync% after shock% | diff --git a/markdown/bitburner.sleeveperson.memory.md b/markdown/bitburner.sleeveperson.memory.md index 5b13f1f3d..1f5758a76 100644 --- a/markdown/bitburner.sleeveperson.memory.md +++ b/markdown/bitburner.sleeveperson.memory.md @@ -6,7 +6,7 @@ Number 1-100 initial Value of sync on BN start -Signature: +**Signature:** ```typescript memory: number; diff --git a/markdown/bitburner.sleeveperson.shock.md b/markdown/bitburner.sleeveperson.shock.md index 9acfc5b4e..c3a404b10 100644 --- a/markdown/bitburner.sleeveperson.shock.md +++ b/markdown/bitburner.sleeveperson.shock.md @@ -6,7 +6,7 @@ Number 0-100 Experience earned and shared is multiplied with shock% before sync% -Signature: +**Signature:** ```typescript shock: number; diff --git a/markdown/bitburner.sleeveperson.storedcycles.md b/markdown/bitburner.sleeveperson.storedcycles.md index d487359a9..d61915b9e 100644 --- a/markdown/bitburner.sleeveperson.storedcycles.md +++ b/markdown/bitburner.sleeveperson.storedcycles.md @@ -6,7 +6,7 @@ Number of 200ms cycles which are stored as bonus time -Signature: +**Signature:** ```typescript storedCycles: number; diff --git a/markdown/bitburner.sleeveperson.sync.md b/markdown/bitburner.sleeveperson.sync.md index daeca7948..af186ee2b 100644 --- a/markdown/bitburner.sleeveperson.sync.md +++ b/markdown/bitburner.sleeveperson.sync.md @@ -6,7 +6,7 @@ Number 1-100 Experience earned by this sleeve and shared with the player is multiplied with sync% after shock% -Signature: +**Signature:** ```typescript sync: number; diff --git a/markdown/bitburner.sleeverecoverytask.md b/markdown/bitburner.sleeverecoverytask.md index 8a17033c0..f846b6835 100644 --- a/markdown/bitburner.sleeverecoverytask.md +++ b/markdown/bitburner.sleeverecoverytask.md @@ -5,7 +5,7 @@ ## SleeveRecoveryTask type -Signature: +**Signature:** ```typescript type SleeveRecoveryTask = { type: "RECOVERY" }; diff --git a/markdown/bitburner.sleevesupporttask.md b/markdown/bitburner.sleevesupporttask.md index d1df450d8..6507ecc30 100644 --- a/markdown/bitburner.sleevesupporttask.md +++ b/markdown/bitburner.sleevesupporttask.md @@ -5,7 +5,7 @@ ## SleeveSupportTask type -Signature: +**Signature:** ```typescript type SleeveSupportTask = { type: "SUPPORT" }; diff --git a/markdown/bitburner.sleevesynchrotask.md b/markdown/bitburner.sleevesynchrotask.md index ef4b49f7b..83e09684c 100644 --- a/markdown/bitburner.sleevesynchrotask.md +++ b/markdown/bitburner.sleevesynchrotask.md @@ -5,7 +5,7 @@ ## SleeveSynchroTask type -Signature: +**Signature:** ```typescript type SleeveSynchroTask = { type: "SYNCHRO" }; diff --git a/markdown/bitburner.sleevetask.md b/markdown/bitburner.sleevetask.md index d1ff3086f..b5bbf60fd 100644 --- a/markdown/bitburner.sleevetask.md +++ b/markdown/bitburner.sleevetask.md @@ -6,7 +6,7 @@ Object representing a sleeve current task. -Signature: +**Signature:** ```typescript export type SleeveTask = @@ -20,5 +20,5 @@ export type SleeveTask = | SleeveSupportTask | SleeveSynchroTask; ``` -References: [SleeveBladeburnerTask](./bitburner.sleevebladeburnertask.md), [SleeveClassTask](./bitburner.sleeveclasstask.md), [SleeveCompanyTask](./bitburner.sleevecompanytask.md), [SleeveCrimeTask](./bitburner.sleevecrimetask.md), [SleeveFactionTask](./bitburner.sleevefactiontask.md), [SleeveInfiltrateTask](./bitburner.sleeveinfiltratetask.md), [SleeveRecoveryTask](./bitburner.sleeverecoverytask.md), [SleeveSupportTask](./bitburner.sleevesupporttask.md), [SleeveSynchroTask](./bitburner.sleevesynchrotask.md) +**References:** [SleeveBladeburnerTask](./bitburner.sleevebladeburnertask.md), [SleeveClassTask](./bitburner.sleeveclasstask.md), [SleeveCompanyTask](./bitburner.sleevecompanytask.md), [SleeveCrimeTask](./bitburner.sleevecrimetask.md), [SleeveFactionTask](./bitburner.sleevefactiontask.md), [SleeveInfiltrateTask](./bitburner.sleeveinfiltratetask.md), [SleeveRecoveryTask](./bitburner.sleeverecoverytask.md), [SleeveSupportTask](./bitburner.sleevesupporttask.md), [SleeveSynchroTask](./bitburner.sleevesynchrotask.md) diff --git a/markdown/bitburner.sourcefilelvl.lvl.md b/markdown/bitburner.sourcefilelvl.lvl.md index 067dd01ce..8660efbb8 100644 --- a/markdown/bitburner.sourcefilelvl.lvl.md +++ b/markdown/bitburner.sourcefilelvl.lvl.md @@ -6,7 +6,7 @@ The level of the source file -Signature: +**Signature:** ```typescript lvl: number; diff --git a/markdown/bitburner.sourcefilelvl.md b/markdown/bitburner.sourcefilelvl.md index ca986ed8b..65b0731c8 100644 --- a/markdown/bitburner.sourcefilelvl.md +++ b/markdown/bitburner.sourcefilelvl.md @@ -5,7 +5,7 @@ ## SourceFileLvl interface -Signature: +**Signature:** ```typescript interface SourceFileLvl @@ -13,8 +13,8 @@ interface SourceFileLvl ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [lvl](./bitburner.sourcefilelvl.lvl.md) | number | The level of the source file | -| [n](./bitburner.sourcefilelvl.n.md) | number | The number of the source file | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [lvl](./bitburner.sourcefilelvl.lvl.md) | | number | The level of the source file | +| [n](./bitburner.sourcefilelvl.n.md) | | number | The number of the source file | diff --git a/markdown/bitburner.sourcefilelvl.n.md b/markdown/bitburner.sourcefilelvl.n.md index 46ffb9ed9..cfa1645fd 100644 --- a/markdown/bitburner.sourcefilelvl.n.md +++ b/markdown/bitburner.sourcefilelvl.n.md @@ -6,7 +6,7 @@ The number of the source file -Signature: +**Signature:** ```typescript n: number; diff --git a/markdown/bitburner.stanek.acceptgift.md b/markdown/bitburner.stanek.acceptgift.md index a3bb3dde0..833186bf4 100644 --- a/markdown/bitburner.stanek.acceptgift.md +++ b/markdown/bitburner.stanek.acceptgift.md @@ -6,12 +6,12 @@ Accept Stanek's Gift by joining the Church of the Machine God -Signature: +**Signature:** ```typescript acceptGift(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.stanek.activefragments.md b/markdown/bitburner.stanek.activefragments.md index cbdd74f25..94b205bf8 100644 --- a/markdown/bitburner.stanek.activefragments.md +++ b/markdown/bitburner.stanek.activefragments.md @@ -6,12 +6,12 @@ List of fragments in Stanek's Gift. -Signature: +**Signature:** ```typescript activeFragments(): ActiveFragment[]; ``` -Returns: +**Returns:** [ActiveFragment](./bitburner.activefragment.md)\[\] diff --git a/markdown/bitburner.stanek.canplacefragment.md b/markdown/bitburner.stanek.canplacefragment.md index 4f06ba218..f5f9e2f22 100644 --- a/markdown/bitburner.stanek.canplacefragment.md +++ b/markdown/bitburner.stanek.canplacefragment.md @@ -6,7 +6,7 @@ Check if fragment can be placed at specified location. -Signature: +**Signature:** ```typescript canPlaceFragment(rootX: number, rootY: number, rotation: number, fragmentId: number): boolean; @@ -21,7 +21,7 @@ canPlaceFragment(rootX: number, rootY: number, rotation: number, fragmentId: num | rotation | number | rotation A number from 0 to 3, the mount of 90 degree turn to take. | | fragmentId | number | fragmentId ID of the fragment to place. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.stanek.chargefragment.md b/markdown/bitburner.stanek.chargefragment.md index 9b3e75a72..1d1ca2771 100644 --- a/markdown/bitburner.stanek.chargefragment.md +++ b/markdown/bitburner.stanek.chargefragment.md @@ -6,7 +6,7 @@ Charge a fragment, increasing its power. -Signature: +**Signature:** ```typescript chargeFragment(rootX: number, rootY: number): Promise; @@ -19,7 +19,7 @@ chargeFragment(rootX: number, rootY: number): Promise; | rootX | number | rootX Root X against which to align the top left of the fragment. | | rootY | number | rootY Root Y against which to align the top left of the fragment. | -Returns: +**Returns:** Promise<void> diff --git a/markdown/bitburner.stanek.cleargift.md b/markdown/bitburner.stanek.cleargift.md index 12ece8a3d..d3269bd52 100644 --- a/markdown/bitburner.stanek.cleargift.md +++ b/markdown/bitburner.stanek.cleargift.md @@ -6,12 +6,12 @@ Clear the board of all fragments. -Signature: +**Signature:** ```typescript clearGift(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.stanek.fragmentdefinitions.md b/markdown/bitburner.stanek.fragmentdefinitions.md index dbc36f456..b18b7148d 100644 --- a/markdown/bitburner.stanek.fragmentdefinitions.md +++ b/markdown/bitburner.stanek.fragmentdefinitions.md @@ -6,12 +6,12 @@ List possible fragments. -Signature: +**Signature:** ```typescript fragmentDefinitions(): Fragment[]; ``` -Returns: +**Returns:** [Fragment](./bitburner.fragment.md)\[\] diff --git a/markdown/bitburner.stanek.getfragment.md b/markdown/bitburner.stanek.getfragment.md index 348c23d37..7430b753d 100644 --- a/markdown/bitburner.stanek.getfragment.md +++ b/markdown/bitburner.stanek.getfragment.md @@ -6,7 +6,7 @@ Get placed fragment at location. -Signature: +**Signature:** ```typescript getFragment(rootX: number, rootY: number): ActiveFragment | undefined; @@ -19,7 +19,7 @@ getFragment(rootX: number, rootY: number): ActiveFragment | undefined; | rootX | number | X against which to align the top left of the fragment. | | rootY | number | Y against which to align the top left of the fragment. | -Returns: +**Returns:** [ActiveFragment](./bitburner.activefragment.md) \| undefined diff --git a/markdown/bitburner.stanek.giftheight.md b/markdown/bitburner.stanek.giftheight.md index 6ce12a20a..1e3531fda 100644 --- a/markdown/bitburner.stanek.giftheight.md +++ b/markdown/bitburner.stanek.giftheight.md @@ -6,12 +6,12 @@ Stanek's Gift height. -Signature: +**Signature:** ```typescript giftHeight(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.stanek.giftwidth.md b/markdown/bitburner.stanek.giftwidth.md index aa85b25c2..7467c52ae 100644 --- a/markdown/bitburner.stanek.giftwidth.md +++ b/markdown/bitburner.stanek.giftwidth.md @@ -6,12 +6,12 @@ Stanek's Gift width. -Signature: +**Signature:** ```typescript giftWidth(): number; ``` -Returns: +**Returns:** number diff --git a/markdown/bitburner.stanek.md b/markdown/bitburner.stanek.md index 0a518d780..8717576b0 100644 --- a/markdown/bitburner.stanek.md +++ b/markdown/bitburner.stanek.md @@ -6,7 +6,7 @@ Stanek's Gift API. -Signature: +**Signature:** ```typescript interface Stanek diff --git a/markdown/bitburner.stanek.placefragment.md b/markdown/bitburner.stanek.placefragment.md index 4ff6495c4..19d13fefd 100644 --- a/markdown/bitburner.stanek.placefragment.md +++ b/markdown/bitburner.stanek.placefragment.md @@ -6,7 +6,7 @@ Place fragment on Stanek's Gift. -Signature: +**Signature:** ```typescript placeFragment(rootX: number, rootY: number, rotation: number, fragmentId: number): boolean; @@ -21,7 +21,7 @@ placeFragment(rootX: number, rootY: number, rotation: number, fragmentId: number | rotation | number | A number from 0 to 3, the mount of 90 degree turn to take. | | fragmentId | number | ID of the fragment to place. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.stanek.removefragment.md b/markdown/bitburner.stanek.removefragment.md index 63071dd20..7d31389f1 100644 --- a/markdown/bitburner.stanek.removefragment.md +++ b/markdown/bitburner.stanek.removefragment.md @@ -6,7 +6,7 @@ Remove fragment at location. -Signature: +**Signature:** ```typescript removeFragment(rootX: number, rootY: number): boolean; @@ -19,7 +19,7 @@ removeFragment(rootX: number, rootY: number): boolean; | rootX | number | X against which to align the top left of the fragment. | | rootY | number | Y against which to align the top left of the fragment. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.stockorder.md b/markdown/bitburner.stockorder.md index 1c5b3d981..56a458021 100644 --- a/markdown/bitburner.stockorder.md +++ b/markdown/bitburner.stockorder.md @@ -8,7 +8,7 @@ Return value of [getOrders](./bitburner.tix.getorders.md) Keys are stock symbols, properties are arrays of [StockOrderObject](./bitburner.stockorderobject.md) -Signature: +**Signature:** ```typescript interface StockOrder diff --git a/markdown/bitburner.stockorderobject.md b/markdown/bitburner.stockorderobject.md index c8a0a44f5..4e894b1af 100644 --- a/markdown/bitburner.stockorderobject.md +++ b/markdown/bitburner.stockorderobject.md @@ -6,7 +6,7 @@ Value in map of [StockOrder](./bitburner.stockorder.md) -Signature: +**Signature:** ```typescript interface StockOrderObject @@ -14,10 +14,10 @@ interface StockOrderObject ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [position](./bitburner.stockorderobject.position.md) | [PositionTypes](./bitburner.positiontypes.md) | Order position | -| [price](./bitburner.stockorderobject.price.md) | number | Price per share | -| [shares](./bitburner.stockorderobject.shares.md) | number | Number of shares | -| [type](./bitburner.stockorderobject.type.md) | [OrderTypes](./bitburner.ordertypes.md) | Order type | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [position](./bitburner.stockorderobject.position.md) | | [PositionTypes](./bitburner.positiontypes.md) | Order position | +| [price](./bitburner.stockorderobject.price.md) | | number | Price per share | +| [shares](./bitburner.stockorderobject.shares.md) | | number | Number of shares | +| [type](./bitburner.stockorderobject.type.md) | | [OrderTypes](./bitburner.ordertypes.md) | Order type | diff --git a/markdown/bitburner.stockorderobject.position.md b/markdown/bitburner.stockorderobject.position.md index 9f6aac1de..cdf0c2fce 100644 --- a/markdown/bitburner.stockorderobject.position.md +++ b/markdown/bitburner.stockorderobject.position.md @@ -6,7 +6,7 @@ Order position -Signature: +**Signature:** ```typescript position: PositionTypes; diff --git a/markdown/bitburner.stockorderobject.price.md b/markdown/bitburner.stockorderobject.price.md index 8c96a4820..3fd027f2c 100644 --- a/markdown/bitburner.stockorderobject.price.md +++ b/markdown/bitburner.stockorderobject.price.md @@ -6,7 +6,7 @@ Price per share -Signature: +**Signature:** ```typescript price: number; diff --git a/markdown/bitburner.stockorderobject.shares.md b/markdown/bitburner.stockorderobject.shares.md index 6553ff33c..0816130d2 100644 --- a/markdown/bitburner.stockorderobject.shares.md +++ b/markdown/bitburner.stockorderobject.shares.md @@ -6,7 +6,7 @@ Number of shares -Signature: +**Signature:** ```typescript shares: number; diff --git a/markdown/bitburner.stockorderobject.type.md b/markdown/bitburner.stockorderobject.type.md index 59c3258ef..00cffde00 100644 --- a/markdown/bitburner.stockorderobject.type.md +++ b/markdown/bitburner.stockorderobject.type.md @@ -6,7 +6,7 @@ Order type -Signature: +**Signature:** ```typescript type: OrderTypes; diff --git a/markdown/bitburner.tix.buyshort.md b/markdown/bitburner.tix.buyshort.md index 77e928662..a9fc49b64 100644 --- a/markdown/bitburner.tix.buyshort.md +++ b/markdown/bitburner.tix.buyshort.md @@ -6,7 +6,7 @@ Short stocks. -Signature: +**Signature:** ```typescript buyShort(sym: string, shares: number): number; @@ -19,7 +19,7 @@ buyShort(sym: string, shares: number): number; | sym | string | Stock symbol. | | shares | number | Number of shares to short. Must be positive. Will be rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.buystock.md b/markdown/bitburner.tix.buystock.md index 5a8e8b56c..235c3f280 100644 --- a/markdown/bitburner.tix.buystock.md +++ b/markdown/bitburner.tix.buystock.md @@ -6,7 +6,7 @@ Buy stocks. -Signature: +**Signature:** ```typescript buyStock(sym: string, shares: number): number; @@ -19,7 +19,7 @@ buyStock(sym: string, shares: number): number; | sym | string | Stock symbol. | | shares | number | Number of shares to purchased. Must be positive. Will be rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.cancelorder.md b/markdown/bitburner.tix.cancelorder.md index c5ef90cb8..b619296be 100644 --- a/markdown/bitburner.tix.cancelorder.md +++ b/markdown/bitburner.tix.cancelorder.md @@ -6,7 +6,7 @@ Cancel order for stocks. -Signature: +**Signature:** ```typescript cancelOrder(sym: string, shares: number, price: number, type: string, pos: string): void; @@ -22,7 +22,7 @@ cancelOrder(sym: string, shares: number, price: number, type: string, pos: strin | type | string | Type of order. | | pos | string | Specifies whether the order is a “Long” or “Short” position. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.tix.getaskprice.md b/markdown/bitburner.tix.getaskprice.md index 1f33c26cd..f78b40e2f 100644 --- a/markdown/bitburner.tix.getaskprice.md +++ b/markdown/bitburner.tix.getaskprice.md @@ -6,7 +6,7 @@ Returns the ask price of that stock. -Signature: +**Signature:** ```typescript getAskPrice(sym: string): number; @@ -18,7 +18,7 @@ getAskPrice(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getbidprice.md b/markdown/bitburner.tix.getbidprice.md index a2d00d8b1..bcebd8ff3 100644 --- a/markdown/bitburner.tix.getbidprice.md +++ b/markdown/bitburner.tix.getbidprice.md @@ -6,7 +6,7 @@ Returns the bid price of that stock. -Signature: +**Signature:** ```typescript getBidPrice(sym: string): number; @@ -18,7 +18,7 @@ getBidPrice(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getforecast.md b/markdown/bitburner.tix.getforecast.md index 4fa0c0043..507980222 100644 --- a/markdown/bitburner.tix.getforecast.md +++ b/markdown/bitburner.tix.getforecast.md @@ -6,7 +6,7 @@ Returns the probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. -Signature: +**Signature:** ```typescript getForecast(sym: string): number; @@ -18,7 +18,7 @@ getForecast(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getmaxshares.md b/markdown/bitburner.tix.getmaxshares.md index ec152466f..0715ec4d3 100644 --- a/markdown/bitburner.tix.getmaxshares.md +++ b/markdown/bitburner.tix.getmaxshares.md @@ -6,7 +6,7 @@ Returns the maximum number of shares of a stock. -Signature: +**Signature:** ```typescript getMaxShares(sym: string): number; @@ -18,7 +18,7 @@ getMaxShares(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getorders.md b/markdown/bitburner.tix.getorders.md index 04184a956..376f4cf70 100644 --- a/markdown/bitburner.tix.getorders.md +++ b/markdown/bitburner.tix.getorders.md @@ -6,12 +6,12 @@ Returns your order book for the stock market. -Signature: +**Signature:** ```typescript getOrders(): StockOrder; ``` -Returns: +**Returns:** [StockOrder](./bitburner.stockorder.md) diff --git a/markdown/bitburner.tix.getorganization.md b/markdown/bitburner.tix.getorganization.md index 59b7b689a..3b16a4463 100644 --- a/markdown/bitburner.tix.getorganization.md +++ b/markdown/bitburner.tix.getorganization.md @@ -6,7 +6,7 @@ Returns the organization associated with a stock symbol. -Signature: +**Signature:** ```typescript getOrganization(sym: string): string; @@ -18,7 +18,7 @@ getOrganization(sym: string): string; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** string diff --git a/markdown/bitburner.tix.getposition.md b/markdown/bitburner.tix.getposition.md index 206fcb2a8..ed7db96ba 100644 --- a/markdown/bitburner.tix.getposition.md +++ b/markdown/bitburner.tix.getposition.md @@ -6,7 +6,7 @@ Returns the player’s position in a stock. -Signature: +**Signature:** ```typescript getPosition(sym: string): [number, number, number, number]; @@ -18,7 +18,7 @@ getPosition(sym: string): [number, number, number, number]; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** \[number, number, number, number\] diff --git a/markdown/bitburner.tix.getprice.md b/markdown/bitburner.tix.getprice.md index 6c199342a..08bed6761 100644 --- a/markdown/bitburner.tix.getprice.md +++ b/markdown/bitburner.tix.getprice.md @@ -6,7 +6,7 @@ Returns the price of a stock. -Signature: +**Signature:** ```typescript getPrice(sym: string): number; @@ -18,7 +18,7 @@ getPrice(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getpurchasecost.md b/markdown/bitburner.tix.getpurchasecost.md index 7eb12f88c..029342b7b 100644 --- a/markdown/bitburner.tix.getpurchasecost.md +++ b/markdown/bitburner.tix.getpurchasecost.md @@ -6,7 +6,7 @@ Calculates cost of buying stocks. -Signature: +**Signature:** ```typescript getPurchaseCost(sym: string, shares: number, posType: string): number; @@ -20,7 +20,7 @@ getPurchaseCost(sym: string, shares: number, posType: string): number; | shares | number | Number of shares to purchase. | | posType | string | Specifies whether the order is a “Long” or “Short” position. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getsalegain.md b/markdown/bitburner.tix.getsalegain.md index bbc263f28..ddd969301 100644 --- a/markdown/bitburner.tix.getsalegain.md +++ b/markdown/bitburner.tix.getsalegain.md @@ -6,7 +6,7 @@ Calculate profit of selling stocks. -Signature: +**Signature:** ```typescript getSaleGain(sym: string, shares: number, posType: string): number; @@ -20,7 +20,7 @@ getSaleGain(sym: string, shares: number, posType: string): number; | shares | number | Number of shares to sell. | | posType | string | Specifies whether the order is a “Long” or “Short” position. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.getsymbols.md b/markdown/bitburner.tix.getsymbols.md index 8ec52e5d9..164d0b6fd 100644 --- a/markdown/bitburner.tix.getsymbols.md +++ b/markdown/bitburner.tix.getsymbols.md @@ -6,12 +6,12 @@ Returns an array of the symbols of the tradable stocks -Signature: +**Signature:** ```typescript getSymbols(): string[]; ``` -Returns: +**Returns:** string\[\] diff --git a/markdown/bitburner.tix.getvolatility.md b/markdown/bitburner.tix.getvolatility.md index b38afb066..1500e316f 100644 --- a/markdown/bitburner.tix.getvolatility.md +++ b/markdown/bitburner.tix.getvolatility.md @@ -6,7 +6,7 @@ Returns the volatility of the specified stock. -Signature: +**Signature:** ```typescript getVolatility(sym: string): number; @@ -18,7 +18,7 @@ getVolatility(sym: string): number; | --- | --- | --- | | sym | string | Stock symbol. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.has4sdata.md b/markdown/bitburner.tix.has4sdata.md index 65ee2a131..2a8aeb689 100644 --- a/markdown/bitburner.tix.has4sdata.md +++ b/markdown/bitburner.tix.has4sdata.md @@ -6,12 +6,12 @@ Returns true if the player has access to the 4S Data -Signature: +**Signature:** ```typescript has4SData(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.has4sdatatixapi.md b/markdown/bitburner.tix.has4sdatatixapi.md index f3d55d9b0..a982646d2 100644 --- a/markdown/bitburner.tix.has4sdatatixapi.md +++ b/markdown/bitburner.tix.has4sdatatixapi.md @@ -6,12 +6,12 @@ Returns true if the player has access to the 4SData TIX API -Signature: +**Signature:** ```typescript has4SDataTIXAPI(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.hastixapiaccess.md b/markdown/bitburner.tix.hastixapiaccess.md index 083bbd038..39940f911 100644 --- a/markdown/bitburner.tix.hastixapiaccess.md +++ b/markdown/bitburner.tix.hastixapiaccess.md @@ -6,12 +6,12 @@ Returns true if the player has access to the TIX API -Signature: +**Signature:** ```typescript hasTIXAPIAccess(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.haswseaccount.md b/markdown/bitburner.tix.haswseaccount.md index d823ab064..6b5c18a4a 100644 --- a/markdown/bitburner.tix.haswseaccount.md +++ b/markdown/bitburner.tix.haswseaccount.md @@ -6,12 +6,12 @@ Returns true if the player has access to a WSE Account -Signature: +**Signature:** ```typescript hasWSEAccount(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.md b/markdown/bitburner.tix.md index 2eaf58741..8c418eed2 100644 --- a/markdown/bitburner.tix.md +++ b/markdown/bitburner.tix.md @@ -6,7 +6,7 @@ Stock market API -Signature: +**Signature:** ```typescript export interface TIX diff --git a/markdown/bitburner.tix.placeorder.md b/markdown/bitburner.tix.placeorder.md index 59a9cba98..b3cc558a6 100644 --- a/markdown/bitburner.tix.placeorder.md +++ b/markdown/bitburner.tix.placeorder.md @@ -6,7 +6,7 @@ Place order for stocks. -Signature: +**Signature:** ```typescript placeOrder(sym: string, shares: number, price: number, type: string, pos: string): boolean; @@ -22,7 +22,7 @@ placeOrder(sym: string, shares: number, price: number, type: string, pos: string | type | string | Type of order. | | pos | string | Specifies whether the order is a “Long” or “Short” position. | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.purchase4smarketdata.md b/markdown/bitburner.tix.purchase4smarketdata.md index 42b21a322..0dd875fc8 100644 --- a/markdown/bitburner.tix.purchase4smarketdata.md +++ b/markdown/bitburner.tix.purchase4smarketdata.md @@ -6,12 +6,12 @@ Purchase 4S Market Data Access. -Signature: +**Signature:** ```typescript purchase4SMarketData(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.purchase4smarketdatatixapi.md b/markdown/bitburner.tix.purchase4smarketdatatixapi.md index c23ebd346..3441fdd6a 100644 --- a/markdown/bitburner.tix.purchase4smarketdatatixapi.md +++ b/markdown/bitburner.tix.purchase4smarketdatatixapi.md @@ -6,12 +6,12 @@ Purchase 4S Market Data TIX API Access. -Signature: +**Signature:** ```typescript purchase4SMarketDataTixApi(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.purchasetixapi.md b/markdown/bitburner.tix.purchasetixapi.md index ed42a91be..274bdadde 100644 --- a/markdown/bitburner.tix.purchasetixapi.md +++ b/markdown/bitburner.tix.purchasetixapi.md @@ -6,12 +6,12 @@ Purchase TIX API Access -Signature: +**Signature:** ```typescript purchaseTixApi(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.purchasewseaccount.md b/markdown/bitburner.tix.purchasewseaccount.md index ec18792d5..b88f261f3 100644 --- a/markdown/bitburner.tix.purchasewseaccount.md +++ b/markdown/bitburner.tix.purchasewseaccount.md @@ -6,12 +6,12 @@ Purchase WSE Account. -Signature: +**Signature:** ```typescript purchaseWseAccount(): boolean; ``` -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.tix.sellshort.md b/markdown/bitburner.tix.sellshort.md index f5081991a..acbfa2a70 100644 --- a/markdown/bitburner.tix.sellshort.md +++ b/markdown/bitburner.tix.sellshort.md @@ -6,7 +6,7 @@ Sell short stock. -Signature: +**Signature:** ```typescript sellShort(sym: string, shares: number): number; @@ -19,7 +19,7 @@ sellShort(sym: string, shares: number): number; | sym | string | Stock symbol. | | shares | number | Number of shares to sell. Must be positive. Will be rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.tix.sellstock.md b/markdown/bitburner.tix.sellstock.md index 7d18b72c7..196462f0c 100644 --- a/markdown/bitburner.tix.sellstock.md +++ b/markdown/bitburner.tix.sellstock.md @@ -6,7 +6,7 @@ Sell stocks. -Signature: +**Signature:** ```typescript sellStock(sym: string, shares: number): number; @@ -19,7 +19,7 @@ sellStock(sym: string, shares: number): number; | sym | string | Stock symbol. | | shares | number | Number of shares to sell. Must be positive. Will be rounded to nearest integer. | -Returns: +**Returns:** number diff --git a/markdown/bitburner.toastvariant.md b/markdown/bitburner.toastvariant.md index 6e0675aee..1bcd5aed3 100644 --- a/markdown/bitburner.toastvariant.md +++ b/markdown/bitburner.toastvariant.md @@ -5,7 +5,7 @@ ## ToastVariant enum -Signature: +**Signature:** ```typescript declare enum ToastVariant diff --git a/markdown/bitburner.universityclasstype.md b/markdown/bitburner.universityclasstype.md index 50700a8eb..61157181e 100644 --- a/markdown/bitburner.universityclasstype.md +++ b/markdown/bitburner.universityclasstype.md @@ -5,7 +5,7 @@ ## UniversityClassType enum -Signature: +**Signature:** ```typescript declare enum UniversityClassType diff --git a/markdown/bitburner.userinterface.clearterminal.md b/markdown/bitburner.userinterface.clearterminal.md index d19cd448d..753a2cb39 100644 --- a/markdown/bitburner.userinterface.clearterminal.md +++ b/markdown/bitburner.userinterface.clearterminal.md @@ -6,12 +6,12 @@ Clear the Terminal window, as if the player ran `clear` in the terminal -Signature: +**Signature:** ```typescript clearTerminal(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.userinterface.getgameinfo.md b/markdown/bitburner.userinterface.getgameinfo.md index de295a735..ad5b83cba 100644 --- a/markdown/bitburner.userinterface.getgameinfo.md +++ b/markdown/bitburner.userinterface.getgameinfo.md @@ -6,12 +6,12 @@ Gets the current game information (version, commit, ...) -Signature: +**Signature:** ```typescript getGameInfo(): GameInfo; ``` -Returns: +**Returns:** [GameInfo](./bitburner.gameinfo.md) diff --git a/markdown/bitburner.userinterface.getstyles.md b/markdown/bitburner.userinterface.getstyles.md index 5699ce85b..ae358a6cd 100644 --- a/markdown/bitburner.userinterface.getstyles.md +++ b/markdown/bitburner.userinterface.getstyles.md @@ -6,12 +6,12 @@ Get the current styles -Signature: +**Signature:** ```typescript getStyles(): IStyleSettings; ``` -Returns: +**Returns:** [IStyleSettings](./bitburner.istylesettings.md) diff --git a/markdown/bitburner.userinterface.gettheme.md b/markdown/bitburner.userinterface.gettheme.md index c2bce91d2..af2dec64d 100644 --- a/markdown/bitburner.userinterface.gettheme.md +++ b/markdown/bitburner.userinterface.gettheme.md @@ -6,12 +6,12 @@ Get the current theme -Signature: +**Signature:** ```typescript getTheme(): UserInterfaceTheme; ``` -Returns: +**Returns:** [UserInterfaceTheme](./bitburner.userinterfacetheme.md) diff --git a/markdown/bitburner.userinterface.md b/markdown/bitburner.userinterface.md index 17bba0362..44c170a99 100644 --- a/markdown/bitburner.userinterface.md +++ b/markdown/bitburner.userinterface.md @@ -6,7 +6,7 @@ User Interface API. -Signature: +**Signature:** ```typescript interface UserInterface diff --git a/markdown/bitburner.userinterface.resetstyles.md b/markdown/bitburner.userinterface.resetstyles.md index e562b93ff..3b7bdb7a2 100644 --- a/markdown/bitburner.userinterface.resetstyles.md +++ b/markdown/bitburner.userinterface.resetstyles.md @@ -6,12 +6,12 @@ Resets the player's styles to the default values -Signature: +**Signature:** ```typescript resetStyles(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.userinterface.resettheme.md b/markdown/bitburner.userinterface.resettheme.md index 051b0f5a7..d50b4c3c7 100644 --- a/markdown/bitburner.userinterface.resettheme.md +++ b/markdown/bitburner.userinterface.resettheme.md @@ -6,12 +6,12 @@ Resets the player's theme to the default values -Signature: +**Signature:** ```typescript resetTheme(): void; ``` -Returns: +**Returns:** void diff --git a/markdown/bitburner.userinterface.setstyles.md b/markdown/bitburner.userinterface.setstyles.md index fef8ce290..9d166c529 100644 --- a/markdown/bitburner.userinterface.setstyles.md +++ b/markdown/bitburner.userinterface.setstyles.md @@ -6,7 +6,7 @@ Sets the current styles -Signature: +**Signature:** ```typescript setStyles(newStyles: IStyleSettings): void; @@ -18,7 +18,7 @@ setStyles(newStyles: IStyleSettings): void; | --- | --- | --- | | newStyles | [IStyleSettings](./bitburner.istylesettings.md) | | -Returns: +**Returns:** void diff --git a/markdown/bitburner.userinterface.settheme.md b/markdown/bitburner.userinterface.settheme.md index 2d36917aa..1ce3e9acb 100644 --- a/markdown/bitburner.userinterface.settheme.md +++ b/markdown/bitburner.userinterface.settheme.md @@ -6,7 +6,7 @@ Sets the current theme -Signature: +**Signature:** ```typescript setTheme(newTheme: UserInterfaceTheme): void; @@ -18,7 +18,7 @@ setTheme(newTheme: UserInterfaceTheme): void; | --- | --- | --- | | newTheme | [UserInterfaceTheme](./bitburner.userinterfacetheme.md) | | -Returns: +**Returns:** void diff --git a/markdown/bitburner.userinterface.windowsize.md b/markdown/bitburner.userinterface.windowsize.md index 3727787e9..d9b2884b8 100644 --- a/markdown/bitburner.userinterface.windowsize.md +++ b/markdown/bitburner.userinterface.windowsize.md @@ -6,12 +6,12 @@ Get the current window size -Signature: +**Signature:** ```typescript windowSize(): [number, number]; ``` -Returns: +**Returns:** \[number, number\] diff --git a/markdown/bitburner.userinterfacetheme.backgroundprimary.md b/markdown/bitburner.userinterfacetheme.backgroundprimary.md index a7b5588b6..a4edae75f 100644 --- a/markdown/bitburner.userinterfacetheme.backgroundprimary.md +++ b/markdown/bitburner.userinterfacetheme.backgroundprimary.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.backgroundprimary property -Signature: +**Signature:** ```typescript backgroundprimary: string; diff --git a/markdown/bitburner.userinterfacetheme.backgroundsecondary.md b/markdown/bitburner.userinterfacetheme.backgroundsecondary.md index 9af7a9f32..9e044b69b 100644 --- a/markdown/bitburner.userinterfacetheme.backgroundsecondary.md +++ b/markdown/bitburner.userinterfacetheme.backgroundsecondary.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.backgroundsecondary property -Signature: +**Signature:** ```typescript backgroundsecondary: string; diff --git a/markdown/bitburner.userinterfacetheme.black.md b/markdown/bitburner.userinterfacetheme.black.md index ed24158fe..8899a1b27 100644 --- a/markdown/bitburner.userinterfacetheme.black.md +++ b/markdown/bitburner.userinterfacetheme.black.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.black property -Signature: +**Signature:** ```typescript black: string; diff --git a/markdown/bitburner.userinterfacetheme.button.md b/markdown/bitburner.userinterfacetheme.button.md index c7ea13560..37a942ec2 100644 --- a/markdown/bitburner.userinterfacetheme.button.md +++ b/markdown/bitburner.userinterfacetheme.button.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.button property -Signature: +**Signature:** ```typescript button: string; diff --git a/markdown/bitburner.userinterfacetheme.cha.md b/markdown/bitburner.userinterfacetheme.cha.md index 5cd9a2259..d6d923583 100644 --- a/markdown/bitburner.userinterfacetheme.cha.md +++ b/markdown/bitburner.userinterfacetheme.cha.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.cha property -Signature: +**Signature:** ```typescript cha: string; diff --git a/markdown/bitburner.userinterfacetheme.combat.md b/markdown/bitburner.userinterfacetheme.combat.md index bb007288e..0f2c78308 100644 --- a/markdown/bitburner.userinterfacetheme.combat.md +++ b/markdown/bitburner.userinterfacetheme.combat.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.combat property -Signature: +**Signature:** ```typescript combat: string; diff --git a/markdown/bitburner.userinterfacetheme.disabled.md b/markdown/bitburner.userinterfacetheme.disabled.md index b95cd9b20..b8f265680 100644 --- a/markdown/bitburner.userinterfacetheme.disabled.md +++ b/markdown/bitburner.userinterfacetheme.disabled.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.disabled property -Signature: +**Signature:** ```typescript disabled: string; diff --git a/markdown/bitburner.userinterfacetheme.error.md b/markdown/bitburner.userinterfacetheme.error.md index c5f00a6d6..7411d6576 100644 --- a/markdown/bitburner.userinterfacetheme.error.md +++ b/markdown/bitburner.userinterfacetheme.error.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.error property -Signature: +**Signature:** ```typescript error: string; diff --git a/markdown/bitburner.userinterfacetheme.errordark.md b/markdown/bitburner.userinterfacetheme.errordark.md index c4ca9b309..16132208f 100644 --- a/markdown/bitburner.userinterfacetheme.errordark.md +++ b/markdown/bitburner.userinterfacetheme.errordark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.errordark property -Signature: +**Signature:** ```typescript errordark: string; diff --git a/markdown/bitburner.userinterfacetheme.errorlight.md b/markdown/bitburner.userinterfacetheme.errorlight.md index 23101a406..1182364b7 100644 --- a/markdown/bitburner.userinterfacetheme.errorlight.md +++ b/markdown/bitburner.userinterfacetheme.errorlight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.errorlight property -Signature: +**Signature:** ```typescript errorlight: string; diff --git a/markdown/bitburner.userinterfacetheme.hack.md b/markdown/bitburner.userinterfacetheme.hack.md index 3c850196a..812c0bf35 100644 --- a/markdown/bitburner.userinterfacetheme.hack.md +++ b/markdown/bitburner.userinterfacetheme.hack.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.hack property -Signature: +**Signature:** ```typescript hack: string; diff --git a/markdown/bitburner.userinterfacetheme.hp.md b/markdown/bitburner.userinterfacetheme.hp.md index ec04df67b..a01070df7 100644 --- a/markdown/bitburner.userinterfacetheme.hp.md +++ b/markdown/bitburner.userinterfacetheme.hp.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.hp property -Signature: +**Signature:** ```typescript hp: string; diff --git a/markdown/bitburner.userinterfacetheme.info.md b/markdown/bitburner.userinterfacetheme.info.md index 4a72fa673..aaf3599d2 100644 --- a/markdown/bitburner.userinterfacetheme.info.md +++ b/markdown/bitburner.userinterfacetheme.info.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.info property -Signature: +**Signature:** ```typescript info: string; diff --git a/markdown/bitburner.userinterfacetheme.infodark.md b/markdown/bitburner.userinterfacetheme.infodark.md index 68febe2b2..dab9cd969 100644 --- a/markdown/bitburner.userinterfacetheme.infodark.md +++ b/markdown/bitburner.userinterfacetheme.infodark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.infodark property -Signature: +**Signature:** ```typescript infodark: string; diff --git a/markdown/bitburner.userinterfacetheme.infolight.md b/markdown/bitburner.userinterfacetheme.infolight.md index f8f8afd06..bc4ee3cce 100644 --- a/markdown/bitburner.userinterfacetheme.infolight.md +++ b/markdown/bitburner.userinterfacetheme.infolight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.infolight property -Signature: +**Signature:** ```typescript infolight: string; diff --git a/markdown/bitburner.userinterfacetheme.int.md b/markdown/bitburner.userinterfacetheme.int.md index 76d89b75f..93c13ba29 100644 --- a/markdown/bitburner.userinterfacetheme.int.md +++ b/markdown/bitburner.userinterfacetheme.int.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.int property -Signature: +**Signature:** ```typescript int: string; diff --git a/markdown/bitburner.userinterfacetheme.md b/markdown/bitburner.userinterfacetheme.md index 984637705..10ba38a13 100644 --- a/markdown/bitburner.userinterfacetheme.md +++ b/markdown/bitburner.userinterfacetheme.md @@ -6,7 +6,7 @@ Interface Theme -Signature: +**Signature:** ```typescript interface UserInterfaceTheme @@ -14,39 +14,39 @@ interface UserInterfaceTheme ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [backgroundprimary](./bitburner.userinterfacetheme.backgroundprimary.md) | string | | -| [backgroundsecondary](./bitburner.userinterfacetheme.backgroundsecondary.md) | string | | -| [black](./bitburner.userinterfacetheme.black.md) | string | | -| [button](./bitburner.userinterfacetheme.button.md) | string | | -| [cha](./bitburner.userinterfacetheme.cha.md) | string | | -| [combat](./bitburner.userinterfacetheme.combat.md) | string | | -| [disabled](./bitburner.userinterfacetheme.disabled.md) | string | | -| [error](./bitburner.userinterfacetheme.error.md) | string | | -| [errordark](./bitburner.userinterfacetheme.errordark.md) | string | | -| [errorlight](./bitburner.userinterfacetheme.errorlight.md) | string | | -| [hack](./bitburner.userinterfacetheme.hack.md) | string | | -| [hp](./bitburner.userinterfacetheme.hp.md) | string | | -| [info](./bitburner.userinterfacetheme.info.md) | string | | -| [infodark](./bitburner.userinterfacetheme.infodark.md) | string | | -| [infolight](./bitburner.userinterfacetheme.infolight.md) | string | | -| [int](./bitburner.userinterfacetheme.int.md) | string | | -| [money](./bitburner.userinterfacetheme.money.md) | string | | -| [primary](./bitburner.userinterfacetheme.primary.md) | string | | -| [primarydark](./bitburner.userinterfacetheme.primarydark.md) | string | | -| [primarylight](./bitburner.userinterfacetheme.primarylight.md) | string | | -| [rep](./bitburner.userinterfacetheme.rep.md) | string | | -| [secondary](./bitburner.userinterfacetheme.secondary.md) | string | | -| [secondarydark](./bitburner.userinterfacetheme.secondarydark.md) | string | | -| [secondarylight](./bitburner.userinterfacetheme.secondarylight.md) | string | | -| [success](./bitburner.userinterfacetheme.success.md) | string | | -| [successdark](./bitburner.userinterfacetheme.successdark.md) | string | | -| [successlight](./bitburner.userinterfacetheme.successlight.md) | string | | -| [warning](./bitburner.userinterfacetheme.warning.md) | string | | -| [warningdark](./bitburner.userinterfacetheme.warningdark.md) | string | | -| [warninglight](./bitburner.userinterfacetheme.warninglight.md) | string | | -| [well](./bitburner.userinterfacetheme.well.md) | string | | -| [welllight](./bitburner.userinterfacetheme.welllight.md) | string | | -| [white](./bitburner.userinterfacetheme.white.md) | string | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [backgroundprimary](./bitburner.userinterfacetheme.backgroundprimary.md) | | string | | +| [backgroundsecondary](./bitburner.userinterfacetheme.backgroundsecondary.md) | | string | | +| [black](./bitburner.userinterfacetheme.black.md) | | string | | +| [button](./bitburner.userinterfacetheme.button.md) | | string | | +| [cha](./bitburner.userinterfacetheme.cha.md) | | string | | +| [combat](./bitburner.userinterfacetheme.combat.md) | | string | | +| [disabled](./bitburner.userinterfacetheme.disabled.md) | | string | | +| [error](./bitburner.userinterfacetheme.error.md) | | string | | +| [errordark](./bitburner.userinterfacetheme.errordark.md) | | string | | +| [errorlight](./bitburner.userinterfacetheme.errorlight.md) | | string | | +| [hack](./bitburner.userinterfacetheme.hack.md) | | string | | +| [hp](./bitburner.userinterfacetheme.hp.md) | | string | | +| [info](./bitburner.userinterfacetheme.info.md) | | string | | +| [infodark](./bitburner.userinterfacetheme.infodark.md) | | string | | +| [infolight](./bitburner.userinterfacetheme.infolight.md) | | string | | +| [int](./bitburner.userinterfacetheme.int.md) | | string | | +| [money](./bitburner.userinterfacetheme.money.md) | | string | | +| [primary](./bitburner.userinterfacetheme.primary.md) | | string | | +| [primarydark](./bitburner.userinterfacetheme.primarydark.md) | | string | | +| [primarylight](./bitburner.userinterfacetheme.primarylight.md) | | string | | +| [rep](./bitburner.userinterfacetheme.rep.md) | | string | | +| [secondary](./bitburner.userinterfacetheme.secondary.md) | | string | | +| [secondarydark](./bitburner.userinterfacetheme.secondarydark.md) | | string | | +| [secondarylight](./bitburner.userinterfacetheme.secondarylight.md) | | string | | +| [success](./bitburner.userinterfacetheme.success.md) | | string | | +| [successdark](./bitburner.userinterfacetheme.successdark.md) | | string | | +| [successlight](./bitburner.userinterfacetheme.successlight.md) | | string | | +| [warning](./bitburner.userinterfacetheme.warning.md) | | string | | +| [warningdark](./bitburner.userinterfacetheme.warningdark.md) | | string | | +| [warninglight](./bitburner.userinterfacetheme.warninglight.md) | | string | | +| [well](./bitburner.userinterfacetheme.well.md) | | string | | +| [welllight](./bitburner.userinterfacetheme.welllight.md) | | string | | +| [white](./bitburner.userinterfacetheme.white.md) | | string | | diff --git a/markdown/bitburner.userinterfacetheme.money.md b/markdown/bitburner.userinterfacetheme.money.md index 549d8952f..0695028eb 100644 --- a/markdown/bitburner.userinterfacetheme.money.md +++ b/markdown/bitburner.userinterfacetheme.money.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.money property -Signature: +**Signature:** ```typescript money: string; diff --git a/markdown/bitburner.userinterfacetheme.primary.md b/markdown/bitburner.userinterfacetheme.primary.md index 8767ac550..e2dd955bd 100644 --- a/markdown/bitburner.userinterfacetheme.primary.md +++ b/markdown/bitburner.userinterfacetheme.primary.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.primary property -Signature: +**Signature:** ```typescript primary: string; diff --git a/markdown/bitburner.userinterfacetheme.primarydark.md b/markdown/bitburner.userinterfacetheme.primarydark.md index 7a50626a2..bc4a4ae31 100644 --- a/markdown/bitburner.userinterfacetheme.primarydark.md +++ b/markdown/bitburner.userinterfacetheme.primarydark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.primarydark property -Signature: +**Signature:** ```typescript primarydark: string; diff --git a/markdown/bitburner.userinterfacetheme.primarylight.md b/markdown/bitburner.userinterfacetheme.primarylight.md index 8cd07cb5a..7eee77725 100644 --- a/markdown/bitburner.userinterfacetheme.primarylight.md +++ b/markdown/bitburner.userinterfacetheme.primarylight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.primarylight property -Signature: +**Signature:** ```typescript primarylight: string; diff --git a/markdown/bitburner.userinterfacetheme.rep.md b/markdown/bitburner.userinterfacetheme.rep.md index 4a6c6f955..ccc2bdadd 100644 --- a/markdown/bitburner.userinterfacetheme.rep.md +++ b/markdown/bitburner.userinterfacetheme.rep.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.rep property -Signature: +**Signature:** ```typescript rep: string; diff --git a/markdown/bitburner.userinterfacetheme.secondary.md b/markdown/bitburner.userinterfacetheme.secondary.md index 2d439e361..40da79619 100644 --- a/markdown/bitburner.userinterfacetheme.secondary.md +++ b/markdown/bitburner.userinterfacetheme.secondary.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.secondary property -Signature: +**Signature:** ```typescript secondary: string; diff --git a/markdown/bitburner.userinterfacetheme.secondarydark.md b/markdown/bitburner.userinterfacetheme.secondarydark.md index 52fa78a9f..91b53cd07 100644 --- a/markdown/bitburner.userinterfacetheme.secondarydark.md +++ b/markdown/bitburner.userinterfacetheme.secondarydark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.secondarydark property -Signature: +**Signature:** ```typescript secondarydark: string; diff --git a/markdown/bitburner.userinterfacetheme.secondarylight.md b/markdown/bitburner.userinterfacetheme.secondarylight.md index 9572e4af8..19cb9ac02 100644 --- a/markdown/bitburner.userinterfacetheme.secondarylight.md +++ b/markdown/bitburner.userinterfacetheme.secondarylight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.secondarylight property -Signature: +**Signature:** ```typescript secondarylight: string; diff --git a/markdown/bitburner.userinterfacetheme.success.md b/markdown/bitburner.userinterfacetheme.success.md index 3d26d4eeb..01e2457dd 100644 --- a/markdown/bitburner.userinterfacetheme.success.md +++ b/markdown/bitburner.userinterfacetheme.success.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.success property -Signature: +**Signature:** ```typescript success: string; diff --git a/markdown/bitburner.userinterfacetheme.successdark.md b/markdown/bitburner.userinterfacetheme.successdark.md index 48501f620..0926d11d3 100644 --- a/markdown/bitburner.userinterfacetheme.successdark.md +++ b/markdown/bitburner.userinterfacetheme.successdark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.successdark property -Signature: +**Signature:** ```typescript successdark: string; diff --git a/markdown/bitburner.userinterfacetheme.successlight.md b/markdown/bitburner.userinterfacetheme.successlight.md index c170e1c36..a685a7286 100644 --- a/markdown/bitburner.userinterfacetheme.successlight.md +++ b/markdown/bitburner.userinterfacetheme.successlight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.successlight property -Signature: +**Signature:** ```typescript successlight: string; diff --git a/markdown/bitburner.userinterfacetheme.warning.md b/markdown/bitburner.userinterfacetheme.warning.md index 40d2c7391..8498890b1 100644 --- a/markdown/bitburner.userinterfacetheme.warning.md +++ b/markdown/bitburner.userinterfacetheme.warning.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.warning property -Signature: +**Signature:** ```typescript warning: string; diff --git a/markdown/bitburner.userinterfacetheme.warningdark.md b/markdown/bitburner.userinterfacetheme.warningdark.md index 9942c4130..cfb4ee24d 100644 --- a/markdown/bitburner.userinterfacetheme.warningdark.md +++ b/markdown/bitburner.userinterfacetheme.warningdark.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.warningdark property -Signature: +**Signature:** ```typescript warningdark: string; diff --git a/markdown/bitburner.userinterfacetheme.warninglight.md b/markdown/bitburner.userinterfacetheme.warninglight.md index ac142bd06..def41d5a7 100644 --- a/markdown/bitburner.userinterfacetheme.warninglight.md +++ b/markdown/bitburner.userinterfacetheme.warninglight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.warninglight property -Signature: +**Signature:** ```typescript warninglight: string; diff --git a/markdown/bitburner.userinterfacetheme.well.md b/markdown/bitburner.userinterfacetheme.well.md index 77c4fd8a4..909b54315 100644 --- a/markdown/bitburner.userinterfacetheme.well.md +++ b/markdown/bitburner.userinterfacetheme.well.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.well property -Signature: +**Signature:** ```typescript well: string; diff --git a/markdown/bitburner.userinterfacetheme.welllight.md b/markdown/bitburner.userinterfacetheme.welllight.md index 3b05a82b1..3e09c41f6 100644 --- a/markdown/bitburner.userinterfacetheme.welllight.md +++ b/markdown/bitburner.userinterfacetheme.welllight.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.welllight property -Signature: +**Signature:** ```typescript welllight: string; diff --git a/markdown/bitburner.userinterfacetheme.white.md b/markdown/bitburner.userinterfacetheme.white.md index ef7690856..1ee4d276e 100644 --- a/markdown/bitburner.userinterfacetheme.white.md +++ b/markdown/bitburner.userinterfacetheme.white.md @@ -4,7 +4,7 @@ ## UserInterfaceTheme.white property -Signature: +**Signature:** ```typescript white: string; diff --git a/markdown/bitburner.warehouse.level.md b/markdown/bitburner.warehouse.level.md index 6731abb55..f6e7e1e68 100644 --- a/markdown/bitburner.warehouse.level.md +++ b/markdown/bitburner.warehouse.level.md @@ -6,7 +6,7 @@ Amount of size upgrade bought -Signature: +**Signature:** ```typescript level: number; diff --git a/markdown/bitburner.warehouse.loc.md b/markdown/bitburner.warehouse.loc.md index 28d61e1c5..ebe775ab8 100644 --- a/markdown/bitburner.warehouse.loc.md +++ b/markdown/bitburner.warehouse.loc.md @@ -6,7 +6,7 @@ City in which the warehouse is located -Signature: +**Signature:** ```typescript loc: CityName; diff --git a/markdown/bitburner.warehouse.md b/markdown/bitburner.warehouse.md index 5b46fc8f7..21c56a306 100644 --- a/markdown/bitburner.warehouse.md +++ b/markdown/bitburner.warehouse.md @@ -6,7 +6,7 @@ Warehouse for a division in a city -Signature: +**Signature:** ```typescript interface Warehouse @@ -14,11 +14,11 @@ interface Warehouse ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [level](./bitburner.warehouse.level.md) | number | Amount of size upgrade bought | -| [loc](./bitburner.warehouse.loc.md) | [CityName](./bitburner.cityname.md) | City in which the warehouse is located | -| [size](./bitburner.warehouse.size.md) | number | Total space in the warehouse | -| [sizeUsed](./bitburner.warehouse.sizeused.md) | number | Used space in the warehouse | -| [smartSupplyEnabled](./bitburner.warehouse.smartsupplyenabled.md) | boolean | Smart Supply status in the warehouse | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [level](./bitburner.warehouse.level.md) | | number | Amount of size upgrade bought | +| [loc](./bitburner.warehouse.loc.md) | | [CityName](./bitburner.cityname.md) | City in which the warehouse is located | +| [size](./bitburner.warehouse.size.md) | | number | Total space in the warehouse | +| [sizeUsed](./bitburner.warehouse.sizeused.md) | | number | Used space in the warehouse | +| [smartSupplyEnabled](./bitburner.warehouse.smartsupplyenabled.md) | | boolean | Smart Supply status in the warehouse | diff --git a/markdown/bitburner.warehouse.size.md b/markdown/bitburner.warehouse.size.md index c9c22962b..a5f9460ad 100644 --- a/markdown/bitburner.warehouse.size.md +++ b/markdown/bitburner.warehouse.size.md @@ -6,7 +6,7 @@ Total space in the warehouse -Signature: +**Signature:** ```typescript size: number; diff --git a/markdown/bitburner.warehouse.sizeused.md b/markdown/bitburner.warehouse.sizeused.md index 7a540be52..df2e1c342 100644 --- a/markdown/bitburner.warehouse.sizeused.md +++ b/markdown/bitburner.warehouse.sizeused.md @@ -6,7 +6,7 @@ Used space in the warehouse -Signature: +**Signature:** ```typescript sizeUsed: number; diff --git a/markdown/bitburner.warehouse.smartsupplyenabled.md b/markdown/bitburner.warehouse.smartsupplyenabled.md index e95f75388..8a0f450b5 100644 --- a/markdown/bitburner.warehouse.smartsupplyenabled.md +++ b/markdown/bitburner.warehouse.smartsupplyenabled.md @@ -6,7 +6,7 @@ Smart Supply status in the warehouse -Signature: +**Signature:** ```typescript smartSupplyEnabled: boolean; diff --git a/markdown/bitburner.warehouseapi.bulkpurchase.md b/markdown/bitburner.warehouseapi.bulkpurchase.md index 861e41285..ce7b37f87 100644 --- a/markdown/bitburner.warehouseapi.bulkpurchase.md +++ b/markdown/bitburner.warehouseapi.bulkpurchase.md @@ -6,7 +6,7 @@ Set material to bulk buy -Signature: +**Signature:** ```typescript bulkPurchase(divisionName: string, city: CityName | `${CityName}`, materialName: string, amt: number): void; @@ -21,7 +21,7 @@ bulkPurchase(divisionName: string, city: CityName | `${CityName}`, materialName: | materialName | string | Name of the material | | amt | number | Amount of material to buy | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.buymaterial.md b/markdown/bitburner.warehouseapi.buymaterial.md index 4dd91bafa..7aa1e0c53 100644 --- a/markdown/bitburner.warehouseapi.buymaterial.md +++ b/markdown/bitburner.warehouseapi.buymaterial.md @@ -6,7 +6,7 @@ Set material buy data -Signature: +**Signature:** ```typescript buyMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: string, amt: number): void; @@ -21,7 +21,7 @@ buyMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: | materialName | string | Name of the material | | amt | number | Amount of material to buy | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.cancelexportmaterial.md b/markdown/bitburner.warehouseapi.cancelexportmaterial.md index bbc0c9709..d55022857 100644 --- a/markdown/bitburner.warehouseapi.cancelexportmaterial.md +++ b/markdown/bitburner.warehouseapi.cancelexportmaterial.md @@ -6,7 +6,7 @@ Cancel material export -Signature: +**Signature:** ```typescript cancelExportMaterial( @@ -30,7 +30,7 @@ cancelExportMaterial( | materialName | string | Name of the material | | amt | number | Amount of material to export. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.discontinueproduct.md b/markdown/bitburner.warehouseapi.discontinueproduct.md index 86c1689cb..ae88a1d84 100644 --- a/markdown/bitburner.warehouseapi.discontinueproduct.md +++ b/markdown/bitburner.warehouseapi.discontinueproduct.md @@ -6,7 +6,7 @@ Discontinue a product. -Signature: +**Signature:** ```typescript discontinueProduct(divisionName: string, productName: string): void; @@ -19,7 +19,7 @@ discontinueProduct(divisionName: string, productName: string): void; | divisionName | string | Name of the division | | productName | string | Name of the product | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.exportmaterial.md b/markdown/bitburner.warehouseapi.exportmaterial.md index 4c7cfef4f..81f32e89f 100644 --- a/markdown/bitburner.warehouseapi.exportmaterial.md +++ b/markdown/bitburner.warehouseapi.exportmaterial.md @@ -6,7 +6,7 @@ Set material export data -Signature: +**Signature:** ```typescript exportMaterial( @@ -30,7 +30,7 @@ exportMaterial( | materialName | string | Name of the material | | amt | number | Amount of material to export. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.getmaterial.md b/markdown/bitburner.warehouseapi.getmaterial.md index 523fc64ef..99b09cd76 100644 --- a/markdown/bitburner.warehouseapi.getmaterial.md +++ b/markdown/bitburner.warehouseapi.getmaterial.md @@ -6,7 +6,7 @@ Get material data -Signature: +**Signature:** ```typescript getMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: string): Material; @@ -20,7 +20,7 @@ getMaterial(divisionName: string, city: CityName | `${CityName}`, materialName: | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | | materialName | string | Name of the material | -Returns: +**Returns:** [Material](./bitburner.material.md) diff --git a/markdown/bitburner.warehouseapi.getproduct.md b/markdown/bitburner.warehouseapi.getproduct.md index fbbd68d69..1c07f887d 100644 --- a/markdown/bitburner.warehouseapi.getproduct.md +++ b/markdown/bitburner.warehouseapi.getproduct.md @@ -6,7 +6,7 @@ Get product data -Signature: +**Signature:** ```typescript getProduct(divisionName: string, productName: string): Product; @@ -19,7 +19,7 @@ getProduct(divisionName: string, productName: string): Product; | divisionName | string | Name of the division | | productName | string | Name of the product | -Returns: +**Returns:** [Product](./bitburner.product.md) diff --git a/markdown/bitburner.warehouseapi.getupgradewarehousecost.md b/markdown/bitburner.warehouseapi.getupgradewarehousecost.md index a5e3e6d6a..37b8199ea 100644 --- a/markdown/bitburner.warehouseapi.getupgradewarehousecost.md +++ b/markdown/bitburner.warehouseapi.getupgradewarehousecost.md @@ -6,7 +6,7 @@ Gets the cost to upgrade a warehouse to the next level -Signature: +**Signature:** ```typescript getUpgradeWarehouseCost(divisionName: string, city: CityName | `${CityName}`, amt?: number): number; @@ -18,9 +18,9 @@ getUpgradeWarehouseCost(divisionName: string, city: CityName | `${CityName}`, am | --- | --- | --- | | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -| amt | number | amount of upgrades. Optional, defaults to 1 | +| amt | number | _(Optional)_ amount of upgrades. Optional, defaults to 1 | -Returns: +**Returns:** number diff --git a/markdown/bitburner.warehouseapi.getwarehouse.md b/markdown/bitburner.warehouseapi.getwarehouse.md index 336582981..ecac92576 100644 --- a/markdown/bitburner.warehouseapi.getwarehouse.md +++ b/markdown/bitburner.warehouseapi.getwarehouse.md @@ -6,7 +6,7 @@ Get warehouse data -Signature: +**Signature:** ```typescript getWarehouse(divisionName: string, city: CityName | `${CityName}`): Warehouse; @@ -19,7 +19,7 @@ getWarehouse(divisionName: string, city: CityName | `${CityName}`): Warehouse; | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -Returns: +**Returns:** [Warehouse](./bitburner.warehouse.md) diff --git a/markdown/bitburner.warehouseapi.haswarehouse.md b/markdown/bitburner.warehouseapi.haswarehouse.md index c8d6a16ec..58f3359f8 100644 --- a/markdown/bitburner.warehouseapi.haswarehouse.md +++ b/markdown/bitburner.warehouseapi.haswarehouse.md @@ -6,7 +6,7 @@ Check if you have a warehouse in city -Signature: +**Signature:** ```typescript hasWarehouse(divisionName: string, city: CityName | `${CityName}`): boolean; @@ -19,7 +19,7 @@ hasWarehouse(divisionName: string, city: CityName | `${CityName}`): boolean; | divisionName | string | | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | | -Returns: +**Returns:** boolean diff --git a/markdown/bitburner.warehouseapi.limitmaterialproduction.md b/markdown/bitburner.warehouseapi.limitmaterialproduction.md index 93233e565..80974f21f 100644 --- a/markdown/bitburner.warehouseapi.limitmaterialproduction.md +++ b/markdown/bitburner.warehouseapi.limitmaterialproduction.md @@ -6,7 +6,7 @@ Limit Material Production. -Signature: +**Signature:** ```typescript limitMaterialProduction( @@ -26,7 +26,7 @@ limitMaterialProduction( | materialName | string | Name of the material. | | qty | number | Amount to limit to. Pass a negative value to remove the limit instead. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.limitproductproduction.md b/markdown/bitburner.warehouseapi.limitproductproduction.md index f83fdf313..0f13d6554 100644 --- a/markdown/bitburner.warehouseapi.limitproductproduction.md +++ b/markdown/bitburner.warehouseapi.limitproductproduction.md @@ -6,7 +6,7 @@ Limit Product Production. -Signature: +**Signature:** ```typescript limitProductProduction(divisionName: string, city: CityName | `${CityName}`, productName: string, qty: number): void; @@ -21,7 +21,7 @@ limitProductProduction(divisionName: string, city: CityName | `${CityName}`, pro | productName | string | Name of the product. | | qty | number | Amount to limit to. Pass a negative value to remove the limit instead. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.makeproduct.md b/markdown/bitburner.warehouseapi.makeproduct.md index e35e1bade..f0a08cd1d 100644 --- a/markdown/bitburner.warehouseapi.makeproduct.md +++ b/markdown/bitburner.warehouseapi.makeproduct.md @@ -6,7 +6,7 @@ Create a new product -Signature: +**Signature:** ```typescript makeProduct( @@ -28,7 +28,7 @@ makeProduct( | designInvest | number | Amount to invest for the design of the product. | | marketingInvest | number | Amount to invest for the marketing of the product. | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.md b/markdown/bitburner.warehouseapi.md index b19d41d7d..0fa653b03 100644 --- a/markdown/bitburner.warehouseapi.md +++ b/markdown/bitburner.warehouseapi.md @@ -6,7 +6,7 @@ Corporation Warehouse API -Signature: +**Signature:** ```typescript export interface WarehouseAPI diff --git a/markdown/bitburner.warehouseapi.purchasewarehouse.md b/markdown/bitburner.warehouseapi.purchasewarehouse.md index 9cc7742f3..04b8f2f2b 100644 --- a/markdown/bitburner.warehouseapi.purchasewarehouse.md +++ b/markdown/bitburner.warehouseapi.purchasewarehouse.md @@ -6,7 +6,7 @@ Purchase warehouse for a new city -Signature: +**Signature:** ```typescript purchaseWarehouse(divisionName: string, city: CityName | `${CityName}`): void; @@ -19,7 +19,7 @@ purchaseWarehouse(divisionName: string, city: CityName | `${CityName}`): void; | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.sellmaterial.md b/markdown/bitburner.warehouseapi.sellmaterial.md index 78758479a..4f7d839c8 100644 --- a/markdown/bitburner.warehouseapi.sellmaterial.md +++ b/markdown/bitburner.warehouseapi.sellmaterial.md @@ -6,7 +6,7 @@ Set material sell data. -Signature: +**Signature:** ```typescript sellMaterial( @@ -28,7 +28,7 @@ sellMaterial( | amt | string | Amount to sell, can be "MAX" | | price | string | Price to sell, can be "MP" | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.sellproduct.md b/markdown/bitburner.warehouseapi.sellproduct.md index eed38f42f..280997e9e 100644 --- a/markdown/bitburner.warehouseapi.sellproduct.md +++ b/markdown/bitburner.warehouseapi.sellproduct.md @@ -6,7 +6,7 @@ Set product sell data. -Signature: +**Signature:** ```typescript sellProduct( @@ -30,7 +30,7 @@ sellProduct( | price | string | Price to sell, can be "MP" | | all | boolean | Sell in all city | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setmaterialmarketta1.md b/markdown/bitburner.warehouseapi.setmaterialmarketta1.md index 3d0d158a7..d7d9c3467 100644 --- a/markdown/bitburner.warehouseapi.setmaterialmarketta1.md +++ b/markdown/bitburner.warehouseapi.setmaterialmarketta1.md @@ -6,7 +6,7 @@ Set market TA 1 for a material. -Signature: +**Signature:** ```typescript setMaterialMarketTA1(divisionName: string, city: CityName | `${CityName}`, materialName: string, on: boolean): void; @@ -21,7 +21,7 @@ setMaterialMarketTA1(divisionName: string, city: CityName | `${CityName}`, mater | materialName | string | Name of the material | | on | boolean | market ta enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setmaterialmarketta2.md b/markdown/bitburner.warehouseapi.setmaterialmarketta2.md index 3c9546691..84aa7e57e 100644 --- a/markdown/bitburner.warehouseapi.setmaterialmarketta2.md +++ b/markdown/bitburner.warehouseapi.setmaterialmarketta2.md @@ -6,7 +6,7 @@ Set market TA 2 for a material. -Signature: +**Signature:** ```typescript setMaterialMarketTA2(divisionName: string, city: CityName | `${CityName}`, materialName: string, on: boolean): void; @@ -21,7 +21,7 @@ setMaterialMarketTA2(divisionName: string, city: CityName | `${CityName}`, mater | materialName | string | Name of the material | | on | boolean | market ta enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setproductmarketta1.md b/markdown/bitburner.warehouseapi.setproductmarketta1.md index 79be65bf2..161f9118a 100644 --- a/markdown/bitburner.warehouseapi.setproductmarketta1.md +++ b/markdown/bitburner.warehouseapi.setproductmarketta1.md @@ -6,7 +6,7 @@ Set market TA 1 for a product. -Signature: +**Signature:** ```typescript setProductMarketTA1(divisionName: string, productName: string, on: boolean): void; @@ -20,7 +20,7 @@ setProductMarketTA1(divisionName: string, productName: string, on: boolean): voi | productName | string | Name of the product | | on | boolean | market ta enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setproductmarketta2.md b/markdown/bitburner.warehouseapi.setproductmarketta2.md index c278671c0..d2c7c07ea 100644 --- a/markdown/bitburner.warehouseapi.setproductmarketta2.md +++ b/markdown/bitburner.warehouseapi.setproductmarketta2.md @@ -6,7 +6,7 @@ Set market TA 2 for a product. -Signature: +**Signature:** ```typescript setProductMarketTA2(divisionName: string, productName: string, on: boolean): void; @@ -20,7 +20,7 @@ setProductMarketTA2(divisionName: string, productName: string, on: boolean): voi | productName | string | Name of the product | | on | boolean | market ta enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setsmartsupply.md b/markdown/bitburner.warehouseapi.setsmartsupply.md index 6daa5d4ca..5125e1fbe 100644 --- a/markdown/bitburner.warehouseapi.setsmartsupply.md +++ b/markdown/bitburner.warehouseapi.setsmartsupply.md @@ -6,7 +6,7 @@ Set smart supply -Signature: +**Signature:** ```typescript setSmartSupply(divisionName: string, city: CityName | `${CityName}`, enabled: boolean): void; @@ -20,7 +20,7 @@ setSmartSupply(divisionName: string, city: CityName | `${CityName}`, enabled: bo | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | | enabled | boolean | smart supply enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.setsmartsupplyuseleftovers.md b/markdown/bitburner.warehouseapi.setsmartsupplyuseleftovers.md index 60efe8471..b4889cc45 100644 --- a/markdown/bitburner.warehouseapi.setsmartsupplyuseleftovers.md +++ b/markdown/bitburner.warehouseapi.setsmartsupplyuseleftovers.md @@ -6,7 +6,7 @@ Set whether smart supply uses leftovers before buying -Signature: +**Signature:** ```typescript setSmartSupplyUseLeftovers( @@ -26,7 +26,7 @@ setSmartSupplyUseLeftovers( | materialName | string | Name of the material | | enabled | boolean | smart supply use leftovers enabled | -Returns: +**Returns:** void diff --git a/markdown/bitburner.warehouseapi.upgradewarehouse.md b/markdown/bitburner.warehouseapi.upgradewarehouse.md index 7f867bbbb..fafc0de58 100644 --- a/markdown/bitburner.warehouseapi.upgradewarehouse.md +++ b/markdown/bitburner.warehouseapi.upgradewarehouse.md @@ -6,7 +6,7 @@ Upgrade warehouse -Signature: +**Signature:** ```typescript upgradeWarehouse(divisionName: string, city: CityName | `${CityName}`, amt?: number): void; @@ -18,9 +18,9 @@ upgradeWarehouse(divisionName: string, city: CityName | `${CityName}`, amt?: num | --- | --- | --- | | divisionName | string | Name of the division | | city | [CityName](./bitburner.cityname.md) \| \`${[CityName](./bitburner.cityname.md)}\` | Name of the city | -| amt | number | amount of upgrades defaults to 1 | +| amt | number | _(Optional)_ amount of upgrades defaults to 1 | -Returns: +**Returns:** void diff --git a/markdown/bitburner.workformulas.companygains.md b/markdown/bitburner.workformulas.companygains.md index 6ea7f8cf4..c05dd06d7 100644 --- a/markdown/bitburner.workformulas.companygains.md +++ b/markdown/bitburner.workformulas.companygains.md @@ -4,7 +4,7 @@ ## WorkFormulas.companyGains() method -Signature: +**Signature:** ```typescript companyGains(person: Person, companyName: string, workType: JobName | `${JobName}`, favor: number): WorkStats; @@ -19,7 +19,7 @@ companyGains(person: Person, companyName: string, workType: JobName | `${JobName | workType | [JobName](./bitburner.jobname.md) \| \`${[JobName](./bitburner.jobname.md)}\` | | | favor | number | | -Returns: +**Returns:** [WorkStats](./bitburner.workstats.md) diff --git a/markdown/bitburner.workformulas.crimegains.md b/markdown/bitburner.workformulas.crimegains.md index 79791cd14..a4e04273f 100644 --- a/markdown/bitburner.workformulas.crimegains.md +++ b/markdown/bitburner.workformulas.crimegains.md @@ -4,7 +4,7 @@ ## WorkFormulas.crimeGains() method -Signature: +**Signature:** ```typescript crimeGains(person: Person, crimeType: CrimeType | `${CrimeType}`): WorkStats; @@ -17,7 +17,7 @@ crimeGains(person: Person, crimeType: CrimeType | `${CrimeType}`): WorkStats; | person | [Person](./bitburner.person.md) | | | crimeType | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | | -Returns: +**Returns:** [WorkStats](./bitburner.workstats.md) diff --git a/markdown/bitburner.workformulas.crimesuccesschance.md b/markdown/bitburner.workformulas.crimesuccesschance.md index b8beb1869..26fb441ed 100644 --- a/markdown/bitburner.workformulas.crimesuccesschance.md +++ b/markdown/bitburner.workformulas.crimesuccesschance.md @@ -4,7 +4,7 @@ ## WorkFormulas.crimeSuccessChance() method -Signature: +**Signature:** ```typescript crimeSuccessChance(person: Person, crimeType: CrimeType | `${CrimeType}`): number; @@ -17,7 +17,7 @@ crimeSuccessChance(person: Person, crimeType: CrimeType | `${CrimeType}`): numbe | person | [Person](./bitburner.person.md) | | | crimeType | [CrimeType](./bitburner.crimetype.md) \| \`${[CrimeType](./bitburner.crimetype.md)}\` | | -Returns: +**Returns:** number diff --git a/markdown/bitburner.workformulas.factiongains.md b/markdown/bitburner.workformulas.factiongains.md index 313d72a1d..100b15084 100644 --- a/markdown/bitburner.workformulas.factiongains.md +++ b/markdown/bitburner.workformulas.factiongains.md @@ -4,7 +4,7 @@ ## WorkFormulas.factionGains() method -Signature: +**Signature:** ```typescript factionGains(person: Person, workType: FactionWorkType | `${FactionWorkType}`, favor: number): WorkStats; @@ -18,7 +18,7 @@ factionGains(person: Person, workType: FactionWorkType | `${FactionWorkType}`, f | workType | [FactionWorkType](./bitburner.factionworktype.md) \| \`${[FactionWorkType](./bitburner.factionworktype.md)}\` | | | favor | number | | -Returns: +**Returns:** [WorkStats](./bitburner.workstats.md) diff --git a/markdown/bitburner.workformulas.gymgains.md b/markdown/bitburner.workformulas.gymgains.md index 690688ce5..5bd0062e2 100644 --- a/markdown/bitburner.workformulas.gymgains.md +++ b/markdown/bitburner.workformulas.gymgains.md @@ -4,7 +4,7 @@ ## WorkFormulas.gymGains() method -Signature: +**Signature:** ```typescript gymGains(person: Person, gymType: GymType | `${GymType}`, locationName: string): WorkStats; @@ -18,7 +18,7 @@ gymGains(person: Person, gymType: GymType | `${GymType}`, locationName: string): | gymType | [GymType](./bitburner.gymtype.md) \| \`${[GymType](./bitburner.gymtype.md)}\` | | | locationName | string | | -Returns: +**Returns:** [WorkStats](./bitburner.workstats.md) diff --git a/markdown/bitburner.workformulas.md b/markdown/bitburner.workformulas.md index 11c4557ec..9cc73a3aa 100644 --- a/markdown/bitburner.workformulas.md +++ b/markdown/bitburner.workformulas.md @@ -6,7 +6,7 @@ Work formulas -Signature: +**Signature:** ```typescript interface WorkFormulas diff --git a/markdown/bitburner.workformulas.universitygains.md b/markdown/bitburner.workformulas.universitygains.md index bb2cbebfd..444a90865 100644 --- a/markdown/bitburner.workformulas.universitygains.md +++ b/markdown/bitburner.workformulas.universitygains.md @@ -4,7 +4,7 @@ ## WorkFormulas.universityGains() method -Signature: +**Signature:** ```typescript universityGains( @@ -22,7 +22,7 @@ universityGains( | classType | [UniversityClassType](./bitburner.universityclasstype.md) \| \`${[UniversityClassType](./bitburner.universityclasstype.md)}\` | | | locationName | string | | -Returns: +**Returns:** [WorkStats](./bitburner.workstats.md) diff --git a/markdown/bitburner.workstats.agiexp.md b/markdown/bitburner.workstats.agiexp.md index ba80aa014..aa2355fbb 100644 --- a/markdown/bitburner.workstats.agiexp.md +++ b/markdown/bitburner.workstats.agiexp.md @@ -4,7 +4,7 @@ ## WorkStats.agiExp property -Signature: +**Signature:** ```typescript agiExp: number; diff --git a/markdown/bitburner.workstats.chaexp.md b/markdown/bitburner.workstats.chaexp.md index 4c5a069c0..deecdd7ca 100644 --- a/markdown/bitburner.workstats.chaexp.md +++ b/markdown/bitburner.workstats.chaexp.md @@ -4,7 +4,7 @@ ## WorkStats.chaExp property -Signature: +**Signature:** ```typescript chaExp: number; diff --git a/markdown/bitburner.workstats.defexp.md b/markdown/bitburner.workstats.defexp.md index 7f59581f7..cb0664d3d 100644 --- a/markdown/bitburner.workstats.defexp.md +++ b/markdown/bitburner.workstats.defexp.md @@ -4,7 +4,7 @@ ## WorkStats.defExp property -Signature: +**Signature:** ```typescript defExp: number; diff --git a/markdown/bitburner.workstats.dexexp.md b/markdown/bitburner.workstats.dexexp.md index 13e6a05e5..41e813058 100644 --- a/markdown/bitburner.workstats.dexexp.md +++ b/markdown/bitburner.workstats.dexexp.md @@ -4,7 +4,7 @@ ## WorkStats.dexExp property -Signature: +**Signature:** ```typescript dexExp: number; diff --git a/markdown/bitburner.workstats.hackexp.md b/markdown/bitburner.workstats.hackexp.md index 90be2da13..69dc82627 100644 --- a/markdown/bitburner.workstats.hackexp.md +++ b/markdown/bitburner.workstats.hackexp.md @@ -4,7 +4,7 @@ ## WorkStats.hackExp property -Signature: +**Signature:** ```typescript hackExp: number; diff --git a/markdown/bitburner.workstats.intexp.md b/markdown/bitburner.workstats.intexp.md index 75cdd9827..27c3a98e7 100644 --- a/markdown/bitburner.workstats.intexp.md +++ b/markdown/bitburner.workstats.intexp.md @@ -4,7 +4,7 @@ ## WorkStats.intExp property -Signature: +**Signature:** ```typescript intExp: number; diff --git a/markdown/bitburner.workstats.md b/markdown/bitburner.workstats.md index 7e4156546..1f8e7ac52 100644 --- a/markdown/bitburner.workstats.md +++ b/markdown/bitburner.workstats.md @@ -5,7 +5,7 @@ ## WorkStats interface -Signature: +**Signature:** ```typescript interface WorkStats @@ -13,15 +13,15 @@ interface WorkStats ## Properties -| Property | Type | Description | -| --- | --- | --- | -| [agiExp](./bitburner.workstats.agiexp.md) | number | | -| [chaExp](./bitburner.workstats.chaexp.md) | number | | -| [defExp](./bitburner.workstats.defexp.md) | number | | -| [dexExp](./bitburner.workstats.dexexp.md) | number | | -| [hackExp](./bitburner.workstats.hackexp.md) | number | | -| [intExp](./bitburner.workstats.intexp.md) | number | | -| [money](./bitburner.workstats.money.md) | number | | -| [reputation](./bitburner.workstats.reputation.md) | number | | -| [strExp](./bitburner.workstats.strexp.md) | number | | +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [agiExp](./bitburner.workstats.agiexp.md) | | number | | +| [chaExp](./bitburner.workstats.chaexp.md) | | number | | +| [defExp](./bitburner.workstats.defexp.md) | | number | | +| [dexExp](./bitburner.workstats.dexexp.md) | | number | | +| [hackExp](./bitburner.workstats.hackexp.md) | | number | | +| [intExp](./bitburner.workstats.intexp.md) | | number | | +| [money](./bitburner.workstats.money.md) | | number | | +| [reputation](./bitburner.workstats.reputation.md) | | number | | +| [strExp](./bitburner.workstats.strexp.md) | | number | | diff --git a/markdown/bitburner.workstats.money.md b/markdown/bitburner.workstats.money.md index 8e3a44b42..b16278e87 100644 --- a/markdown/bitburner.workstats.money.md +++ b/markdown/bitburner.workstats.money.md @@ -4,7 +4,7 @@ ## WorkStats.money property -Signature: +**Signature:** ```typescript money: number; diff --git a/markdown/bitburner.workstats.reputation.md b/markdown/bitburner.workstats.reputation.md index a39fb3ea9..932137601 100644 --- a/markdown/bitburner.workstats.reputation.md +++ b/markdown/bitburner.workstats.reputation.md @@ -4,7 +4,7 @@ ## WorkStats.reputation property -Signature: +**Signature:** ```typescript reputation: number; diff --git a/markdown/bitburner.workstats.strexp.md b/markdown/bitburner.workstats.strexp.md index de3254e40..f99980f72 100644 --- a/markdown/bitburner.workstats.strexp.md +++ b/markdown/bitburner.workstats.strexp.md @@ -4,7 +4,7 @@ ## WorkStats.strExp property -Signature: +**Signature:** ```typescript strExp: number; diff --git a/package-lock.json b/package-lock.json index 8319f4cf1..8f9f27913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,7 @@ "material-ui-popup-state": "^1.5.3", "monaco-editor": "^0.34.1", "notistack": "^2.0.8", - "numeral": "2.0.6", + "numeral": "^2.0.6", "prop-types": "^15.8.1", "react": "^17.0.2", "react-beautiful-dnd": "^13.1.1", @@ -49,8 +49,8 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@microsoft/api-documenter": "^7.13.65", - "@microsoft/api-extractor": "^7.18.17", + "@microsoft/api-documenter": "^7.21.3", + "@microsoft/api-extractor": "^7.34.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@types/bcryptjs": "^2.4.2", "@types/escodegen": "^0.0.7", @@ -3291,14 +3291,14 @@ } }, "node_modules/@microsoft/api-documenter": { - "version": "7.19.27", - "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.19.27.tgz", - "integrity": "sha512-KKNUnDlhRx+tYZsDt3Bn8OqdpCS8V9pce+ZvCjkL+nGHN4G2w1lqAtm82VdzGYgG8HgrwqZ72/Z2bsxKvPho7g==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.21.3.tgz", + "integrity": "sha512-kkuuork6xGeqDR3IIgnzmYDBgj0KLd5i7H7OehtlZ0LlXeu8i5zl26gSc+UesLaJ+M2vGH9QAvcIAf+hdPSFDw==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.25.3", + "@microsoft/api-extractor-model": "7.26.2", "@microsoft/tsdoc": "0.14.2", - "@rushstack/node-core-library": "3.53.3", + "@rushstack/node-core-library": "3.55.0", "@rushstack/ts-command-line": "4.13.1", "colors": "~1.2.1", "js-yaml": "~3.13.1", @@ -3308,6 +3308,51 @@ "api-documenter": "bin/api-documenter" } }, + "node_modules/@microsoft/api-documenter/node_modules/@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", + "dev": true, + "dependencies": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "^14.18.36" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@microsoft/api-documenter/node_modules/@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@microsoft/api-documenter/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/@microsoft/api-documenter/node_modules/js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", @@ -3321,38 +3366,54 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@microsoft/api-documenter/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/@microsoft/api-documenter/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@microsoft/api-documenter/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "lru-cache": "^6.0.0" }, "bin": { - "resolve": "bin/resolve" + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-documenter/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" } }, "node_modules/@microsoft/api-extractor": { - "version": "7.33.7", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.33.7.tgz", - "integrity": "sha512-fQT2v/j/55DhvMFiopLtth66E7xTFNhnumMKgKY14SaG6qU/V1W0e4nOAgbA+SmLakQjAd1Evu06ofaVaxBPbA==", + "version": "7.34.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.34.2.tgz", + "integrity": "sha512-oREyUU7p3JgjrqapJxEHe83gA1SXOWgaA4XCiY9PvsiLkgGHtn2ibTRgw9GCI/4kZzcb+OQv5waUDxsnQSKfwQ==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.25.3", + "@microsoft/api-extractor-model": "7.26.2", "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.53.3", + "@rushstack/node-core-library": "3.55.0", "@rushstack/rig-package": "0.3.17", "@rushstack/ts-command-line": "4.13.1", "colors": "~1.2.1", "lodash": "~4.17.15", - "resolve": "~1.17.0", + "resolve": "~1.22.1", "semver": "~7.3.0", "source-map": "~0.6.1", "typescript": "~4.8.4" @@ -3362,32 +3423,152 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.25.3.tgz", - "integrity": "sha512-WWxBUq77p2iZ+5VF7Nmrm3y/UtqCh5bYV8ii3khwq3w99+fXWpvfsAhgSLsC7k8XDQc6De4ssMxH6He/qe1pzg==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.26.2.tgz", + "integrity": "sha512-V9tTHbYTNelTrNDXBzeDlszq29nQcjJdP6s27QJiATbqSRjEbKTeztlSVsCRHL2Wkkv5IN5jT4xkYjnFFPbK0A==", "dev": true, "dependencies": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.53.3" + "@rushstack/node-core-library": "3.55.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "node_modules/@microsoft/api-extractor-model/node_modules/@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", "dev": true, "dependencies": { - "path-parse": "^1.0.6" + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/node": "^14.18.36" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@microsoft/api-extractor-model/node_modules/@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@microsoft/api-extractor-model/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@microsoft/api-extractor-model/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@microsoft/api-extractor-model/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor-model/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", + "dev": true, + "dependencies": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "^14.18.36" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@microsoft/api-extractor/node_modules/@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@microsoft/api-extractor/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/@microsoft/api-extractor/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3421,6 +3602,15 @@ "node": ">=4.2.0" } }, + "node_modules/@microsoft/api-extractor/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/@microsoft/tsdoc": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", @@ -3872,87 +4062,6 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@rushstack/node-core-library": { - "version": "3.53.3", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.53.3.tgz", - "integrity": "sha512-H0+T5koi5MFhJUd5ND3dI3bwLhvlABetARl78L3lWftJVQEPyzcgTStvTTRiIM5mCltyTM8VYm6BuCtNUuxD0Q==", - "dev": true, - "dependencies": { - "@types/node": "12.20.24", - "colors": "~1.2.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.17.0", - "semver": "~7.3.0", - "z-schema": "~5.0.2" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/@types/node": { - "version": "12.20.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz", - "integrity": "sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==", - "dev": true - }, - "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/@rushstack/rig-package": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.3.17.tgz", @@ -8992,9 +9101,9 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-deceiver": { @@ -12602,7 +12711,7 @@ "node_modules/numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", "engines": { "node": "*" } @@ -13805,12 +13914,16 @@ "dev": true }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14765,7 +14878,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -18222,20 +18334,54 @@ "requires": {} }, "@microsoft/api-documenter": { - "version": "7.19.27", - "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.19.27.tgz", - "integrity": "sha512-KKNUnDlhRx+tYZsDt3Bn8OqdpCS8V9pce+ZvCjkL+nGHN4G2w1lqAtm82VdzGYgG8HgrwqZ72/Z2bsxKvPho7g==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.21.3.tgz", + "integrity": "sha512-kkuuork6xGeqDR3IIgnzmYDBgj0KLd5i7H7OehtlZ0LlXeu8i5zl26gSc+UesLaJ+M2vGH9QAvcIAf+hdPSFDw==", "dev": true, "requires": { - "@microsoft/api-extractor-model": "7.25.3", + "@microsoft/api-extractor-model": "7.26.2", "@microsoft/tsdoc": "0.14.2", - "@rushstack/node-core-library": "3.53.3", + "@rushstack/node-core-library": "3.55.0", "@rushstack/ts-command-line": "4.13.1", "colors": "~1.2.1", "js-yaml": "~3.13.1", "resolve": "~1.22.1" }, "dependencies": { + "@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", + "dev": true, + "requires": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + } + }, + "@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", @@ -18246,52 +18392,99 @@ "esprima": "^4.0.0" } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "graceful-fs": "^4.1.6" } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, "@microsoft/api-extractor": { - "version": "7.33.7", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.33.7.tgz", - "integrity": "sha512-fQT2v/j/55DhvMFiopLtth66E7xTFNhnumMKgKY14SaG6qU/V1W0e4nOAgbA+SmLakQjAd1Evu06ofaVaxBPbA==", + "version": "7.34.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.34.2.tgz", + "integrity": "sha512-oREyUU7p3JgjrqapJxEHe83gA1SXOWgaA4XCiY9PvsiLkgGHtn2ibTRgw9GCI/4kZzcb+OQv5waUDxsnQSKfwQ==", "dev": true, "requires": { - "@microsoft/api-extractor-model": "7.25.3", + "@microsoft/api-extractor-model": "7.26.2", "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.53.3", + "@rushstack/node-core-library": "3.55.0", "@rushstack/rig-package": "0.3.17", "@rushstack/ts-command-line": "4.13.1", "colors": "~1.2.1", "lodash": "~4.17.15", - "resolve": "~1.17.0", + "resolve": "~1.22.1", "semver": "~7.3.0", "source-map": "~0.6.1", "typescript": "~4.8.4" }, "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + } + }, + "@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -18308,18 +18501,84 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, "@microsoft/api-extractor-model": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.25.3.tgz", - "integrity": "sha512-WWxBUq77p2iZ+5VF7Nmrm3y/UtqCh5bYV8ii3khwq3w99+fXWpvfsAhgSLsC7k8XDQc6De4ssMxH6He/qe1pzg==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.26.2.tgz", + "integrity": "sha512-V9tTHbYTNelTrNDXBzeDlszq29nQcjJdP6s27QJiATbqSRjEbKTeztlSVsCRHL2Wkkv5IN5jT4xkYjnFFPbK0A==", "dev": true, "requires": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.53.3" + "@rushstack/node-core-library": "3.55.0" + }, + "dependencies": { + "@rushstack/node-core-library": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.55.0.tgz", + "integrity": "sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==", + "dev": true, + "requires": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.3.0", + "z-schema": "~5.0.2" + } + }, + "@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true, + "optional": true, + "peer": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } } }, "@microsoft/tsdoc": { @@ -18570,74 +18829,6 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, - "@rushstack/node-core-library": { - "version": "3.53.3", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.53.3.tgz", - "integrity": "sha512-H0+T5koi5MFhJUd5ND3dI3bwLhvlABetARl78L3lWftJVQEPyzcgTStvTTRiIM5mCltyTM8VYm6BuCtNUuxD0Q==", - "dev": true, - "requires": { - "@types/node": "12.20.24", - "colors": "~1.2.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.17.0", - "semver": "~7.3.0", - "z-schema": "~5.0.2" - }, - "dependencies": { - "@types/node": { - "version": "12.20.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz", - "integrity": "sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, "@rushstack/rig-package": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.3.17.tgz", @@ -22592,9 +22783,9 @@ } }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "http-deceiver": { @@ -25338,7 +25529,7 @@ "numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=" + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" }, "nwsapi": { "version": "2.2.2", @@ -26254,12 +26445,13 @@ "dev": true }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-alpn": { @@ -27027,8 +27219,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "symbol-tree": { "version": "3.2.4", diff --git a/package.json b/package.json index cc17903d1..9f1094215 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "material-ui-popup-state": "^1.5.3", "monaco-editor": "^0.34.1", "notistack": "^2.0.8", - "numeral": "2.0.6", + "numeral": "^2.0.6", "prop-types": "^15.8.1", "react": "^17.0.2", "react-beautiful-dnd": "^13.1.1", @@ -50,8 +50,8 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@microsoft/api-documenter": "^7.13.65", - "@microsoft/api-extractor": "^7.18.17", + "@microsoft/api-documenter": "^7.21.3", + "@microsoft/api-extractor": "^7.34.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@types/bcryptjs": "^2.4.2", "@types/escodegen": "^0.0.7", @@ -99,7 +99,7 @@ "url": "git+https://github.com/danielyxie/bitburner.git" }, "scripts": { - "doc": "npx api-extractor run && npx api-documenter markdown && rm input/bitburner.api.json && rm -r input", + "doc": "npx api-extractor run && npx api-documenter markdown && rm input/bitburner.api.json && rm -r input && git add markdown/ && git add tsdoc-metadata.json", "format": "prettier --write .", "format:report": "prettier -c .", "start": "http-server -p 8000", diff --git a/src/Augmentation/Augmentation.tsx b/src/Augmentation/Augmentation.tsx index df2896e5f..7b20ba596 100644 --- a/src/Augmentation/Augmentation.tsx +++ b/src/Augmentation/Augmentation.tsx @@ -3,7 +3,7 @@ import * as React from "react"; import { Faction } from "../Faction/Faction"; import { Factions } from "../Faction/Factions"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatPercent } from "../ui/formatNumber"; import { Money } from "../ui/React/Money"; import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from "../utils/JSONReviver"; @@ -69,7 +69,7 @@ export interface IConstructorParams { function generateStatsDescription(mults: Multipliers, programs?: string[], startingMoney?: number): JSX.Element { // For a percentage that is <10, show x.xx%, otherwise show xx.x% - const f = (x: number) => numeralWrapper.formatPercentage(x, x - 1 < 0.1 ? 2 : 1); + const f = (x: number) => formatPercent(x, x - 1 < 0.1 ? 2 : 1); let desc = <>Effects:; if ( diff --git a/src/Augmentation/ui/AugmentationsRoot.tsx b/src/Augmentation/ui/AugmentationsRoot.tsx index f9eae92e5..7f19ca46c 100644 --- a/src/Augmentation/ui/AugmentationsRoot.tsx +++ b/src/Augmentation/ui/AugmentationsRoot.tsx @@ -22,7 +22,7 @@ import { Player } from "@player"; import { AugmentationNames } from "../data/AugmentationNames"; import { StaticAugmentations } from "../StaticAugmentations"; import { CONSTANTS } from "../../Constants"; -import { formatNumber } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; import { Info } from "@mui/icons-material"; import { Link } from "@mui/material"; import { AlertEvents } from "../../ui/React/AlertManager"; @@ -68,8 +68,8 @@ const EntropyDisplay = (): React.ReactElement => { Entropy Virus - Level {Player.entropy} - All multipliers decreased by: {formatNumber((1 - CONSTANTS.EntropyEffect ** Player.entropy) * 100, 3)}% - (multiplicative) + All multipliers decreased by:{" "} + {formatNumberNoSuffix((1 - CONSTANTS.EntropyEffect ** Player.entropy) * 100, 3)}% (multiplicative) ) : ( diff --git a/src/Augmentation/ui/PlayerMultipliers.tsx b/src/Augmentation/ui/PlayerMultipliers.tsx index 405eec112..43ac87cdb 100644 --- a/src/Augmentation/ui/PlayerMultipliers.tsx +++ b/src/Augmentation/ui/PlayerMultipliers.tsx @@ -5,7 +5,7 @@ import { Multipliers, defaultMultipliers, mergeMultipliers } from "../../PersonO import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers"; import { Player } from "@player"; import { Settings } from "../../Settings/Settings"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatPercent } from "../../ui/formatNumber"; import { StaticAugmentations } from "../StaticAugmentations"; function calculateAugmentedStats(): Multipliers { @@ -26,12 +26,11 @@ interface IBitNodeModifiedStatsProps { function BitNodeModifiedStats(props: IBitNodeModifiedStatsProps): React.ReactElement { // If player doesn't have SF5 or if the property isn't affected by BitNode mults if (props.mult === 1 || Player.sourceFileLvl(5) === 0) - return {numeralWrapper.formatPercentage(props.base)}; + return {formatPercent(props.base)}; return ( - {numeralWrapper.formatPercentage(props.base)}{" "} - {numeralWrapper.formatPercentage(props.base * props.mult)} + {formatPercent(props.base)} {formatPercent(props.base * props.mult)} ); } diff --git a/src/Augmentation/ui/PurchasableAugmentations.tsx b/src/Augmentation/ui/PurchasableAugmentations.tsx index 37224fcba..52bd3a773 100644 --- a/src/Augmentation/ui/PurchasableAugmentations.tsx +++ b/src/Augmentation/ui/PurchasableAugmentations.tsx @@ -8,7 +8,7 @@ import React, { useState } from "react"; import { Faction } from "../../Faction/Faction"; import { Player } from "@player"; import { Settings } from "../../Settings/Settings"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatMoney, formatReputation } from "../../ui/formatNumber"; import { Augmentation } from "../Augmentation"; import { AugmentationNames } from "../data/AugmentationNames"; import { StaticAugmentations } from "../StaticAugmentations"; @@ -240,13 +240,13 @@ export function PurchasableAugmentation(props: IPurchasableAugProps): React.Reac cost} - value={numeralWrapper.formatMoney(cost)} + value={formatMoney(cost)} color={Settings.theme.money} /> {props.parent.rep !== undefined && ( = repCost} - value={`${numeralWrapper.formatReputation(repCost)} rep`} + value={`${formatReputation(repCost)} rep`} color={Settings.theme.rep} /> )} diff --git a/src/Bladeburner/Bladeburner.tsx b/src/Bladeburner/Bladeburner.tsx index 64c4573b9..cd5f59278 100644 --- a/src/Bladeburner/Bladeburner.tsx +++ b/src/Bladeburner/Bladeburner.tsx @@ -7,7 +7,7 @@ import { BlackOperation } from "./BlackOperation"; import { Operation } from "./Operation"; import { Contract } from "./Contract"; import { GeneralActions } from "./GeneralActions"; -import { formatNumber } from "../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../ui/formatNumber"; import { Skills } from "./Skills"; import { Skill } from "./Skill"; import { City } from "./City"; @@ -19,7 +19,7 @@ import { ConsoleHelpText } from "./data/Help"; import { exceptionAlert } from "../utils/helpers/exceptionAlert"; import { getRandomInt } from "../utils/helpers/getRandomInt"; import { BladeburnerConstants } from "./data/Constants"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatExp, formatMoney, formatPercent, formatBigNumber, formatStamina } from "../ui/formatNumber"; import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers"; import { addOffset } from "../utils/helpers/addOffset"; import { Factions, factionExists } from "../Faction/Factions"; @@ -470,7 +470,7 @@ export class Bladeburner { if (this.skills[skill.name] != null) { level = this.skills[skill.name]; } - this.postToConsole(skill.name + ": Level " + formatNumber(level, 0)); + this.postToConsole(skill.name + ": Level " + formatNumberNoSuffix(level, 0)); } this.postToConsole(" "); this.postToConsole("Effects: "); @@ -478,7 +478,7 @@ export class Bladeburner { for (let i = 0; i < multKeys.length; ++i) { const mult = this.skillMultipliers[multKeys[i]]; if (mult && mult !== 1) { - const mults = formatNumber(mult, 3); + const mults = formatNumberNoSuffix(mult, 3); switch (multKeys[i]) { case "successChanceAll": this.postToConsole("Total Success Chance: x" + mults); @@ -549,7 +549,7 @@ export class Bladeburner { if (this.skills[skill.name] !== undefined) { level = this.skills[skill.name]; } - this.postToConsole(skill.name + ": Level " + formatNumber(level)); + this.postToConsole(skill.name + ": Level " + formatNumberNoSuffix(level)); } else if (args[1].toLowerCase() === "level") { let currentLevel = 0; if (this.skills[skillName] && !isNaN(this.skills[skillName])) { @@ -564,7 +564,7 @@ export class Bladeburner { this.log(skill.name + " upgraded to Level " + this.skills[skillName]); } else { this.postToConsole( - "You do not have enough Skill Points to upgrade this. You need " + formatNumber(pointCost, 0), + "You do not have enough Skill Points to upgrade this. You need " + formatNumberNoSuffix(pointCost, 0), ); } } else { @@ -671,11 +671,11 @@ export class Bladeburner { this.postToConsole("Automation: " + (this.automateEnabled ? "enabled" : "disabled")); this.postToConsole( "When your stamina drops to " + - formatNumber(this.automateThreshLow, 0) + + formatNumberNoSuffix(this.automateThreshLow, 0) + ", you will automatically switch to " + this.automateActionLow.name + ". When your stamina recovers to " + - formatNumber(this.automateThreshHigh, 0) + + formatNumberNoSuffix(this.automateThreshHigh, 0) + ", you will automatically " + "switch to " + this.automateActionHigh.name + @@ -1120,7 +1120,7 @@ export class Bladeburner { } this.teamLost += losses; if (this.logging.ops && losses > 0) { - this.log("Lost " + formatNumber(losses, 0) + " team members during this " + action.name); + this.log("Lost " + formatNumberNoSuffix(losses, 0) + " team members during this " + action.name); } } @@ -1288,14 +1288,12 @@ export class Bladeburner { this.changeRank(person, gain); if (isOperation && this.logging.ops) { this.log( - `${person.whoAmI()}: ${ - action.name - } successfully completed! Gained ${numeralWrapper.formatReallyBigNumber(gain)} rank`, + `${person.whoAmI()}: ${action.name} successfully completed! Gained ${formatBigNumber(gain)} rank`, ); } else if (!isOperation && this.logging.contracts) { this.log( `${person.whoAmI()}: ${action.name} contract successfully completed! Gained ` + - `${numeralWrapper.formatReallyBigNumber(gain)} rank and ${numeralWrapper.formatMoney(moneyGain)}`, + `${formatBigNumber(gain)} rank and ${formatMoney(moneyGain)}`, ); } } @@ -1321,10 +1319,10 @@ export class Bladeburner { } let logLossText = ""; if (loss > 0) { - logLossText += "Lost " + formatNumber(loss, 3) + " rank. "; + logLossText += "Lost " + formatNumberNoSuffix(loss, 3) + " rank. "; } if (damage > 0) { - logLossText += "Took " + formatNumber(damage, 0) + " damage."; + logLossText += "Took " + formatNumberNoSuffix(damage, 0) + " damage."; } if (isOperation && this.logging.ops) { this.log(`${person.whoAmI()}: ` + action.name + " failed! " + logLossText); @@ -1376,7 +1374,11 @@ export class Bladeburner { if (this.logging.blackops) { this.log( - `${person.whoAmI()}: ` + action.name + " successful! Gained " + formatNumber(rankGain, 1) + " rank", + `${person.whoAmI()}: ` + + action.name + + " successful! Gained " + + formatNumberNoSuffix(rankGain, 1) + + " rank", ); } } else { @@ -1403,9 +1405,9 @@ export class Bladeburner { `${person.whoAmI()}: ` + action.name + " failed! Lost " + - formatNumber(rankLoss, 1) + + formatNumberNoSuffix(rankLoss, 1) + " rank and took " + - formatNumber(damage, 0) + + formatNumberNoSuffix(damage, 0) + " damage", ); } @@ -1428,7 +1430,9 @@ export class Bladeburner { } this.teamLost += losses; if (this.logging.blackops) { - this.log(`${person.whoAmI()}: You lost ${formatNumber(losses, 0)} team members during ${action.name}`); + this.log( + `${person.whoAmI()}: You lost ${formatNumberNoSuffix(losses, 0)} team members during ${action.name}`, + ); } } } catch (e: unknown) { @@ -1452,15 +1456,15 @@ export class Bladeburner { this.log( `${person.whoAmI()}: ` + "Training completed. Gained: " + - numeralWrapper.formatExp(strExpGain) + + formatExp(strExpGain) + " str exp, " + - numeralWrapper.formatExp(defExpGain) + + formatExp(defExpGain) + " def exp, " + - numeralWrapper.formatExp(dexExpGain) + + formatExp(dexExpGain) + " dex exp, " + - numeralWrapper.formatExp(agiExpGain) + + formatExp(agiExpGain) + " agi exp, " + - numeralWrapper.formatReallyBigNumber(staminaGain) + + formatBigNumber(staminaGain) + " max stamina", ); } @@ -1488,9 +1492,9 @@ export class Bladeburner { if (this.logging.general) { this.log( `${person.whoAmI()}: ` + - `Field analysis completed. Gained ${numeralWrapper.formatReallyBigNumber(rankGain)} rank, ` + - `${numeralWrapper.formatExp(hackingExpGain)} hacking exp, and ` + - `${numeralWrapper.formatExp(charismaExpGain)} charisma exp`, + `Field analysis completed. Gained ${formatBigNumber(rankGain)} rank, ` + + `${formatExp(hackingExpGain)} hacking exp, and ` + + `${formatExp(charismaExpGain)} charisma exp`, ); } break; @@ -1506,7 +1510,7 @@ export class Bladeburner { this.log( `${person.whoAmI()}: ` + "Successfully recruited a team member! Gained " + - numeralWrapper.formatExp(expGain) + + formatExp(expGain) + " charisma exp", ); } @@ -1517,7 +1521,7 @@ export class Bladeburner { this.log( `${person.whoAmI()}: ` + "Failed to recruit a team member. Gained " + - numeralWrapper.formatExp(expGain) + + formatExp(expGain) + " charisma exp", ); } @@ -1532,7 +1536,7 @@ export class Bladeburner { } if (this.logging.general) { this.log( - `${person.whoAmI()}: Diplomacy completed. Chaos levels in the current city fell by ${numeralWrapper.formatPercentage( + `${person.whoAmI()}: Diplomacy completed. Chaos levels in the current city fell by ${formatPercent( 1 - eff, )}`, ); @@ -1548,7 +1552,7 @@ export class Bladeburner { this.log( `${person.whoAmI()}: Rested in Hyperbolic Regeneration Chamber. Restored ${ BladeburnerConstants.HrcHpGain - } HP and gained ${numeralWrapper.formatStamina(staminaGain)} stamina`, + } HP and gained ${formatStamina(staminaGain)} stamina`, ); } break; diff --git a/src/Bladeburner/ui/BlackOpElem.tsx b/src/Bladeburner/ui/BlackOpElem.tsx index 22edce2da..f403f73bd 100644 --- a/src/Bladeburner/ui/BlackOpElem.tsx +++ b/src/Bladeburner/ui/BlackOpElem.tsx @@ -1,5 +1,6 @@ import React, { useState } from "react"; -import { formatNumber, convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { ActionTypes } from "../data/ActionTypes"; import { createProgressBarText } from "../../utils/helpers/createProgressBarText"; import { TeamSizeButton } from "./TeamSizeButton"; @@ -55,8 +56,8 @@ export function BlackOpElem(props: IProps): React.ReactElement { <> - (IN PROGRESS - {formatNumber(computedActionTimeCurrent, 0)} /{" "} - {formatNumber(props.bladeburner.actionTimeToComplete, 0)}) + (IN PROGRESS - {formatNumberNoSuffix(computedActionTimeCurrent, 0)} /{" "} + {formatNumberNoSuffix(props.bladeburner.actionTimeToComplete, 0)}) {createProgressBarText({ @@ -85,7 +86,7 @@ export function BlackOpElem(props: IProps): React.ReactElement {

- Required Rank: {formatNumber(props.action.reqdRank, 0)} + Required Rank: {formatNumberNoSuffix(props.action.reqdRank, 0)}
diff --git a/src/Bladeburner/ui/ContractElem.tsx b/src/Bladeburner/ui/ContractElem.tsx index 8c1a0e1c7..2cfabae01 100644 --- a/src/Bladeburner/ui/ContractElem.tsx +++ b/src/Bladeburner/ui/ContractElem.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { ActionTypes } from "../data/ActionTypes"; import { createProgressBarText } from "../../utils/helpers/createProgressBarText"; -import { formatNumber, convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { Contracts } from "../data/Contracts"; import { Bladeburner } from "../Bladeburner"; import { Action } from "../Action"; @@ -11,7 +11,7 @@ import { CopyableText } from "../../ui/React/CopyableText"; import { ActionLevel } from "./ActionLevel"; import { Autolevel } from "./Autolevel"; import { StartButton } from "./StartButton"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatNumberNoSuffix, formatBigNumber } from "../../ui/formatNumber"; import Typography from "@mui/material/Typography"; import Paper from "@mui/material/Paper"; @@ -43,8 +43,9 @@ export function ContractElem(props: IProps): React.ReactElement { {isActive ? ( <> - (IN PROGRESS - {formatNumber(computedActionTimeCurrent, 0)} /{" "} - {formatNumber(props.bladeburner.actionTimeToComplete, 0)}) + (IN PROGRESS -{" "} + {formatNumberNoSuffix(computedActionTimeCurrent, 0)} /{" "} + {formatNumberNoSuffix(props.bladeburner.actionTimeToComplete, 0)}) {createProgressBarText({ @@ -76,11 +77,11 @@ export function ContractElem(props: IProps): React.ReactElement {
Time Required: {convertTimeMsToTimeElapsedString(actionTime * 1000)}
- Contracts remaining: {numeralWrapper.formatReallyBigNumber(Math.floor(props.action.count), 3)} + Contracts remaining: {formatBigNumber(Math.floor(props.action.count))}
- Successes: {numeralWrapper.formatReallyBigNumber(props.action.successes, 3)} + Successes: {formatBigNumber(props.action.successes)}
- Failures: {numeralWrapper.formatReallyBigNumber(props.action.failures, 3)} + Failures: {formatBigNumber(props.action.failures)}

diff --git a/src/Bladeburner/ui/GeneralActionElem.tsx b/src/Bladeburner/ui/GeneralActionElem.tsx index 3ddee1b7b..fdd07fb48 100644 --- a/src/Bladeburner/ui/GeneralActionElem.tsx +++ b/src/Bladeburner/ui/GeneralActionElem.tsx @@ -1,7 +1,8 @@ import React, { useState } from "react"; import { ActionTypes } from "../data/ActionTypes"; import { createProgressBarText } from "../../utils/helpers/createProgressBarText"; -import { formatNumber, convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { Bladeburner } from "../Bladeburner"; import { Action } from "../Action"; import { GeneralActions } from "../data/GeneralActions"; @@ -59,8 +60,8 @@ export function GeneralActionElem(props: IProps): React.ReactElement { <> - (IN PROGRESS - {formatNumber(computedActionTimeCurrent, 0)} /{" "} - {formatNumber(props.bladeburner.actionTimeToComplete, 0)}) + (IN PROGRESS - {formatNumberNoSuffix(computedActionTimeCurrent, 0)} /{" "} + {formatNumberNoSuffix(props.bladeburner.actionTimeToComplete, 0)}) {createProgressBarText({ @@ -89,7 +90,7 @@ export function GeneralActionElem(props: IProps): React.ReactElement { {successChance !== -1 && ( <>
- Estimated success chance: {formatNumber(successChance * 100, 1)}% + Estimated success chance: {formatNumberNoSuffix(successChance * 100, 1)}% )}
diff --git a/src/Bladeburner/ui/OperationElem.tsx b/src/Bladeburner/ui/OperationElem.tsx index ae745da66..866b63643 100644 --- a/src/Bladeburner/ui/OperationElem.tsx +++ b/src/Bladeburner/ui/OperationElem.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { ActionTypes } from "../data/ActionTypes"; import { createProgressBarText } from "../../utils/helpers/createProgressBarText"; -import { formatNumber, convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { SuccessChance } from "./SuccessChance"; import { ActionLevel } from "./ActionLevel"; import { Autolevel } from "./Autolevel"; @@ -12,7 +12,7 @@ import { Operation } from "../Operation"; import { Operations } from "../data/Operations"; import { Player } from "@player"; import { CopyableText } from "../../ui/React/CopyableText"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatNumberNoSuffix, formatBigNumber } from "../../ui/formatNumber"; import Typography from "@mui/material/Typography"; import Paper from "@mui/material/Paper"; @@ -44,8 +44,9 @@ export function OperationElem(props: IProps): React.ReactElement { {isActive ? ( <> - (IN PROGRESS - {formatNumber(computedActionTimeCurrent, 0)} /{" "} - {formatNumber(props.bladeburner.actionTimeToComplete, 0)}) + (IN PROGRESS -{" "} + {formatNumberNoSuffix(computedActionTimeCurrent, 0)} /{" "} + {formatNumberNoSuffix(props.bladeburner.actionTimeToComplete, 0)}) {createProgressBarText({ @@ -79,11 +80,11 @@ export function OperationElem(props: IProps): React.ReactElement {
Time Required: {convertTimeMsToTimeElapsedString(actionTime * 1000)}
- Operations remaining: {numeralWrapper.formatReallyBigNumber(Math.floor(props.action.count), 3)} + Operations remaining: {formatBigNumber(Math.floor(props.action.count))}
- Successes: {numeralWrapper.formatReallyBigNumber(props.action.successes, 3)} + Successes: {formatBigNumber(props.action.successes)}
- Failures: {numeralWrapper.formatReallyBigNumber(props.action.failures, 3)} + Failures: {formatBigNumber(props.action.failures)}

diff --git a/src/Bladeburner/ui/SkillElem.tsx b/src/Bladeburner/ui/SkillElem.tsx index 8588ca8fb..2f7181a6e 100644 --- a/src/Bladeburner/ui/SkillElem.tsx +++ b/src/Bladeburner/ui/SkillElem.tsx @@ -1,6 +1,6 @@ import React from "react"; import { CopyableText } from "../../ui/React/CopyableText"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatBigNumber } from "../../ui/formatNumber"; import { Bladeburner } from "../Bladeburner"; import Typography from "@mui/material/Typography"; import IconButton from "@mui/material/IconButton"; @@ -48,11 +48,11 @@ export function SkillElem(props: IProps): React.ReactElement { )}
- Level: {numeralWrapper.formatReallyBigNumber(currentLevel, 3)} + Level: {formatBigNumber(currentLevel)} {maxLvl ? ( MAX LEVEL ) : ( - Skill Points required: {numeralWrapper.formatReallyBigNumber(pointCost, 3)} + Skill Points required: {formatBigNumber(pointCost)} )} {props.skill.desc} diff --git a/src/Bladeburner/ui/SkillPage.tsx b/src/Bladeburner/ui/SkillPage.tsx index 4dcbbe9c2..e21633479 100644 --- a/src/Bladeburner/ui/SkillPage.tsx +++ b/src/Bladeburner/ui/SkillPage.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; import { SkillList } from "./SkillList"; import { BladeburnerConstants } from "../data/Constants"; import { Bladeburner } from "../Bladeburner"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatBigNumber } from "../../ui/formatNumber"; import Typography from "@mui/material/Typography"; interface IProps { bladeburner: Bladeburner; @@ -19,7 +19,7 @@ export function SkillPage(props: IProps): React.ReactElement { return ( <> - Skill Points: {numeralWrapper.formatReallyBigNumber(props.bladeburner.skillPoints, 3)} + Skill Points: {formatBigNumber(props.bladeburner.skillPoints)} You will gain one skill point every {BladeburnerConstants.RanksPerSkillPoint} ranks. @@ -28,68 +28,34 @@ export function SkillPage(props: IProps): React.ReactElement { skills with each other is multiplicative. {valid(mults["successChanceAll"]) && ( - - Total Success Chance: x{numeralWrapper.formatReallyBigNumber(mults["successChanceAll"], 3)} - + Total Success Chance: x{formatBigNumber(mults["successChanceAll"])} )} {valid(mults["successChanceStealth"]) && ( - - Stealth Success Chance: x{numeralWrapper.formatReallyBigNumber(mults["successChanceStealth"], 3)} - + Stealth Success Chance: x{formatBigNumber(mults["successChanceStealth"])} )} {valid(mults["successChanceKill"]) && ( - - Retirement Success Chance: x{numeralWrapper.formatReallyBigNumber(mults["successChanceKill"], 3)} - + Retirement Success Chance: x{formatBigNumber(mults["successChanceKill"])} )} {valid(mults["successChanceContract"]) && ( - - Contract Success Chance: x{numeralWrapper.formatReallyBigNumber(mults["successChanceContract"], 3)} - + Contract Success Chance: x{formatBigNumber(mults["successChanceContract"])} )} {valid(mults["successChanceOperation"]) && ( - - Operation Success Chance: x{numeralWrapper.formatReallyBigNumber(mults["successChanceOperation"], 3)} - + Operation Success Chance: x{formatBigNumber(mults["successChanceOperation"])} )} {valid(mults["successChanceEstimate"]) && ( - - Synthoid Data Estimate: x{numeralWrapper.formatReallyBigNumber(mults["successChanceEstimate"], 3)} - - )} - {valid(mults["actionTime"]) && ( - Action Time: x{numeralWrapper.formatReallyBigNumber(mults["actionTime"], 3)} - )} - {valid(mults["effHack"]) && ( - Hacking Skill: x{numeralWrapper.formatReallyBigNumber(mults["effHack"], 3)} - )} - {valid(mults["effStr"]) && ( - Strength: x{numeralWrapper.formatReallyBigNumber(mults["effStr"], 3)} - )} - {valid(mults["effDef"]) && ( - Defense: x{numeralWrapper.formatReallyBigNumber(mults["effDef"], 3)} - )} - {valid(mults["effDex"]) && ( - Dexterity: x{numeralWrapper.formatReallyBigNumber(mults["effDex"], 3)} - )} - {valid(mults["effAgi"]) && ( - Agility: x{numeralWrapper.formatReallyBigNumber(mults["effAgi"], 3)} - )} - {valid(mults["effCha"]) && ( - Charisma: x{numeralWrapper.formatReallyBigNumber(mults["effCha"], 3)} - )} - {valid(mults["effInt"]) && ( - Intelligence: x{numeralWrapper.formatReallyBigNumber(mults["effInt"], 3)} - )} - {valid(mults["stamina"]) && ( - Stamina: x{numeralWrapper.formatReallyBigNumber(mults["stamina"], 3)} - )} - {valid(mults["money"]) && ( - Contract Money: x{numeralWrapper.formatReallyBigNumber(mults["money"], 3)} - )} - {valid(mults["expGain"]) && ( - Exp Gain: x{numeralWrapper.formatReallyBigNumber(mults["expGain"], 3)} + Synthoid Data Estimate: x{formatBigNumber(mults["successChanceEstimate"])} )} + {valid(mults["actionTime"]) && Action Time: x{formatBigNumber(mults["actionTime"])}} + {valid(mults["effHack"]) && Hacking Skill: x{formatBigNumber(mults["effHack"])}} + {valid(mults["effStr"]) && Strength: x{formatBigNumber(mults["effStr"])}} + {valid(mults["effDef"]) && Defense: x{formatBigNumber(mults["effDef"])}} + {valid(mults["effDex"]) && Dexterity: x{formatBigNumber(mults["effDex"])}} + {valid(mults["effAgi"]) && Agility: x{formatBigNumber(mults["effAgi"])}} + {valid(mults["effCha"]) && Charisma: x{formatBigNumber(mults["effCha"])}} + {valid(mults["effInt"]) && Intelligence: x{formatBigNumber(mults["effInt"])}} + {valid(mults["stamina"]) && Stamina: x{formatBigNumber(mults["stamina"])}} + {valid(mults["money"]) && Contract Money: x{formatBigNumber(mults["money"])}} + {valid(mults["expGain"]) && Exp Gain: x{formatBigNumber(mults["expGain"])}} setRerender((old) => !old)} /> ); diff --git a/src/Bladeburner/ui/Stats.tsx b/src/Bladeburner/ui/Stats.tsx index 2f3385345..b346c2423 100644 --- a/src/Bladeburner/ui/Stats.tsx +++ b/src/Bladeburner/ui/Stats.tsx @@ -1,9 +1,9 @@ import React, { useState, useEffect } from "react"; -import { formatNumber, convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { BladeburnerConstants } from "../data/Constants"; import { Player } from "@player"; import { Money } from "../../ui/React/Money"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatNumberNoSuffix, formatPopulation, formatBigNumber } from "../../ui/formatNumber"; import { Factions } from "../../Faction/Factions"; import { Router } from "../../ui/GameRoot"; import { joinFaction } from "../../Faction/FactionHelpers"; @@ -59,7 +59,7 @@ export function Stats(props: IProps): React.ReactElement { Your rank within the Bladeburner division.}> - Rank: {numeralWrapper.formatReallyBigNumber(props.bladeburner.rank)} + Rank: {formatBigNumber(props.bladeburner.rank)}
@@ -88,17 +88,16 @@ export function Stats(props: IProps): React.ReactElement { } > - Stamina: {numeralWrapper.formatReallyBigNumber(props.bladeburner.stamina)} /{" "} - {numeralWrapper.formatReallyBigNumber(props.bladeburner.maxStamina)} + Stamina: {formatBigNumber(props.bladeburner.stamina)} / {formatBigNumber(props.bladeburner.maxStamina)} - Stamina Penalty: {formatNumber((1 - props.bladeburner.calculateStaminaPenalty()) * 100, 1)}% + Stamina Penalty: {formatNumberNoSuffix((1 - props.bladeburner.calculateStaminaPenalty()) * 100, 1)}%
- Team Size: {formatNumber(props.bladeburner.teamSize, 0)} - Team Members Lost: {formatNumber(props.bladeburner.teamLost, 0)} + Team Size: {formatNumberNoSuffix(props.bladeburner.teamSize, 0)} + Team Members Lost: {formatNumberNoSuffix(props.bladeburner.teamLost, 0)}
Num Times Hospitalized: {props.bladeburner.numHosp} @@ -116,7 +115,7 @@ export function Stats(props: IProps): React.ReactElement { } > - Est. Synthoid Population: {numeralWrapper.formatPopulation(props.bladeburner.getCurrentCity().popEst)} + Est. Synthoid Population: {formatPopulation(props.bladeburner.getCurrentCity().popEst)} @@ -129,7 +128,9 @@ export function Stats(props: IProps): React.ReactElement { } > - Synthoid Communities: {formatNumber(props.bladeburner.getCurrentCity().comms, 0)} + + Synthoid Communities: {formatNumberNoSuffix(props.bladeburner.getCurrentCity().comms, 0)} + @@ -141,9 +142,7 @@ export function Stats(props: IProps): React.ReactElement { } > - - City Chaos: {numeralWrapper.formatReallyBigNumber(props.bladeburner.getCurrentCity().chaos)} - + City Chaos: {formatBigNumber(props.bladeburner.getCurrentCity().chaos)}
@@ -169,16 +168,16 @@ export function Stats(props: IProps): React.ReactElement {
)} - Skill Points: {numeralWrapper.formatReallyBigNumber(props.bladeburner.skillPoints)} + Skill Points: {formatBigNumber(props.bladeburner.skillPoints)}
- Aug. Success Chance mult: {formatNumber(Player.mults.bladeburner_success_chance * 100, 1)}% + Aug. Success Chance mult: {formatNumberNoSuffix(Player.mults.bladeburner_success_chance * 100, 1)}%
- Aug. Max Stamina mult: {formatNumber(Player.mults.bladeburner_max_stamina * 100, 1)}% + Aug. Max Stamina mult: {formatNumberNoSuffix(Player.mults.bladeburner_max_stamina * 100, 1)}%
- Aug. Stamina Gain mult: {formatNumber(Player.mults.bladeburner_stamina_gain * 100, 1)}% + Aug. Stamina Gain mult: {formatNumberNoSuffix(Player.mults.bladeburner_stamina_gain * 100, 1)}%
- Aug. Field Analysis mult: {formatNumber(Player.mults.bladeburner_analysis * 100, 1)}% + Aug. Field Analysis mult: {formatNumberNoSuffix(Player.mults.bladeburner_analysis * 100, 1)}%
diff --git a/src/Bladeburner/ui/SuccessChance.tsx b/src/Bladeburner/ui/SuccessChance.tsx index a746f0c82..b6bd960d9 100644 --- a/src/Bladeburner/ui/SuccessChance.tsx +++ b/src/Bladeburner/ui/SuccessChance.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { formatNumber } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; import { StealthIcon } from "./StealthIcon"; import { KillIcon } from "./KillIcon"; import { Action } from "../Action"; @@ -16,11 +16,12 @@ export function SuccessChance(props: IProps): React.ReactElement { let chance = <>; if (estimatedSuccessChance[0] === estimatedSuccessChance[1]) { - chance = <>{formatNumber(estimatedSuccessChance[0] * 100, 1)}%; + chance = <>{formatNumberNoSuffix(estimatedSuccessChance[0] * 100, 1)}%; } else { chance = ( <> - {formatNumber(estimatedSuccessChance[0] * 100, 1)}% ~ {formatNumber(estimatedSuccessChance[1] * 100, 1)}% + {formatNumberNoSuffix(estimatedSuccessChance[0] * 100, 1)}% ~{" "} + {formatNumberNoSuffix(estimatedSuccessChance[1] * 100, 1)}% ); } diff --git a/src/Bladeburner/ui/TeamSizeButton.tsx b/src/Bladeburner/ui/TeamSizeButton.tsx index 9972afb35..17bdd22d2 100644 --- a/src/Bladeburner/ui/TeamSizeButton.tsx +++ b/src/Bladeburner/ui/TeamSizeButton.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; import { Operation } from "../Operation"; import { Bladeburner } from "../Bladeburner"; import { TeamSizeModal } from "./TeamSizeModal"; -import { formatNumber } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; import Button from "@mui/material/Button"; interface IProps { action: Operation; @@ -14,7 +14,7 @@ export function TeamSizeButton(props: IProps): React.ReactElement { return ( <> setOpen(false)} action={props.action} bladeburner={props.bladeburner} /> diff --git a/src/Corporation/ui/IndustryOffice.tsx b/src/Corporation/ui/IndustryOffice.tsx index 08d2ec950..f7adebbdc 100644 --- a/src/Corporation/ui/IndustryOffice.tsx +++ b/src/Corporation/ui/IndustryOffice.tsx @@ -7,7 +7,7 @@ import { EmployeePositions } from "../data/Enums"; import { BuyCoffee } from "../Actions"; import { MoneyCost } from "./MoneyCost"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatCorpStat } from "../../ui/formatNumber"; import { UpgradeOfficeSizeModal } from "./modals/UpgradeOfficeSizeModal"; import { ThrowPartyModal } from "./modals/ThrowPartyModal"; @@ -115,7 +115,7 @@ function AutoManagement(props: IProps): React.ReactElement { Avg Employee Morale: - {numeralWrapper.format(props.office.avgMor, "0.000")} + {formatCorpStat(props.office.avgMor)} @@ -123,7 +123,7 @@ function AutoManagement(props: IProps): React.ReactElement { Avg Employee Happiness: - {numeralWrapper.format(props.office.avgHap, "0.000")} + {formatCorpStat(props.office.avgHap)} @@ -131,7 +131,7 @@ function AutoManagement(props: IProps): React.ReactElement { Avg Employee Energy: - {numeralWrapper.format(props.office.avgEne, "0.000")} + {formatCorpStat(props.office.avgEne)} @@ -139,9 +139,7 @@ function AutoManagement(props: IProps): React.ReactElement { Avg Employee Experience: - - {numeralWrapper.format(props.office.totalExp / props.office.totalEmployees || 0, "0.000")} - + {formatCorpStat(props.office.totalExp / props.office.totalEmployees || 0)} @@ -171,9 +169,7 @@ function AutoManagement(props: IProps): React.ReactElement { - - {numeralWrapper.format(division.getOfficeProductivity(props.office), "0.000")} - + {formatCorpStat(division.getOfficeProductivity(props.office))} @@ -192,12 +188,7 @@ function AutoManagement(props: IProps): React.ReactElement { - {numeralWrapper.format( - division.getOfficeProductivity(props.office, { - forProduct: true, - }), - "0.000", - )} + {formatCorpStat(division.getOfficeProductivity(props.office, { forProduct: true }))} @@ -210,7 +201,7 @@ function AutoManagement(props: IProps): React.ReactElement { - x{numeralWrapper.format(division.getBusinessFactor(props.office), "0.000")} + x{formatCorpStat(division.getBusinessFactor(props.office))} diff --git a/src/Corporation/ui/IndustryOverview.tsx b/src/Corporation/ui/IndustryOverview.tsx index bb84a8d6d..1ae5101e2 100644 --- a/src/Corporation/ui/IndustryOverview.tsx +++ b/src/Corporation/ui/IndustryOverview.tsx @@ -4,7 +4,7 @@ import React, { useState } from "react"; import { IndustryType } from "../data/Enums"; import { HireAdVert } from "../Actions"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatBigNumber } from "../../ui/formatNumber"; import { createProgressBarText } from "../../utils/helpers/createProgressBarText"; import { MakeProductModal } from "./modals/MakeProductModal"; import { ResearchModal } from "./modals/ResearchModal"; @@ -128,8 +128,8 @@ export function IndustryOverview(props: IProps): React.ReactElement {
{advertisingInfo !== false && ( @@ -139,15 +139,15 @@ export function IndustryOverview(props: IProps): React.ReactElement { Total multiplier for this industry's sales due to its awareness and popularity } > - Advertising Multiplier: x{numeralWrapper.formatReallyBigNumber(totalAdvertisingFac)} + Advertising Multiplier: x{formatBigNumber(totalAdvertisingFac)} )}
@@ -168,7 +168,7 @@ export function IndustryOverview(props: IProps): React.ReactElement { } > - Production Multiplier: {numeralWrapper.formatReallyBigNumber(division.prodMult)} + Production Multiplier: {formatBigNumber(division.prodMult)} setHelpOpen(true)}> @@ -207,7 +207,7 @@ export function IndustryOverview(props: IProps): React.ReactElement { } > - Scientific Research: {numeralWrapper.formatReallyBigNumber(division.sciResearch)} + Scientific Research: {formatBigNumber(division.sciResearch)} - Prod: {numeralWrapper.format(product.data[city][1], nfB)}/s + Prod: {formatBigNumber(product.data[city][1])}/s
- Sell: {numeralWrapper.format(product.data[city][2], nfB)} /s + Sell: {formatBigNumber(product.data[city][2])} /s } > - {product.name}: {numeralWrapper.format(product.data[city][0], nfB)} ( - {numeralWrapper.format(totalGain, nfB)} + {product.name}: {formatBigNumber(product.data[city][0])} ({formatBigNumber(totalGain)} /s) @@ -144,26 +138,26 @@ export function ProductElem(props: IProductProps): React.ReactElement { - Quality: {numeralWrapper.format(product.qlt, nf)}
- Performance: {numeralWrapper.format(product.per, nf)}
- Durability: {numeralWrapper.format(product.dur, nf)}
- Reliability: {numeralWrapper.format(product.rel, nf)}
- Aesthetics: {numeralWrapper.format(product.aes, nf)}
- Features: {numeralWrapper.format(product.fea, nf)} + Quality: {formatCorpStat(product.qlt)}
+ Performance: {formatCorpStat(product.per)}
+ Durability: {formatCorpStat(product.dur)}
+ Reliability: {formatCorpStat(product.rel)}
+ Aesthetics: {formatCorpStat(product.aes)}
+ Features: {formatCorpStat(product.fea)} {corp.unlockUpgrades[2] === 1 &&
} - {corp.unlockUpgrades[2] === 1 && "Demand: " + numeralWrapper.format(product.dmd, nf)} + {corp.unlockUpgrades[2] === 1 && "Demand: " + formatCorpStat(product.dmd)} {corp.unlockUpgrades[3] === 1 &&
} - {corp.unlockUpgrades[3] === 1 && "Competition: " + numeralWrapper.format(product.cmp, nf)} + {corp.unlockUpgrades[3] === 1 && "Competition: " + formatCorpStat(product.cmp)} } > - Rating: {numeralWrapper.format(product.rat, nf)} + Rating: {formatCorpStat(product.rat)}
An estimate of the material cost it takes to create this Product.}> - Est. Production Cost: {numeralWrapper.formatMoney(product.pCost / corpConstants.baseProductProfitMult)} + Est. Production Cost: {formatMoney(product.pCost / corpConstants.baseProductProfitMult)} @@ -176,7 +170,7 @@ export function ProductElem(props: IProductProps): React.ReactElement { } > - Est. Market Price: {numeralWrapper.formatMoney(product.pCost)} + Est. Market Price: {formatMoney(product.pCost)} diff --git a/src/Corporation/ui/modals/BribeFactionModal.tsx b/src/Corporation/ui/modals/BribeFactionModal.tsx index 8eccd2032..ec9a46951 100644 --- a/src/Corporation/ui/modals/BribeFactionModal.tsx +++ b/src/Corporation/ui/modals/BribeFactionModal.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { Factions } from "../../../Faction/Factions"; import * as corpConstants from "../../data/Constants"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatReputation } from "../../../ui/formatNumber"; import { dialogBoxCreate } from "../../../ui/React/DialogBox"; import { Modal } from "../../../ui/React/Modal"; import { Player } from "@player"; @@ -46,11 +46,7 @@ export function BribeFactionModal(props: IProps): React.ReactElement { return "ERROR: You do not have this much money to bribe with"; } else { return ( - "You will gain " + - numeralWrapper.formatReputation(repGain(money)) + - " reputation with " + - selectedFaction + - " with this bribe" + "You will gain " + formatReputation(repGain(money)) + " reputation with " + selectedFaction + " with this bribe" ); } } @@ -59,7 +55,7 @@ export function BribeFactionModal(props: IProps): React.ReactElement { const fac = Factions[selectedFaction]; if (disabled) return; const rep = repGain(money); - dialogBoxCreate(`You gained ${numeralWrapper.formatReputation(rep)} reputation with ${fac.name} by bribing them.`); + dialogBoxCreate(`You gained ${formatReputation(rep)} reputation with ${fac.name} by bribing them.`); fac.playerReputation += rep; corp.funds = corp.funds - money; props.onClose(); diff --git a/src/Corporation/ui/modals/BuybackSharesModal.tsx b/src/Corporation/ui/modals/BuybackSharesModal.tsx index 31d936240..6333c3862 100644 --- a/src/Corporation/ui/modals/BuybackSharesModal.tsx +++ b/src/Corporation/ui/modals/BuybackSharesModal.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { Modal } from "../../../ui/React/Modal"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatBigNumber, formatMoney } from "../../../ui/formatNumber"; import { Player } from "@player"; import { useCorporation } from "../Context"; import Typography from "@mui/material/Typography"; @@ -49,14 +49,14 @@ export function BuybackSharesModal(props: IProps): React.ReactElement { } else if (shares > corp.issuedShares) { return ( <> - There are not this many shares available to buy back. There are only{" "} - {numeralWrapper.formatBigNumber(corp.issuedShares)} outstanding shares. + There are not this many shares available to buy back. There are only {formatBigNumber(corp.issuedShares)}{" "} + outstanding shares. ); } else { return ( <> - Purchase {shares} shares for a total of {numeralWrapper.formatMoney(shares * buybackPrice)} + Purchase {shares} shares for a total of {formatMoney(shares * buybackPrice)} ); } @@ -76,8 +76,8 @@ export function BuybackSharesModal(props: IProps): React.ReactElement { To purchase these shares, you must use your own money (NOT your Corporation's funds).

- The current buyback price of your company's stock is {numeralWrapper.formatMoney(buybackPrice)}. Your company - currently has {numeralWrapper.formatBigNumber(corp.issuedShares)} outstanding stock shares. + The current buyback price of your company's stock is {formatMoney(buybackPrice)}. Your company currently has{" "} + {formatBigNumber(corp.issuedShares)} outstanding stock shares.
diff --git a/src/Corporation/ui/modals/FindInvestorsModal.tsx b/src/Corporation/ui/modals/FindInvestorsModal.tsx index 8a2eb34d0..e1d0b168f 100644 --- a/src/Corporation/ui/modals/FindInvestorsModal.tsx +++ b/src/Corporation/ui/modals/FindInvestorsModal.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney, formatPercent, formatShares } from "../../../ui/formatNumber"; import * as corpConstants from "../../data/Constants"; import { Modal } from "../../../ui/React/Modal"; import { useCorporation } from "../Context"; @@ -37,9 +37,8 @@ export function FindInvestorsModal(props: IProps): React.ReactElement { return ( - An investment firm has offered you {numeralWrapper.formatMoney(funding)} in funding in exchange for a{" "} - {numeralWrapper.format(percShares * 100, "0.000a")}% stake in the company ( - {numeralWrapper.format(investShares, "0.000a")} shares). + An investment firm has offered you {formatMoney(funding)} in funding in exchange for a{" "} + {formatPercent(percShares, 3)} stake in the company ({formatShares(investShares)} shares).

Do you accept or reject this offer? diff --git a/src/Corporation/ui/modals/GoPublicModal.tsx b/src/Corporation/ui/modals/GoPublicModal.tsx index f1b16addb..620fa19ee 100644 --- a/src/Corporation/ui/modals/GoPublicModal.tsx +++ b/src/Corporation/ui/modals/GoPublicModal.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { dialogBoxCreate } from "../../../ui/React/DialogBox"; import { Modal } from "../../../ui/React/Modal"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney, formatShares } from "../../../ui/formatNumber"; import { useCorporation } from "../Context"; import Typography from "@mui/material/Typography"; import Button from "@mui/material/Button"; @@ -38,8 +38,7 @@ export function GoPublicModal(props: IProps): React.ReactElement { corp.addFunds(shares * initialSharePrice); props.rerender(); dialogBoxCreate( - `You took your ${corp.name} public and earned ` + - `${numeralWrapper.formatMoney(shares * initialSharePrice)} in your IPO`, + `You took your ${corp.name} public and earned ` + `${formatMoney(shares * initialSharePrice)} in your IPO`, ); props.onClose(); } @@ -52,11 +51,11 @@ export function GoPublicModal(props: IProps): React.ReactElement { Enter the number of shares you would like to issue for your IPO. These shares will be publicly sold and you will - no longer own them. Your Corporation will receive {numeralWrapper.formatMoney(initialSharePrice)} per share (the - IPO money will be deposited directly into your Corporation's funds). + no longer own them. Your Corporation will receive {formatMoney(initialSharePrice)} per share (the IPO money will + be deposited directly into your Corporation's funds).

- You have a total of {numeralWrapper.format(corp.numShares, "0.000a")} of shares that you can issue. + You have a total of {formatShares(corp.numShares)} shares that you can issue.
diff --git a/src/Corporation/ui/modals/IssueNewSharesModal.tsx b/src/Corporation/ui/modals/IssueNewSharesModal.tsx index 306c9f9aa..f12bc5094 100644 --- a/src/Corporation/ui/modals/IssueNewSharesModal.tsx +++ b/src/Corporation/ui/modals/IssueNewSharesModal.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney, formatShares } from "../../../ui/formatNumber"; import { dialogBoxCreate } from "../../../ui/React/DialogBox"; import { Modal } from "../../../ui/React/Modal"; import { useCorporation } from "../Context"; @@ -37,8 +37,7 @@ function EffectText(props: IEffectTextProps): React.ReactElement { return ( - Issue {numeralWrapper.format(newShares, "0.000a")} new shares for{" "} - {numeralWrapper.formatMoney(newShares * newSharePrice)}? + Issue {formatShares(newShares)} new shares for {formatMoney(newShares * newSharePrice)}? ); } @@ -66,12 +65,10 @@ export function IssueNewSharesModal(props: IProps): React.ReactElement { props.onClose(); let dialogContents = - `Issued ${numeralWrapper.format(newShares, "0.000a")} new shares` + - ` and raised ${numeralWrapper.formatMoney(profit)}.` + - (privateShares > 0) - ? "\n" + numeralWrapper.format(privateShares, "0.000a") + "of these shares were bought by private investors." + `Issued ${formatShares(newShares)} new shares` + ` and raised ${formatMoney(profit)}.` + (privateShares > 0) + ? "\n" + formatShares(privateShares) + "of these shares were bought by private investors." : ""; - dialogContents += `\n\nStock price decreased to ${numeralWrapper.formatMoney(corp.sharePrice)}`; + dialogContents += `\n\nStock price decreased to ${formatMoney(corp.sharePrice)}`; dialogBoxCreate(dialogContents); } @@ -85,7 +82,7 @@ export function IssueNewSharesModal(props: IProps): React.ReactElement { You can issue new equity shares (i.e. stocks) in order to raise capital for your corporation.

-  * You can issue at most {numeralWrapper.format(maxNewShares, "0.000a")} new shares +  * You can issue at most {formatShares(maxNewShares)} new shares
 * New shares are sold at a 10% discount
diff --git a/src/Corporation/ui/modals/MaterialMarketTaModal.tsx b/src/Corporation/ui/modals/MaterialMarketTaModal.tsx index c78710f37..265202193 100644 --- a/src/Corporation/ui/modals/MaterialMarketTaModal.tsx +++ b/src/Corporation/ui/modals/MaterialMarketTaModal.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney, formatPreciseMultiplier } from "../../../ui/formatNumber"; import { Material } from "../../Material"; import { Modal } from "../../../ui/React/Modal"; import { useDivision } from "../Context"; @@ -54,8 +54,8 @@ function MarketTA2(props: IMarketTA2Props): React.ReactElement { Market-TA.II
- If you sell at {numeralWrapper.formatMoney(sCost)}, then you will sell{" "} - {numeralWrapper.format(markup, "0.00000")}x as much compared to if you sold at market price. + If you sell at {formatMoney(sCost)}, then you will sell x{formatPreciseMultiplier(markup)} as much compared to + if you sold at market price.
@@ -103,9 +103,8 @@ export function MaterialMarketTaModal(props: IProps): React.ReactElement { <> Market-TA.I - The maximum sale price you can mark this up to is {numeralWrapper.formatMoney(props.mat.bCost + markupLimit)}. - This means that if you set the sale price higher than this, you will begin to experience a loss in number of - sales + The maximum sale price you can mark this up to is {formatMoney(props.mat.bCost + markupLimit)}. This means + that if you set the sale price higher than this, you will begin to experience a loss in number of sales Market-TA.II

- If you sell at {numeralWrapper.formatMoney(sCost)}, then you will sell{" "} - {numeralWrapper.format(markup, "0.00000")}x as much compared to if you sold at market price. + If you sell at {formatMoney(sCost)}, then you will sell x{formatPreciseMultiplier(markup)} as much compared to + if you sold at market price.
@@ -94,9 +94,8 @@ export function ProductMarketTaModal(props: IProps): React.ReactElement { <> Market-TA.I - The maximum sale price you can mark this up to is{" "} - {numeralWrapper.formatMoney(props.product.pCost + markupLimit)}. This means that if you set the sale price - higher than this, you will begin to experience a loss in number of sales + The maximum sale price you can mark this up to is {formatMoney(props.product.pCost + markupLimit)}. This means + that if you set the sale price higher than this, you will begin to experience a loss in number of sales - Purchasing {numeralWrapper.format(parsedAmt, "0,0.00")} of {props.mat.name} will cost{" "} - {numeralWrapper.formatMoney(cost)} + Purchasing {formatMatPurchaseAmount(parsedAmt)} of {props.mat.name} will cost {formatMoney(cost)} ); diff --git a/src/Corporation/ui/modals/SellSharesModal.tsx b/src/Corporation/ui/modals/SellSharesModal.tsx index f034c47f1..f5cacce77 100644 --- a/src/Corporation/ui/modals/SellSharesModal.tsx +++ b/src/Corporation/ui/modals/SellSharesModal.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney } from "../../../ui/formatNumber"; import { dialogBoxCreate } from "../../../ui/React/DialogBox"; import { Modal } from "../../../ui/React/Modal"; import { useCorporation } from "../Context"; @@ -34,7 +34,7 @@ export function SellSharesModal(props: IProps): React.ReactElement { } else { const stockSaleResults = corp.calculateShareSale(props.shares); const profit = stockSaleResults[0]; - text = `Sell ${props.shares} shares for a total of ${numeralWrapper.formatMoney(profit)}`; + text = `Sell ${props.shares} shares for a total of ${formatMoney(profit)}`; } return ( @@ -51,7 +51,7 @@ export function SellSharesModal(props: IProps): React.ReactElement { props.onClose(); dialogBoxCreate( <> - Sold {numeralWrapper.formatMoney(shares)} shares for + Sold {formatMoney(shares)} shares for . The corporation's stock price fell to  as a result of dilution. , @@ -78,7 +78,7 @@ export function SellSharesModal(props: IProps): React.ReactElement { large number of shares all at once will have an immediate effect in reducing your stock price.

- The current price of your company's stock is {numeralWrapper.formatMoney(corp.sharePrice)} + The current price of your company's stock is {formatMoney(corp.sharePrice)}
0) { dialogBoxCreate( "You threw a party for the office! The morale and happiness of each employee increased by " + - numeralWrapper.formatPercentage(increase) + + formatPercent(increase) + " and was multiplied by " + - numeralWrapper.formatMultiplier(mult), + formatMultiplier(mult), ); } diff --git a/src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx b/src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx index 080d59de9..7e08e710c 100644 --- a/src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx +++ b/src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatMoney } from "../../../ui/formatNumber"; import * as corpConstants from "../../data/Constants"; import { OfficeSpace } from "../../OfficeSpace"; import { Corporation } from "../../Corporation"; @@ -32,7 +32,7 @@ function UpgradeSizeButton(props: IUpgradeButton): React.ReactElement { props.onClose(); } return ( - + diff --git a/src/Gang/ui/EquipmentsSubpage.tsx b/src/Gang/ui/EquipmentsSubpage.tsx index ef38a026b..234017036 100644 --- a/src/Gang/ui/EquipmentsSubpage.tsx +++ b/src/Gang/ui/EquipmentsSubpage.tsx @@ -10,7 +10,7 @@ import Select, { SelectChangeEvent } from "@mui/material/Select"; import { MenuItem, Table, TableBody, TextField } from "@mui/material"; import SearchIcon from "@mui/icons-material/Search"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatMultiplier, formatPercent } from "../../ui/formatNumber"; import { GangMemberUpgrades } from "../GangMemberUpgrades"; import { GangMemberUpgrade } from "../GangMemberUpgrade"; import { Money } from "../../ui/React/Money"; @@ -142,29 +142,23 @@ function GangMemberUpgradePanel(props: IPanelProps): React.ReactElement { - Hk: x{numeralWrapper.formatMultiplier(props.member.hack_mult * asc.hack)}(x - {numeralWrapper.formatMultiplier(props.member.hack_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.hack)} Asc) + Hk: x{formatMultiplier(props.member.hack_mult * asc.hack)}(x + {formatMultiplier(props.member.hack_mult)} Eq, x{formatMultiplier(asc.hack)} Asc)
- St: x{numeralWrapper.formatMultiplier(props.member.str_mult * asc.str)} - (x{numeralWrapper.formatMultiplier(props.member.str_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.str)} Asc) + St: x{formatMultiplier(props.member.str_mult * asc.str)} + (x{formatMultiplier(props.member.str_mult)} Eq, x{formatMultiplier(asc.str)} Asc)
- Df: x{numeralWrapper.formatMultiplier(props.member.def_mult * asc.def)} - (x{numeralWrapper.formatMultiplier(props.member.def_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.def)} Asc) + Df: x{formatMultiplier(props.member.def_mult * asc.def)} + (x{formatMultiplier(props.member.def_mult)} Eq, x{formatMultiplier(asc.def)} Asc)
- Dx: x{numeralWrapper.formatMultiplier(props.member.dex_mult * asc.dex)} - (x{numeralWrapper.formatMultiplier(props.member.dex_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.dex)} Asc) + Dx: x{formatMultiplier(props.member.dex_mult * asc.dex)} + (x{formatMultiplier(props.member.dex_mult)} Eq, x{formatMultiplier(asc.dex)} Asc)
- Ag: x{numeralWrapper.formatMultiplier(props.member.agi_mult * asc.agi)} - (x{numeralWrapper.formatMultiplier(props.member.agi_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.agi)} Asc) + Ag: x{formatMultiplier(props.member.agi_mult * asc.agi)} + (x{formatMultiplier(props.member.agi_mult)} Eq, x{formatMultiplier(asc.agi)} Asc)
- Ch: x{numeralWrapper.formatMultiplier(props.member.cha_mult * asc.cha)} - (x{numeralWrapper.formatMultiplier(props.member.cha_mult)} Eq, x - {numeralWrapper.formatMultiplier(asc.cha)} Asc) + Ch: x{formatMultiplier(props.member.cha_mult * asc.cha)} + (x{formatMultiplier(props.member.cha_mult)} Eq, x{formatMultiplier(asc.cha)} Asc) } > @@ -262,7 +256,7 @@ export function EquipmentsSubpage(): React.ReactElement { } > - Discount: -{numeralWrapper.formatPercentage(1 - 1 / gang.getDiscount())} + Discount: -{formatPercent(1 - 1 / gang.getDiscount())}
], - [`Respect:`, `${numeralWrapper.formatRespect(5 * props.member.calculateRespectGain(gang))} / sec`], - [`Wanted Level:`, `${numeralWrapper.formatWanted(5 * props.member.calculateWantedLevelGain(gang))} / sec`], - [`Total Respect:`, `${numeralWrapper.formatRespect(props.member.earnedRespect)}`], + [`Respect:`, `${formatRespect(5 * props.member.calculateRespectGain(gang))} / sec`], + [`Wanted Level:`, `${formatWanted(5 * props.member.calculateWantedLevelGain(gang))} / sec`], + [`Total Respect:`, `${formatRespect(props.member.earnedRespect)}`], ]; return ( @@ -45,29 +45,23 @@ export function GangMemberStats(props: IProps): React.ReactElement { - Hk: x{numeralWrapper.formatMultiplier(props.member.hack_mult * asc.hack)}(x - {numeralWrapper.formatMultiplier(props.member.hack_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.hack)}{" "} - Asc) + Hk: x{formatMultiplier(props.member.hack_mult * asc.hack)}(x + {formatMultiplier(props.member.hack_mult)} Eq, x{formatMultiplier(asc.hack)} Asc)
- St: x{numeralWrapper.formatMultiplier(props.member.str_mult * asc.str)} - (x{numeralWrapper.formatMultiplier(props.member.str_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.str)}{" "} - Asc) + St: x{formatMultiplier(props.member.str_mult * asc.str)} + (x{formatMultiplier(props.member.str_mult)} Eq, x{formatMultiplier(asc.str)} Asc)
- Df: x{numeralWrapper.formatMultiplier(props.member.def_mult * asc.def)} - (x{numeralWrapper.formatMultiplier(props.member.def_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.def)}{" "} - Asc) + Df: x{formatMultiplier(props.member.def_mult * asc.def)} + (x{formatMultiplier(props.member.def_mult)} Eq, x{formatMultiplier(asc.def)} Asc)
- Dx: x{numeralWrapper.formatMultiplier(props.member.dex_mult * asc.dex)} - (x{numeralWrapper.formatMultiplier(props.member.dex_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.dex)}{" "} - Asc) + Dx: x{formatMultiplier(props.member.dex_mult * asc.dex)} + (x{formatMultiplier(props.member.dex_mult)} Eq, x{formatMultiplier(asc.dex)} Asc)
- Ag: x{numeralWrapper.formatMultiplier(props.member.agi_mult * asc.agi)} - (x{numeralWrapper.formatMultiplier(props.member.agi_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.agi)}{" "} - Asc) + Ag: x{formatMultiplier(props.member.agi_mult * asc.agi)} + (x{formatMultiplier(props.member.agi_mult)} Eq, x{formatMultiplier(asc.agi)} Asc)
- Ch: x{numeralWrapper.formatMultiplier(props.member.cha_mult * asc.cha)} - (x{numeralWrapper.formatMultiplier(props.member.cha_mult)} Eq, x{numeralWrapper.formatMultiplier(asc.cha)}{" "} - Asc) + Ch: x{formatMultiplier(props.member.cha_mult * asc.cha)} + (x{formatMultiplier(props.member.cha_mult)} Eq, x{formatMultiplier(asc.cha)} Asc) } > diff --git a/src/Gang/ui/GangStats.tsx b/src/Gang/ui/GangStats.tsx index ec07fd858..f2cbd1cee 100644 --- a/src/Gang/ui/GangStats.tsx +++ b/src/Gang/ui/GangStats.tsx @@ -5,8 +5,7 @@ import React from "react"; import { Factions } from "../../Faction/Factions"; -import { formatNumber } from "../../utils/StringHelperFunctions"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatNumberNoSuffix, formatRespect, formatWanted } from "../../ui/formatNumber"; import { MoneyRate } from "../../ui/React/MoneyRate"; import { Reputation } from "../../ui/React/Reputation"; import { AllGangs } from "../AllGangs"; @@ -21,11 +20,11 @@ export function GangStats(): React.ReactElement { const territoryMult = AllGangs[gang.facName].territory * 100; let territoryStr; if (territoryMult <= 0) { - territoryStr = formatNumber(0, 2); + territoryStr = formatNumberNoSuffix(0, 2); } else if (territoryMult >= 100) { - territoryStr = formatNumber(100, 2); + territoryStr = formatNumberNoSuffix(100, 2); } else { - territoryStr = formatNumber(territoryMult, 2); + territoryStr = formatNumberNoSuffix(territoryMult, 2); } return ( @@ -41,8 +40,7 @@ export function GangStats(): React.ReactElement { } > - Respect: {numeralWrapper.formatRespect(gang.respect)} ( - {numeralWrapper.formatRespect(5 * gang.respectGainRate)} / sec) + Respect: {formatRespect(gang.respect)} ({formatRespect(5 * gang.respectGainRate)} / sec)
@@ -57,15 +55,16 @@ export function GangStats(): React.ReactElement { } > - Wanted Level: {numeralWrapper.formatWanted(gang.wanted)} ( - {numeralWrapper.formatWanted(5 * gang.wantedGainRate)} / sec) + Wanted Level: {formatWanted(gang.wanted)} ({formatWanted(5 * gang.wantedGainRate)} / sec)
Penalty for respect and money gain rates due to Wanted Level}> - Wanted Level Penalty: -{formatNumber((1 - gang.getWantedPenalty()) * 100, 2)}% + + Wanted Level Penalty: -{formatNumberNoSuffix((1 - gang.getWantedPenalty()) * 100, 2)}% + diff --git a/src/Gang/ui/RecruitButton.tsx b/src/Gang/ui/RecruitButton.tsx index 8fe5d9094..ddf7b69e0 100644 --- a/src/Gang/ui/RecruitButton.tsx +++ b/src/Gang/ui/RecruitButton.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { RecruitModal } from "./RecruitModal"; import { GangConstants } from "../data/Constants"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRespect } from "../../ui/formatNumber"; import { useGang } from "./Context"; import Typography from "@mui/material/Typography"; import Button from "@mui/material/Button"; @@ -24,9 +24,7 @@ export function RecruitButton(props: IProps): React.ReactElement { return ( - - {numeralWrapper.formatRespect(respect)} respect needed to recruit next member - + {formatRespect(respect)} respect needed to recruit next member ); } diff --git a/src/Gang/ui/TerritorySubpage.tsx b/src/Gang/ui/TerritorySubpage.tsx index 6dccb8778..5715c35b9 100644 --- a/src/Gang/ui/TerritorySubpage.tsx +++ b/src/Gang/ui/TerritorySubpage.tsx @@ -3,8 +3,7 @@ import React, { useState } from "react"; import { Container, Button, Paper, Box, Tooltip, Switch, FormControlLabel, Typography } from "@mui/material"; import { Help } from "@mui/icons-material"; -import { numeralWrapper } from "../../ui/numeralFormat"; -import { formatNumber } from "../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix, formatPercent } from "../../ui/formatNumber"; import { AllGangs } from "../AllGangs"; @@ -77,8 +76,8 @@ export function TerritorySubpage(): React.ReactElement { /> - Territory Clash Chance: {numeralWrapper.formatPercentage(gang.territoryClashChance, 3)}
- Power: {formatNumber(AllGangs[gang.facName].power, 3)}
+ Territory Clash Chance: {formatPercent(gang.territoryClashChance, 3)}
+ Power: {formatNumberNoSuffix(AllGangs[gang.facName].power, 3)}
Territory: {formatTerritory(AllGangs[gang.facName].territory)}%
@@ -101,11 +100,11 @@ function formatTerritory(n: number): string { const v = n * 100; const precision = 3; if (v <= 0) { - return formatNumber(0, precision); + return formatNumberNoSuffix(0, precision); } else if (v >= 100) { - return formatNumber(100, precision); + return formatNumberNoSuffix(100, precision); } else { - return formatNumber(v, precision); + return formatNumberNoSuffix(v, precision); } } @@ -126,9 +125,9 @@ function OtherGangTerritory(props: ITerritoryProps): React.ReactElement { {props.name} - Power: {formatNumber(power, 3)}
+ Power: {formatNumberNoSuffix(power, 3)}
Territory: {formatTerritory(territory)}%
- Clash Win Chance: {numeralWrapper.formatPercentage(clashVictoryChance, 3)} + Clash Win Chance: {formatPercent(clashVictoryChance, 3)}
); diff --git a/src/Hacknet/data/HashUpgradesMetadata.tsx b/src/Hacknet/data/HashUpgradesMetadata.tsx index 0864c458c..9c49311ed 100644 --- a/src/Hacknet/data/HashUpgradesMetadata.tsx +++ b/src/Hacknet/data/HashUpgradesMetadata.tsx @@ -1,7 +1,7 @@ // Metadata used to construct all Hash Upgrades import React from "react"; import { IConstructorParams } from "../HashUpgrade"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatInt } from "../../ui/formatNumber"; import { Money } from "../../ui/React/Money"; export const HashUpgradesMetadata: IConstructorParams[] = [ @@ -72,7 +72,7 @@ export const HashUpgradesMetadata: IConstructorParams[] = [ desc: "Exchange hashes for 1k Scientific Research in all of your Corporation's Industries", name: "Exchange for Corporation Research", effectText: (level: number): JSX.Element | null => ( - <>Acquired a total of {level}k Scientific Research in your industries. + <>Acquired a total of {formatInt(level * 1000)} Scientific Research in your industries. ), value: 1000, }, @@ -81,7 +81,7 @@ export const HashUpgradesMetadata: IConstructorParams[] = [ desc: "Exchange hashes for 100 Bladeburner Rank", name: "Exchange for Bladeburner Rank", effectText: (level: number): JSX.Element | null => ( - <>Acquired a total of {numeralWrapper.format(100 * level, "0a")} Bladeburner rank + <>Acquired a total of {formatInt(100 * level)} Bladeburner rank ), value: 100, }, @@ -90,7 +90,7 @@ export const HashUpgradesMetadata: IConstructorParams[] = [ desc: "Exchanges hashes for 10 Bladeburner Skill Points", name: "Exchange for Bladeburner SP", effectText: (level: number): JSX.Element | null => ( - <>Acquired a total of {numeralWrapper.format(10 * level, "0a")} Bladeburner Skill Points + <>Acquired a total of {formatInt(10 * level)} Bladeburner Skill Points ), value: 10, }, diff --git a/src/Hacknet/ui/HacknetNodeElem.tsx b/src/Hacknet/ui/HacknetNodeElem.tsx index 91a68270d..1ea5add5c 100644 --- a/src/Hacknet/ui/HacknetNodeElem.tsx +++ b/src/Hacknet/ui/HacknetNodeElem.tsx @@ -29,7 +29,7 @@ import TableBody from "@mui/material/TableBody"; import Table from "@mui/material/Table"; import TableRow from "@mui/material/TableRow"; import Tooltip from "@mui/material/Tooltip"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { calculateMoneyGainRate } from "../formulas/HacknetNodes"; interface IProps { @@ -196,7 +196,7 @@ export function HacknetNodeElem(props: IProps): React.ReactElement { RAM: - {numeralWrapper.formatRAM(node.ram)} + {formatRam(node.ram)} {upgradeRAMButton} diff --git a/src/Hacknet/ui/HacknetServerElem.tsx b/src/Hacknet/ui/HacknetServerElem.tsx index c31178966..6e608e95e 100644 --- a/src/Hacknet/ui/HacknetServerElem.tsx +++ b/src/Hacknet/ui/HacknetServerElem.tsx @@ -31,7 +31,7 @@ import { TableCell } from "../../ui/React/Table"; import TableBody from "@mui/material/TableBody"; import Table from "@mui/material/Table"; import TableRow from "@mui/material/TableRow"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { calculateHashGainRate } from "../formulas/HacknetServers"; import Tooltip from "@mui/material/Tooltip"; @@ -273,10 +273,10 @@ export function HacknetServerElem(props: IProps): React.ReactElement { {" "} max production rate. (achieved when 100% RAM is allocated to it)
- {numeralWrapper.formatRAM(node.ramUsed)} / {numeralWrapper.formatRAM(node.maxRam)} ( + {formatRam(node.ramUsed)} / {formatRam(node.maxRam)} ( {Math.round((100 * node.ramUsed) / node.maxRam)}%) RAM allocated to script.
- {numeralWrapper.formatRAM(node.maxRam - node.ramUsed)} / {numeralWrapper.formatRAM(node.maxRam)} ( + {formatRam(node.maxRam - node.ramUsed)} / {formatRam(node.maxRam)} ( {Math.round((100 * (node.maxRam - node.ramUsed)) / node.maxRam)}%) RAM allocated to hash production. } @@ -311,7 +311,7 @@ export function HacknetServerElem(props: IProps): React.ReactElement { RAM: - {numeralWrapper.formatRAM(node.maxRam)} + {formatRam(node.maxRam)} {upgradeRamButton} diff --git a/src/Infiltration/ui/Intro.tsx b/src/Infiltration/ui/Intro.tsx index 7844ba3ca..aab3843d3 100644 --- a/src/Infiltration/ui/Intro.tsx +++ b/src/Infiltration/ui/Intro.tsx @@ -3,7 +3,7 @@ import { Box, Button, Container, Paper, Tooltip, Typography } from "@mui/materia import React from "react"; import { Location } from "../../Locations/Location"; import { Settings } from "../../Settings/Settings"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatNumberNoSuffix } from "../../ui/formatNumber"; interface IProps { Location: Location; @@ -74,7 +74,7 @@ export function Intro(props: IProps): React.ReactElement { }} > Difficulty:  - {numeralWrapper.format(props.Difficulty * 33.3333, "0")} / 100 + {formatNumberNoSuffix(props.Difficulty * 33.3333)} / 100 {props.Difficulty > 1.5 && ( - have gained {formatNumber(infiltrationRepGain, 2)} rep for {FactionNames.ShadowsOfAnarchy} and{" "} + have gained {formatNumberNoSuffix(infiltrationRepGain, 2)} rep for {FactionNames.ShadowsOfAnarchy} and{" "} ) : ( <> diff --git a/src/Locations/ui/PurchaseServerModal.tsx b/src/Locations/ui/PurchaseServerModal.tsx index 711e1d753..86e273b2f 100644 --- a/src/Locations/ui/PurchaseServerModal.tsx +++ b/src/Locations/ui/PurchaseServerModal.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { purchaseServer } from "../../Server/ServerPurchases"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { Money } from "../../ui/React/Money"; import { Modal } from "../../ui/React/Modal"; import { Player } from "@player"; @@ -37,7 +37,7 @@ export function PurchaseServerModal(props: IProps): React.ReactElement { return ( - Would you like to purchase a new server with {numeralWrapper.formatRAM(props.ram)} of RAM for{" "} + Would you like to purchase a new server with {formatRam(props.ram)} of RAM for{" "} ?
diff --git a/src/Locations/ui/RamButton.tsx b/src/Locations/ui/RamButton.tsx index ab66f44fd..daedd902f 100644 --- a/src/Locations/ui/RamButton.tsx +++ b/src/Locations/ui/RamButton.tsx @@ -8,7 +8,7 @@ import { Player } from "@player"; import { purchaseRamForHomeComputer } from "../../Server/ServerPurchases"; import { Money } from "../../ui/React/Money"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { MathJax } from "better-react-mathjax"; import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers"; @@ -45,8 +45,8 @@ export function RamButton(props: IProps): React.ReactElement {
diff --git a/src/Locations/ui/SlumsLocation.tsx b/src/Locations/ui/SlumsLocation.tsx index f34e8d9b5..dab0cb369 100644 --- a/src/Locations/ui/SlumsLocation.tsx +++ b/src/Locations/ui/SlumsLocation.tsx @@ -9,7 +9,7 @@ import Tooltip from "@mui/material/Tooltip"; import { Crimes } from "../../Crime/Crimes"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatPercent } from "../../ui/formatNumber"; import { Router } from "../../ui/GameRoot"; import { Page } from "../../ui/Router"; import { Player } from "@player"; @@ -37,7 +37,7 @@ export function SlumsLocation(): React.ReactElement { {crimes.map((crime) => ( ))} diff --git a/src/Locations/ui/TechVendorLocation.tsx b/src/Locations/ui/TechVendorLocation.tsx index 98fc77cd7..fef6a3274 100644 --- a/src/Locations/ui/TechVendorLocation.tsx +++ b/src/Locations/ui/TechVendorLocation.tsx @@ -17,7 +17,7 @@ import { getPurchaseServerCost } from "../../Server/ServerPurchases"; import { Money } from "../../ui/React/Money"; import { Player } from "@player"; import { PurchaseServerModal } from "./PurchaseServerModal"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { Box } from "@mui/material"; interface IServerProps { @@ -31,7 +31,7 @@ function ServerButton(props: IServerProps): React.ReactElement { return ( <> unknown; /** Type for internal, unwrapped ctx function that produces an APIFunction */ type InternalFn = (ctx: NetscriptContext) => ((...args: unknown[]) => ReturnType) & F; /** Type constraint for an API layer. They must all fit this "shape". */ -type GenericAPI = { [key: string]: APIFn | GenericAPI }; +type GenericAPI = { [key in keyof T]: APIFn | GenericAPI }; // args, enums, and pid are excluded from the API for typing purposes via the definition of NSFull. // They do in fact exist on the external API (but are absent on the internal API and ramcost tree) @@ -21,7 +21,7 @@ export type NetscriptContext = { functionPath: string; }; -class NSProxyHandler { +class NSProxyHandler> { ns: API; ws: WorkerScript; tree: string[]; @@ -81,17 +81,18 @@ class NSProxyHandler { return ((this.memoed[key] as APIFn) = wrappedFunction); } if (typeof field === "object") { - return ((this.memoed[key] as GenericAPI) = NSProxy(this.ws, field as InternalAPI, [ - ...this.tree, - key, - ])); + return ((this.memoed[key] as GenericAPI) = NSProxy( + this.ws, + field as InternalAPI>, + [...this.tree, key], + )); } console.warn(`Unexpected data while wrapping API.`, "tree:", this.tree, "key:", key, "field:", field); throw new Error("Error while wrapping netscript API. See console."); } } -export function NSProxy( +export function NSProxy>( ws: WorkerScript, ns: InternalAPI, tree: string[], diff --git a/src/Netscript/NetscriptHelpers.ts b/src/Netscript/NetscriptHelpers.ts index 6bc8069d1..174db3e59 100644 --- a/src/Netscript/NetscriptHelpers.ts +++ b/src/Netscript/NetscriptHelpers.ts @@ -3,7 +3,7 @@ import { WorkerScript } from "./WorkerScript"; import { GetAllServers, GetServer } from "../Server/AllServers"; import { Player } from "@player"; import { ScriptDeath } from "./ScriptDeath"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatExp, formatMoney, formatRam, formatThreads } from "../ui/formatNumber"; import { ScriptArg } from "./ScriptArg"; import { CityName } from "../Enums"; import { BasicHGWOptions, RunningScript as IRunningScript, Person as IPerson } from "@nsdefs"; @@ -354,8 +354,8 @@ function updateDynamicRam(ctx: NetscriptContext, ramCost: number): void { This is probably because you somehow circumvented the static RAM calculation. Threads: ${threads} - Dynamic RAM Usage: ${numeralWrapper.formatRAM(ws.dynamicRamUsage)} per thread - Static RAM Usage: ${numeralWrapper.formatRAM(ws.ramUsage)} per thread + Dynamic RAM Usage: ${formatRam(ws.dynamicRamUsage)} per thread + Static RAM Usage: ${formatRam(ws.ramUsage)} per thread One of these could be the reason: * Using eval() to get a reference to a ns function @@ -448,7 +448,7 @@ function hack( `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString( hackingTime * 1000, true, - )} (t=${numeralWrapper.formatThreads(threads)})`, + )} (t=${formatThreads(threads)})`, ); return helpers.netscriptDelay(ctx, hackingTime * 1000).then(function () { @@ -495,9 +495,9 @@ function hack( log( ctx, () => - `Successfully hacked '${server.hostname}' for ${numeralWrapper.formatMoney( - moneyGained, - )} and ${numeralWrapper.formatExp(expGainedOnSuccess)} exp (t=${numeralWrapper.formatThreads(threads)})`, + `Successfully hacked '${server.hostname}' for ${formatMoney(moneyGained)} and ${formatExp( + expGainedOnSuccess, + )} exp (t=${formatThreads(threads)})`, ); server.fortify(CONSTANTS.ServerFortifyAmount * Math.min(threads, maxThreadNeeded)); if (stock) { @@ -514,9 +514,9 @@ function hack( log( ctx, () => - `Failed to hack '${server.hostname}'. Gained ${numeralWrapper.formatExp( - expGainedOnFailure, - )} exp (t=${numeralWrapper.formatThreads(threads)})`, + `Failed to hack '${server.hostname}'. Gained ${formatExp(expGainedOnFailure)} exp (t=${formatThreads( + threads, + )})`, ); return 0; } diff --git a/src/Netscript/RamCostGenerator.ts b/src/Netscript/RamCostGenerator.ts index 1512b151c..ae9b32ec9 100644 --- a/src/Netscript/RamCostGenerator.ts +++ b/src/Netscript/RamCostGenerator.ts @@ -518,6 +518,9 @@ export const RamCosts: RamCostTree = { getTotalScriptExpGain: RamCostConstants.GetScript, getScriptExpGain: RamCostConstants.GetScript, getRunningScript: RamCostConstants.GetRunningScript, + formatNumber: 0, + formatRam: 0, + formatPercent: 0, nFormat: 0, tFormat: 0, getTimeSinceLastAug: RamCostConstants.GetHackTime, diff --git a/src/NetscriptFunctions.ts b/src/NetscriptFunctions.ts index 02f9ee521..3aa6f90a6 100644 --- a/src/NetscriptFunctions.ts +++ b/src/NetscriptFunctions.ts @@ -43,8 +43,17 @@ import { killWorkerScript } from "./Netscript/killWorkerScript"; import { workerScripts } from "./Netscript/WorkerScripts"; import { WorkerScript } from "./Netscript/WorkerScript"; import { helpers, assertObjectType } from "./Netscript/NetscriptHelpers"; -import { numeralWrapper } from "./ui/numeralFormat"; -import { convertTimeMsToTimeElapsedString, formatNumber } from "./utils/StringHelperFunctions"; +import { + formatExp, + formatNumberNoSuffix, + formatMoney, + formatPercent, + formatRam, + formatSecurity, + formatThreads, + formatNumber, +} from "./ui/formatNumber"; +import { convertTimeMsToTimeElapsedString } from "./utils/StringHelperFunctions"; import { LogBoxEvents, LogBoxCloserEvents, LogBoxPositionEvents, LogBoxSizeEvents } from "./ui/React/LogBoxManager"; import { arrayToString } from "./utils/helpers/arrayToString"; import { isString } from "./utils/helpers/isString"; @@ -80,6 +89,7 @@ import { assert, arrayAssert, stringAssert, objectAssert } from "./utils/helpers import { CityName, JobName, CrimeType, GymType, LocationName, UniversityClassType } from "./Enums"; import { cloneDeep } from "lodash"; import { FactionWorkType } from "./Enums"; +import numeral from "numeral"; export const enums: NSEnums = { CityName, @@ -261,7 +271,7 @@ export const ns: InternalAPI = { `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString( growTime * 1000, true, - )} (t=${numeralWrapper.formatThreads(threads)}).`, + )} (t=${formatThreads(threads)}).`, ); return helpers.netscriptDelay(ctx, growTime * 1000).then(function () { const moneyBefore = server.moneyAvailable <= 0 ? 1 : server.moneyAvailable; @@ -273,10 +283,9 @@ export const ns: InternalAPI = { helpers.log( ctx, () => - `Available money on '${server.hostname}' grown by ${numeralWrapper.formatPercentage( - logGrowPercent, - 6, - )}. Gained ${numeralWrapper.formatExp(expGain)} hacking exp (t=${numeralWrapper.formatThreads(threads)}).`, + `Available money on '${server.hostname}' grown by ${formatPercent(logGrowPercent, 6)}. Gained ${formatExp( + expGain, + )} hacking exp (t=${formatThreads(threads)}).`, ); ctx.workerScript.scriptRef.onlineExpGained += expGain; Player.gainHackingExp(expGain); @@ -359,7 +368,7 @@ export const ns: InternalAPI = { `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString( weakenTime * 1000, true, - )} (t=${numeralWrapper.formatThreads(threads)})`, + )} (t=${formatThreads(threads)})`, ); return helpers.netscriptDelay(ctx, weakenTime * 1000).then(function () { const host = GetServer(ctx.workerScript.hostname); @@ -374,9 +383,9 @@ export const ns: InternalAPI = { helpers.log( ctx, () => - `'${server.hostname}' security level weakened to ${ - server.hackDifficulty - }. Gained ${numeralWrapper.formatExp(expGain)} hacking exp (t=${numeralWrapper.formatThreads(threads)})`, + `'${server.hostname}' security level weakened to ${server.hackDifficulty}. Gained ${formatExp( + expGain, + )} hacking exp (t=${formatThreads(threads)})`, ); ctx.workerScript.scriptRef.onlineExpGained += expGain; Player.gainHackingExp(expGain); @@ -1070,10 +1079,10 @@ export const ns: InternalAPI = { } if (server.hostname == "home") { // Return player's money - helpers.log(ctx, () => `returned player's money: ${numeralWrapper.formatMoney(Player.money)}`); + helpers.log(ctx, () => `returned player's money: ${formatMoney(Player.money)}`); return Player.money; } - helpers.log(ctx, () => `returned ${numeralWrapper.formatMoney(server.moneyAvailable)} for '${server.hostname}'`); + helpers.log(ctx, () => `returned ${formatMoney(server.moneyAvailable)} for '${server.hostname}'`); return server.moneyAvailable; }, getServerSecurityLevel: (ctx) => (_hostname) => { @@ -1086,10 +1095,7 @@ export const ns: InternalAPI = { if (helpers.failOnHacknetServer(ctx, server)) { return 1; } - helpers.log( - ctx, - () => `returned ${numeralWrapper.formatServerSecurity(server.hackDifficulty)} for '${server.hostname}'`, - ); + helpers.log(ctx, () => `returned ${formatSecurity(server.hackDifficulty)} for '${server.hostname}'`); return server.hackDifficulty; }, getServerBaseSecurityLevel: (ctx) => (_hostname) => { @@ -1103,10 +1109,7 @@ export const ns: InternalAPI = { if (helpers.failOnHacknetServer(ctx, server)) { return 1; } - helpers.log( - ctx, - () => `returned ${numeralWrapper.formatServerSecurity(server.baseDifficulty)} for '${server.hostname}'`, - ); + helpers.log(ctx, () => `returned ${formatSecurity(server.baseDifficulty)} for '${server.hostname}'`); return server.baseDifficulty; }, getServerMinSecurityLevel: (ctx) => (_hostname) => { @@ -1119,10 +1122,7 @@ export const ns: InternalAPI = { if (helpers.failOnHacknetServer(ctx, server)) { return 1; } - helpers.log( - ctx, - () => `returned ${numeralWrapper.formatServerSecurity(server.minDifficulty)} for ${server.hostname}`, - ); + helpers.log(ctx, () => `returned ${formatSecurity(server.minDifficulty)} for ${server.hostname}`); return server.minDifficulty; }, getServerRequiredHackingLevel: (ctx) => (_hostname) => { @@ -1135,7 +1135,7 @@ export const ns: InternalAPI = { if (helpers.failOnHacknetServer(ctx, server)) { return 1; } - helpers.log(ctx, () => `returned ${formatNumber(server.requiredHackingSkill, 0)} for '${server.hostname}'`); + helpers.log(ctx, () => `returned ${formatNumberNoSuffix(server.requiredHackingSkill, 0)} for '${server.hostname}'`); return server.requiredHackingSkill; }, getServerMaxMoney: (ctx) => (_hostname) => { @@ -1148,7 +1148,7 @@ export const ns: InternalAPI = { if (helpers.failOnHacknetServer(ctx, server)) { return 0; } - helpers.log(ctx, () => `returned ${numeralWrapper.formatMoney(server.moneyMax)} for '${server.hostname}'`); + helpers.log(ctx, () => `returned ${formatMoney(server.moneyMax)} for '${server.hostname}'`); return server.moneyMax; }, getServerGrowth: (ctx) => (_hostname) => { @@ -1180,13 +1180,13 @@ export const ns: InternalAPI = { getServerMaxRam: (ctx) => (_hostname) => { const hostname = helpers.string(ctx, "hostname", _hostname); const server = helpers.getServer(ctx, hostname); - helpers.log(ctx, () => `returned ${numeralWrapper.formatRAM(server.maxRam)}`); + helpers.log(ctx, () => `returned ${formatRam(server.maxRam)}`); return server.maxRam; }, getServerUsedRam: (ctx) => (_hostname) => { const hostname = helpers.string(ctx, "hostname", _hostname); const server = helpers.getServer(ctx, hostname); - helpers.log(ctx, () => `returned ${numeralWrapper.formatRAM(server.ramUsed)}`); + helpers.log(ctx, () => `returned ${formatRam(server.ramUsed)}`); return server.ramUsed; }, serverExists: (ctx) => (_hostname) => { @@ -1273,7 +1273,7 @@ export const ns: InternalAPI = { } if (Player.money < cost) { - helpers.log(ctx, () => `Not enough money to purchase server. Need ${numeralWrapper.formatMoney(cost)}`); + helpers.log(ctx, () => `Not enough money to purchase server. Need ${formatMoney(cost)}`); return ""; } const newServ = safelyCreateUniqueServer({ @@ -1292,10 +1292,7 @@ export const ns: InternalAPI = { homeComputer.serversOnNetwork.push(newServ.hostname); newServ.serversOnNetwork.push(homeComputer.hostname); Player.loseMoney(cost, "servers"); - helpers.log( - ctx, - () => `Purchased new server with hostname '${newServ.hostname}' for ${numeralWrapper.formatMoney(cost)}`, - ); + helpers.log(ctx, () => `Purchased new server with hostname '${newServ.hostname}' for ${formatMoney(cost)}`); return newServ.hostname; }, @@ -1685,14 +1682,33 @@ export const ns: InternalAPI = { } return runningScript.onlineExpGained / runningScript.onlineRunningTime; }, + formatNumber: + (ctx) => + (_n, _fractionalDigits = 3, _suffixStart = 1000, isInteger) => { + const n = helpers.number(ctx, "n", _n); + const fractionalDigits = helpers.number(ctx, "fractionalDigits", _fractionalDigits); + const suffixStart = helpers.number(ctx, "suffixStart", _suffixStart); + return formatNumber(n, fractionalDigits, suffixStart, !!isInteger); + }, + formatRam: + (ctx) => + (_n, _fractionalDigits = 2) => { + const n = helpers.number(ctx, "n", _n); + const fractionalDigits = helpers.number(ctx, "fractionalDigits", _fractionalDigits); + return formatRam(n, fractionalDigits); + }, + formatPercent: + (ctx) => + (_n, _fractionalDigits = 2) => { + const n = helpers.number(ctx, "n", _n); + const fractionalDigits = helpers.number(ctx, "fractionalDigits", _fractionalDigits); + return formatPercent(n, fractionalDigits); + }, + // Todo: Remove function in 2.3. Until then it just directly wraps numeral. nFormat: (ctx) => (_n, _format) => { const n = helpers.number(ctx, "n", _n); const format = helpers.string(ctx, "format", _format); - if (isNaN(n)) { - return ""; - } - - return numeralWrapper.format(n, format); + return numeral(n).format(format); }, tFormat: (ctx) => (_milliseconds, _milliPrecision) => { const milliseconds = helpers.number(ctx, "milliseconds", _milliseconds); diff --git a/src/NetscriptFunctions/Singularity.ts b/src/NetscriptFunctions/Singularity.ts index 5f716026f..1601a017f 100644 --- a/src/NetscriptFunctions/Singularity.ts +++ b/src/NetscriptFunctions/Singularity.ts @@ -22,7 +22,7 @@ import { Page } from "../ui/Router"; import { Locations } from "../Locations/Locations"; import { GetServer } from "../Server/AllServers"; import { Programs } from "../Programs/Programs"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatMoney, formatRam, formatReputation } from "../ui/formatNumber"; import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers"; import { Company } from "../Company/Company"; import { Companies } from "../Company/Companies"; @@ -458,10 +458,7 @@ export function NetscriptSingularity(): InternalAPI { } if (Player.money < item.price) { - helpers.log( - ctx, - () => `Not enough money to purchase '${item.program}'. Need ${numeralWrapper.formatMoney(item.price)}`, - ); + helpers.log(ctx, () => `Not enough money to purchase '${item.program}'. Need ${formatMoney(item.price)}`); return false; } @@ -625,7 +622,7 @@ export function NetscriptSingularity(): InternalAPI { const cost = Player.getUpgradeHomeCoresCost(); if (Player.money < cost) { - helpers.log(ctx, () => `You don't have enough money. Need ${numeralWrapper.formatMoney(cost)}`); + helpers.log(ctx, () => `You don't have enough money. Need ${formatMoney(cost)}`); return false; } @@ -656,7 +653,7 @@ export function NetscriptSingularity(): InternalAPI { const cost = Player.getUpgradeHomeRamCost(); if (Player.money < cost) { - helpers.log(ctx, () => `You don't have enough money. Need ${numeralWrapper.formatMoney(cost)}`); + helpers.log(ctx, () => `You don't have enough money. Need ${formatMoney(cost)}`); return false; } @@ -666,10 +663,7 @@ export function NetscriptSingularity(): InternalAPI { Player.gainIntelligenceExp(CONSTANTS.IntelligenceSingFnBaseExpGain * 2); helpers.log( ctx, - () => - `Purchased additional RAM for home computer! It now has ${numeralWrapper.formatRAM( - homeComputer.maxRam, - )} of RAM.`, + () => `Purchased additional RAM for home computer! It now has ${formatRam(homeComputer.maxRam)} of RAM.`, ); return true; }, @@ -979,10 +973,7 @@ export function NetscriptSingularity(): InternalAPI { return false; } if (Player.money < amt) { - helpers.log( - ctx, - () => `You do not have enough money to donate ${numeralWrapper.formatMoney(amt)} to '${facName}'`, - ); + helpers.log(ctx, () => `You do not have enough money to donate ${formatMoney(amt)} to '${facName}'`); return false; } const repNeededToDonate = Math.floor(CONSTANTS.BaseFavorToDonate * BitNodeMultipliers.RepToDonateToFaction); @@ -997,13 +988,7 @@ export function NetscriptSingularity(): InternalAPI { const repGain = (amt / CONSTANTS.DonateMoneyToRepDivisor) * Player.mults.faction_rep; faction.playerReputation += repGain; Player.loseMoney(amt, "other"); - helpers.log( - ctx, - () => - `${numeralWrapper.formatMoney(amt)} donated to '${facName}' for ${numeralWrapper.formatReputation( - repGain, - )} reputation`, - ); + helpers.log(ctx, () => `${formatMoney(amt)} donated to '${facName}' for ${formatReputation(repGain)} reputation`); return true; }, createProgram: diff --git a/src/PersonObjects/Grafting/ui/GraftingRoot.tsx b/src/PersonObjects/Grafting/ui/GraftingRoot.tsx index fb800d44a..dc03b91db 100644 --- a/src/PersonObjects/Grafting/ui/GraftingRoot.tsx +++ b/src/PersonObjects/Grafting/ui/GraftingRoot.tsx @@ -15,7 +15,8 @@ import { Router } from "../../../ui/GameRoot"; import { Page } from "../../../ui/Router"; import { ConfirmationModal } from "../../../ui/React/ConfirmationModal"; import { Money } from "../../../ui/React/Money"; -import { convertTimeMsToTimeElapsedString, formatNumber } from "../../../utils/StringHelperFunctions"; +import { formatNumberNoSuffix } from "../../../ui/formatNumber"; +import { convertTimeMsToTimeElapsedString } from "../../../utils/StringHelperFunctions"; import { Player } from "@player"; import { GraftableAugmentation } from "../GraftableAugmentation"; import { calculateGraftingTimeWithBonus, getGraftingAvailableAugs } from "../GraftingHelpers"; @@ -223,7 +224,7 @@ export const GraftingRoot = (): React.ReactElement => { Entropy strength: {Player.entropy}
All multipliers decreased by:{" "} - {formatNumber((1 - CONSTANTS.EntropyEffect ** Player.entropy) * 100, 3)}% (multiplicative) + {formatNumberNoSuffix((1 - CONSTANTS.EntropyEffect ** Player.entropy) * 100, 3)}% (multiplicative) diff --git a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts index b3da61ad3..9850c15b1 100644 --- a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts +++ b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts @@ -34,7 +34,7 @@ import { SourceFiles } from "../../SourceFile/SourceFiles"; import { getHospitalizationCost } from "../../Hospital/Hospital"; import { HacknetServer } from "../../Hacknet/HacknetServer"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatMoney } from "../../ui/formatNumber"; import { MoneySourceTracker } from "../../utils/MoneySourceTracker"; import { dialogBoxCreate } from "../../ui/React/DialogBox"; @@ -257,7 +257,7 @@ export function takeDamage(this: PlayerObject, amt: number): boolean { export function hospitalize(this: PlayerObject): number { const cost = getHospitalizationCost(); - SnackbarEvents.emit(`You've been Hospitalized for ${numeralWrapper.formatMoney(cost)}`, ToastVariant.SUCCESS, 2000); + SnackbarEvents.emit(`You've been Hospitalized for ${formatMoney(cost)}`, ToastVariant.SUCCESS, 2000); this.loseMoney(cost, "hospitalization"); this.hp.current = this.hp.max; @@ -1164,7 +1164,7 @@ export function gainCodingContractReward( default: { const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * BitNodeMultipliers.CodingContractMoney; this.gainMoney(moneyGain, "codingcontract"); - return `Gained ${numeralWrapper.formatMoney(moneyGain)}`; + return `Gained ${formatMoney(moneyGain)}`; } } /* eslint-enable no-case-declarations */ diff --git a/src/PersonObjects/Sleeve/Sleeve.ts b/src/PersonObjects/Sleeve/Sleeve.ts index f399be09a..050ba2ef0 100644 --- a/src/PersonObjects/Sleeve/Sleeve.ts +++ b/src/PersonObjects/Sleeve/Sleeve.ts @@ -23,7 +23,7 @@ import { CityName, CrimeType, GymType, LocationName, UniversityClassType } from import { Factions } from "../../Faction/Factions"; import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from "../../utils/JSONReviver"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatPercent } from "../../ui/formatNumber"; import { FactionWorkType } from "../../Enums"; import { Work } from "./Work/Work"; import { SleeveClassWork } from "./Work/SleeveClassWork"; @@ -438,7 +438,7 @@ export class Sleeve extends Person implements SleevePerson { if (chances[0] >= 1) { return "100%"; } else { - return `${numeralWrapper.formatPercentage(chances[0])} - ${numeralWrapper.formatPercentage(chances[1])}`; + return `${formatPercent(chances[0])} - ${formatPercent(chances[1])}`; } } diff --git a/src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx b/src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx index 297073156..4b830aed2 100644 --- a/src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx +++ b/src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx @@ -7,7 +7,7 @@ import React, { useState } from "react"; import { Sleeve } from "../Sleeve"; import { Player } from "@player"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatSleeveMemory } from "../../../ui/formatNumber"; import { Money } from "../../../ui/React/Money"; import Typography from "@mui/material/Typography"; @@ -80,7 +80,7 @@ export function CovenantSleeveMemoryUpgrade(props: IProps): React.ReactElement { Purchase a memory upgrade for your sleeve. Note that a sleeve's max memory is 100 (current:{" "} - {numeralWrapper.formatSleeveMemory(props.sleeve.memory)}) + {formatSleeveMemory(props.sleeve.memory)}) diff --git a/src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx b/src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx index 23a0c7ef0..fdc29f7eb 100644 --- a/src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx +++ b/src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx @@ -1,5 +1,5 @@ import { Sleeve } from "../Sleeve"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatExp, formatPercent } from "../../../ui/formatNumber"; import { convertTimeMsToTimeElapsedString } from "../../../utils/StringHelperFunctions"; import { CONSTANTS } from "../../../Constants"; import { Typography } from "@mui/material"; @@ -18,74 +18,39 @@ export function MoreStatsModal(props: IProps): React.ReactElement { Hacking: , - props.sleeve.skills.hacking, - <> ({numeralWrapper.formatExp(props.sleeve.exp.hacking)} exp), - ], - [ - <>Strength: , - props.sleeve.skills.strength, - <> ({numeralWrapper.formatExp(props.sleeve.exp.strength)} exp), - ], - [ - <>Defense: , - props.sleeve.skills.defense, - <> ({numeralWrapper.formatExp(props.sleeve.exp.defense)} exp), - ], + [<>Hacking: , props.sleeve.skills.hacking, <> ({formatExp(props.sleeve.exp.hacking)} exp)], + [<>Strength: , props.sleeve.skills.strength, <> ({formatExp(props.sleeve.exp.strength)} exp)], + [<>Defense: , props.sleeve.skills.defense, <> ({formatExp(props.sleeve.exp.defense)} exp)], [ <>Dexterity: , props.sleeve.skills.dexterity, - <> ({numeralWrapper.formatExp(props.sleeve.exp.dexterity)} exp), - ], - [ - <>Agility: , - props.sleeve.skills.agility, - <> ({numeralWrapper.formatExp(props.sleeve.exp.agility)} exp), - ], - [ - <>Charisma: , - props.sleeve.skills.charisma, - <> ({numeralWrapper.formatExp(props.sleeve.exp.charisma)} exp), + <> ({formatExp(props.sleeve.exp.dexterity)} exp), ], + [<>Agility: , props.sleeve.skills.agility, <> ({formatExp(props.sleeve.exp.agility)} exp)], + [<>Charisma: , props.sleeve.skills.charisma, <> ({formatExp(props.sleeve.exp.charisma)} exp)], ]} title="Stats:" />
Hacking Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.hacking)], - [<>Hacking Experience multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.hacking_exp)], - [<>Strength Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.strength)], - [ - <>Strength Experience multiplier: , - numeralWrapper.formatPercentage(props.sleeve.mults.strength_exp), - ], - [<>Defense Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.defense)], - [<>Defense Experience multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.defense_exp)], - [<>Dexterity Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.dexterity)], - [ - <>Dexterity Experience multiplier: , - numeralWrapper.formatPercentage(props.sleeve.mults.dexterity_exp), - ], - [<>Agility Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.agility)], - [<>Agility Experience multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.agility_exp)], - [<>Charisma Level multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.charisma)], - [ - <>Charisma Experience multiplier: , - numeralWrapper.formatPercentage(props.sleeve.mults.charisma_exp), - ], - [ - <>Faction Reputation Gain multiplier: , - numeralWrapper.formatPercentage(props.sleeve.mults.faction_rep), - ], - [ - <>Company Reputation Gain multiplier: , - numeralWrapper.formatPercentage(props.sleeve.mults.company_rep), - ], - [<>Salary multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.work_money)], - [<>Crime Money multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.crime_money)], - [<>Crime Success multiplier: , numeralWrapper.formatPercentage(props.sleeve.mults.crime_success)], + [<>Hacking Level multiplier: , formatPercent(props.sleeve.mults.hacking)], + [<>Hacking Experience multiplier: , formatPercent(props.sleeve.mults.hacking_exp)], + [<>Strength Level multiplier: , formatPercent(props.sleeve.mults.strength)], + [<>Strength Experience multiplier: , formatPercent(props.sleeve.mults.strength_exp)], + [<>Defense Level multiplier: , formatPercent(props.sleeve.mults.defense)], + [<>Defense Experience multiplier: , formatPercent(props.sleeve.mults.defense_exp)], + [<>Dexterity Level multiplier: , formatPercent(props.sleeve.mults.dexterity)], + [<>Dexterity Experience multiplier: , formatPercent(props.sleeve.mults.dexterity_exp)], + [<>Agility Level multiplier: , formatPercent(props.sleeve.mults.agility)], + [<>Agility Experience multiplier: , formatPercent(props.sleeve.mults.agility_exp)], + [<>Charisma Level multiplier: , formatPercent(props.sleeve.mults.charisma)], + [<>Charisma Experience multiplier: , formatPercent(props.sleeve.mults.charisma_exp)], + [<>Faction Reputation Gain multiplier: , formatPercent(props.sleeve.mults.faction_rep)], + [<>Company Reputation Gain multiplier: , formatPercent(props.sleeve.mults.company_rep)], + [<>Salary multiplier: , formatPercent(props.sleeve.mults.work_money)], + [<>Crime Money multiplier: , formatPercent(props.sleeve.mults.crime_money)], + [<>Crime Success multiplier: , formatPercent(props.sleeve.mults.crime_success)], ]} title="Multipliers:" /> diff --git a/src/PersonObjects/Sleeve/ui/SleeveElem.tsx b/src/PersonObjects/Sleeve/ui/SleeveElem.tsx index 94ebbbaca..ce41749d3 100644 --- a/src/PersonObjects/Sleeve/ui/SleeveElem.tsx +++ b/src/PersonObjects/Sleeve/ui/SleeveElem.tsx @@ -3,7 +3,7 @@ import React, { useState } from "react"; import { FactionWorkType } from "../../../Enums"; import { CONSTANTS } from "../../../Constants"; import { Player } from "@player"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { formatPercent } from "../../../ui/formatNumber"; import { ProgressBar } from "../../../ui/React/Progress"; import { Sleeve } from "../Sleeve"; import { MoreStatsModal } from "./MoreStatsModal"; @@ -77,7 +77,7 @@ export function SleeveElem(props: IProps): React.ReactElement { desc = ( <> This sleeve is currently attempting {crime.workName} (Success Rate:{" "} - {numeralWrapper.formatPercentage(crime.successRate(props.sleeve))}). + {formatPercent(crime.successRate(props.sleeve))}). ); } diff --git a/src/PersonObjects/Sleeve/ui/StatsElement.tsx b/src/PersonObjects/Sleeve/ui/StatsElement.tsx index c44135813..6600bf5d0 100644 --- a/src/PersonObjects/Sleeve/ui/StatsElement.tsx +++ b/src/PersonObjects/Sleeve/ui/StatsElement.tsx @@ -4,7 +4,13 @@ import { Typography, Table, TableBody, TableCell, TableRow } from "@mui/material import { CONSTANTS } from "../../../Constants"; -import { numeralWrapper } from "../../../ui/numeralFormat"; +import { + formatExp, + formatHp, + formatSleeveMemory, + formatSleeveShock, + formatSleeveSynchro, +} from "../../../ui/formatNumber"; import { Settings } from "../../../Settings/Settings"; import { StatsRow } from "../../../ui/React/StatsRow"; import { characterOverviewStyles as useStyles } from "../../../ui/React/CharacterOverview"; @@ -35,9 +41,7 @@ export function StatsElement(props: IProps): React.ReactElement { name="HP" color={Settings.theme.hp} data={{ - content: `${numeralWrapper.formatHp(props.sleeve.hp.current)} / ${numeralWrapper.formatHp( - props.sleeve.hp.max, - )}`, + content: `${formatHp(props.sleeve.hp.current)} / ${formatHp(props.sleeve.hp.max)}`, }} /> @@ -103,36 +107,36 @@ export function EarningsElement(props: IProps): React.ReactElement { const gains = props.sleeve.currentWork.getExp(props.sleeve); data = [ [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(gains.hackExp)}`], - [`Strength Exp:`, `${numeralWrapper.formatExp(gains.strExp)}`], - [`Defense Exp:`, `${numeralWrapper.formatExp(gains.defExp)}`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(gains.dexExp)}`], - [`Agility Exp:`, `${numeralWrapper.formatExp(gains.agiExp)}`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(gains.chaExp)}`], + [`Hacking Exp:`, `${formatExp(gains.hackExp)}`], + [`Strength Exp:`, `${formatExp(gains.strExp)}`], + [`Defense Exp:`, `${formatExp(gains.defExp)}`], + [`Dexterity Exp:`, `${formatExp(gains.dexExp)}`], + [`Agility Exp:`, `${formatExp(gains.agiExp)}`], + [`Charisma Exp:`, `${formatExp(gains.chaExp)}`], ]; } if (isSleeveClassWork(props.sleeve.currentWork)) { const rates = props.sleeve.currentWork.calculateRates(props.sleeve); data = [ [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], + [`Hacking Exp:`, `${formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], + [`Strength Exp:`, `${formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], + [`Defense Exp:`, `${formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], + [`Dexterity Exp:`, `${formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], + [`Agility Exp:`, `${formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], + [`Charisma Exp:`, `${formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], ]; } if (isSleeveFactionWork(props.sleeve.currentWork)) { const rates = props.sleeve.currentWork.getExpRates(props.sleeve); const repGain = props.sleeve.currentWork.getReputationRate(props.sleeve); data = [ - [`Hacking Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], + [`Hacking Exp:`, `${formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], + [`Strength Exp:`, `${formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], + [`Defense Exp:`, `${formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], + [`Dexterity Exp:`, `${formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], + [`Agility Exp:`, `${formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], + [`Charisma Exp:`, `${formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], [`Reputation:`, ], ]; } @@ -141,12 +145,12 @@ export function EarningsElement(props: IProps): React.ReactElement { const rates = props.sleeve.currentWork.getGainRates(props.sleeve); data = [ [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], + [`Hacking Exp:`, `${formatExp(CYCLES_PER_SEC * rates.hackExp)} / sec`], + [`Strength Exp:`, `${formatExp(CYCLES_PER_SEC * rates.strExp)} / sec`], + [`Defense Exp:`, `${formatExp(CYCLES_PER_SEC * rates.defExp)} / sec`], + [`Dexterity Exp:`, `${formatExp(CYCLES_PER_SEC * rates.dexExp)} / sec`], + [`Agility Exp:`, `${formatExp(CYCLES_PER_SEC * rates.agiExp)} / sec`], + [`Charisma Exp:`, `${formatExp(CYCLES_PER_SEC * rates.chaExp)} / sec`], [`Reputation:`, ], ]; } diff --git a/src/Programs/data/ProgramsMetadata.ts b/src/Programs/data/ProgramsMetadata.ts index 106138f6c..594befad0 100644 --- a/src/Programs/data/ProgramsMetadata.ts +++ b/src/Programs/data/ProgramsMetadata.ts @@ -6,7 +6,7 @@ import { Terminal } from "../../Terminal"; import { Player } from "@player"; import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; import { GetServer } from "../../Server/AllServers"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatMoney } from "../../ui/formatNumber"; import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers"; import { BitFlumeEvent } from "../../BitNode/ui/BitFlumeModal"; import { calculateHackingTime, calculateGrowTime, calculateWeakenTime } from "../../Hacking"; @@ -311,7 +311,7 @@ export const programsMetadata: IProgramCreationParams[] = [ Player.augmentations.length >= numAugReq && Player.money > 1e11 && Player.skills.hacking >= 2500; if (!fulfilled) { Terminal.print(`Augmentations: ${Player.augmentations.length} / ${numAugReq}`); - Terminal.print(`Money: ${numeralWrapper.formatMoney(Player.money)} / $100b`); + Terminal.print(`Money: ${formatMoney(Player.money)} / $100b`); Terminal.print(`Hacking skill: ${Player.skills.hacking} / 2500`); return; } diff --git a/src/Script/ScriptHelpers.ts b/src/Script/ScriptHelpers.ts index 84aafc883..1097584f4 100644 --- a/src/Script/ScriptHelpers.ts +++ b/src/Script/ScriptHelpers.ts @@ -6,7 +6,7 @@ import { RunningScript } from "./RunningScript"; import { processSingleServerGrowth } from "../Server/ServerHelpers"; import { GetServer } from "../Server/AllServers"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatPercent } from "../ui/formatNumber"; import { compareArrays } from "../utils/helpers/compareArrays"; @@ -44,9 +44,7 @@ export function scriptCalculateOfflineProduction(runningScript: RunningScript): if (host === null) throw new Error("getServer of null key?"); if (!(serv instanceof Server)) throw new Error("trying to grow a non-normal server"); const growth = processSingleServerGrowth(serv, timesGrown, host.cpuCores); - runningScript.log( - `'${serv.hostname}' grown by ${numeralWrapper.format(growth * 100 - 100, "0.000000%")} while offline`, - ); + runningScript.log(`'${serv.hostname}' grown by ${formatPercent(growth - 1, 6)} while offline`); } } diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 04e6e9252..9daad20ce 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -1001,7 +1001,7 @@ interface NetscriptPort { * Stock market API * @public */ -export type TIX = { +export interface TIX { /** * Returns true if the player has access to a WSE Account * @remarks RAM cost: 0.05 GB @@ -1440,7 +1440,7 @@ export type TIX = { * @returns True if you successfully purchased it or if you already have access, false otherwise. */ purchaseTixApi(): boolean; -}; +} /** * Singularity API @@ -1449,7 +1449,7 @@ export type TIX = { * Source-File 4 levels. * @public */ -export type Singularity = { +export interface Singularity { /** * Backup game save. * @remarks @@ -2293,7 +2293,7 @@ export type Singularity = { * @returns - An object representing the current work. Fields depend on the kind of work. */ getCurrentWork(): any | null; -}; +} /** * Hacknet API @@ -2301,7 +2301,7 @@ export type Singularity = { * Not all these functions are immediately available. * @public */ -export type Hacknet = { +export interface Hacknet { /** * Get the number of hacknet nodes you own. * @remarks @@ -2652,7 +2652,7 @@ export type Hacknet = { * @returns Multiplier. */ getTrainingMult(): number; -}; +} /** * Bladeburner API @@ -2661,7 +2661,7 @@ export type Hacknet = { * or have Source-File 7 in order to use this API. * @public */ -export type Bladeburner = { +export interface Bladeburner { /** * List all contracts. * @remarks @@ -3162,13 +3162,13 @@ export type Bladeburner = { * * @returns whether player is a member of bladeburner division. */ inBladeburner(): boolean; -}; +} /** * Coding Contract API * @public */ -export type CodingContract = { +export interface CodingContract { /** * Attempts a coding contract, returning a reward string on success or empty string on failure. * @remarks @@ -3273,7 +3273,7 @@ export type CodingContract = { * RAM cost: 2 GB */ getContractTypes(): string[]; -}; +} /** * Gang API @@ -3281,7 +3281,7 @@ export type CodingContract = { * If you are not in BitNode-2, then you must have Source-File 2 in order to use this API. * @public */ -export type Gang = { +export interface Gang { /** * Create a gang. * @remarks @@ -3540,7 +3540,7 @@ export type Gang = { * @returns Bonus time for the Gang mechanic in milliseconds. */ getBonusTime(): number; -}; +} /** * Sleeve API @@ -3548,7 +3548,7 @@ export type Gang = { * If you are not in BitNode-10, then you must have Source-File 10 in order to use this API. * @public */ -export type Sleeve = { +export interface Sleeve { /** * Get the number of sleeves you own. * @remarks @@ -3778,7 +3778,7 @@ export type Sleeve = { * @returns True if the sleeve started working out, false otherwise. */ setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): boolean; -}; +} /** * Grafting API @@ -3786,7 +3786,7 @@ export type Sleeve = { * This API requires Source-File 10 to use. * @public */ -export type Grafting = { +export interface Grafting { /** * Retrieve the grafting cost of an aug. * @remarks @@ -3833,13 +3833,13 @@ export type Grafting = { * @throws Will error if called while you are not in New Tokyo. */ graftAugmentation(augName: string, focus?: boolean): boolean; -}; +} /** * Skills formulas * @public */ -type SkillsFormulas = { +interface SkillsFormulas { /** * Calculate skill level. * @param exp - experience for that skill @@ -3854,7 +3854,7 @@ type SkillsFormulas = { * @returns The calculated exp required. */ calculateExp(skill: number, skillMult?: number): number; -}; +} /** @public */ interface WorkStats { @@ -3873,7 +3873,7 @@ interface WorkStats { * Work formulas * @public */ -type WorkFormulas = { +interface WorkFormulas { crimeSuccessChance(person: Person, crimeType: CrimeType | `${CrimeType}`): number; /** @returns The WorkStats gained when completing one instance of the specified crime. */ crimeGains(person: Person, crimeType: CrimeType | `${CrimeType}`): WorkStats; @@ -3889,13 +3889,13 @@ type WorkFormulas = { factionGains(person: Person, workType: FactionWorkType | `${FactionWorkType}`, favor: number): WorkStats; /** @returns The WorkStats applied every game cycle (200ms) by performing the specified company work. */ companyGains(person: Person, companyName: string, workType: JobName | `${JobName}`, favor: number): WorkStats; -}; +} /** * Reputation formulas * @public */ -type ReputationFormulas = { +interface ReputationFormulas { /** * Calculate the total required amount of faction reputation to reach a target favor. * @param favor - target faction favor. @@ -3916,13 +3916,13 @@ type ReputationFormulas = { * @param player - Player info from {@link NS.getPlayer | getPlayer} */ repFromDonation(amount: number, player: Person): number; -}; +} /** * Hacking formulas * @public */ -type HackingFormulas = { +interface HackingFormulas { /** * Calculate hack chance. * (Ex: 0.25 would indicate a 25% chance of success.) @@ -3982,13 +3982,13 @@ type HackingFormulas = { * @returns The calculated weaken time. */ weakenTime(server: Server, player: Person): number; -}; +} /** * Hacknet Node formulas * @public */ -type HacknetNodesFormulas = { +interface HacknetNodesFormulas { /** * Calculate money gain rate. * @param level - level of the node. @@ -4034,13 +4034,13 @@ type HacknetNodesFormulas = { * @returns An object with all hacknet node constants used by the game. */ constants(): HacknetNodeConstants; -}; +} /** * Hacknet Server formulas * @public */ -type HacknetServersFormulas = { +interface HacknetServersFormulas { /** * Calculate hash gain rate. * @param level - level of the server. @@ -4101,13 +4101,13 @@ type HacknetServersFormulas = { * @returns An object with all hacknet server constants used by the game. */ constants(): HacknetServerConstants; -}; +} /** * Gang formulas * @public */ -type GangFormulas = { +interface GangFormulas { /** * Calculate the wanted penalty. * @param gang - Gang info from {@link Gang.getGangInformation | getGangInformation} @@ -4152,7 +4152,7 @@ type GangFormulas = { * @returns The calculated ascension mult. */ ascensionMultiplier(points: number): number; -}; +} /** * Formulas API @@ -4160,7 +4160,7 @@ type GangFormulas = { * You need Formulas.exe on your home computer to use this API. * @public */ -export type Formulas = { +export interface Formulas { mockServer(): Server; mockPlayer(): Player; mockPerson(): Person; @@ -4178,7 +4178,7 @@ export type Formulas = { gang: GangFormulas; /** Work formulas */ work: WorkFormulas; -}; +} /** @public */ interface Fragment { @@ -4203,7 +4203,7 @@ interface ActiveFragment { * Stanek's Gift API. * @public */ -type Stanek = { +interface Stanek { /** * Stanek's Gift width. * @remarks @@ -4309,7 +4309,7 @@ type Stanek = { * false otherwise. */ acceptGift(): boolean; -}; +} /** @public */ interface InfiltrationReward { @@ -4335,7 +4335,7 @@ interface InfiltrationLocation { * Infiltration API. * @public */ -type Infiltration = { +interface Infiltration { /** * Get all locations that can be infiltrated. * @remarks @@ -4352,13 +4352,13 @@ type Infiltration = { * @returns Infiltration data for given location. */ getInfiltration(location: string): InfiltrationLocation; -}; +} /** * User Interface API. * @public */ -type UserInterface = { +interface UserInterface { /** * Get the current window size * @remarks @@ -4441,7 +4441,7 @@ type UserInterface = { * RAM cost: 0.2 GB */ clearTerminal(): void; -}; +} /** * Collection of all functions passed to scripts @@ -4470,7 +4470,7 @@ type UserInterface = { * {@link https://bitburner-official.readthedocs.io/en/latest/netscript/netscriptjs.html| ns2 in-game docs} *
*/ -export type NS = { +export interface NS { /** * Namespace for hacknet functions. * @remarks RAM cost: 4 GB @@ -6546,14 +6546,63 @@ export type NS = { * @remarks * RAM cost: 0 GB * - * Converts a number into a string with the specified formatter. - * This uses the numeral.js library, so the formatters must be compatible with that. - * This is the same function that the game itself uses to display numbers. - * - * For more information, see: http://numeraljs.com/ + * Converts a number into a numeric string with the specified format options. + * This is the same function that the game itself uses to display numbers. The format also depends on the Numeric + * Display settings (all options on the "Numeric Display" options page) + * To format ram or percentages, see {@link NS.formatRam | formatRam} and {@link NS.formatPercent | formatPercent} * * @param n - Number to format. - * @param format - Formatter. + * @param fractionalDigits - Number of digits to show in the fractional part of the decimal number. Optional, defaults to 3. + * @param suffixStart - How high a number must be before a suffix will be added. Optional, defaults to 1000. + * @param isInteger - Whether the number represents an integer. Integers do not display fractional digits until a suffix is present. Optional, defaults to false. + * @returns Formatted number. + */ + formatNumber(n: number, fractionalDigits?: number, suffixStart?: number, isInteger?: boolean): string; + + /** + * Format a number as an amount of ram. + * @remarks + * RAM cost: 0 GB + * + * Converts a number into a ram string with the specified number of fractional digits. + * This is the same function that the game itself uses to display ram. The format also depends on the Numeric Display + * settings (all options on the "Numeric Display" options page) + * To format plain numbers or percentages, see {@link NS.formatNumber | formatNumber} and {@link NS.formatPercent | formatPercent} + * + * @param n - Number to format as an amount of ram, in base units of GB (or GiB if that Numeric Display option is set). + * @param fractionalDigits - Number of digits to show in the fractional part of the decimal number. Optional, defaults to 2. + * @returns Formatted ram amount. + */ + formatRam(n: number, fractionalDigits?: number): string; + + /** + * Format a number as a percentage. + * @remarks + * RAM cost: 0 GB + * + * Converts a number into a percentage string with the specified number of fractional digits. + * This is the same function that the game itself uses to display percentages. The format also depends on the Numeric + * Display settings (all options on the "Numeric Display" options page) + * To format plain numbers or ram, see {@link NS.formatNumber | formatNumber} and {@link NS.formatRam | formatRam} + * + * @param n - Number to format as a percentage. + * @param fractionalDigits - Number of digits to show in the fractional part of the decimal number. Optional, defaults to 2. + * @returns Formatted percentage. + */ + formatPercent(n: number, fractionalDigits?: number): string; + + /** + * Format a number using the numeral library. This function is deprecated and will be removed in 2.3. + * @remarks + * RAM cost: 0 GB + * + * Converts a number into a string with the specified format options. + * See http://numeraljs.com/#format for documentation on format strings supported. + * + * This function is deprecated and will be removed in 2.3. + * + * @param n - Number to format. + * @param format - Formatting options. See http://numeraljs.com/#format for valid formats. * @returns Formatted number. */ nFormat(n: number, format: string): string; @@ -6867,7 +6916,7 @@ export type NS = { getSharePower(): number; enums: NSEnums; -}; +} // BASE ENUMS /** @public */ @@ -7087,7 +7136,7 @@ export type NSEnums = { * @public */ -export type OfficeAPI = { +export interface OfficeAPI { /** * Hire an employee. * @param divisionName - Name of the division @@ -7179,7 +7228,7 @@ export type OfficeAPI = { * @returns Cost of upgrading the office */ getOfficeSizeUpgradeCost(divisionName: string, city: CityName | `${CityName}`, asize: number): number; -}; +} /** * Corporation Warehouse API @@ -7187,7 +7236,7 @@ export type OfficeAPI = { * Requires the Warehouse API upgrade from your corporation. * @public */ -export type WarehouseAPI = { +export interface WarehouseAPI { /** * Set material sell data. * @param divisionName - Name of the division @@ -7410,13 +7459,13 @@ export type WarehouseAPI = { * @returns true if warehouse is present, false if not */ hasWarehouse(divisionName: string, city: CityName | `${CityName}`): boolean; -}; +} /** * Corporation API * @public */ -export type Corporation = { +export interface Corporation extends WarehouseAPI, OfficeAPI { /** Returns whether the player has a corporation. Does not require API access. * @returns whether the player has a corporation */ hasCorporation(): boolean; @@ -7527,12 +7576,11 @@ export type Corporation = { * “Bonus time” makes the game progress faster. * @returns Bonus time for the Corporation mechanic in milliseconds. */ getBonusTime(): number; -} & WarehouseAPI & - OfficeAPI; +} /** Product rating information * @public */ -type CorpProductData = { +interface CorpProductData { /** Name of the product */ name: string; /** Verb used to describe creation of the product */ @@ -7548,7 +7596,7 @@ type CorpProductData = { performance?: number; reliability?: number; }; -}; +} /** Data for an individual industry * @public */ diff --git a/src/ScriptEditor/ui/ScriptEditorRoot.tsx b/src/ScriptEditor/ui/ScriptEditorRoot.tsx index 0bc28ae90..870838032 100644 --- a/src/ScriptEditor/ui/ScriptEditorRoot.tsx +++ b/src/ScriptEditor/ui/ScriptEditorRoot.tsx @@ -16,7 +16,7 @@ import { Script } from "../../Script/Script"; import { TextFile } from "../../TextFile"; import { calculateRamUsage, checkInfiniteLoop } from "../../Script/RamCalculations"; import { RamCalculationErrorCode } from "../../Script/RamCalculationErrorCodes"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { DragDropContext, Droppable, Draggable } from "react-beautiful-dnd"; import SearchIcon from "@mui/icons-material/Search"; @@ -256,10 +256,10 @@ export function Root(props: IProps): React.ReactElement { const entries = ramUsage.entries?.sort((a, b) => b.cost - a.cost) ?? []; const entriesDisp = []; for (const entry of entries) { - entriesDisp.push([`${entry.name} (${entry.type})`, numeralWrapper.formatRAM(entry.cost)]); + entriesDisp.push([`${entry.name} (${entry.type})`, formatRam(entry.cost)]); } - setRAM("RAM: " + numeralWrapper.formatRAM(ramUsage.cost)); + setRAM("RAM: " + formatRam(ramUsage.cost)); setRamEntries(entriesDisp); return; } diff --git a/src/Settings/Settings.ts b/src/Settings/Settings.ts index a2c87e41b..c15c29f4d 100644 --- a/src/Settings/Settings.ts +++ b/src/Settings/Settings.ts @@ -85,6 +85,14 @@ export const Settings = { MonacoVim: false, /** Word wrap setting for Script Editor. */ MonacoWordWrap: "off" as WordWrapOptions, + /** Whether to hide trailing zeroes on fractional part of decimal */ + hideTrailingDecimalZeros: false, + /** Whether to hide thousands separators. */ + hideThousandsSeparator: false, + /** Whether to use engineering notation instead of scientific for exponentials. */ + useEngineeringNotation: false, + /** Whether to disable suffixes and always use exponential form (scientific or engineering). */ + disableSuffixes: false, load(saveString: string) { const save = JSON.parse(saveString); diff --git a/src/StockMarket/BuyingAndSelling.tsx b/src/StockMarket/BuyingAndSelling.tsx index c00aad37b..853d07bd7 100644 --- a/src/StockMarket/BuyingAndSelling.tsx +++ b/src/StockMarket/BuyingAndSelling.tsx @@ -14,7 +14,7 @@ import { PositionTypes } from "./data/PositionTypes"; import { CONSTANTS } from "../Constants"; import { Player } from "@player"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatMoney, formatShares } from "../ui/formatNumber"; import { Money } from "../ui/React/Money"; import { dialogBoxCreate } from "../ui/React/DialogBox"; @@ -67,8 +67,7 @@ export function buyStock( if (ctx) { helpers.log( ctx, - () => - `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`, + () => `You do not have enough money to purchase this position. You need ${formatMoney(totalPrice)}.`, ); } else if (opts.suppressDialog !== true) { dialogBoxCreate( @@ -93,7 +92,7 @@ export function buyStock( ); } else if (opts.suppressDialog !== true) { dialogBoxCreate( - `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares( + `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${formatShares( stock.maxShares, )} shares.`, ); @@ -113,16 +112,14 @@ export function buyStock( } if (ctx) { - const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${ - stock.symbol - } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney( - CONSTANTS.StockMarketCommission, - )} in commission fees.`; + const resultTxt = `Bought ${formatShares(shares)} shares of ${stock.symbol} for ${formatMoney( + totalPrice, + )}. Paid ${formatMoney(CONSTANTS.StockMarketCommission)} in commission fees.`; helpers.log(ctx, () => resultTxt); } else if (opts.suppressDialog !== true) { dialogBoxCreate( <> - Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{" "} + Bought {formatShares(shares)} shares of {stock.symbol} for . Paid{" "} in commission fees. , ); @@ -192,13 +189,13 @@ export function sellStock( if (ctx) { const resultTxt = - `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` + - `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`; + `Sold ${formatShares(shares)} shares of ${stock.symbol}. ` + + `After commissions, you gained a total of ${formatMoney(gains)}.`; helpers.log(ctx, () => resultTxt); } else if (opts.suppressDialog !== true) { dialogBoxCreate( <> - Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{" "} + Sold {formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{" "} . , ); @@ -247,10 +244,7 @@ export function shortStock( if (ctx) { helpers.log( ctx, - () => - "You do not have enough " + - "money to purchase this short position. You need " + - numeralWrapper.formatMoney(totalPrice), + () => "You do not have enough " + "money to purchase this short position. You need " + formatMoney(totalPrice), ); } else if (opts.suppressDialog !== true) { dialogBoxCreate( @@ -295,17 +289,15 @@ export function shortStock( if (ctx) { const resultTxt = - `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` + - `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney( - CONSTANTS.StockMarketCommission, - )} ` + + `Bought a short position of ${formatShares(shares)} shares of ${stock.symbol} ` + + `for ${formatMoney(totalPrice)}. Paid ${formatMoney(CONSTANTS.StockMarketCommission)} ` + `in commission fees.`; helpers.log(ctx, () => resultTxt); } else if (!opts.suppressDialog) { dialogBoxCreate( <> - Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{" "} - . Paid in commission fees. + Bought a short position of {formatShares(shares)} shares of {stock.symbol} for . + Paid in commission fees. , ); } @@ -385,14 +377,14 @@ export function sellShort( if (ctx) { const resultTxt = - `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` + - `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`; + `Sold your short position of ${formatShares(shares)} shares of ${stock.symbol}. ` + + `After commissions, you gained a total of ${formatMoney(totalGain)}`; helpers.log(ctx, () => resultTxt); } else if (!opts.suppressDialog) { dialogBoxCreate( <> - Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, - you gained a total of + Sold your short position of {formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a + total of , ); } diff --git a/src/StockMarket/OrderProcessing.tsx b/src/StockMarket/OrderProcessing.tsx index 51d14a0bd..d4fe9f4fa 100644 --- a/src/StockMarket/OrderProcessing.tsx +++ b/src/StockMarket/OrderProcessing.tsx @@ -11,7 +11,7 @@ import { Stock } from "./Stock"; import { OrderTypes } from "./data/OrderTypes"; import { PositionTypes } from "./data/PositionTypes"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatShares } from "../ui/formatNumber"; import { Money } from "../ui/React/Money"; import { dialogBoxCreate } from "../ui/React/DialogBox"; @@ -153,7 +153,7 @@ function executeOrder(order: Order, refs: IProcessOrderRefs): void { dialogBoxCreate( <> {order.type} for {stock.symbol} @ ({pos}) was filled ( - {numeralWrapper.formatShares(Math.round(order.shares))} shares) + {formatShares(Math.round(order.shares))} shares) , ); } diff --git a/src/StockMarket/StockMarket.tsx b/src/StockMarket/StockMarket.tsx index a851a1a1f..896e70f6d 100644 --- a/src/StockMarket/StockMarket.tsx +++ b/src/StockMarket/StockMarket.tsx @@ -10,7 +10,7 @@ import { PositionTypes } from "./data/PositionTypes"; import { StockSymbols } from "./data/StockSymbols"; import { CONSTANTS } from "../Constants"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatMoney } from "../ui/formatNumber"; import { dialogBoxCreate } from "../ui/React/DialogBox"; import { Reviver } from "../utils/JSONReviver"; @@ -106,7 +106,7 @@ export function cancelOrder(params: ICancelOrderParams, ctx?: NetscriptContext): ) { // Order properties are passed in. Need to look for the order const stockOrders = StockMarket["Orders"][params.stock.symbol]; - const orderTxt = params.stock.symbol + " - " + params.shares + " @ " + numeralWrapper.formatMoney(params.price); + const orderTxt = params.stock.symbol + " - " + params.shares + " @ " + formatMoney(params.price); for (let i = 0; i < stockOrders.length; ++i) { const order = stockOrders[i]; if ( diff --git a/src/StockMarket/ui/StockTicker.tsx b/src/StockMarket/ui/StockTicker.tsx index e31232a30..08ee634af 100644 --- a/src/StockMarket/ui/StockTicker.tsx +++ b/src/StockMarket/ui/StockTicker.tsx @@ -15,7 +15,7 @@ import { placeOrder } from "../StockMarket"; import { buyStock, shortStock, sellStock, sellShort } from "../BuyingAndSelling"; import { Player } from "@player"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatShares } from "../../ui/formatNumber"; import { Money } from "../../ui/React/Money"; import { dialogBoxCreate } from "../../ui/React/DialogBox"; @@ -75,7 +75,7 @@ export function StockTicker(props: IProps): React.ReactElement { return ( <> - Purchasing {numeralWrapper.formatShares(qty)} shares ({position === PositionTypes.Long ? "Long" : "Short"} + Purchasing {formatShares(qty)} shares ({position === PositionTypes.Long ? "Long" : "Short"} ) will cost . ); @@ -107,8 +107,8 @@ export function StockTicker(props: IProps): React.ReactElement { return ( <> - Selling {numeralWrapper.formatShares(qty)} shares ({position === PositionTypes.Long ? "Long" : "Short"}) will - result in a gain of . + Selling {formatShares(qty)} shares ({position === PositionTypes.Long ? "Long" : "Short"}) will result in a gain + of . ); } diff --git a/src/StockMarket/ui/StockTickerHeaderText.tsx b/src/StockMarket/ui/StockTickerHeaderText.tsx index 34084e22a..f46659860 100644 --- a/src/StockMarket/ui/StockTickerHeaderText.tsx +++ b/src/StockMarket/ui/StockTickerHeaderText.tsx @@ -10,7 +10,7 @@ import { TickerHeaderFormatData } from "../data/TickerHeaderFormatData"; import { Player } from "@player"; import { Settings } from "../../Settings/Settings"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatMoney, formatPercent } from "../../ui/formatNumber"; import Typography from "@mui/material/Typography"; type IProps = { @@ -22,7 +22,7 @@ const localesWithLongPriceFormat = ["cs", "lv", "pl", "ru"]; export function StockTickerHeaderText(props: IProps): React.ReactElement { const stock = props.stock; - const stockPriceFormat = numeralWrapper.formatMoney(stock.price); + const stockPriceFormat = formatMoney(stock.price); const spacesAllottedForStockPrice = localesWithLongPriceFormat.includes(Settings.Locale) ? 15 : 12; const spacesAfterStockName = " ".repeat( 1 + @@ -34,7 +34,7 @@ export function StockTickerHeaderText(props: IProps): React.ReactElement { let hdrText = `${stock.name}${spacesAfterStockName}${stock.symbol} -${spacesBeforePrice}${stockPriceFormat}`; if (Player.has4SData) { - hdrText += ` - Volatility: ${numeralWrapper.formatPercentage(stock.mv / 100)} - Price Forecast: `; + hdrText += ` - Volatility: ${formatPercent(stock.mv / 100)} - Price Forecast: `; let plusOrMinus = stock.b; // True for "+", false for "-" if (stock.otlkMag < 0) { plusOrMinus = !plusOrMinus; diff --git a/src/StockMarket/ui/StockTickerOrder.tsx b/src/StockMarket/ui/StockTickerOrder.tsx index ec2b13378..5db81d559 100644 --- a/src/StockMarket/ui/StockTickerOrder.tsx +++ b/src/StockMarket/ui/StockTickerOrder.tsx @@ -3,7 +3,7 @@ import * as React from "react"; import { Order } from "../Order"; import { PositionTypes } from "../data/PositionTypes"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatShares } from "../../ui/formatNumber"; import { Money } from "../../ui/React/Money"; import Typography from "@mui/material/Typography"; import Button from "@mui/material/Button"; @@ -25,7 +25,7 @@ export function StockTickerOrder(props: IProps): React.ReactElement { const posTxt = order.pos === PositionTypes.Long ? "Long Position" : "Short Position"; const txt = ( <> - {order.type} - {posTxt} - {numeralWrapper.formatShares(order.shares)} @ + {order.type} - {posTxt} - {formatShares(order.shares)} @ ); diff --git a/src/StockMarket/ui/StockTickerPositionText.tsx b/src/StockMarket/ui/StockTickerPositionText.tsx index 1a24aaae7..ff0878c7e 100644 --- a/src/StockMarket/ui/StockTickerPositionText.tsx +++ b/src/StockMarket/ui/StockTickerPositionText.tsx @@ -7,7 +7,7 @@ import * as React from "react"; import { Stock } from "../Stock"; import { Player } from "@player"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatPercent, formatShares } from "../../ui/formatNumber"; import { Money } from "../../ui/React/Money"; import Typography from "@mui/material/Typography"; import Tooltip from "@mui/material/Tooltip"; @@ -43,12 +43,12 @@ function LongPosition(props: IProps): React.ReactElement {
- Shares: {numeralWrapper.formatShares(stock.playerShares)} + Shares: {formatShares(stock.playerShares)} Average Price: (Total Cost: ) - Profit: ({numeralWrapper.formatPercentage(percentageGains)}) + Profit: ({formatPercent(percentageGains)}) ); @@ -82,12 +82,12 @@ function ShortPosition(props: IProps): React.ReactElement {
- Shares: {numeralWrapper.formatShares(stock.playerShortShares)} + Shares: {formatShares(stock.playerShortShares)} Average Price: (Total Cost: ) - Profit: ({numeralWrapper.formatPercentage(percentageGains)}) + Profit: ({formatPercent(percentageGains)}) ); @@ -101,7 +101,7 @@ export function StockTickerPositionText(props: IProps): React.ReactElement { return ( <> - Max Shares: {numeralWrapper.formatShares(stock.maxShares)} + Max Shares: {formatShares(stock.maxShares)} Ask Price: diff --git a/src/Terminal/Terminal.ts b/src/Terminal/Terminal.ts index c331e8b17..3bfa67b03 100644 --- a/src/Terminal/Terminal.ts +++ b/src/Terminal/Terminal.ts @@ -30,7 +30,7 @@ import { calculateGrowTime, calculateWeakenTime, } from "../Hacking"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatExp, formatMoney, formatPercent, formatRam, formatSecurity } from "../ui/formatNumber"; import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions"; // TODO: Does every terminal function really need its own file...? @@ -224,21 +224,17 @@ export class Terminal { const newSec = server.hackDifficulty; this.print( - `Hack successful on '${server.hostname}'! Gained ${numeralWrapper.formatMoney( - moneyGained, - )} and ${numeralWrapper.formatExp(expGainedOnSuccess)} hacking exp`, + `Hack successful on '${server.hostname}'! Gained ${formatMoney(moneyGained)} and ${formatExp( + expGainedOnSuccess, + )} hacking exp`, ); this.print( - `Security increased on '${server.hostname}' from ${numeralWrapper.formatSecurity( - oldSec, - )} to ${numeralWrapper.formatSecurity(newSec)}`, + `Security increased on '${server.hostname}' from ${formatSecurity(oldSec)} to ${formatSecurity(newSec)}`, ); } else { // Failure Player.gainHackingExp(expGainedOnFailure); - this.print( - `Failed to hack '${server.hostname}'. Gained ${numeralWrapper.formatExp(expGainedOnFailure)} hacking exp`, - ); + this.print(`Failed to hack '${server.hostname}'. Gained ${formatExp(expGainedOnFailure)} hacking exp`); } } @@ -257,15 +253,12 @@ export class Terminal { Player.gainHackingExp(expGain); this.print( - `Available money on '${server.hostname}' grown by ${numeralWrapper.formatPercentage( - growth, - 6, - )}. Gained ${numeralWrapper.formatExp(expGain)} hacking exp.`, + `Available money on '${server.hostname}' grown by ${formatPercent(growth, 6)}. Gained ${formatExp( + expGain, + )} hacking exp.`, ); this.print( - `Security increased on '${server.hostname}' from ${numeralWrapper.formatSecurity( - oldSec, - )} to ${numeralWrapper.formatSecurity(newSec)}`, + `Security increased on '${server.hostname}' from ${formatSecurity(oldSec)} to ${formatSecurity(newSec)}`, ); } @@ -284,10 +277,9 @@ export class Terminal { Player.gainHackingExp(expGain); this.print( - `Security decreased on '${server.hostname}' from ${numeralWrapper.formatSecurity( - oldSec, - )} to ${numeralWrapper.formatSecurity(newSec)} (min: ${numeralWrapper.formatSecurity(server.minDifficulty)})` + - ` and Gained ${numeralWrapper.formatExp(expGain)} hacking exp.`, + `Security decreased on '${server.hostname}' from ${formatSecurity(oldSec)} to ${formatSecurity( + newSec, + )} (min: ${formatSecurity(server.minDifficulty)})` + ` and Gained ${formatExp(expGain)} hacking exp.`, ); } @@ -320,22 +312,20 @@ export class Terminal { this.print("Root Access: " + (hasAdminRights ? "YES" : "NO")); const canRunScripts = hasAdminRights && currServ.maxRam > 0; this.print("Can run scripts on this host: " + (canRunScripts ? "YES" : "NO")); - this.print("RAM: " + numeralWrapper.formatRAM(currServ.maxRam)); + this.print("RAM: " + formatRam(currServ.maxRam)); if (currServ instanceof Server) { this.print("Backdoor: " + (currServ.backdoorInstalled ? "YES" : "NO")); const hackingSkill = currServ.requiredHackingSkill; this.print("Required hacking skill for hack() and backdoor: " + (!isHacknet ? hackingSkill : "N/A")); const security = currServ.hackDifficulty; - this.print("Server security level: " + (!isHacknet ? numeralWrapper.formatServerSecurity(security) : "N/A")); + this.print("Server security level: " + (!isHacknet ? formatSecurity(security) : "N/A")); const hackingChance = calculateHackingChance(currServ, Player); - this.print("Chance to hack: " + (!isHacknet ? numeralWrapper.formatPercentage(hackingChance) : "N/A")); + this.print("Chance to hack: " + (!isHacknet ? formatPercent(hackingChance) : "N/A")); const hackingTime = calculateHackingTime(currServ, Player) * 1000; this.print("Time to hack: " + (!isHacknet ? convertTimeMsToTimeElapsedString(hackingTime, true) : "N/A")); } this.print( - `Total money available on server: ${ - currServ instanceof Server ? numeralWrapper.formatMoney(currServ.moneyAvailable) : "N/A" - }`, + `Total money available on server: ${currServ instanceof Server ? formatMoney(currServ.moneyAvailable) : "N/A"}`, ); if (currServ instanceof Server) { const numPort = currServ.numOpenPortsRequired; @@ -559,7 +549,7 @@ export class Terminal { this.print(dashes + "Number of open ports required to NUKE: " + s.numOpenPortsRequired); } } - this.print(dashes + "RAM: " + numeralWrapper.formatRAM(s.maxRam)); + this.print(dashes + "RAM: " + formatRam(s.maxRam)); this.print(" "); } } diff --git a/src/Terminal/commands/free.ts b/src/Terminal/commands/free.ts index 88cc43ac4..3153f9ab6 100644 --- a/src/Terminal/commands/free.ts +++ b/src/Terminal/commands/free.ts @@ -1,17 +1,17 @@ import { Terminal } from "../../Terminal"; import { BaseServer } from "../../Server/BaseServer"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatPercent, formatRam } from "../../ui/formatNumber"; export function free(args: (string | number | boolean)[], server: BaseServer): void { if (args.length !== 0) { Terminal.error("Incorrect usage of free command. Usage: free"); return; } - const ram = numeralWrapper.formatRAM(server.maxRam); - const used = numeralWrapper.formatRAM(server.ramUsed); - const avail = numeralWrapper.formatRAM(server.maxRam - server.ramUsed); + const ram = formatRam(server.maxRam); + const used = formatRam(server.ramUsed); + const avail = formatRam(server.maxRam - server.ramUsed); const maxLength = Math.max(ram.length, Math.max(used.length, avail.length)); - const usedPercent = numeralWrapper.formatPercentage(server.ramUsed / server.maxRam); + const usedPercent = formatPercent(server.ramUsed / server.maxRam); Terminal.print(`Total: ${" ".repeat(maxLength - ram.length)}${ram}`); Terminal.print(`Used: ${" ".repeat(maxLength - used.length)}${used} (${usedPercent})`); diff --git a/src/Terminal/commands/mem.ts b/src/Terminal/commands/mem.ts index 17593096d..994361d2b 100644 --- a/src/Terminal/commands/mem.ts +++ b/src/Terminal/commands/mem.ts @@ -1,5 +1,5 @@ import { Terminal } from "../../Terminal"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; import { Settings } from "../../Settings/Settings"; export function mem(args: (string | number | boolean)[]): void { @@ -27,16 +27,12 @@ export function mem(args: (string | number | boolean)[]): void { const ramUsage = script.ramUsage * numThreads; - Terminal.print( - `This script requires ${numeralWrapper.formatRAM(ramUsage)} of RAM to run for ${numThreads} thread(s)`, - ); + Terminal.print(`This script requires ${formatRam(ramUsage)} of RAM to run for ${numThreads} thread(s)`); const verboseEntries = script.ramUsageEntries?.sort((a, b) => b.cost - a.cost) ?? []; const padding = Settings.UseIEC60027_2 ? 9 : 8; for (const entry of verboseEntries) { - Terminal.print( - `${numeralWrapper.formatRAM(entry.cost * numThreads).padStart(padding)} | ${entry.name} (${entry.type})`, - ); + Terminal.print(`${formatRam(entry.cost * numThreads).padStart(padding)} | ${entry.name} (${entry.type})`); } if (ramUsage > 0 && verboseEntries.length === 0) { diff --git a/src/Terminal/commands/runScript.ts b/src/Terminal/commands/runScript.ts index 64925aa23..97898b594 100644 --- a/src/Terminal/commands/runScript.ts +++ b/src/Terminal/commands/runScript.ts @@ -5,7 +5,7 @@ import { startWorkerScript } from "../../NetscriptWorker"; import { RunningScript } from "../../Script/RunningScript"; import { findRunningScript } from "../../Script/ScriptHelpers"; import * as libarg from "arg"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; export function runScript(commandArgs: (string | number | boolean)[], server: BaseServer): void { if (commandArgs.length < 1) { @@ -59,7 +59,7 @@ export function runScript(commandArgs: (string | number | boolean)[], server: Ba Terminal.error( "This machine does not have enough RAM to run this script" + (numThreads === 1 ? "" : ` with ${numThreads} threads`) + - `. Script requires ${numeralWrapper.formatRAM(ramUsage)} of RAM`, + `. Script requires ${formatRam(ramUsage)} of RAM`, ); return; } diff --git a/src/Terminal/commands/top.ts b/src/Terminal/commands/top.ts index ee815d43d..815eb66b8 100644 --- a/src/Terminal/commands/top.ts +++ b/src/Terminal/commands/top.ts @@ -1,7 +1,7 @@ import { Terminal } from "../../Terminal"; import { BaseServer } from "../../Server/BaseServer"; import { getRamUsageFromRunningScript } from "../../Script/RunningScriptHelpers"; -import { numeralWrapper } from "../../ui/numeralFormat"; +import { formatRam } from "../../ui/formatNumber"; export function top(args: (string | number | boolean)[], server: BaseServer): void { if (args.length !== 0) { @@ -45,7 +45,7 @@ export function top(args: (string | number | boolean)[], server: BaseServer): vo const spacesThread = " ".repeat(numSpacesThread); // Calculate and transform RAM usage - const ramUsage = numeralWrapper.formatRAM(getRamUsageFromRunningScript(script) * script.threads); + const ramUsage = formatRam(getRamUsageFromRunningScript(script) * script.threads); const entry = [script.filename, spacesScript, script.pid, spacesPid, script.threads, spacesThread, ramUsage].join( "", diff --git a/src/Work/ClassWork.tsx b/src/Work/ClassWork.tsx index d9bdcf829..23d603c78 100644 --- a/src/Work/ClassWork.tsx +++ b/src/Work/ClassWork.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver"; import { CONSTANTS } from "../Constants"; import { LocationName } from "../Enums"; -import { numeralWrapper } from "../ui/numeralFormat"; +import { formatExp } from "../ui/formatNumber"; import { dialogBoxCreate } from "../ui/React/DialogBox"; import { Money } from "../ui/React/Money"; import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions"; @@ -122,12 +122,12 @@ export class ClassWork extends Work { you spent a total of .

You earned a total of:
- {numeralWrapper.formatExp(this.earnings.hackExp)} hacking exp
- {numeralWrapper.formatExp(this.earnings.strExp)} strength exp
- {numeralWrapper.formatExp(this.earnings.defExp)} defense exp
- {numeralWrapper.formatExp(this.earnings.dexExp)} dexterity exp
- {numeralWrapper.formatExp(this.earnings.agiExp)} agility exp
- {numeralWrapper.formatExp(this.earnings.chaExp)} charisma exp + {formatExp(this.earnings.hackExp)} hacking exp
+ {formatExp(this.earnings.strExp)} strength exp
+ {formatExp(this.earnings.defExp)} defense exp
+ {formatExp(this.earnings.dexExp)} dexterity exp
+ {formatExp(this.earnings.agiExp)} agility exp
+ {formatExp(this.earnings.chaExp)} charisma exp
, ); diff --git a/src/engine.tsx b/src/engine.tsx index 87bea912d..d5692dbcd 100644 --- a/src/engine.tsx +++ b/src/engine.tsx @@ -26,7 +26,7 @@ import { Player } from "@player"; import { saveObject, loadGame } from "./SaveObject"; import { initForeignServers } from "./Server/AllServers"; import { Settings } from "./Settings/Settings"; -import { ThemeEvents } from "./Themes/ui/Theme"; +import { FormatsNeedToChange } from "./ui/formatNumber"; import { initSymbolToStockMap, processStockPrices } from "./StockMarket/StockMarket"; import { Terminal } from "./Terminal"; @@ -226,7 +226,7 @@ const Engine: { // Load game from save or create new game if (loadGame(saveString)) { - ThemeEvents.emit(); + FormatsNeedToChange.emit(); initSourceFiles(); initDarkWebItems(); initAugmentations(); // Also calls Player.reapplyAllAugmentations() @@ -370,6 +370,7 @@ const Engine: { ); } else { // No save found, start new game + FormatsNeedToChange.emit(); initSourceFiles(); initDarkWebItems(); Engine.start(); // Run main game loop and Scripts loop diff --git a/src/ui/ActiveScripts/RecentScriptAccordion.tsx b/src/ui/ActiveScripts/RecentScriptAccordion.tsx index e303ca2d6..f39f2785b 100644 --- a/src/ui/ActiveScripts/RecentScriptAccordion.tsx +++ b/src/ui/ActiveScripts/RecentScriptAccordion.tsx @@ -4,7 +4,7 @@ */ import * as React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatExp, formatThreads } from "../formatNumber"; import Table from "@mui/material/Table"; import TableCell from "@mui/material/TableCell"; @@ -73,7 +73,7 @@ export function RecentScriptAccordion(props: IProps): React.ReactElement { └ Threads: - {numeralWrapper.formatThreads(recentScript.runningScript.threads)} + {formatThreads(recentScript.runningScript.threads)} @@ -115,7 +115,7 @@ export function RecentScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(recentScript.runningScript.onlineExpGained) + " hacking exp"} +  {formatExp(recentScript.runningScript.onlineExpGained) + " hacking exp"} @@ -133,7 +133,7 @@ export function RecentScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(onlineEps) + " hacking exp / sec"} +  {formatExp(onlineEps) + " hacking exp / sec"} @@ -151,7 +151,7 @@ export function RecentScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(recentScript.runningScript.offlineExpGained) + " hacking exp"} +  {formatExp(recentScript.runningScript.offlineExpGained) + " hacking exp"} diff --git a/src/ui/ActiveScripts/WorkerScriptAccordion.tsx b/src/ui/ActiveScripts/WorkerScriptAccordion.tsx index 8145cd9f3..610f9e46f 100644 --- a/src/ui/ActiveScripts/WorkerScriptAccordion.tsx +++ b/src/ui/ActiveScripts/WorkerScriptAccordion.tsx @@ -4,7 +4,7 @@ */ import * as React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatExp, formatThreads } from "../formatNumber"; import Table from "@mui/material/Table"; import TableCell from "@mui/material/TableCell"; @@ -84,7 +84,7 @@ export function WorkerScriptAccordion(props: IProps): React.ReactElement { └ Threads: - {numeralWrapper.formatThreads(props.workerScript.scriptRef.threads)} + {formatThreads(props.workerScript.scriptRef.threads)} @@ -121,7 +121,7 @@ export function WorkerScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(scriptRef.onlineExpGained) + " hacking exp"} +  {formatExp(scriptRef.onlineExpGained) + " hacking exp"} @@ -138,7 +138,7 @@ export function WorkerScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(onlineEps) + " hacking exp / sec"} +  {formatExp(onlineEps) + " hacking exp / sec"} @@ -155,7 +155,7 @@ export function WorkerScriptAccordion(props: IProps): React.ReactElement { -  {numeralWrapper.formatExp(scriptRef.offlineExpGained) + " hacking exp"} +  {formatExp(scriptRef.offlineExpGained) + " hacking exp"} diff --git a/src/ui/CharacterStats.tsx b/src/ui/CharacterStats.tsx index cc9f63e13..68eecf604 100644 --- a/src/ui/CharacterStats.tsx +++ b/src/ui/CharacterStats.tsx @@ -10,7 +10,7 @@ import { Settings } from "../Settings/Settings"; import { MoneySourceTracker } from "../utils/MoneySourceTracker"; import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions"; import { Player } from "@player"; -import { numeralWrapper } from "./numeralFormat"; +import { formatPercent } from "./formatNumber"; import { Modal } from "./React/Modal"; import { Money } from "./React/Money"; import { StatsRow } from "./React/StatsRow"; @@ -69,16 +69,13 @@ function MultiplierTable(props: MultTableProps): React.ReactElement { <> - {numeralWrapper.formatPercentage(value)}{" "} - {numeralWrapper.formatPercentage(effValue)} + {formatPercent(value)} {formatPercent(effValue)} ); } - return ( - - ); + return ; })} diff --git a/src/ui/React/CharacterOverview.tsx b/src/ui/React/CharacterOverview.tsx index ae01947c7..ebd7f7f0b 100644 --- a/src/ui/React/CharacterOverview.tsx +++ b/src/ui/React/CharacterOverview.tsx @@ -4,7 +4,7 @@ import React, { useMemo, useState, useEffect } from "react"; import { Theme, useTheme } from "@mui/material/styles"; import makeStyles from "@mui/styles/makeStyles"; import createStyles from "@mui/styles/createStyles"; -import { numeralWrapper } from "../numeralFormat"; +import { formatHp, formatMoney, formatSkill } from "../formatNumber"; import { Reputation } from "./Reputation"; import { KillScriptsModal } from "./KillScriptsModal"; import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; @@ -61,15 +61,15 @@ const valUpdaters: Record any> = { //These formattedVals functions don't take in a value because of the weirdness around HP. const formattedVals: Record string> = { - HP: () => `${numeralWrapper.formatHp(Player.hp.current)} / ${numeralWrapper.formatHp(Player.hp.max)}`, - Money: () => numeralWrapper.formatMoney(Player.money), - Hack: () => numeralWrapper.formatSkill(Player.skills.hacking), - Str: () => numeralWrapper.formatSkill(Player.skills.strength), - Def: () => numeralWrapper.formatSkill(Player.skills.defense), - Dex: () => numeralWrapper.formatSkill(Player.skills.dexterity), - Agi: () => numeralWrapper.formatSkill(Player.skills.agility), - Cha: () => numeralWrapper.formatSkill(Player.skills.charisma), - Int: () => numeralWrapper.formatSkill(Player.skills.intelligence), + HP: () => `${formatHp(Player.hp.current)} / ${formatHp(Player.hp.max)}`, + Money: () => formatMoney(Player.money), + Hack: () => formatSkill(Player.skills.hacking), + Str: () => formatSkill(Player.skills.strength), + Def: () => formatSkill(Player.skills.defense), + Dex: () => formatSkill(Player.skills.dexterity), + Agi: () => formatSkill(Player.skills.agility), + Cha: () => formatSkill(Player.skills.charisma), + Int: () => formatSkill(Player.skills.intelligence), }; const skillMultUpdaters: Record number> = { diff --git a/src/ui/React/Favor.tsx b/src/ui/React/Favor.tsx index da3805f8f..35c5912b5 100644 --- a/src/ui/React/Favor.tsx +++ b/src/ui/React/Favor.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatFavor } from "../formatNumber"; import { Theme } from "@mui/material/styles"; import makeStyles from "@mui/styles/makeStyles"; import createStyles from "@mui/styles/createStyles"; @@ -14,5 +14,5 @@ const useStyles = makeStyles((theme: Theme) => export function Favor({ favor }: { favor: number | string }): React.ReactElement { const classes = useStyles(); - return {typeof favor === "number" ? numeralWrapper.formatFavor(favor) : favor}; + return {typeof favor === "number" ? formatFavor(favor) : favor}; } diff --git a/src/ui/React/HashRate.tsx b/src/ui/React/HashRate.tsx index 22990bfdf..d42790093 100644 --- a/src/ui/React/HashRate.tsx +++ b/src/ui/React/HashRate.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatHashes } from "../formatNumber"; import { Hashes } from "./Hashes"; export function HashRate({ hashes }: { hashes: number }): React.ReactElement { - return ; + return ; } diff --git a/src/ui/React/Hashes.tsx b/src/ui/React/Hashes.tsx index dd364b429..04a403d0b 100644 --- a/src/ui/React/Hashes.tsx +++ b/src/ui/React/Hashes.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatHashes } from "../formatNumber"; import { Theme } from "@mui/material/styles"; import makeStyles from "@mui/styles/makeStyles"; import createStyles from "@mui/styles/createStyles"; @@ -14,7 +14,5 @@ const useStyles = makeStyles((theme: Theme) => export function Hashes({ hashes }: { hashes: number | string }): React.ReactElement { const classes = useStyles(); - return ( - {typeof hashes === "number" ? numeralWrapper.formatHashes(hashes) : hashes} - ); + return {typeof hashes === "number" ? formatHashes(hashes) : hashes}; } diff --git a/src/ui/React/ImportSaveRoot.tsx b/src/ui/React/ImportSaveRoot.tsx index 51892d699..3487ba2ee 100644 --- a/src/ui/React/ImportSaveRoot.tsx +++ b/src/ui/React/ImportSaveRoot.tsx @@ -27,8 +27,8 @@ import WarningIcon from "@mui/icons-material/Warning"; import { ImportData, saveObject } from "../../SaveObject"; import { Settings } from "../../Settings/Settings"; -import { convertTimeMsToTimeElapsedString, formatNumber } from "../../utils/StringHelperFunctions"; -import { numeralWrapper } from "../numeralFormat"; +import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions"; +import { formatMoney, formatNumberNoSuffix } from "../formatNumber"; import { ConfirmationModal } from "./ConfirmationModal"; import { pushImportResult } from "../../Electron"; import { Router } from "../GameRoot"; @@ -231,8 +231,8 @@ export function ImportSaveRoot(props: IProps): JSX.Element { Money - {numeralWrapper.formatMoney(currentData.playerData?.money ?? 0)} - {numeralWrapper.formatMoney(importData.playerData?.money ?? 0)} + {formatMoney(currentData.playerData?.money ?? 0)} + {formatMoney(importData.playerData?.money ?? 0)} {importData.playerData?.money !== currentData.playerData?.money && ( Hacking - {formatNumber(currentData.playerData?.hacking ?? 0, 0)} - {formatNumber(importData.playerData?.hacking ?? 0, 0)} + {formatNumberNoSuffix(currentData.playerData?.hacking ?? 0, 0)} + {formatNumberNoSuffix(importData.playerData?.hacking ?? 0, 0)} {importData.playerData?.hacking !== currentData.playerData?.hacking && ( {numeralWrapper.formatMoney(props.money)}; + if (!Player.canAfford(props.money)) return {formatMoney(props.money)}; } return ( - - {typeof props.money === "number" ? numeralWrapper.formatMoney(props.money) : props.money} - + {typeof props.money === "number" ? formatMoney(props.money) : props.money} ); } diff --git a/src/ui/React/MoneyRate.tsx b/src/ui/React/MoneyRate.tsx index 00f658086..cae0693c2 100644 --- a/src/ui/React/MoneyRate.tsx +++ b/src/ui/React/MoneyRate.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatMoney } from "../formatNumber"; import { Money } from "./Money"; export function MoneyRate({ money }: { money: number }): JSX.Element { - return ; + return ; } diff --git a/src/ui/React/NumberInput.tsx b/src/ui/React/NumberInput.tsx index cb0a41588..cc0248df2 100644 --- a/src/ui/React/NumberInput.tsx +++ b/src/ui/React/NumberInput.tsx @@ -1,6 +1,6 @@ import { TextField, StandardTextFieldProps } from "@mui/material"; import React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { parseBigNumber } from "../formatNumber"; interface IProps extends Omit { onChange: (v: number) => void; @@ -10,7 +10,7 @@ export function NumberInput(props: IProps): React.ReactElement { const textProps = { ...props, onChange: (event: React.ChangeEvent) => { - const amt = numeralWrapper.parseMoney(event.target.value); + const amt = parseBigNumber(event.target.value); if (event.target.value === "" || isNaN(amt)) props.onChange(NaN); else props.onChange(amt); }, diff --git a/src/ui/React/Reputation.tsx b/src/ui/React/Reputation.tsx index c9d6ad4d8..18ad9415f 100644 --- a/src/ui/React/Reputation.tsx +++ b/src/ui/React/Reputation.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatReputation } from "../formatNumber"; import { Theme } from "@mui/material/styles"; import makeStyles from "@mui/styles/makeStyles"; import createStyles from "@mui/styles/createStyles"; @@ -16,7 +16,7 @@ export function Reputation({ reputation }: { reputation: number | string }): Rea const classes = useStyles(); return ( - {typeof reputation === "number" ? numeralWrapper.formatReputation(reputation) : reputation} + {typeof reputation === "number" ? formatReputation(reputation) : reputation} ); } diff --git a/src/ui/React/ReputationRate.tsx b/src/ui/React/ReputationRate.tsx index 21c0b3fb3..8562a7941 100644 --- a/src/ui/React/ReputationRate.tsx +++ b/src/ui/React/ReputationRate.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { numeralWrapper } from "../numeralFormat"; +import { formatReputation } from "../formatNumber"; import { Reputation } from "./Reputation"; export function ReputationRate({ reputation }: { reputation: number }): React.ReactElement { - return ; + return ; } diff --git a/src/ui/React/StatsProgressBar.tsx b/src/ui/React/StatsProgressBar.tsx index 50e3ecdbc..727f156ee 100644 --- a/src/ui/React/StatsProgressBar.tsx +++ b/src/ui/React/StatsProgressBar.tsx @@ -3,7 +3,7 @@ import LinearProgress from "@mui/material/LinearProgress"; import { TableCell, Tooltip, Typography } from "@mui/material"; import { characterOverviewStyles } from "./CharacterOverview"; import { ISkillProgress } from "src/PersonObjects/formulas/skill"; -import { numeralWrapper } from "../numeralFormat"; +import { formatExp } from "../formatNumber"; interface IProgressProps { min: number; @@ -30,10 +30,10 @@ export function StatsProgressBar({ const tooltip = ( Progress:  - {numeralWrapper.formatExp(current)} / {numeralWrapper.formatExp(max - min)} + {formatExp(current)} / {formatExp(max - min)}
Remaining:  - {numeralWrapper.formatExp(remaining)} ({progress.toFixed(2)}%) + {formatExp(remaining)} ({progress.toFixed(2)}%)
); diff --git a/src/ui/React/StatsRow.tsx b/src/ui/React/StatsRow.tsx index 279758e30..3818f4e9b 100644 --- a/src/ui/React/StatsRow.tsx +++ b/src/ui/React/StatsRow.tsx @@ -2,8 +2,7 @@ import React from "react"; import { Typography, TableCell, TableRow } from "@mui/material"; -import { numeralWrapper } from "../numeralFormat"; -import { formatNumber } from "../../utils/StringHelperFunctions"; +import { formatExp, formatNumberNoSuffix } from "../formatNumber"; import { characterOverviewStyles as useStyles } from "./CharacterOverview"; import { ClassNameMap } from "@material-ui/core/styles/withStyles"; @@ -28,9 +27,9 @@ export const StatsRow = ({ name, color, classes = useStyles(), children, data }: if (data.content !== undefined) { content = data.content; } else if (data.level !== undefined && data.exp !== undefined) { - content = `${formatNumber(data.level, 0)} (${numeralWrapper.formatExp(data.exp)} exp)`; + content = `${formatNumberNoSuffix(data.level, 0)} (${formatExp(data.exp)} exp)`; } else if (data.level !== undefined && data.exp === undefined) { - content = `${formatNumber(data.level, 0)}`; + content = `${formatNumberNoSuffix(data.level, 0)}`; } } diff --git a/src/ui/WorkInProgressRoot.tsx b/src/ui/WorkInProgressRoot.tsx index 45efd4946..22e95377f 100644 --- a/src/ui/WorkInProgressRoot.tsx +++ b/src/ui/WorkInProgressRoot.tsx @@ -12,7 +12,7 @@ import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions import { Player } from "@player"; import { Router } from "./GameRoot"; import { Page } from "./Router"; -import { numeralWrapper } from "./numeralFormat"; +import { formatExp, formatPercent } from "./formatNumber"; import { Money } from "./React/Money"; import { MoneyRate } from "./React/MoneyRate"; import { ProgressBar } from "./React/Progress"; @@ -56,7 +56,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Hacking Exp" color={Settings.theme.hack} data={{ - content: `${numeralWrapper.formatExp(rate.hackExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.hackExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -67,7 +67,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Strength Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.strExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.strExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -78,7 +78,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Defense Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.defExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.defExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -89,7 +89,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Dexterity Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.dexExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.dexExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -100,7 +100,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Agility Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.agiExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.agiExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -111,7 +111,7 @@ function ExpRows(rate: WorkStats): React.ReactElement[] { name="Charisma Exp" color={Settings.theme.cha} data={{ - content: `${numeralWrapper.formatExp(rate.chaExp * CYCLES_PER_SEC)} / sec`, + content: `${formatExp(rate.chaExp * CYCLES_PER_SEC)} / sec`, }} /> ) : ( @@ -128,7 +128,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Hacking Exp" color={Settings.theme.hack} data={{ - content: `${numeralWrapper.formatExp(rate.hackExp)}`, + content: `${formatExp(rate.hackExp)}`, }} /> ) : ( @@ -139,7 +139,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Strength Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.strExp)}`, + content: `${formatExp(rate.strExp)}`, }} /> ) : ( @@ -150,7 +150,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Defense Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.defExp)}`, + content: `${formatExp(rate.defExp)}`, }} /> ) : ( @@ -161,7 +161,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Dexterity Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.dexExp)}`, + content: `${formatExp(rate.dexExp)}`, }} /> ) : ( @@ -172,7 +172,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Agility Exp" color={Settings.theme.combat} data={{ - content: `${numeralWrapper.formatExp(rate.agiExp)}`, + content: `${formatExp(rate.agiExp)}`, }} /> ) : ( @@ -183,7 +183,7 @@ function CrimeExpRows(rate: WorkStats): React.ReactElement[] { name="Charisma Exp" color={Settings.theme.cha} data={{ - content: `${numeralWrapper.formatExp(rate.chaExp)}`, + content: `${formatExp(rate.chaExp)}`, }} /> ) : ( @@ -235,7 +235,7 @@ export function WorkInProgressRoot(): React.ReactElement { title: `You are attempting ${crime.workName}`, gains: [ - Success chance: {numeralWrapper.formatPercentage(successChance)}, + Success chance: {formatPercent(successChance)}, Gains (on success), diff --git a/src/ui/formatNumber.ts b/src/ui/formatNumber.ts new file mode 100644 index 000000000..19f9c1d2c --- /dev/null +++ b/src/ui/formatNumber.ts @@ -0,0 +1,198 @@ +import { ThemeEvents } from "../Themes/ui/Theme"; +import { EventEmitter } from "../utils/EventEmitter"; +import { Settings } from "../Settings/Settings"; + +const numberSuffixList = ["", "k", "m", "b", "t", "q", "Q", "s", "S", "o", "n"]; +// exponents associated with each suffix +const numberExpList = numberSuffixList.map((_, i) => parseFloat(`1e${i * 3}`)); + +// Ram suffixes +const ramLog1000Suffixes = ["GB", "TB", "PB", "EB"]; +const ramLog1024Suffixes = ["GiB", "TiB", "PiB", "EiB"]; + +// Items that get initialized in the initializer function. +let digitFormats = {} as Record, + percentFormats = {} as Record, + basicFormatter: Intl.NumberFormat, + exponentialFormatter: Intl.NumberFormat, + ramSuffixList: string[], + ramExpList: number[], + ramLogFn: (n: number) => number, + ramLogDivisor: number; + +/** Event to be emitted when changing number display settings. */ +export const FormatsNeedToChange = new EventEmitter(); + +/** Event to be emitted after the cached formatters are cleared. */ +export const FormatsHaveChanged = new EventEmitter(); + +// Initialization function +FormatsNeedToChange.subscribe(() => { + // Clear all cached formatters + digitFormats = {}; + percentFormats = {}; + exponentialFormatter = makeFormatter(3, { notation: Settings.useEngineeringNotation ? "engineering" : "scientific" }); + basicFormatter = new Intl.NumberFormat([Settings.Locale, "en"], { useGrouping: !Settings.hideThousandsSeparator }); + [ramSuffixList, ramLogFn, ramLogDivisor] = Settings.UseIEC60027_2 + ? // log2 of 1024 is 10 as divisor for log base 1024 + [ramLog1024Suffixes, Math.log2, 10] + : // log10 of 1000 is 3 as divisor for log base 1000 + [ramLog1000Suffixes, Math.log10, 3]; + ramExpList = ramSuffixList.map((_, i) => (Settings.UseIEC60027_2 ? 1024 : 1000) ** i); + + // Emit a FormatsHaveChanged event so any static content that uses formats can be regenerated. + FormatsHaveChanged.emit(); + // Force a redraw of the entire UI + ThemeEvents.emit(); +}); + +/** Makes a new formatter */ +function makeFormatter(fractionalDigits: number, otherOptions: Intl.NumberFormatOptions = {}): Intl.NumberFormat { + if (Settings.hideThousandsSeparator) otherOptions.useGrouping = false; + return new Intl.NumberFormat([Settings.Locale, "en"], { + minimumFractionDigits: Settings.hideTrailingDecimalZeros ? 0 : fractionalDigits, + maximumFractionDigits: fractionalDigits, + ...otherOptions, + }); +} +/** Returns a cached formatter if it already exists, otherwise makes and returns a new formatter */ +function getFormatter( + fractionalDigits: number, + formatList = digitFormats, + options: Intl.NumberFormatOptions = {}, +): Intl.NumberFormat { + if (formatList[fractionalDigits]) return formatList[fractionalDigits] as Intl.NumberFormat; + return (formatList[fractionalDigits] = makeFormatter(fractionalDigits, options)); +} + +/** Display standard ram formatting. */ +export function formatRam(n: number, fractionalDigits = 2) { + // NaN does not get formatted + if (Number.isNaN(n)) return `NaN${ramSuffixList[0]}`; + const nAbs = Math.abs(n); + + // Special handling for Infinities + if (nAbs === Infinity) return `${n < 0 ? "-∞" : ""}∞${ramSuffixList.at(-1)}`; + + // Ram always uses a suffix and never goes to exponential + const suffixIndex = Math.min(Math.floor(ramLogFn(nAbs) / ramLogDivisor), ramSuffixList.length - 1); + n /= ramExpList[suffixIndex]; + /* Not really concerned with 1000-rounding or 1024-rounding for ram due to the actual values ram gets displayed at. + If display of e.g. 1,000.00GB instead of 1.00TB for 999.995GB, or 1,024.00GiB instead of 1.00TiB for 1,023.995GiB + becomes an actual issue we can add smart rounding, but ram values like that really don't happen ingame so it's + probably not worth the performance overhead to check and correct these. */ + return getFormatter(fractionalDigits).format(n) + ramSuffixList[suffixIndex]; +} + +function formatExponential(n: number) { + return exponentialFormatter.format(n).toLocaleLowerCase(); +} + +export function formatPercent(n: number, fractionalDigits = 2) { + // NaN does not get formatted + if (Number.isNaN(n)) return "NaN%"; + const nAbs = Math.abs(n); + + // Special handling for Infinities + if (nAbs === Infinity) return n < 0 ? "-∞%" : "∞%"; + + return getFormatter(fractionalDigits, percentFormats, { style: "percent" }).format(n); +} + +// formatNumber doesn't accept ram as a special flag, that is only used for ns.formatNumber which will use formatRam +export function formatNumber(n: number, fractionalDigits = 3, suffixStart = 1000, isInteger = false) { + // NaN does not get formatted + if (Number.isNaN(n)) return "NaN"; + const nAbs = Math.abs(n); + + // Special handling for Infinities + if (nAbs === Infinity) return n < 0 ? "-∞" : "∞"; + + // Early return for non-suffix + if (nAbs < suffixStart) { + if (isInteger) return basicFormatter.format(n); + return getFormatter(fractionalDigits).format(n); + } + + // Exponential form + if (Settings.disableSuffixes || nAbs >= 1e33) return formatExponential(n); + + // Calculate suffix index. 1000 = 10^3 + let suffixIndex = Math.floor(Math.log10(nAbs) / 3); + + n /= numberExpList[suffixIndex]; + // Todo: Find a better way to detect if number is rounding to 1000${suffix}, or find a simple way to truncate to x digits instead of rounding + // Detect if number rounds to 1000.000 (based on number of digits given) + if (Math.abs(n).toFixed(fractionalDigits).length === fractionalDigits + 5 && numberSuffixList[suffixIndex + 1]) { + suffixIndex += 1; + n = n < 0 ? -1 : 1; + } + return getFormatter(fractionalDigits).format(n) + numberSuffixList[suffixIndex]; +} + +/** Format a number without suffixes. Still show exponential form if >= 1e33. */ +export const formatNumberNoSuffix = (n: number, fractionalDigits = 0) => { + return formatNumber(n, fractionalDigits, 1e33); +}; +export const formatFavor = formatNumberNoSuffix; + +/** Standard noninteger formatting with no options set. Collapses to suffix at 1000 and shows 3 fractional digits. */ +export const formatBigNumber = (n: number) => formatNumber(n); +export const formatExp = formatBigNumber; +export const formatHashes = formatBigNumber; +export const formatReputation = formatBigNumber; +export const formatPopulation = formatBigNumber; +export const formatSecurity = formatBigNumber; +export const formatStamina = formatBigNumber; +export const formatStaneksGiftCharge = formatBigNumber; + +/** Format a number with suffixes starting at 1000 and 2 fractional digits */ +export const formatQuality = (n: number) => formatNumber(n, 2); + +/** Format an integer that uses suffixed form at 1000 and 3 fractional digits. */ +export const formatInt = (n: number) => formatNumber(n, 3, 1000, true); +export const formatSleeveMemory = formatInt; +export const formatShares = formatInt; + +/** Display an integer up to 999,999 before collapsing to suffixed form with 3 fractional digits */ +export const formatHp = (n: number) => formatNumber(n, 3, 1e6, true); +export const formatThreads = formatHp; + +/** Display an integer up to 999,999,999 before collapsing to suffixed form with 3 fractional digits */ +export const formatSkill = (n: number) => formatNumber(n, 3, 1e9, true); + +/** Display standard money formatting, including the preceding $. */ +export const formatMoney = (n: number) => "$" + formatNumber(n); + +/** Display a decimal number with increased precision (5 fractional digits) */ +export const formatRespect = (n: number) => formatNumber(n, 5); +export const formatWanted = formatRespect; +export const formatPreciseMultiplier = formatRespect; + +/** Format a number with no suffix and 1 fractional digit. */ +export const formatMaterialSize = (n: number) => formatNumberNoSuffix(n, 1); + +/** Format a number with no suffix and 2 fractional digits. */ +export const formatMultiplier = (n: number) => formatNumberNoSuffix(n, 2); +export const formatStaneksGiftPower = formatMultiplier; +export const formatMatPurchaseAmount = formatMultiplier; + +/** Format a number with no suffix and 3 fractional digits. */ +export const formatSleeveShock = (n: number) => formatNumberNoSuffix(n, 3); +export const formatSleeveSynchro = formatSleeveShock; +export const formatCorpStat = formatSleeveShock; + +/** Parsing numbers does not use the locale as this causes complications. */ +export function parseBigNumber(str: string): number { + str = str.trim(); + // Remove all commas in case the player is typing a longform number + str = str.replace(/,/g, ""); + // Handle special returns + if (["infinity", "Infinity", "∞"].includes(str)) return Infinity; + if (["-infinity", "-Infinity", "-∞"].includes(str)) return -Infinity; + + const suffixIndex = numberSuffixList.indexOf(str.substring(str.length - 1)); + // If there's no valid suffix at the end, just return parseFloated string + if (suffixIndex === -1) return parseFloat(str); + return parseFloat(str.substring(0, str.length - 1) + "e" + suffixIndex * 3); +} diff --git a/src/ui/numeralFormat.ts b/src/ui/numeralFormat.ts deleted file mode 100644 index 04ec612e0..000000000 --- a/src/ui/numeralFormat.ts +++ /dev/null @@ -1,256 +0,0 @@ -import numeral from "numeral"; -import "numeral/locales/bg"; -import "numeral/locales/cs"; -import "numeral/locales/da-dk"; -import "numeral/locales/de"; -import "numeral/locales/en-au"; -import "numeral/locales/en-gb"; -import "numeral/locales/es"; -import "numeral/locales/fr"; -import "numeral/locales/hu"; -import "numeral/locales/it"; -import "numeral/locales/lv"; -import "numeral/locales/no"; -import "numeral/locales/pl"; -import "numeral/locales/ru"; - -import { Settings } from "../Settings/Settings"; - -const extraFormats = [1e15, 1e18, 1e21, 1e24, 1e27, 1e30]; -const extraNotations = ["q", "Q", "s", "S", "o", "n"]; -const gigaMultiplier = { standard: 1e9, iec60027_2: 2 ** 30 }; - -class NumeralFormatter { - // Default Locale - defaultLocale = "en"; - - constructor() { - this.defaultLocale = "en"; - } - - updateLocale(l: string): boolean { - if (numeral.locale(l) == null) { - console.warn(`Invalid locale for numeral: ${l}`); - - numeral.locale(this.defaultLocale); - return false; - } - return true; - } - - format(n: number | string, format?: string): string { - // numeral.js doesn't properly format numbers that are too big or too small - if (Math.abs(n as number) < 1e-6) { - n = 0; - } - const answer = numeral(n).format(format); - if (answer === "NaN") { - return `${n}`; - } - return answer; - } - - formatBigNumber(n: number | string): string { - return this.format(n, "0.000a"); - } - - // TODO: leverage numeral.js to do it. This function also implies you can - // use this format in some text field but you can't. ( "1t" will parse but - // "1s" will not) - formatReallyBigNumber(n: number | string, decimalPlaces = 3): string { - const nAbs = Math.abs(n as number); - if (n === Infinity) return "∞"; - for (let i = 0; i < extraFormats.length; i++) { - if (extraFormats[i] <= nAbs && nAbs < extraFormats[i] * 1000) { - return this.format((n as number) / extraFormats[i], "0." + "0".repeat(decimalPlaces)) + extraNotations[i]; - } - } - if (nAbs < 1000) { - return this.format(n, "0." + "0".repeat(decimalPlaces)); - } - const str = this.format(n, "0." + "0".repeat(decimalPlaces) + "a"); - if (str === "NaNt") return this.format(n, "0." + " ".repeat(decimalPlaces) + "e+0"); - return str; - } - - formatHp(n: number): string { - if (n < 1e6) { - return this.format(n, "0,0"); - } - return this.formatReallyBigNumber(n); - } - - formatMoney(n: number): string { - return "$" + this.formatReallyBigNumber(n); - } - - formatSkill(n: number): string { - if (n < 1e15) { - return this.format(n, "0,0"); - } - return this.formatReallyBigNumber(n); - } - - formatExp(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatHashes(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatReputation(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatFavor(n: number): string { - return this.format(n, "0,0"); - } - - formatSecurity(n: number): string { - return n.toFixed(3); - } - - formatRAM(n: number): string { - if (Settings.UseIEC60027_2) { - return this.format(n * gigaMultiplier.iec60027_2, "0.00ib"); - } - return this.format(n * gigaMultiplier.standard, "0.00b"); - } - - formatPercentage(n: number | string, decimalPlaces = 2): string { - const formatter: string = "0." + "0".repeat(decimalPlaces) + "%"; - return this.format(n, formatter); - } - - formatServerSecurity(n: number): string { - return this.format(n, "0,0.000"); - } - - formatRespect(n: number): string { - return this.formatReallyBigNumber(n, 5); - } - - formatWanted(n: number): string { - return this.formatReallyBigNumber(n, 5); - } - - formatMultiplier(n: number): string { - return this.format(n, "0,0.00"); - } - - formatSleeveShock(n: number): string { - return this.format(n, "0,0.000"); - } - - formatSleeveSynchro(n: number): string { - return this.format(n, "0,0.000"); - } - - formatSleeveMemory(n: number): string { - return this.format(n, "0"); - } - - formatPopulation(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatStamina(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatShares(n: number): string { - if (n < 1000) { - return this.format(n, "0"); - } - return this.formatReallyBigNumber(n); - } - - formatInfiltrationSecurity(n: number): string { - return this.formatReallyBigNumber(n); - } - - formatThreads(n: number): string { - return this.format(n, "0,0"); - } - - formatStaneksGiftHeat(n: number): string { - return this.format(n, "0.000a"); - } - - formatStaneksGiftCharge(n: number): string { - return this.format(n, "0.000a"); - } - - formatStaneksGiftPower(n: number): string { - return this.format(n, "0.00"); - } - - parseCustomLargeNumber(str: string): number { - const numericRegExp = new RegExp("^(-?\\d+\\.?\\d*)([" + extraNotations.join("") + "]?)$"); - const match = str.match(numericRegExp); - if (match == null) { - return NaN; - } - const [, number, notation] = match; - const notationIndex = extraNotations.indexOf(notation); - if (notationIndex === -1) { - return NaN; - } - return parseFloat(number) * extraFormats[notationIndex]; - } - - largestAbsoluteNumber(n1: number, n2 = 0, n3 = 0): number { - if (isNaN(n1)) n1 = 0; - if (isNaN(n2)) n2 = 0; - if (isNaN(n3)) n3 = 0; - const largestAbsolute = Math.max(Math.abs(n1), Math.abs(n2), Math.abs(n3)); - switch (largestAbsolute) { - case Math.abs(n1): - return n1; - case Math.abs(n2): - return n2; - case Math.abs(n3): - return n3; - } - return 0; - } - - parseMoney(s: string): number { - // numeral library does not handle formats like 1s (returns 1) and 1e10 (returns 110) well, - // so if more then 1 return a valid number, return the one farthest from 0 - const numeralValue = numeral(s).value(); - const parsed = parseFloat(s); - const selfParsed = this.parseCustomLargeNumber(s); - // Check for one or more NaN values - if (isNaN(parsed) && isNaN(selfParsed)) { - if (numeralValue === null) { - // 3x NaN - return NaN; - } - // 2x NaN - return numeralValue; - } else if (numeralValue === null && isNaN(selfParsed)) { - // 2x NaN - return parsed; - } else if (isNaN(parsed)) { - if (numeralValue === null) { - // 2x NaN - return selfParsed; - } - // 1x NaN - return this.largestAbsoluteNumber(numeralValue, selfParsed); - } else if (numeralValue === null) { - // 1x NaN - return this.largestAbsoluteNumber(parsed, selfParsed); - } else if (isNaN(selfParsed)) { - // 1x NaN - return this.largestAbsoluteNumber(numeralValue, parsed); - } else { - // no NaN - return this.largestAbsoluteNumber(numeralValue, parsed, selfParsed); - } - } -} - -export const numeralWrapper = new NumeralFormatter(); diff --git a/src/utils/StringHelperFunctions.ts b/src/utils/StringHelperFunctions.ts index 8417dc032..d848d8809 100644 --- a/src/utils/StringHelperFunctions.ts +++ b/src/utils/StringHelperFunctions.ts @@ -78,14 +78,6 @@ function containsAllStrings(arr: string[]): boolean { return arr.every(isString); } -// Formats a number with commas and a specific number of decimal digits -function formatNumber(num: number, numFractionDigits = 0): string { - return num.toLocaleString(undefined, { - maximumFractionDigits: numFractionDigits, - minimumFractionDigits: numFractionDigits, - }); -} - // Generates a random alphanumeric string with N characters function generateRandomString(n: number): string { let str = ""; @@ -133,7 +125,6 @@ export { convertTimeMsToTimeElapsedString, longestCommonStart, containsAllStrings, - formatNumber, generateRandomString, cyrb53, capitalizeFirstLetter, diff --git a/test/jest/ui/formatNumber.test.ts b/test/jest/ui/formatNumber.test.ts new file mode 100644 index 000000000..e801e34a4 --- /dev/null +++ b/test/jest/ui/formatNumber.test.ts @@ -0,0 +1,212 @@ +import { Settings } from "../../../src/Settings/Settings"; +import { + formatBigNumber, + formatPercent, + parseBigNumber, + FormatsNeedToChange, + formatNumber, + formatRam, +} from "../../../src/ui/formatNumber"; + +describe("Suffix rounding test", () => { + test("Rounding Test", () => { + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + expect(formatNumber(0.99999999e12)).toEqual("1.000t"); + expect(formatNumber(-0.99999999e12)).toEqual("-1.000t"); + }); +}); + +describe("Numeral formatting for positive numbers", () => { + test("should not format too small numbers and should hide trailing zeroes if configured", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = true; + FormatsNeedToChange.emit(); + expect(formatNumber(0.0000000001, 6)).toEqual("0"); + expect(formatNumber(0.000000001, 6)).toEqual("0"); + expect(formatNumber(0.00000001, 6)).toEqual("0"); + expect(formatNumber(0.0000001, 6)).toEqual("0"); + expect(formatNumber(0.000001, 6)).toEqual("0.000001"); + expect(formatNumber(0.00001, 6)).toEqual("0.00001"); + expect(formatNumber(0.0001, 6)).toEqual("0.0001"); + expect(formatNumber(0.001, 6)).toEqual("0.001"); + expect(formatNumber(0.01, 6)).toEqual("0.01"); + expect(formatNumber(0.1, 6)).toEqual("0.1"); + expect(formatNumber(1, 6)).toEqual("1"); + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + }); + test("powers of 10 test for suffix form", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + const suffixes = ["", "k", "m", "b", "t", "q", "Q", "s", "S", "o", "n"]; + for (let i = 0; i < suffixes.length; i++) { + expect(formatNumber(parseFloat("1e" + i * 3))).toEqual("1.000" + suffixes[i]); + expect(formatNumber(parseFloat("1e" + (i * 3 + 1)))).toEqual("10.000" + suffixes[i]); + expect(formatNumber(parseFloat("1e" + (i * 3 + 2)))).toEqual("100.000" + suffixes[i]); + } + }); + test("should format really big numbers in readable format", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + expect(formatBigNumber(987)).toEqual("987.000"); + expect(formatBigNumber(987654)).toEqual("987.654k"); + expect(formatBigNumber(987654321)).toEqual("987.654m"); + expect(formatBigNumber(987654321987)).toEqual("987.654b"); + expect(formatBigNumber(987654321987654)).toEqual("987.654t"); + expect(formatBigNumber(987654321987654e3)).toEqual("987.654q"); + expect(formatBigNumber(987654321987654e6)).toEqual("987.654Q"); + expect(formatBigNumber(987654321987654e9)).toEqual("987.654s"); + expect(formatBigNumber(987654321987654e12)).toEqual("987.654S"); + expect(formatBigNumber(987654321987654e15)).toEqual("987.654o"); + expect(formatBigNumber(987654321987654e18)).toEqual("987.654n"); + }); + test("should format even bigger really big numbers in scientific format", () => { + expect(formatBigNumber(987654321987654e21)).toEqual("9.877e35"); + expect(formatBigNumber(987654321987654e22)).toEqual("9.877e36"); + expect(formatBigNumber(987654321987654e23)).toEqual("9.877e37"); + }); + test("should format percentage", () => { + expect(formatPercent(1234.56789)).toEqual("123,456.79%"); + }); +}); + +describe("Numeral formatting for negative numbers", () => { + test("should not format too small numbers and should hide trailing zeroes if configured", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = true; + FormatsNeedToChange.emit(); + // No simple way right now to force 0 instead of -0 + expect(formatNumber(-0.0000000001, 6)).toEqual("-0"); + expect(formatNumber(-0.000000001, 6)).toEqual("-0"); + expect(formatNumber(-0.00000001, 6)).toEqual("-0"); + expect(formatNumber(-0.0000001, 6)).toEqual("-0"); + expect(formatNumber(-0.000001, 6)).toEqual("-0.000001"); + expect(formatNumber(-0.00001, 6)).toEqual("-0.00001"); + expect(formatNumber(-0.0001, 6)).toEqual("-0.0001"); + expect(formatNumber(-0.001, 6)).toEqual("-0.001"); + expect(formatNumber(-0.01, 6)).toEqual("-0.01"); + expect(formatNumber(-0.1, 6)).toEqual("-0.1"); + expect(formatNumber(-1, 6)).toEqual("-1"); + }); + test("powers of 10 test for suffix form", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + const suffixes = ["", "k", "m", "b", "t", "q", "Q", "s", "S", "o", "n"]; + for (let i = 0; i < suffixes.length; i++) { + expect(formatNumber(parseFloat("-1e" + i * 3))).toEqual("-1.000" + suffixes[i]); + expect(formatNumber(parseFloat("-1e" + (i * 3 + 1)))).toEqual("-10.000" + suffixes[i]); + expect(formatNumber(parseFloat("-1e" + (i * 3 + 2)))).toEqual("-100.000" + suffixes[i]); + } + }); + test("should format really big numbers in readable format", () => { + // Initial settings + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + expect(formatBigNumber(-987)).toEqual("-987.000"); + expect(formatBigNumber(-987654)).toEqual("-987.654k"); + expect(formatBigNumber(-987654321)).toEqual("-987.654m"); + expect(formatBigNumber(-987654321987)).toEqual("-987.654b"); + expect(formatBigNumber(-987654321987654)).toEqual("-987.654t"); + expect(formatBigNumber(-987654321987654e3)).toEqual("-987.654q"); + expect(formatBigNumber(-987654321987654e6)).toEqual("-987.654Q"); + expect(formatBigNumber(-987654321987654e9)).toEqual("-987.654s"); + expect(formatBigNumber(-987654321987654e12)).toEqual("-987.654S"); + expect(formatBigNumber(-987654321987654e15)).toEqual("-987.654o"); + expect(formatBigNumber(-987654321987654e18)).toEqual("-987.654n"); + }); + test("should format even bigger really big numbers in scientific format", () => { + expect(formatBigNumber(-987654321987654e21)).toEqual("-9.877e35"); + expect(formatBigNumber(-987654321987654e22)).toEqual("-9.877e36"); + expect(formatBigNumber(-987654321987654e23)).toEqual("-9.877e37"); + }); + test("should format percentage", () => { + expect(formatPercent(-1234.56789)).toEqual("-123,456.79%"); + }); +}); + +describe("Numeral formatting of scientific text", () => { + test("Parsing positive numbers", () => { + // Accepted by numeral.js + expect(parseBigNumber("123")).toEqual(123); + expect(parseBigNumber("123.456")).toEqual(123.456); + expect(parseBigNumber("123k")).toEqual(123e3); + expect(parseBigNumber("123.456k")).toEqual(123456); + expect(parseBigNumber("123m")).toEqual(123e6); + expect(parseBigNumber("123.456m")).toEqual(123456e3); + expect(parseBigNumber("123b")).toEqual(123e9); + expect(parseBigNumber("123.456b")).toEqual(123456e6); + expect(parseBigNumber("123t")).toEqual(123e12); + expect(parseBigNumber("123.456t")).toEqual(123456e9); + expect(parseBigNumber("123q")).toEqual(123e15); + expect(parseBigNumber("123.456q")).toEqual(123456e12); + expect(parseBigNumber("123Q")).toEqual(123e18); + expect(parseBigNumber("123.456Q")).toEqual(123456e15); + expect(parseBigNumber("123s")).toEqual(123e21); + expect(parseBigNumber("123.456s")).toEqual(123456e18); + expect(parseBigNumber("123S")).toEqual(123e24); + expect(parseBigNumber("123.456S")).toEqual(123456e21); + expect(parseBigNumber("123o")).toEqual(123e27); + expect(parseBigNumber("123.456o")).toEqual(123456e24); + expect(parseBigNumber("123n")).toEqual(123e30); + expect(parseBigNumber("123.456n")).toEqual(123456e27); + }); + test("Parsing negative numbers", () => { + // Accepted by numeral.js + expect(parseBigNumber("-123")).toEqual(-123); + expect(parseBigNumber("-123.456")).toEqual(-123.456); + expect(parseBigNumber("-123k")).toEqual(-123e3); + expect(parseBigNumber("-123.456k")).toEqual(-123456); + expect(parseBigNumber("-123m")).toEqual(-123e6); + expect(parseBigNumber("-123.456m")).toEqual(-123456e3); + expect(parseBigNumber("-123b")).toEqual(-123e9); + expect(parseBigNumber("-123.456b")).toEqual(-123456e6); + expect(parseBigNumber("-123t")).toEqual(-123e12); + expect(parseBigNumber("-123.456t")).toEqual(-123456e9); + expect(parseBigNumber("-123q")).toEqual(-123e15); + expect(parseBigNumber("-123.456q")).toEqual(-123456e12); + expect(parseBigNumber("-123Q")).toEqual(-123e18); + expect(parseBigNumber("-123.456Q")).toEqual(-123456e15); + expect(parseBigNumber("-123s")).toEqual(-123e21); + expect(parseBigNumber("-123.456s")).toEqual(-123456e18); + expect(parseBigNumber("-123S")).toEqual(-123e24); + expect(parseBigNumber("-123.456S")).toEqual(-123456e21); + expect(parseBigNumber("-123o")).toEqual(-123e27); + expect(parseBigNumber("-123.456o")).toEqual(-123456e24); + expect(parseBigNumber("-123n")).toEqual(-123e30); + expect(parseBigNumber("-123.456n")).toEqual(-123456e27); + }); +}); +describe("Ram formatting", () => { + test("With default GB mode", () => { + // Initial settings + Settings.UseIEC60027_2 = false; + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + // Base unit for ram is GB. + expect(formatRam(1)).toEqual("1.00GB"); + expect(formatRam(1e3)).toEqual("1.00TB"); + expect(formatRam(1024)).toEqual("1.02TB"); + expect(formatRam(1e6)).toEqual("1.00PB"); + expect(formatRam(1048576)).toEqual("1.05PB"); + expect(formatRam(1e9)).toEqual("1.00EB"); + expect(formatRam(1073741824)).toEqual("1.07EB"); + }); + test("With GiB mode", () => { + // Initial settings + Settings.UseIEC60027_2 = true; + Settings.hideTrailingDecimalZeros = false; + FormatsNeedToChange.emit(); + // Base unit for ram is now GiB. + expect(formatRam(1)).toEqual("1.00GiB"); + expect(formatRam(1e3)).toEqual("1,000.00GiB"); + expect(formatRam(1024)).toEqual("1.00TiB"); + expect(formatRam(1e6)).toEqual("976.56TiB"); + expect(formatRam(1048576)).toEqual("1.00PiB"); + expect(formatRam(1e9)).toEqual("953.67PiB"); + expect(formatRam(1073741824)).toEqual("1.00EiB"); + }); +}); diff --git a/test/jest/ui/nFormat.test.ts b/test/jest/ui/nFormat.test.ts deleted file mode 100644 index a66c70399..000000000 --- a/test/jest/ui/nFormat.test.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { numeralWrapper } from "../../../src/ui/numeralFormat"; - -const decimalFormat = "0.[000000]"; - -describe("Numeral formatting for positive numbers", () => { - test("should not format too small numbers", () => { - expect(numeralWrapper.format(0.0000000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(0.000000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(0.00000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(0.0000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(0.000001, decimalFormat)).toEqual("0.000001"); - expect(numeralWrapper.format(0.00001, decimalFormat)).toEqual("0.00001"); - expect(numeralWrapper.format(0.0001, decimalFormat)).toEqual("0.0001"); - expect(numeralWrapper.format(0.001, decimalFormat)).toEqual("0.001"); - expect(numeralWrapper.format(0.01, decimalFormat)).toEqual("0.01"); - expect(numeralWrapper.format(0.1, decimalFormat)).toEqual("0.1"); - expect(numeralWrapper.format(1, decimalFormat)).toEqual("1"); - }); - test("should format big numbers in short format", () => { - expect(numeralWrapper.formatBigNumber(987654000000000000)).toEqual("987654.000t"); - expect(numeralWrapper.formatBigNumber(987654300000000000)).toEqual("987654.300t"); - expect(numeralWrapper.formatBigNumber(987654320000000000)).toEqual("987654.320t"); - expect(numeralWrapper.formatBigNumber(987654321000000000)).toEqual("987654.321t"); - expect(numeralWrapper.formatBigNumber(987654321900000000)).toEqual("987654.322t"); - }); - test("should format really big numbers in readable format", () => { - expect(numeralWrapper.formatReallyBigNumber(987)).toEqual("987.000"); - expect(numeralWrapper.formatReallyBigNumber(987654)).toEqual("987.654k"); - expect(numeralWrapper.formatReallyBigNumber(987654321)).toEqual("987.654m"); - expect(numeralWrapper.formatReallyBigNumber(987654321987)).toEqual("987.654b"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654)).toEqual("987.654t"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000)).toEqual("987.654q"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000)).toEqual("987.654Q"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000000)).toEqual("987.654s"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000000000)).toEqual("987.654S"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000000000000)).toEqual("987.654o"); - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000000000000000)).toEqual("987.654n"); - }); - test("should format even bigger really big numbers in scientific format", () => { - expect(numeralWrapper.formatReallyBigNumber(987654321987654000000000000000000000)).toEqual("9.877e+35"); - expect(numeralWrapper.formatReallyBigNumber(9876543219876540000000000000000000000)).toEqual("9.877e+36"); - expect(numeralWrapper.formatReallyBigNumber(98765432198765400000000000000000000000)).toEqual("9.877e+37"); - }); - test("should format percentage", () => { - expect(numeralWrapper.formatPercentage(1234.56789)).toEqual("123456.79%"); - }); -}); - -describe("Numeral formatting for negative numbers", () => { - test("should not format too small numbers", () => { - expect(numeralWrapper.format(-0.0000000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(-0.000000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(-0.00000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(-0.0000001, decimalFormat)).toEqual("0"); - expect(numeralWrapper.format(-0.000001, decimalFormat)).toEqual("-0.000001"); - expect(numeralWrapper.format(-0.00001, decimalFormat)).toEqual("-0.00001"); - expect(numeralWrapper.format(-0.0001, decimalFormat)).toEqual("-0.0001"); - expect(numeralWrapper.format(-0.001, decimalFormat)).toEqual("-0.001"); - expect(numeralWrapper.format(-0.01, decimalFormat)).toEqual("-0.01"); - expect(numeralWrapper.format(-0.1, decimalFormat)).toEqual("-0.1"); - expect(numeralWrapper.format(-1, decimalFormat)).toEqual("-1"); - }); - test("should format big numbers in short format", () => { - expect(numeralWrapper.formatBigNumber(-987654000000000000)).toEqual("-987654.000t"); - expect(numeralWrapper.formatBigNumber(-987654300000000000)).toEqual("-987654.300t"); - expect(numeralWrapper.formatBigNumber(-987654320000000000)).toEqual("-987654.320t"); - expect(numeralWrapper.formatBigNumber(-987654321000000000)).toEqual("-987654.321t"); - expect(numeralWrapper.formatBigNumber(-987654321900000000)).toEqual("-987654.322t"); - }); - test("should format really big numbers in readable format", () => { - expect(numeralWrapper.formatReallyBigNumber(-987)).toEqual("-987.000"); - expect(numeralWrapper.formatReallyBigNumber(-987654)).toEqual("-987.654k"); - expect(numeralWrapper.formatReallyBigNumber(-987654321)).toEqual("-987.654m"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987)).toEqual("-987.654b"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654)).toEqual("-987.654t"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000)).toEqual("-987.654q"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000)).toEqual("-987.654Q"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000000)).toEqual("-987.654s"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000000000)).toEqual("-987.654S"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000000000000)).toEqual("-987.654o"); - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000000000000000)).toEqual("-987.654n"); - }); - test("should format even bigger really big numbers in scientific format", () => { - expect(numeralWrapper.formatReallyBigNumber(-987654321987654000000000000000000000)).toEqual("-9.877e+35"); - expect(numeralWrapper.formatReallyBigNumber(-9876543219876540000000000000000000000)).toEqual("-9.877e+36"); - expect(numeralWrapper.formatReallyBigNumber(-98765432198765400000000000000000000000)).toEqual("-9.877e+37"); - }); - test("should format percentage", () => { - expect(numeralWrapper.formatPercentage(-1234.56789)).toEqual("-123456.79%"); - }); -}); - -describe("Numeral formatting of text", () => { - test("should filter non-numeric text", () => { - expect(numeralWrapper.format("abc")).toEqual("0"); - expect(numeralWrapper.format("123abc")).toEqual("123"); - expect(numeralWrapper.format("!3")).toEqual("3"); - expect(numeralWrapper.format("3!")).toEqual("3"); - expect(numeralWrapper.format("0.001", decimalFormat)).toEqual("0.001"); - }); - test("should not format too small numbers", () => { - expect(numeralWrapper.format("0.00000001", decimalFormat)).toEqual("0"); - expect(numeralWrapper.format("0.0000001", decimalFormat)).toEqual("0"); - expect(numeralWrapper.format("0.000001", decimalFormat)).toEqual("0.000001"); - expect(numeralWrapper.format("0.00001", decimalFormat)).toEqual("0.00001"); - expect(numeralWrapper.format("1", decimalFormat)).toEqual("1"); - expect(numeralWrapper.format("-0.00000001", decimalFormat)).toEqual("0"); - expect(numeralWrapper.format("-0.0000001", decimalFormat)).toEqual("0"); - expect(numeralWrapper.format("-0.000001", decimalFormat)).toEqual("-0.000001"); - expect(numeralWrapper.format("-0.00001", decimalFormat)).toEqual("-0.00001"); - expect(numeralWrapper.format("-1", decimalFormat)).toEqual("-1"); - }); - test("should format big numbers in short format", () => { - expect(numeralWrapper.formatBigNumber("987654000000000000")).toEqual("987654.000t"); - expect(numeralWrapper.formatBigNumber("987654300000000000")).toEqual("987654.300t"); - expect(numeralWrapper.formatBigNumber("987654320000000000")).toEqual("987654.320t"); - expect(numeralWrapper.formatBigNumber("987654321000000000")).toEqual("987654.321t"); - expect(numeralWrapper.formatBigNumber("987654321900000000")).toEqual("987654.322t"); - expect(numeralWrapper.formatBigNumber("-987654000000000000")).toEqual("-987654.000t"); - expect(numeralWrapper.formatBigNumber("-987654300000000000")).toEqual("-987654.300t"); - expect(numeralWrapper.formatBigNumber("-987654320000000000")).toEqual("-987654.320t"); - expect(numeralWrapper.formatBigNumber("-987654321000000000")).toEqual("-987654.321t"); - expect(numeralWrapper.formatBigNumber("-987654321900000000")).toEqual("-987654.322t"); - }); - test("should format really big numbers in readable format", () => { - expect(numeralWrapper.formatReallyBigNumber("987")).toEqual("987.000"); - expect(numeralWrapper.formatReallyBigNumber("987654")).toEqual("987.654k"); - expect(numeralWrapper.formatReallyBigNumber("987654321")).toEqual("987.654m"); - expect(numeralWrapper.formatReallyBigNumber("987654321987")).toEqual("987.654b"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654")).toEqual("987.654t"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321")).toEqual("987.654q"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987")).toEqual("987.654Q"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987654")).toEqual("987.654s"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987654321")).toEqual("987.654S"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987654321987")).toEqual("987.654o"); - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987654321987654")).toEqual("987.654n"); - expect(numeralWrapper.formatReallyBigNumber("-987")).toEqual("-987.000"); - expect(numeralWrapper.formatReallyBigNumber("-987654")).toEqual("-987.654k"); - expect(numeralWrapper.formatReallyBigNumber("-987654321")).toEqual("-987.654m"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987")).toEqual("-987.654b"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654")).toEqual("-987.654t"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321")).toEqual("-987.654q"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987")).toEqual("-987.654Q"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987654")).toEqual("-987.654s"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987654321")).toEqual("-987.654S"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987654321987")).toEqual("-987.654o"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987654321987654")).toEqual("-987.654n"); - }); - test("should format even bigger really big numbers in scientific format", () => { - expect(numeralWrapper.formatReallyBigNumber("987654321987654321987654321987654321")).toEqual("9.877e+35"); - expect(numeralWrapper.formatReallyBigNumber("9876543219876543219876543219876543219")).toEqual("9.877e+36"); - expect(numeralWrapper.formatReallyBigNumber("98765432198765432198765432198765432198")).toEqual("9.877e+37"); - expect(numeralWrapper.formatReallyBigNumber("-987654321987654321987654321987654321")).toEqual("-9.877e+35"); - expect(numeralWrapper.formatReallyBigNumber("-9876543219876543219876543219876543219")).toEqual("-9.877e+36"); - expect(numeralWrapper.formatReallyBigNumber("-98765432198765432198765432198765432198")).toEqual("-9.877e+37"); - }); - test("should format percentage", () => { - expect(numeralWrapper.formatPercentage("1234.56789")).toEqual("123456.79%"); - expect(numeralWrapper.formatPercentage("-1234.56789")).toEqual("-123456.79%"); - }); -}); - -describe("Numeral formatting of scientific text", () => { - test("should format even bigger really big numbers in scientific format", () => { - // Accepted by numeral.js - expect(numeralWrapper.parseMoney("123")).toEqual(123); - expect(numeralWrapper.parseMoney("123.456")).toEqual(123.456); - expect(numeralWrapper.parseMoney("123k")).toEqual(123000); - expect(numeralWrapper.parseMoney("123.456k")).toEqual(123456); - expect(numeralWrapper.parseMoney("123m")).toEqual(123000000); - expect(numeralWrapper.parseMoney("123.456m")).toEqual(123456000); - expect(numeralWrapper.parseMoney("123b")).toEqual(123000000000); - expect(numeralWrapper.parseMoney("123.456b")).toEqual(123456000000); - expect(numeralWrapper.parseMoney("123t")).toEqual(123000000000000); - expect(numeralWrapper.parseMoney("123.456t")).toEqual(123456000000000); - // Custom formats, parseFloat has some rounding issues - expect(numeralWrapper.parseMoney("123q")).toBeCloseTo(123000000000000000); - expect(numeralWrapper.parseMoney("123.456q")).toBeCloseTo(123456000000000000); - expect(numeralWrapper.parseMoney("123Q")).toBeCloseTo(123000000000000000000); - expect(numeralWrapper.parseMoney("123.456Q")).toBeCloseTo(123456000000000000000); - expect(numeralWrapper.parseMoney("123s")).toBeCloseTo(123000000000000000000000); - expect(numeralWrapper.parseMoney("123.456s")).toBeCloseTo(123456000000000000000000); - expect(numeralWrapper.parseMoney("123S")).toBeCloseTo(123000000000000000000000000); - expect(numeralWrapper.parseMoney("123.456S")).toBeCloseTo(123456000000000000000000000); - // Larger numbers fail the test due to rounding issues - //expect(numeralWrapper.parseMoney('123o')).toBeCloseTo(123000000000000000000000000000); - //expect(numeralWrapper.parseMoney('123.456o')).toBeCloseTo(123456000000000000000000000000); - //expect(numeralWrapper.parseMoney('123n')).toBeCloseTo(123000000000000000000000000000000); - //expect(numeralWrapper.parseMoney('123.456n')).toBeCloseTo(123456000000000000000000000000000); - }); - test("should format even bigger really big negative numbers in scientific format", () => { - // Accepted by numeral.js - expect(numeralWrapper.parseMoney("-123")).toEqual(-123); - expect(numeralWrapper.parseMoney("-123.456")).toEqual(-123.456); - expect(numeralWrapper.parseMoney("-123k")).toEqual(-123000); - expect(numeralWrapper.parseMoney("-123.456k")).toEqual(-123456); - expect(numeralWrapper.parseMoney("-123m")).toEqual(-123000000); - expect(numeralWrapper.parseMoney("-123.456m")).toEqual(-123456000); - expect(numeralWrapper.parseMoney("-123b")).toEqual(-123000000000); - expect(numeralWrapper.parseMoney("-123.456b")).toEqual(-123456000000); - expect(numeralWrapper.parseMoney("-123t")).toEqual(-123000000000000); - expect(numeralWrapper.parseMoney("-123.456t")).toEqual(-123456000000000); - // Custom formats, parseFloat has some rounding issues - expect(numeralWrapper.parseMoney("-123q")).toBeCloseTo(-123000000000000000); - expect(numeralWrapper.parseMoney("-123.456q")).toBeCloseTo(-123456000000000000); - expect(numeralWrapper.parseMoney("-123Q")).toBeCloseTo(-123000000000000000000); - expect(numeralWrapper.parseMoney("-123.456Q")).toBeCloseTo(-123456000000000000000); - expect(numeralWrapper.parseMoney("-123s")).toBeCloseTo(-123000000000000000000000); - expect(numeralWrapper.parseMoney("-123.456s")).toBeCloseTo(-123456000000000000000000); - expect(numeralWrapper.parseMoney("-123S")).toBeCloseTo(-123000000000000000000000000); - expect(numeralWrapper.parseMoney("-123.456S")).toBeCloseTo(-123456000000000000000000000); - // Larger numbers fail the test due to rounding issues - //expect(numeralWrapper.parseMoney('-123o')).toBeCloseTo(-123000000000000000000000000000); - //expect(numeralWrapper.parseMoney('-123.456o')).toBeCloseTo(-123456000000000000000000000000); - //expect(numeralWrapper.parseMoney('-123n')).toBeCloseTo(-123000000000000000000000000000000); - //expect(numeralWrapper.parseMoney('-123.456n')).toBeCloseTo(-123456000000000000000000000000000); - }); -}); - -describe("Finding the number furthest away from 0", () => { - test("should work if all numbers are equal", () => { - expect(numeralWrapper.largestAbsoluteNumber(0, 0, 0)).toEqual(0); - expect(numeralWrapper.largestAbsoluteNumber(1, 1, 1)).toEqual(1); - expect(numeralWrapper.largestAbsoluteNumber(123, 123, 123)).toEqual(123); - expect(numeralWrapper.largestAbsoluteNumber(-1, -1, -1)).toEqual(-1); - expect(numeralWrapper.largestAbsoluteNumber(-123, -123, -123)).toEqual(-123); - }); - test("should work for different positive numbers, and for the largest number in each spot", () => { - expect(numeralWrapper.largestAbsoluteNumber(1, 2, 3)).toEqual(3); - expect(numeralWrapper.largestAbsoluteNumber(456, 789, 123)).toEqual(789); - expect(numeralWrapper.largestAbsoluteNumber(789123, 123456, 456789)).toEqual(789123); - }); - test("should work for different negative numbers, and for the smallest number in each spot", () => { - expect(numeralWrapper.largestAbsoluteNumber(-1, -2, -3)).toEqual(-3); - expect(numeralWrapper.largestAbsoluteNumber(-456, -789, -123)).toEqual(-789); - expect(numeralWrapper.largestAbsoluteNumber(-789123, -123456, -456789)).toEqual(-789123); - }); - test("should work for combined positive and negative numbers", () => { - expect(numeralWrapper.largestAbsoluteNumber(1, -2, 3)).toEqual(3); - expect(numeralWrapper.largestAbsoluteNumber(-456, 789, -123)).toEqual(789); - expect(numeralWrapper.largestAbsoluteNumber(789123, -123456, -456789)).toEqual(789123); - }); - test("Should return 0 for invalid input", () => { - expect( - numeralWrapper.largestAbsoluteNumber("abc" as unknown as number, undefined, null as unknown as number), - ).toEqual(0); - }); -}); diff --git a/tsdoc-metadata.json b/tsdoc-metadata.json index 11886848c..2546fe8a0 100644 --- a/tsdoc-metadata.json +++ b/tsdoc-metadata.json @@ -5,7 +5,7 @@ "toolPackages": [ { "packageName": "@microsoft/api-extractor", - "packageVersion": "7.19.4" + "packageVersion": "7.34.2" } ] }