mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 14:28:36 +02:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56441b8e34 | ||
|
|
5106315128 | ||
|
|
6ca7f10faf | ||
|
|
56802fc85e | ||
|
|
700583a739 | ||
|
|
a290b0bef5 | ||
|
|
79a06dd91c | ||
|
|
6cd6f28820 | ||
|
|
dabb5016fc | ||
|
|
58e38faad6 | ||
|
|
31e8ca8c8d | ||
|
|
c72519e3ea | ||
|
|
58333c1b46 | ||
|
|
f0ad090cdc | ||
|
|
4bd1fce1f6 | ||
|
|
b35e25e5dc | ||
|
|
a8bb345c88 | ||
|
|
bbe4f9c286 | ||
|
|
f9dcefd6ea | ||
|
|
44c2bab557 | ||
|
|
fbca5a4d8f | ||
|
|
c2ceaa9bdd | ||
|
|
dc402bef68 | ||
|
|
64272c99fb | ||
|
|
c8377c0bb3 | ||
|
|
4145ddad39 |
@@ -59,10 +59,16 @@
|
||||
}
|
||||
|
||||
#character-hp-wrapper { color: $my-stat-hp-color; }
|
||||
.character-hp-cell { color: $my-stat-hp-color; }
|
||||
#character-money-wrapper { color: $my-stat-money-color; }
|
||||
.character-money-cell { color: $my-stat-money-color; }
|
||||
#character-hack-wrapper { color: $my-stat-hack-color; }
|
||||
.character-hack-cell { color: $my-stat-hack-color; }
|
||||
#character-cha-wrapper { color: $my-stat-cha-color; }
|
||||
.character-cha-cell { color: $my-stat-cha-color; }
|
||||
#character-int-wrapper { color: $my-stat-int-color; }
|
||||
.character-int-cell { color: $my-stat-int-color; }
|
||||
.character-combat-cell { color: $my-stat-physical; }
|
||||
|
||||
.character-overview-btn {
|
||||
@include borderRadius(12px);
|
||||
|
||||
@@ -17,7 +17,8 @@ body {
|
||||
p,
|
||||
pre,
|
||||
h2,
|
||||
.text {
|
||||
.text,
|
||||
td {
|
||||
color: var(--my-font-color);
|
||||
}
|
||||
|
||||
@@ -79,6 +80,28 @@ a:visited {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#factions-tab {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#factions-notification {
|
||||
font-size: $defaultFontSize * 0.625;
|
||||
position: absolute; /* Position the badge within the relatively positioned button */
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#augmentations-tab {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#augmentations-notification {
|
||||
font-size: $defaultFontSize * 0.625;
|
||||
position: absolute; /* Position the badge within the relatively positioned button */
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.notification-on {
|
||||
background-color: #fa3e3e;
|
||||
color: #fff;
|
||||
|
||||
4
dist/engine.bundle.js
vendored
4
dist/engine.bundle.js
vendored
File diff suppressed because one or more lines are too long
2
dist/engineStyle.bundle.js
vendored
2
dist/engineStyle.bundle.js
vendored
@@ -1,2 +1,2 @@
|
||||
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([362,0]),o()}({305:function(n,t,o){},307:function(n,t,o){},309:function(n,t,o){},311:function(n,t,o){},313:function(n,t,o){},315:function(n,t,o){},317:function(n,t,o){},319:function(n,t,o){},321:function(n,t,o){},323:function(n,t,o){},325:function(n,t,o){},327:function(n,t,o){},329:function(n,t,o){},331:function(n,t,o){},333:function(n,t,o){},335:function(n,t,o){},337:function(n,t,o){},339:function(n,t,o){},341:function(n,t,o){},343:function(n,t,o){},345:function(n,t,o){},347:function(n,t,o){},349:function(n,t,o){},351:function(n,t,o){},353:function(n,t,o){},355:function(n,t,o){},357:function(n,t,o){},359:function(n,t,o){},362:function(n,t,o){"use strict";o.r(t);o(361),o(359),o(357),o(355),o(353),o(351),o(349),o(347),o(345),o(343),o(341),o(339),o(337),o(335),o(333),o(331),o(329),o(327),o(325),o(323),o(321),o(319),o(317),o(315),o(313),o(311),o(309),o(307),o(305)}});
|
||||
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([363,0]),o()}({306:function(n,t,o){},308:function(n,t,o){},310:function(n,t,o){},312:function(n,t,o){},314:function(n,t,o){},316:function(n,t,o){},318:function(n,t,o){},320:function(n,t,o){},322:function(n,t,o){},324:function(n,t,o){},326:function(n,t,o){},328:function(n,t,o){},330:function(n,t,o){},332:function(n,t,o){},334:function(n,t,o){},336:function(n,t,o){},338:function(n,t,o){},340:function(n,t,o){},342:function(n,t,o){},344:function(n,t,o){},346:function(n,t,o){},348:function(n,t,o){},350:function(n,t,o){},352:function(n,t,o){},354:function(n,t,o){},356:function(n,t,o){},358:function(n,t,o){},360:function(n,t,o){},363:function(n,t,o){"use strict";o.r(t);o(362),o(360),o(358),o(356),o(354),o(352),o(350),o(348),o(346),o(344),o(342),o(340),o(338),o(336),o(334),o(332),o(330),o(328),o(326),o(324),o(322),o(320),o(318),o(316),o(314),o(312),o(310),o(308),o(306)}});
|
||||
//# sourceMappingURL=engineStyle.bundle.js.map
|
||||
41
dist/engineStyle.css
vendored
41
dist/engineStyle.css
vendored
@@ -26,7 +26,8 @@ body {
|
||||
p,
|
||||
pre,
|
||||
h2,
|
||||
.text {
|
||||
.text,
|
||||
td {
|
||||
color: var(--my-font-color); }
|
||||
|
||||
h1 {
|
||||
@@ -78,6 +79,26 @@ a:visited {
|
||||
top: 0;
|
||||
right: 0; }
|
||||
|
||||
#factions-tab {
|
||||
position: relative; }
|
||||
|
||||
#factions-notification {
|
||||
font-size: 10px;
|
||||
position: absolute;
|
||||
/* Position the badge within the relatively positioned button */
|
||||
top: 0;
|
||||
right: 0; }
|
||||
|
||||
#augmentations-tab {
|
||||
position: relative; }
|
||||
|
||||
#augmentations-notification {
|
||||
font-size: 10px;
|
||||
position: absolute;
|
||||
/* Position the badge within the relatively positioned button */
|
||||
top: 0;
|
||||
right: 0; }
|
||||
|
||||
.notification-on {
|
||||
background-color: #fa3e3e;
|
||||
color: #fff;
|
||||
@@ -684,18 +705,36 @@ button {
|
||||
#character-hp-wrapper {
|
||||
color: #dd3434; }
|
||||
|
||||
.character-hp-cell {
|
||||
color: #dd3434; }
|
||||
|
||||
#character-money-wrapper {
|
||||
color: #ffd700; }
|
||||
|
||||
.character-money-cell {
|
||||
color: #ffd700; }
|
||||
|
||||
#character-hack-wrapper {
|
||||
color: #adff2f; }
|
||||
|
||||
.character-hack-cell {
|
||||
color: #adff2f; }
|
||||
|
||||
#character-cha-wrapper {
|
||||
color: #a671d1; }
|
||||
|
||||
.character-cha-cell {
|
||||
color: #a671d1; }
|
||||
|
||||
#character-int-wrapper {
|
||||
color: #6495ed; }
|
||||
|
||||
.character-int-cell {
|
||||
color: #6495ed; }
|
||||
|
||||
.character-combat-cell {
|
||||
color: #faffdf; }
|
||||
|
||||
.character-overview-btn {
|
||||
-webkit-border-radius: 12px;
|
||||
-moz-border-radius: 12px;
|
||||
|
||||
24
dist/vendor.bundle.js
vendored
24
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
@@ -3,6 +3,49 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
|
||||
v0.48.0 - ASCII - 2020-03-07
|
||||
-------
|
||||
|
||||
**ASCII**
|
||||
* Travel Agency now displays a world map
|
||||
* Cities are now top view of metro station maps
|
||||
|
||||
**Netscript**
|
||||
* 'softReset' is a new netscript function that performs a soft reset
|
||||
regardless of if the player has bought augmentations or not.
|
||||
* 'getAugmentationStats' is a new netscript function that returns the stats of
|
||||
an augmentation.
|
||||
* getCharacterInformation now additionally returns exp
|
||||
* pid resets back to 1 when installing or destroying a BitNode.
|
||||
* New '.ns' scripts start with a main function.
|
||||
* 'hacknet.maxNumNodes' returns the maximum number of hacknet nodes.
|
||||
|
||||
**Bladeburner**
|
||||
* Current stamina will scale as max stamina increases, this prevents players
|
||||
from having very high penalty when they gain huge amount of exp at the
|
||||
start of a reset.
|
||||
|
||||
**Misc.**
|
||||
* Fixed an issue where SF3 was listed as infinitly repeatable and SF12 as
|
||||
having a limit of 3.
|
||||
* Fixed an issue where the gang equipment screen would freeze the game if a
|
||||
script installed augmentations while it is open.
|
||||
* All BonusTime now displays in the 'H M S' format.
|
||||
* Donation textbox style updated to match the rest of the game.
|
||||
* Corporation name style updated to match the rest of the game.
|
||||
* minor formatting under Hacking>Active Scripts
|
||||
* typo in BN12 description
|
||||
* BN12 now reduces contract money
|
||||
* Character>Stats percentages are aligned, server and hacknet limit are
|
||||
displayed, if the player has SF5 the reduces stats are shown.
|
||||
* Character>Augmentations now displays by how much the player stats will
|
||||
increase.
|
||||
* Character>Augmentations has a badge indicating how many augs the player
|
||||
has bought but not installed
|
||||
* Character>Factions has a badge indicating how many factions have pending
|
||||
invites.
|
||||
|
||||
v0.47.2 - 7/15/2019
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ ascendMember() Netscript Function
|
||||
|
||||
.. js:function:: ascendMember(name)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param string name: Name of member to ascend
|
||||
|
||||
Ascend the specified Gang Member.
|
||||
@@ -20,5 +22,3 @@ ascendMember() Netscript Function
|
||||
agi: Agility multiplier gained from ascending. Decimal form
|
||||
cha: Charisma multiplier gained from ascending. Decimal form
|
||||
}
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,6 +3,6 @@ canRecruitMember() Netscript Function
|
||||
|
||||
.. js:function:: canRecruitMember()
|
||||
|
||||
:returns: Boolean indicating whether a member can currently be recruited
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
:returns: Boolean indicating whether a member can currently be recruited
|
||||
|
||||
@@ -3,6 +3,8 @@ getBonusTime() Netscript Function
|
||||
|
||||
.. js:function:: getBonusTime()
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
Returns the amount of accumulated "bonus time" (seconds) for the Gang mechanic.
|
||||
|
||||
"Bonus time" is accumulated when the game is offline or if the game is
|
||||
@@ -11,5 +13,3 @@ getBonusTime() Netscript Function
|
||||
"Bonus time" makes the game progress faster, up to 10x the normal speed.
|
||||
|
||||
:returns: Bonus time for the Gang mechanic in seconds
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,9 +3,9 @@ getChanceToWinClash() Netscript Function
|
||||
|
||||
.. js:function:: getChanceToWinClash(gangName)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param string gangName: Target gang
|
||||
|
||||
Returns the chance you have to win a clash with the specified gang. The chance
|
||||
is returned in decimal form, not percentage
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getEquipmentCost() Netscript Function
|
||||
|
||||
.. js:function:: getEquipmentCost(equipName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string equipName: Name of equipment
|
||||
|
||||
Get the amount of money it takes to purchase a piece of Equipment or an Augmentation.
|
||||
@@ -10,5 +12,3 @@ getEquipmentCost() Netscript Function
|
||||
|
||||
:returns: Cost to purchase the specified Equipment/Augmentation (number). Infinity
|
||||
for invalid arguments
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,9 +3,9 @@ getEquipmentNames() Netscript Function
|
||||
|
||||
.. js:function:: getEquipmentNames()
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
Get the name of all possible equipment/upgrades you can purchase for your
|
||||
Gang Members. This includes Augmentations.
|
||||
|
||||
:returns: Array of strings of the names of all Equpiment/Augmentations
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getEquipmentType() Netscript Function
|
||||
|
||||
.. js:function:: getEquipmentType(equipName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string equipName: Name of equipment
|
||||
|
||||
Get the specified equipment type, which can be one of the following:
|
||||
@@ -14,5 +16,3 @@ getEquipmentType() Netscript Function
|
||||
* Augmentation
|
||||
|
||||
:returns: A string stating the type of the equipment
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getGangInformation() Netscript Function
|
||||
|
||||
.. js:function:: getGangInformation()
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
Get general information about the gang
|
||||
|
||||
:returns: An object with the gang information.
|
||||
@@ -21,5 +23,3 @@ getGangInformation() Netscript Function
|
||||
wantedLevel: Gang's wanted level
|
||||
wantedLevelGainRate: Wanted level gained/lost per second (negative for losses)
|
||||
}
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,14 +3,14 @@ getMemberInformation() Netscript Function
|
||||
|
||||
.. js:function:: getMemberInformation(name)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string name: Name of member
|
||||
|
||||
Get stat and equipment-related information about a Gang Member
|
||||
|
||||
:returns: An object with the gang member information.
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
The object has the following structure::
|
||||
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@ getMemberNames() Netscript Function
|
||||
|
||||
.. js:function:: getMemberNames()
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
Get the names of all Gang members
|
||||
|
||||
:returns: An array of the names of all Gang members as strings
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getOtherGangInformation() Netscript Function
|
||||
|
||||
.. js:function:: getOtherGangInformation()
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
Get territory and power information about all gangs
|
||||
|
||||
:returns: An object with information about all gangs
|
||||
@@ -24,5 +26,3 @@ getOtherGangInformation() Netscript Function
|
||||
},
|
||||
... (for all six gangs)
|
||||
}
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,8 +3,8 @@ getTaskNames() Netscript Function
|
||||
|
||||
.. js:function:: getTaskNames()
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
Get the name of all valid tasks that Gang members can be assigned to
|
||||
|
||||
:returns: Array of strings of all task names
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ purchaseEquipment() Netscript Function
|
||||
|
||||
.. js:function:: purchaseEquipment(memberName, equipName)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param string memberName: Name of Gang member to purchase the equipment for
|
||||
:param string equipName: Name of Equipment/Augmentation to purchase
|
||||
|
||||
@@ -10,5 +12,3 @@ purchaseEquipment() Netscript Function
|
||||
Gang member.
|
||||
|
||||
:returns: True if the equipment was successfully purchased. False otherwise
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ recruitMember() Netscript Function
|
||||
|
||||
.. js:function:: recruitMember(name)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string name: Name of member to recruit
|
||||
|
||||
Attempt to recruit a new gang member.
|
||||
@@ -13,5 +15,3 @@ recruitMember() Netscript Function
|
||||
* There already exists a member with the specified name
|
||||
|
||||
:returns: True if the member was successfully recruited. False otherwise
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ setMemberTask() Netscript Function
|
||||
|
||||
.. js:function:: setMemberTask(memberName, taskName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string memberName: Name of Gang member to assign
|
||||
:param string taskName: Task to assign
|
||||
|
||||
@@ -10,5 +12,3 @@ setMemberTask() Netscript Function
|
||||
If an invalid task is specified, the Gang member will be set to idle ("Unassigned")
|
||||
|
||||
:returns: True if the Gang Member was successfully assigned to the task. False otherwise
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -3,8 +3,8 @@ setTerritoryWarfare() Netscript Function
|
||||
|
||||
.. js:function:: setTerritoryWarfare(engage)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param bool engage: Whether or not to engage in territory warfare
|
||||
|
||||
Set whether or not the gang should engage in territory warfare
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
@@ -5,6 +5,8 @@ getCacheUpgradeCost() Netscript Function
|
||||
|
||||
.. js:function:: getCacheUpgradeCost(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of times to upgrade cache. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -15,5 +17,3 @@ getCacheUpgradeCost() Netscript Function
|
||||
|
||||
If an invalid value for *n* is provided, then this function returns 0. If the
|
||||
specified Hacknet Server is already at the max cache level, then Infinity is returned.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getCoreUpgradeCost() Netscript Function
|
||||
|
||||
.. js:function:: getCoreUpgradeCost(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of times to upgrade cores. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -10,5 +12,3 @@ getCoreUpgradeCost() Netscript Function
|
||||
|
||||
If an invalid value for *n* is provided, then this function returns 0. If the
|
||||
specified Hacknet Node is already at the max number of cores, then Infinity is returned.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ getLevelUpgradeCost() Netscript Function
|
||||
|
||||
.. js:function:: getLevelUpgradeCost(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of levels to upgrade. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -10,5 +12,3 @@ getLevelUpgradeCost() Netscript Function
|
||||
|
||||
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.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -5,6 +5,8 @@ getNodeStats() Netscript Function
|
||||
|
||||
.. js:function:: getNodeStats(i)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
|
||||
Returns an object containing a variety of stats about the specified Hacknet Node::
|
||||
@@ -20,8 +22,6 @@ getNodeStats() Netscript Function
|
||||
timeOnline: Number of seconds since Node has been purchased,
|
||||
totalProduction: Total amount that the Node has produced
|
||||
}
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
.. note:: 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
|
||||
|
||||
@@ -3,6 +3,6 @@ getPurchaseNodeCost() Netscript Function
|
||||
|
||||
.. js:function:: getPurchaseNodeCost()
|
||||
|
||||
Returns the cost of purchasing a new Hacknet Node
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
Returns the cost of purchasing a new Hacknet Node
|
||||
|
||||
@@ -3,6 +3,8 @@ getRamUpgradeCost() Netscript Function
|
||||
|
||||
.. js:function:: getRamUpgradeCost(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of times to upgrade RAM. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -10,5 +12,3 @@ getRamUpgradeCost() Netscript Function
|
||||
|
||||
If an invalid value for *n* is provided, then this function returns 0. If the
|
||||
specified Hacknet Node is already at max RAM, then Infinity is returned.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -5,6 +5,8 @@ hashCost() Netscript Function
|
||||
|
||||
.. js:function:: hashCost(upgName)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param string upgName: Name of upgrade to get the cost of. Must be an exact match
|
||||
|
||||
.. note:: This function is only applicable for Hacknet Servers (the upgraded version
|
||||
@@ -12,8 +14,6 @@ hashCost() Netscript Function
|
||||
|
||||
Returns the number of hashes required for the specified upgrade. The name of the
|
||||
upgrade must be an exact match.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
8
doc/source/netscript/hacknetnodeapi/maxNumNodes.rst
Normal file
8
doc/source/netscript/hacknetnodeapi/maxNumNodes.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
maxNumNodes() Netscript Function
|
||||
=============================
|
||||
|
||||
.. js:function:: maxNumNodes()
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
Returns the maximum number of Hacknet Nodes you can own.
|
||||
@@ -5,9 +5,9 @@ numHashes() Netscript Function
|
||||
|
||||
.. js:function:: numHashes()
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
.. note:: This function is only applicable for Hacknet Servers (the upgraded version
|
||||
of a Hacknet Node).
|
||||
|
||||
Returns the number of hashes you have
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,6 @@ numNodes() Netscript Function
|
||||
|
||||
.. js:function:: numNodes()
|
||||
|
||||
Returns the number of Hacknet Nodes you own.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
Returns the number of Hacknet Nodes you own.
|
||||
|
||||
@@ -3,11 +3,11 @@ purchaseNode() Netscript Function
|
||||
|
||||
.. js:function:: purchaseNode()
|
||||
|
||||
: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.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -5,6 +5,8 @@ spendHashes() Netscript Function
|
||||
|
||||
.. js:function:: spendHashes(upgName, upgTarget)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param string upgName: Name of upgrade to spend hashes on. Must be an exact match
|
||||
:param string upgTarget: Object to which upgrade applies. Required for certain upgrades
|
||||
|
||||
@@ -24,5 +26,3 @@ spendHashes() Netscript Function
|
||||
|
||||
hacknet.spendHashes("Sell for Corporation Funds");
|
||||
hacknet.spendHashes("Increase Maximum Money", "foodnstuff");
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -5,6 +5,8 @@ upgradeCache() Netscript Function
|
||||
|
||||
.. js:function:: upgradeCache(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of cache levels to purchase. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -17,5 +19,3 @@ upgradeCache() Netscript Function
|
||||
it purchases some positive amount and the Server reaches its max cache level.
|
||||
|
||||
Returns false otherwise.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ upgradeCore() Netscript Function
|
||||
|
||||
.. js:function:: upgradeCore(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of cores to purchase. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -12,5 +14,3 @@ upgradeCore() Netscript Function
|
||||
it purchases some positive amount and the Node reaches its max number of cores.
|
||||
|
||||
Returns false otherwise.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ upgradeLevel() Netscript Function
|
||||
|
||||
.. js:function:: upgradeLevel(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of levels to purchase. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -12,5 +14,3 @@ upgradeLevel() Netscript Function
|
||||
if it is upgraded by some positive amount and the Node reaches its max level.
|
||||
|
||||
Returns false otherwise.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -3,6 +3,8 @@ upgradeRam() Netscript Function
|
||||
|
||||
.. js:function:: upgradeRam(i, n)
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
:param number i: Index/Identifier of Hacknet Node. :ref:`See here for details <netscript_hacknetnodeapi_referencingahacknetnode>`
|
||||
:param number n: Number of times to upgrade RAM. Must be positive. Rounded to nearest integer
|
||||
|
||||
@@ -14,5 +16,3 @@ upgradeRam() Netscript Function
|
||||
it is upgraded some positive number of times and the Node reaches it max RAM.
|
||||
|
||||
Returns false otherwise.
|
||||
|
||||
:RAM cost: 0 GB
|
||||
|
||||
@@ -2,6 +2,7 @@ applyToCompany() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: applyToCompany(companyName, field)
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
:param string companyName: Name of company to apply to. CASE-SENSITIVE.
|
||||
|
||||
@@ -2,6 +2,7 @@ checkFactionInvitations() Netscript Function
|
||||
============================================
|
||||
|
||||
.. js:function:: checkFactionInvitations()
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -2,6 +2,7 @@ commitCrime() Netscript Function
|
||||
================================
|
||||
|
||||
.. js:function:: commitCrime(crime)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string crime:
|
||||
|
||||
@@ -2,6 +2,7 @@ createProgram() Netscript Function
|
||||
==================================
|
||||
|
||||
.. js:function:: createProgram(programName)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string programName: Name of program to create. Not case-sensitive
|
||||
|
||||
@@ -2,6 +2,7 @@ donateToFaction() Netscript Function
|
||||
====================================
|
||||
|
||||
.. js:function:: donateToFaction(factionName, donateAmt)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string factionName: Name of faction to donate to. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getAugmentationCost() Netscript Function
|
||||
========================================
|
||||
|
||||
.. js:function:: getAugmentationCost(augName)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string augName: Name of Augmentation. CASE-SENSITIVE
|
||||
|
||||
@@ -3,6 +3,8 @@ getAugmentationPrereq() Netscript Function
|
||||
|
||||
.. js:function:: getAugmentationPrereq(augName)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string augName: Name of Augmentation. CASE-SENSITIVE
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
getAugmentationStats() Netscript Function
|
||||
=========================================
|
||||
|
||||
.. js:function:: getAugmentationStats(name)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string name: Name of Augmentation. CASE-SENSITIVE
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
|
||||
|
||||
ns.getAugmentationStats("Synfibril Muscle")
|
||||
{
|
||||
strength_mult: 1.3,
|
||||
defense_mult: 1.3,
|
||||
}
|
||||
@@ -2,6 +2,7 @@ getAugmentationsFromFaction() Netscript Function
|
||||
================================================
|
||||
|
||||
.. js:function:: getAugmentationsFromFaction(facName)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string facName: Name of faction. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getCharacterInformation() Netscript Function
|
||||
============================================
|
||||
|
||||
.. js:function:: getCharacterInformation()
|
||||
|
||||
:RAM cost: 0.5 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
|
||||
@@ -48,4 +49,10 @@ getCharacterInformation() Netscript Function
|
||||
workChaExpGain: Cha experience earned so far from work
|
||||
workRepGain: Reputation earned so far from work, if applicable
|
||||
workMoneyGain: Money earned so far from work, if applicable
|
||||
hackingExp: Total hacking experience
|
||||
strengthExp: Total strength experience
|
||||
defenseExp: Total defense experience
|
||||
dexterityExp: Total dexterity experience
|
||||
agilityExp: Total agility experience
|
||||
charismaExp: Total charisma experience
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ getCompanyFavor() Netscript Function
|
||||
====================================
|
||||
|
||||
.. js:function:: getCompanyFavor(companyName)
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
:param string companyName: Name of the company. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getCompanyFavorGain() Netscript Function
|
||||
========================================
|
||||
|
||||
.. js:function:: getCompanyFavorGain(companyName)
|
||||
|
||||
:RAM cost: 0.75 GB
|
||||
|
||||
:param string companyName: Name of the company. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getCompanyRep() Netscript Function
|
||||
==================================
|
||||
|
||||
.. js:function:: getCompanyRep(companyName)
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
:param string companyName: Name of the company. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getCrimeChance() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: getCrimeChance(crime)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string crime:
|
||||
|
||||
@@ -2,6 +2,7 @@ getFactionFavor() Netscript Function
|
||||
====================================
|
||||
|
||||
.. js:function:: getFactionFavor(factionName)
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
:param string factionName: Name of faction. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getFactionFavorGain() Netscript Function
|
||||
========================================
|
||||
|
||||
.. js:function:: getFactionFavorGain(factionName)
|
||||
|
||||
:RAM cost: 0.75 GB
|
||||
|
||||
:param string factionName: Name of faction. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ getFactionRep() Netscript Function
|
||||
==================================
|
||||
|
||||
.. js:function:: getFactionRep(factionName)
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
:param string factionName: Name of faction. CASE-SENSITIVE
|
||||
|
||||
@@ -3,6 +3,8 @@ getOwnedAugmentations() Netscript Function
|
||||
|
||||
.. js:function:: getOwnedAugmentations(purchased=false)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param boolean purchase:
|
||||
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.
|
||||
|
||||
@@ -2,6 +2,7 @@ getOwnedSourceFiles() Netscript Function
|
||||
========================================
|
||||
|
||||
.. js:function:: getOwnedSourceFiles()
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -3,6 +3,8 @@ getStats() Netscript Function
|
||||
|
||||
.. js:function:: getStats()
|
||||
|
||||
:RAM cost: 0.5 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
|
||||
|
||||
Returns an object with the Player's stats. The object has the following properties::
|
||||
|
||||
@@ -2,6 +2,7 @@ getUpgradeHomeRamCost() Netscript Function
|
||||
==========================================
|
||||
|
||||
.. js:function:: getUpgradeHomeRamCost()
|
||||
|
||||
:RAM cost: 1.5 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -2,6 +2,7 @@ gymWorkout() Netscript Function
|
||||
===============================
|
||||
|
||||
.. js:function:: gymWorkout(gymName, stat)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string gymName:
|
||||
|
||||
@@ -2,6 +2,7 @@ installAugmentations() Netscript Function
|
||||
=========================================
|
||||
|
||||
.. js:function:: installAugmentations(cbScript)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string cbScript:
|
||||
|
||||
@@ -2,6 +2,7 @@ isBusy() Netscript Function
|
||||
===========================
|
||||
|
||||
.. js:function:: isBusy()
|
||||
|
||||
:RAM cost: 0.5 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
|
||||
|
||||
@@ -2,6 +2,7 @@ joinFaction() Netscript Function
|
||||
================================
|
||||
|
||||
.. js:function:: joinFaction(name)
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
:param string name: Name of faction to join. CASE-SENSITIVE
|
||||
|
||||
@@ -2,6 +2,7 @@ purchaseAugmentation() Netscript Function
|
||||
=========================================
|
||||
|
||||
.. js:function:: purchaseAugmentation(factionName, augName)
|
||||
|
||||
:RAM cost: 5 GB
|
||||
|
||||
:param string factionName: Name of faction to purchase Augmentation from. CASE-SENSITIVE
|
||||
|
||||
@@ -3,6 +3,8 @@ purchaseProgram() Netscript Function
|
||||
|
||||
.. js:function:: purchaseProgram(programName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string programName: Name of program to purchase. Must include '.exe' extension. Not case-sensitive.
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -3,6 +3,8 @@ purchaseTor() Netscript Function
|
||||
|
||||
.. js:function:: purchaseTor()
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function.
|
||||
|
||||
This function allows you to automatically purchase a TOR router. The cost for purchasing a TOR router using this
|
||||
|
||||
8
doc/source/netscript/singularityfunctions/softReset.rst
Normal file
8
doc/source/netscript/singularityfunctions/softReset.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
softReset() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: softReset()
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function.
|
||||
|
||||
This function will perform a reset even if you don't have any augmentation installed.
|
||||
@@ -2,6 +2,7 @@ stopAction() Netscript Function
|
||||
===============================
|
||||
|
||||
.. js:function:: stopAction()
|
||||
|
||||
:RAM cost: 1 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
|
||||
|
||||
@@ -2,6 +2,7 @@ travelToCity() Netscript Function
|
||||
=================================
|
||||
|
||||
.. js:function:: travelToCity(cityName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string cityName:
|
||||
|
||||
@@ -2,6 +2,7 @@ universityCourse() Netscript Function
|
||||
=====================================
|
||||
|
||||
.. js:function:: universityCourse(universityName, courseName)
|
||||
|
||||
:RAM cost: 2 GB
|
||||
|
||||
:param string universityName:
|
||||
|
||||
@@ -2,6 +2,7 @@ upgradeHomeRam() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: upgradeHomeRam()
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.
|
||||
|
||||
@@ -2,6 +2,7 @@ workForCompany() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: workForCompany(companyName=lastCompany)
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
:param string companyName: Name of company to work for. Must be an exact match.
|
||||
|
||||
@@ -2,6 +2,7 @@ workForFaction() Netscript Function
|
||||
===================================
|
||||
|
||||
.. js:function:: workForFaction(factionName, workType)
|
||||
|
||||
:RAM cost: 3 GB
|
||||
|
||||
:param string factionName: Name of faction to work for. CASE-SENSITIVE
|
||||
|
||||
@@ -2,12 +2,12 @@ getInformation() Netscript Function
|
||||
=======================================
|
||||
|
||||
.. js:function:: getInformation(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to retrieve information. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a struct containing tons of information about this sleeve
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@ getNumSleeves() Netscript Function
|
||||
|
||||
.. js:function:: getNumSleeves()
|
||||
|
||||
Return the number of duplicate sleeves the player has.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
Return the number of duplicate sleeves the player has.
|
||||
|
||||
@@ -3,8 +3,8 @@ getSleeveAugmentations() Netscript Function
|
||||
|
||||
.. js:function:: getSleeveAugmentations(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to retrieve augmentations from. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a list of augmentation names that this sleeve has installed.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -2,12 +2,12 @@ getSleevePurchasableAugs() Netscript Function
|
||||
=============================================
|
||||
|
||||
.. js:function:: getSleevePurchasableAugs(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to retrieve purchasable augmentations from. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a list of augmentations that the player can buy for this sleeve.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ getSleeveStats() Netscript Function
|
||||
|
||||
.. js:function:: getSleeveStats(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to get stats of. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a structure containing the stats of the sleeve
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ getTask() Netscript Function
|
||||
|
||||
.. js:function:: getTask(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to retrieve task from. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return the current task that the sleeve is performing. type is set to "Idle" if the sleeve isn't doing anything
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ purchaseSleeveAug() Netscript Function
|
||||
|
||||
.. js:function:: purchaseSleeveAug(sleeveNumber, augName)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to buy an aug for. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string augName: Name of the aug to buy. Must be an exact match
|
||||
|
||||
Return true if the aug was purchased and installed on the sleeve.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,11 +3,11 @@ setToCommitCrime() Netscript Function
|
||||
|
||||
.. js:function:: setToCommitCrime(sleeveNumber, name)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to start commiting crime. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string name: Name of the crime. Must be an exact match.
|
||||
|
||||
Return a boolean indicating whether or not this action was set successfully.
|
||||
|
||||
Returns false if an invalid action is specified.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,9 +3,9 @@ setToCompanyWork() Netscript Function
|
||||
|
||||
.. js:function:: setToCompanyWork(sleeveNumber, companyName)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to work for the company. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string companyName: Name of the company to work for.
|
||||
|
||||
Return a boolean indicating whether or not the sleeve started working or this company.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,10 +3,10 @@ setToFactionWork() Netscript Function
|
||||
|
||||
.. js:function:: setToFactionWork(sleeveNumber, factionName, factionWorkType)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to work for the faction. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string factionName: Name of the faction to work for.
|
||||
:param string factionWorkType: Name of the action to perform for this faction.
|
||||
|
||||
Return a boolean indicating whether or not the sleeve started working or this faction.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,10 +3,10 @@ setToGymWorkout() Netscript Function
|
||||
|
||||
.. js:function:: setToGymWorkout(sleeveNumber, gymName, stat)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to workout at the gym. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string gymName: Name of the gym.
|
||||
:param string stat: Name of the stat to train.
|
||||
|
||||
Return a boolean indicating whether or not the sleeve started working out.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,8 +3,8 @@ setToShockRecovery() Netscript Function
|
||||
|
||||
.. js:function:: setToShockRecovery(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to start recovery. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a boolean indicating whether or not this action was set successfully.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,8 +3,8 @@ setToSynchronize() Netscript Function
|
||||
|
||||
.. js:function:: setToSynchronize(sleeveNumber)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to start synchronizing. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
|
||||
Return a boolean indicating whether or not this action was set successfully.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,10 +3,10 @@ setToUniversityCourse() Netscript Function
|
||||
|
||||
.. js:function:: setToUniversityCourse(sleeveNumber, university, className)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to start taking class. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string university: Name of the university to attend.
|
||||
:param string className: Name of the class to follow.
|
||||
|
||||
Return a boolean indicating whether or not this action was set successfully.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -3,9 +3,9 @@ travel() Netscript Function
|
||||
|
||||
.. js:function:: travel(sleeveNumber, cityName)
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
:param int sleeveNumber: Index of the sleeve to travel. See :ref:`here <netscript_sleeveapi_referencingaduplicatesleeve>`
|
||||
:param string cityName: Name of the destination city.
|
||||
|
||||
Return a boolean indicating whether or not the sleeve reached destination.
|
||||
|
||||
:RAM cost: 4 GB
|
||||
|
||||
@@ -58,9 +58,11 @@
|
||||
</li>
|
||||
<li id="factions-tab" class="mainmenu-accordion-panel">
|
||||
<button id="factions-menu-link"> Factions </button>
|
||||
<span id="factions-notification" class="notification-off"> </span>
|
||||
</li>
|
||||
<li id="augmentations-tab" class="mainmenu-accordion-panel">
|
||||
<button id="augmentations-menu-link" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"> Augmentations </button>
|
||||
<span id="augmentations-notification" class="notification-off"> </span>
|
||||
</li>
|
||||
<li id="hacknet-nodes-tab" class="mainmenu-accordion-panel">
|
||||
<button id="hacknet-nodes-menu-link"> Hacknet Nodes </button>
|
||||
|
||||
@@ -5,92 +5,104 @@ import * as React from "react";
|
||||
|
||||
import { Player } from "../../Player";
|
||||
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||
import { Augmentations} from "../Augmentations";
|
||||
|
||||
function calculateAugmentedStats() {
|
||||
const augP: any = {};
|
||||
for(const aug of Player.queuedAugmentations) {
|
||||
const augObj = Augmentations[aug.name];
|
||||
for (const mult in augObj.mults) {
|
||||
const v = augP[mult] ? augP[mult] : 1;
|
||||
augP[mult] = v * augObj.mults[mult];
|
||||
}
|
||||
}
|
||||
return augP;
|
||||
}
|
||||
|
||||
export function PlayerMultipliers(): React.ReactElement {
|
||||
const mults = calculateAugmentedStats();
|
||||
function MultiplierTable(rows: any[]): React.ReactElement {
|
||||
function improvements(r: number) {
|
||||
let elems: any[] = [];
|
||||
if(r) {
|
||||
elems = [
|
||||
<td key='2'> => </td>,
|
||||
<td key='3'>{numeralWrapper.formatPercentage(r)}</td>
|
||||
];
|
||||
}
|
||||
return elems;
|
||||
}
|
||||
|
||||
return <table>
|
||||
<tbody>
|
||||
{rows.map((r: any) => <tr key={r[0]}>
|
||||
<td key='0'><span>{r[0]} multiplier: </span></td>
|
||||
<td key='1' style={{textAlign: 'right'}}>{numeralWrapper.formatPercentage(r[1])}</td>
|
||||
{improvements(r[2])}
|
||||
</tr>)}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<p><strong><u>Total Multipliers:</u></strong></p>
|
||||
<p><strong><u>Multipliers:</u></strong></p><br />
|
||||
{MultiplierTable([
|
||||
['Hacking Chance ', Player.hacking_chance_mult, Player.hacking_chance_mult*mults.hacking_chance_mult],
|
||||
['Hacking Speed ', Player.hacking_speed_mult, Player.hacking_speed_mult*mults.hacking_speed_mult],
|
||||
['Hacking Money ', Player.hacking_money_mult, Player.hacking_money_mult*mults.hacking_money_mult],
|
||||
['Hacking Growth ', Player.hacking_grow_mult, Player.hacking_grow_mult*mults.hacking_grow_mult]
|
||||
])}<br />
|
||||
|
||||
<pre>
|
||||
{'Hacking Chance multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_chance_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacking Speed multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_speed_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacking Money multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_money_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacking Growth multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_grow_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Hacking Level multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacking Experience multiplier: ' + numeralWrapper.formatPercentage(Player.hacking_exp_mult)}
|
||||
</pre>
|
||||
<br />
|
||||
<pre>
|
||||
{'Strength Level multiplier: ' + numeralWrapper.formatPercentage(Player.strength_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Strength Experience multiplier: ' + numeralWrapper.formatPercentage(Player.strength_exp_mult)}
|
||||
</pre>
|
||||
<br />
|
||||
<pre>
|
||||
{'Defense Level multiplier: ' + numeralWrapper.formatPercentage(Player.defense_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Defense Experience multiplier: ' + numeralWrapper.formatPercentage(Player.defense_exp_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Dexterity Level multiplier: ' + numeralWrapper.formatPercentage(Player.dexterity_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Dexterity Experience multiplier: ' + numeralWrapper.formatPercentage(Player.dexterity_exp_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Agility Level multiplier: ' + numeralWrapper.formatPercentage(Player.agility_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Agility Experience multiplier: ' + numeralWrapper.formatPercentage(Player.agility_exp_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Charisma Level multiplier: ' + numeralWrapper.formatPercentage(Player.charisma_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Charisma Experience multiplier: ' + numeralWrapper.formatPercentage(Player.charisma_exp_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Hacknet Node production multiplier: ' + numeralWrapper.formatPercentage(Player.hacknet_node_money_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacknet Node purchase cost multiplier: ' + numeralWrapper.formatPercentage(Player.hacknet_node_purchase_cost_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacknet Node RAM upgrade cost multiplier: ' + numeralWrapper.formatPercentage(Player.hacknet_node_ram_cost_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacknet Node Core purchase cost multiplier: ' + numeralWrapper.formatPercentage(Player.hacknet_node_core_cost_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Hacknet Node level upgrade cost multiplier: ' + numeralWrapper.formatPercentage(Player.hacknet_node_level_cost_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Company reputation gain multiplier: ' + numeralWrapper.formatPercentage(Player.company_rep_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Faction reputation gain multiplier: ' + numeralWrapper.formatPercentage(Player.faction_rep_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Salary multiplier: ' + numeralWrapper.formatPercentage(Player.work_money_mult)}
|
||||
</pre><br />
|
||||
<pre>
|
||||
{'Crime success multiplier: ' + numeralWrapper.formatPercentage(Player.crime_success_mult)}
|
||||
</pre>
|
||||
<pre>
|
||||
{'Crime money multiplier: ' + numeralWrapper.formatPercentage(Player.crime_money_mult)}
|
||||
</pre>
|
||||
{MultiplierTable([
|
||||
['Hacking Level ', Player.hacking_mult, Player.hacking_mult*mults.hacking_mult],
|
||||
['Hacking Experience ', Player.hacking_exp_mult, Player.hacking_exp_mult*mults.hacking_exp_mult]
|
||||
])}<br />
|
||||
|
||||
|
||||
{MultiplierTable([
|
||||
['Strength Level ', Player.strength_mult, Player.strength_mult*mults.strength_mult],
|
||||
['Strength Experience ', Player.strength_exp_mult, Player.strength_exp_mult*mults.strength_exp_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Defense Level ', Player.defense_mult, Player.defense_mult*mults.defense_mult],
|
||||
['Defense Experience ', Player.defense_exp_mult, Player.defense_exp_mult*mults.defense_exp_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Dexterity Level ', Player.dexterity_mult, Player.dexterity_mult*mults.dexterity_mult],
|
||||
['Dexterity Experience ', Player.dexterity_exp_mult, Player.dexterity_exp_mult*mults.dexterity_exp_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Agility Level ', Player.agility_mult, Player.agility_mult*mults.agility_mult],
|
||||
['Agility Experience ', Player.agility_exp_mult, Player.agility_exp_mult*mults.agility_exp_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Charisma Level ', Player.charisma_mult, Player.charisma_mult*mults.charisma_mult],
|
||||
['Charisma Experience ', Player.charisma_exp_mult, Player.charisma_exp_mult*mults.charisma_exp_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Hacknet Node production ', Player.hacknet_node_money_mult, Player.hacknet_node_money_mult*mults.hacknet_node_money_mult],
|
||||
['Hacknet Node purchase cost ', Player.hacknet_node_purchase_cost_mult, Player.hacknet_node_purchase_cost_mult*mults.hacknet_node_purchase_cost_mult],
|
||||
['Hacknet Node RAM upgrade cost ', Player.hacknet_node_ram_cost_mult, Player.hacknet_node_ram_cost_mult*mults.hacknet_node_ram_cost_mult],
|
||||
['Hacknet Node Core purchase cost ', Player.hacknet_node_core_cost_mult, Player.hacknet_node_core_cost_mult*mults.hacknet_node_core_cost_mult],
|
||||
['Hacknet Node level upgrade cost ', Player.hacknet_node_level_cost_mult, Player.hacknet_node_level_cost_mult*mults.hacknet_node_level_cost_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Company reputation gain ', Player.company_rep_mult, Player.company_rep_mult*mults.company_rep_mult],
|
||||
['Faction reputation gain ', Player.faction_rep_mult, Player.faction_rep_mult*mults.faction_rep_mult],
|
||||
['Salary ', Player.work_money_mult, Player.work_money_mult*mults.work_money_mult]
|
||||
])}<br />
|
||||
|
||||
{MultiplierTable([
|
||||
['Crime success ', Player.crime_success_mult, Player.crime_success_mult*mults.crime_success_mult],
|
||||
['Crime money ', Player.crime_money_mult, Player.crime_money_mult*mults.crime_money_mult],
|
||||
])}<br />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -234,7 +234,7 @@ BitNodes["BitNode11"] = new BitNode(11, "The Big Crash", "Okay. Sell it all.",
|
||||
"Level 3: 56%");
|
||||
BitNodes["BitNode12"] = new BitNode(12, "The Recursion", "Repeat.",
|
||||
"To iterate is human, to recurse divine.<br><br>" +
|
||||
"Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give your Souce-File 12, or " +
|
||||
"Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give you Souce-File 12, or " +
|
||||
"if you already have this Source-File it will upgrade its level. There is no maximum level for Source-File 12. Each level " +
|
||||
"of Source-File 12 will increase all of your multipliers by 1%. This effect is multiplicative with itself. " +
|
||||
"In other words, level N of this Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers that decrease)");
|
||||
@@ -460,11 +460,12 @@ export function initBitNodeMultipliers(p: IPlayer) {
|
||||
BitNodeMultipliers.PurchasedServerLimit = dec;
|
||||
BitNodeMultipliers.PurchasedServerMaxRam = dec;
|
||||
|
||||
BitNodeMultipliers.ManualHackMoney = dec;
|
||||
BitNodeMultipliers.ScriptHackMoney = dec;
|
||||
BitNodeMultipliers.CompanyWorkMoney = dec;
|
||||
BitNodeMultipliers.CrimeMoney = dec;
|
||||
BitNodeMultipliers.HacknetNodeMoney = dec;
|
||||
BitNodeMultipliers.ManualHackMoney = dec;
|
||||
BitNodeMultipliers.ScriptHackMoney = dec;
|
||||
BitNodeMultipliers.CompanyWorkMoney = dec;
|
||||
BitNodeMultipliers.CrimeMoney = dec;
|
||||
BitNodeMultipliers.HacknetNodeMoney = dec;
|
||||
BitNodeMultipliers.CodingContractMoney = dec;
|
||||
|
||||
BitNodeMultipliers.CompanyWorkExpGain = dec;
|
||||
BitNodeMultipliers.ClassGymExpGain = dec;
|
||||
|
||||
@@ -31,6 +31,7 @@ import { KEY } from "../utils/helpers/keyCodes";
|
||||
|
||||
import { removeChildrenFromElement } from "../utils/uiHelpers/removeChildrenFromElement";
|
||||
import { appendLineBreaks } from "../utils/uiHelpers/appendLineBreaks";
|
||||
import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions";
|
||||
import { createElement } from "../utils/uiHelpers/createElement";
|
||||
import { createPopup } from "../utils/uiHelpers/createPopup";
|
||||
import { removeElement } from "../utils/uiHelpers/removeElement";
|
||||
@@ -991,12 +992,16 @@ Bladeburner.prototype.process = function() {
|
||||
}
|
||||
|
||||
Bladeburner.prototype.calculateMaxStamina = function() {
|
||||
var effAgility = Player.agility * this.skillMultipliers.effAgi;
|
||||
var maxStamina = (Math.pow(effAgility, 0.8) + this.staminaBonus);
|
||||
maxStamina *= this.skillMultipliers.stamina;
|
||||
maxStamina *= Player.bladeburner_max_stamina_mult;
|
||||
const effAgility = Player.agility * this.skillMultipliers.effAgi;
|
||||
let maxStamina = (Math.pow(effAgility, 0.8) + this.staminaBonus) *
|
||||
this.skillMultipliers.stamina *
|
||||
Player.bladeburner_max_stamina_mult;
|
||||
if (this.maxStamina !== maxStamina) {
|
||||
const oldMax = this.maxStamina;
|
||||
this.maxStamina = maxStamina;
|
||||
this.stamina = this.maxStamina * this.stamina / oldMax;
|
||||
}
|
||||
if (isNaN(maxStamina)) {throw new Error("Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()");}
|
||||
this.maxStamina = maxStamina;
|
||||
}
|
||||
|
||||
Bladeburner.prototype.calculateStaminaGainPerSecond = function() {
|
||||
@@ -2349,7 +2354,7 @@ Bladeburner.prototype.updateOverviewContent = function() {
|
||||
DomElems.overviewEstComms.childNodes[0].nodeValue = "Est. Synthoid Communities: " + formatNumber(this.getCurrentCity().comms, 0);
|
||||
DomElems.overviewChaos.childNodes[0].nodeValue = "City Chaos: " + formatNumber(this.getCurrentCity().chaos);
|
||||
DomElems.overviewSkillPoints.innerText = "Skill Points: " + formatNumber(this.skillPoints, 0);
|
||||
DomElems.overviewBonusTime.childNodes[0].nodeValue = "Bonus time: " + this.storedCycles/CyclesPerSecond;
|
||||
DomElems.overviewBonusTime.childNodes[0].nodeValue = "Bonus time: " + convertTimeMsToTimeElapsedString(this.storedCycles/CyclesPerSecond*1000);
|
||||
DomElems.overviewAugSuccessMult.innerText = "Aug. Success Chance Mult: " + formatNumber(Player.bladeburner_success_chance_mult*100, 1) + "%";
|
||||
DomElems.overviewAugMaxStaminaMult.innerText = "Aug. Max Stamina Mult: " + formatNumber(Player.bladeburner_max_stamina_mult*100, 1) + "%";
|
||||
DomElems.overviewAugStaminaGainMult.innerText = "Aug. Stamina Gain Mult: " + formatNumber(Player.bladeburner_stamina_gain_mult*100, 1) + "%";
|
||||
|
||||
@@ -74,7 +74,6 @@ for (const md of codingContractTypesMetadata) {
|
||||
// tslint:disable-next-line
|
||||
CodingContractTypes[md.name] = new CodingContractType(md.name, md.desc, md.gen, md.solver, md.difficulty, md.numTries);
|
||||
}
|
||||
console.info(`${Object.keys(CodingContractTypes).length} Coding Contract Types loaded`);
|
||||
|
||||
/**
|
||||
* Enum representing the different types of rewards a Coding Contract can give
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { IMap } from "./types";
|
||||
|
||||
export let CONSTANTS: IMap<any> = {
|
||||
Version: "0.47.2",
|
||||
Version: "0.48.0",
|
||||
|
||||
/** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience
|
||||
* and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
|
||||
@@ -228,11 +228,46 @@ export let CONSTANTS: IMap<any> = {
|
||||
|
||||
LatestUpdate:
|
||||
`
|
||||
v0.47.3
|
||||
v0.48.0 - ASCII
|
||||
-------
|
||||
|
||||
ASCII
|
||||
* Travel Agency now displays a world map
|
||||
* Cities are now top view of metro station maps
|
||||
|
||||
Netscript
|
||||
* 'softReset' is a new netscript function that performs a soft reset
|
||||
regardless of if the player has bought augmentations or not.
|
||||
* 'getAugmentationStats' is a new netscript function that returns the stats of
|
||||
an augmentation.
|
||||
* getCharacterInformation now additionally returns exp
|
||||
* pid resets back to 1 when installing or destroying a BitNode.
|
||||
* New '.ns' scripts start with a main function.
|
||||
* 'hacknet.maxNumNodes' returns the maximum number of hacknet nodes.
|
||||
|
||||
Bladeburner
|
||||
* Current stamina will scale as max stamina increases, this prevents players
|
||||
from having very high penalty when they gain huge amount of exp at the
|
||||
start of a reset.
|
||||
|
||||
Misc.
|
||||
* missing ram cost in many function now added to documentation
|
||||
* typos
|
||||
* Fixed an issue where SF3 was listed as infinitly repeatable and SF12 as
|
||||
having a limit of 3.
|
||||
* Fixed an issue where the gang equipment screen would freeze the game if a
|
||||
script installed augmentations while it is open.
|
||||
* All BonusTime now displays in the 'H M S' format.
|
||||
* Donation textbox style updated to match the rest of the game.
|
||||
* Corporation name style updated to match the rest of the game.
|
||||
* minor formatting under Hacking>Active Scripts
|
||||
* typo in BN12 description
|
||||
* BN12 now reduces contract money
|
||||
* Character>Stats percentages are aligned, server and hacknet limit are
|
||||
displayed, if the player has SF5 the reduces stats are shown.
|
||||
* Character>Augmentations now displays by how much the player stats will
|
||||
increase.
|
||||
* Character>Augmentations has a badge indicating how many augs the player
|
||||
has bought but not installed
|
||||
* Character>Factions has a badge indicating how many factions have pending
|
||||
invites.
|
||||
`
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import { CorporationUpgrades } from "../data/CorporationUpgrades";
|
||||
|
||||
import { CONSTANTS } from "../../Constants";
|
||||
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||
import { convertTimeMsToTimeElapsedString } from "../../../utils/StringHelperFunctions";
|
||||
|
||||
export class Overview extends BaseReactComponent {
|
||||
// Generic Function for Creating a button
|
||||
@@ -71,9 +72,9 @@ export class Overview extends BaseReactComponent {
|
||||
`Private Shares: ${numeralWrapper.format(this.corp().totalShares - this.corp().issuedShares - this.corp().numShares, "0.000a")}` +
|
||||
"</span></p><br><br>";
|
||||
|
||||
const storedTime = this.corp().storedCycles * CONSTANTS.MilliPerCycle / 1000;
|
||||
if (storedTime > 15) {
|
||||
txt += `Bonus Time: ${storedTime} seconds<br><br>`;
|
||||
const storedTime = this.corp().storedCycles * CONSTANTS.MilliPerCycle;
|
||||
if (storedTime > 15000) {
|
||||
txt += `Bonus time: ${convertTimeMsToTimeElapsedString(storedTime)}<br><br>`;
|
||||
}
|
||||
|
||||
let prodMult = this.corp().getProductionMultiplier(),
|
||||
|
||||
@@ -88,7 +88,7 @@ export class DonateOption extends React.Component<IProps, IState> {
|
||||
return (
|
||||
<div className={"faction-work-div"}>
|
||||
<div className={"faction-work-div-wrapper"}>
|
||||
<input onChange={this.handleChange} placeholder={"Donation amount"} style={inputStyleMarkup} />
|
||||
<input className='text-input' onChange={this.handleChange} placeholder={"Donation amount"} style={inputStyleMarkup} />
|
||||
<StdButton
|
||||
onClick={this.donate}
|
||||
text={"Donate Money"}
|
||||
|
||||
@@ -33,6 +33,7 @@ import { createPopup } from "../utils/uiHelpers/createPopup";
|
||||
import { removeChildrenFromElement } from "../utils/uiHelpers/removeChildrenFromElement";
|
||||
import { removeElement } from "../utils/uiHelpers/removeElement";
|
||||
import { removeElementById } from "../utils/uiHelpers/removeElementById";
|
||||
import { convertTimeMsToTimeElapsedString } from "../utils/StringHelperFunctions";
|
||||
|
||||
|
||||
// Constants
|
||||
@@ -1570,7 +1571,9 @@ Gang.prototype.updateGangContent = function() {
|
||||
// Update territory information
|
||||
UIElems.gangTerritoryInfoText.innerHTML = "";
|
||||
const playerPower = AllGangs[this.facName].power;
|
||||
for (const gangname in AllGangs) {
|
||||
let gangNames = Object.keys(AllGangs).filter(g => g != this.facName);
|
||||
gangNames.unshift(this.facName);
|
||||
for (const gangname of gangNames) {
|
||||
if (AllGangs.hasOwnProperty(gangname)) {
|
||||
const gangTerritoryInfo = AllGangs[gangname];
|
||||
let territory = gangTerritoryInfo.territory * 100;
|
||||
@@ -1670,7 +1673,7 @@ Gang.prototype.updateGangContent = function() {
|
||||
|
||||
const CyclesPerSecond = 1000 / Engine._idleSpeed;
|
||||
UIElems.gangInfo.appendChild(createElement("p", { // Stored Cycles
|
||||
innerText: `Bonus time(s): ${this.storedCycles / CyclesPerSecond}`,
|
||||
innerText: `Bonus time: ${convertTimeMsToTimeElapsedString(this.storedCycles / CyclesPerSecond*1000)}`,
|
||||
display: "inline-block",
|
||||
tooltip: "You gain bonus time while offline or when the game is inactive (e.g. when the tab is throttled by the browser). " +
|
||||
"Bonus time makes the Gang mechanic progress faster, up to 5x the normal speed",
|
||||
@@ -1942,6 +1945,8 @@ Gang.prototype.setGangMemberTaskDescription = function(memberObj, taskName) {
|
||||
Gang.prototype.clearUI = function() {
|
||||
if (UIElems.gangContainer instanceof Element) { removeElement(UIElems.gangContainer); }
|
||||
|
||||
if (UIElems.gangMemberUpgradeBox instanceof Element) { removeElement(UIElems.gangMemberUpgradeBox); }
|
||||
|
||||
for (const prop in UIElems) {
|
||||
UIElems[prop] = null;
|
||||
}
|
||||
|
||||
@@ -15,9 +15,15 @@ export class City {
|
||||
*/
|
||||
name: CityName;
|
||||
|
||||
constructor(name: CityName, locations: LocationName[]=[]) {
|
||||
/**
|
||||
* Metro map ascii art
|
||||
*/
|
||||
asciiArt: string;
|
||||
|
||||
constructor(name: CityName, locations: LocationName[]=[], asciiArt: string='') {
|
||||
this.name = name;
|
||||
this.locations = locations;
|
||||
this.asciiArt = asciiArt;
|
||||
}
|
||||
|
||||
addLocation(loc: LocationName): void {
|
||||
|
||||
@@ -40,6 +40,181 @@ Cities[CityName.NewTokyo] = new City(CityName.NewTokyo);
|
||||
Cities[CityName.Sector12] = new City(CityName.Sector12);
|
||||
Cities[CityName.Volhaven] = new City(CityName.Volhaven);
|
||||
|
||||
Cities[CityName.Aevum].asciiArt = `
|
||||
[aevum police headquarters] 26
|
||||
o
|
||||
I \\ [bachman & associates]
|
||||
\\ 56 B
|
||||
x \\ [summit university]
|
||||
\\ \\ 28
|
||||
\\ [snap fitness gym] x o--L------------
|
||||
K \\ /
|
||||
\\ \\ P
|
||||
x 58 \\ / [travel agency]
|
||||
\\ 94 95 o
|
||||
90 x 59 o------o |
|
||||
\\ / \\ | 98 102 103
|
||||
o--------N------x----o 93 96 o-----+------------o o----o
|
||||
\\ | \\ /
|
||||
[hospital] \\ 61 [ecorp] x 31 99 o-F-o 101
|
||||
o |
|
||||
| o---E-- | [fulcrum tech.]
|
||||
x 62 / A [aerocorp]
|
||||
[crush fitness gym] | / |
|
||||
| / |
|
||||
o--------D------+--o o
|
||||
| |\\ [rho construction]
|
||||
H [netlink tech.] | J
|
||||
| | \\
|
||||
| 34 x \\
|
||||
[clarke inc.] C | \\ [world stock exchange]
|
||||
| | \\
|
||||
| | o-M-------Q--------o
|
||||
[galactic cybersystems] G 35 x
|
||||
| [watchdog security]
|
||||
|
|
||||
67 o
|
||||
|
||||
[the slums] O `
|
||||
Cities[CityName.Chongqing].asciiArt = `
|
||||
|
|
||||
75 o
|
||||
\\
|
||||
o 76
|
||||
7 | |
|
||||
| + 77
|
||||
[world stock exchange] F |
|
||||
\\ o 78 [kuaigong international]
|
||||
\\ /
|
||||
38 o----x--x------x------A---------
|
||||
/ 39 | 41
|
||||
37 o + 79 o--x--x-C-0
|
||||
/ | /
|
||||
/ x-----+-----x-----0 [hospital]
|
||||
[solaris space system] B |
|
||||
| + 80
|
||||
| |
|
||||
34 o E [travel agency]
|
||||
|
|
||||
|
|
||||
x 82
|
||||
[the slums] D `
|
||||
Cities[CityName.Ishima].asciiArt = `
|
||||
o 59
|
||||
o o |
|
||||
[storm tech.] | | G [world stock exchange]
|
||||
| | 28 |
|
||||
23 o--C------o--------+----x----o |
|
||||
/ / 25 | 27 \\ x 57
|
||||
/ / | \\ |
|
||||
/ / | \\ |
|
||||
o 22 o | \\| 29/56
|
||||
| | o
|
||||
| [hospital] D / \\ 3 2 1
|
||||
o | / \\ o-------x------o
|
||||
/ o / \\ /
|
||||
48 o / 55 x \\ /
|
||||
\\ / / x
|
||||
\\ / [nova medical] / 4/30 \\
|
||||
49 x A \\
|
||||
/ \\ / \\
|
||||
/ \\ [travel agency] F o 31
|
||||
/ \\ 51 /
|
||||
/ o----B------x-----o
|
||||
o 50 52
|
||||
[omega soft.]
|
||||
[the slums] E `
|
||||
Cities[CityName.NewTokyo].asciiArt = `
|
||||
|
||||
|
||||
o
|
||||
\\
|
||||
\\ [defcomm]
|
||||
\\
|
||||
o--x---A--x--o [travel agency]
|
||||
7 8 10 G
|
||||
[vitalife] o 12 [global pharmaceuticals]
|
||||
|
|
||||
o--D-x----x-------x-C-+--------x--x-B-x---x-o
|
||||
21 22 23 \\ 24 25 26 27
|
||||
\\
|
||||
[noodle bar] x 14
|
||||
\\
|
||||
\\
|
||||
[hospital] o 15 [world stock exchange]
|
||||
|
|
||||
o--x--E--x-----x-----x---+---x----x--H--x-o
|
||||
|
|
||||
|
|
||||
o 17
|
||||
|
||||
|
||||
|
||||
F [the slums]
|
||||
`
|
||||
Cities[CityName.Sector12].asciiArt = `
|
||||
78 o 97
|
||||
o [icarus microsystems] /
|
||||
N [powerhouse gym] o I
|
||||
1 | | /
|
||||
o-----+---x----o 4 A [alpha ent.] o-------o /
|
||||
| 3 \\ | \\ /
|
||||
| \\ | [iron gym] x 95
|
||||
(79) x \\ | / \\
|
||||
| o-E----+----x----J--o 10 / o----T--o
|
||||
| | 8 \\ 94 x
|
||||
80 x [city hall] | x 11 / [world stock exchange]
|
||||
| | \\ /
|
||||
| C [cia] \\ /
|
||||
Q [hospital] | F P [universal energy]
|
||||
| o [deltaone] \\ /
|
||||
| 35 o---------x 13/92/36
|
||||
L [megacorp] 33 / / \\
|
||||
| o------------o 34 / \\
|
||||
(29) | / [carmichael sec.] D \\
|
||||
o-----+-----x------o / O [rothman university]
|
||||
| 31 32 [nsa] M
|
||||
| /
|
||||
B [blade industries] H
|
||||
| / [four sigma]
|
||||
| [joe's guns] /
|
||||
| /
|
||||
85 o--G--------K--------S-------o 88 [the slums] R
|
||||
|
||||
[foodnstuff] [travel agency] `
|
||||
Cities[CityName.Volhaven].asciiArt = `
|
||||
[omnia cybersystems]
|
||||
17 66 68
|
||||
o o------G-------o
|
||||
\\ / \\
|
||||
\\ o 65 o 69
|
||||
[syscore sec.] H | |
|
||||
\\ | | [millenium fitness gym]
|
||||
\\ | 21 22 23 24 | 26
|
||||
o----+--x--x----x---x---+-----x-------D-----o
|
||||
19 | | 28
|
||||
| F [omnitek inc.]
|
||||
[hospital] J 63 o
|
||||
| / 72
|
||||
3 | 5 6 / 9
|
||||
o--------+----x-----x----+----------M-------o
|
||||
/ | |
|
||||
/ 61 x [helios labs] B [world stock exchange]
|
||||
[travel agency] L | |
|
||||
/ | o
|
||||
/ E [nwo] / 75
|
||||
/ [computek] | /
|
||||
/ A-------o------I-----o
|
||||
1 o | |
|
||||
| [zb] o 77
|
||||
[lexocorp] C
|
||||
|
|
||||
o
|
||||
57
|
||||
|
||||
|
||||
[the slums] K `
|
||||
|
||||
// Then construct all locations, and add them to the cities as we go.
|
||||
for (const metadata of LocationsMetadata) {
|
||||
const loc = constructLocation(metadata);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user