bitburner-src/doc/source/netscript/netscriptgangapi.rst
2018-12-03 17:20:58 -08:00

278 lines
8.5 KiB
ReStructuredText

Netscript Gang API
==================
Netscript provides the following API for interacting with the game's Gang mechanic.
The Gang API is **not** immediately available to the player and must be unlocked
later in the game
**WARNING: This page contains spoilers for the game**
The Gang API is unlocked in BitNode-2. Currently, BitNode-2 is the only location
where the Gang mechanic is accessible. This may change in the future
**Gang API functions must be accessed through the 'gang' namespace**
In :ref:`netscript1`::
gang.getMemberNames();
gang.recruitMember("Fry");
In :ref:`netscriptjs`::
ns.gang.getMemberNames();
ns.gang.recruitMember("Fry");
getMemberNames
--------------
.. js:function:: getMemberNames()
Get the names of all Gang members
:returns: An array of the names of all Gang members as strings
getGangInformation
------------------
.. js:function:: getGangInformation()
Get general information about the gang
:returns: An object with the gang information.
The object has the following structure::
{
faction: Name of faction that the gang belongs to ("Slum Snakes", etc.)
isHacking: Boolean indicating whether or not its a hacking gang
moneyGainRate: Money earned per second
power: Gang's power for territory warfare
respect: Gang's respect
respectGainRate: Respect earned per second
territory: Amount of territory held. Returned in decimal form, not percentage
territoryClashChance: Clash chance. Returned in decimal form, not percentage
wantedLevel: Gang's wanted level
wantedLevelGainRate: Wanted level gained/lost per second (negative for losses)
}
getOtherGangInformation
-----------------------
.. js:function:: getOtherGangInformation()
Get territory and power information about all gangs
:returns: An object with information about all gangs
The object has the following structure::
{
"Slum Snakes" : {
power: Slum Snakes' power
territory: Slum Snakes' territory, in decimal form
},
"Tetrads" : {
power: ...
territory: ...
},
"The Syndicate" : {
power: ...
territory: ...
},
... (for all six gangs)
}
getMemberInformation
--------------------
.. js:function:: getMemberInformation(name)
:param string name: Name of member
Get stat and equipment-related information about a Gang Member
:returns: An object with the gang member information.
The object has the following structure::
{
agility: Agility stat
agilityEquipMult: Agility multiplier from equipment. Decimal form
agilityAscensionMult: Agility multiplier from ascension. Decimal form
augmentations: Array of names of all owned Augmentations
charisma: Charisma stat
charismaEquipMult: Charisma multiplier from equipment. Decimal form
charismaAscensionMult: Charisma multiplier from ascension. Decimal form
defense: Defense stat
defenseEquipMult: Defense multiplier from equipment. Decimal form
defenseAscensionMult: Defense multiplier from ascension. Decimal form
dexterity: Dexterity stat
dexterityEquipMult: Dexterity multiplier from equipment. Decimal form
dexterityAscensionMult: Dexterity multiplier from ascension. Decimal form
equipment: Array of names of all owned Non-Augmentation Equipment
hacking: Hacking stat
hackingEquipMult: Hacking multiplier from equipment. Decimal form
hackingAscensionMult: Hacking multiplier from ascension. Decimal form
strength: Strength stat
strengthEquipMult: Strength multiplier from equipment. Decimal form
strengthAscensionMult: Strength multiplier from ascension. Decimal form
task: Name of currently assigned task
}
canRecruitMember
----------------
.. js:function:: canRecruitMember()
:returns: Boolean indicating whether a member can currently be recruited
recruitMember
-------------
.. js:function:: recruitMember(name)
:param string name: Name of member to recruit
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
:returns: True if the member was successfully recruited. False otherwise
getTaskNames
------------
.. js:function:: getTaskNames()
Get the name of all valid tasks that Gang members can be assigned to
:returns: Array of strings of all task names
setMemberTask
-------------
.. js:function:: setMemberTask(memberName, taskName)
:param string memberName: Name of Gang member to assign
:param string taskName: Task to assign
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")
:returns: True if the Gang Member was successfully assigned to the task. False otherwise
getEquipmentNames
-----------------
.. js:function:: getEquipmentNames()
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
getEquipmentCost
----------------
.. js:function:: getEquipmentCost(equipName)
:param string equipName: Name of equipment
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.
:returns: Cost to purchase the specified Equipment/Augmentation (number). Infinity
for invalid arguments
getEquipmentType
----------------
.. js:function:: getEquipmentType(equipName)
:param string equipName: Name of equipment
Get the specified equipment type, which can be one of the following:
* Weapon
* Armor
* Vehicle
* Rootkit
* Augmentation
:returns: A string stating the type of the equipment
purchaseEquipment
-----------------
.. js:function:: purchaseEquipment(memberName, equipName)
:param string memberName: Name of Gang member to purchase the equipment for
:param string equipName: Name of Equipment/Augmentation to purchase
Attempt to purchase the specified Equipment/Augmentation for the specified
Gang member.
:returns: True if the equipment was successfully purchased. False otherwise
ascendMember
------------
.. js:function:: ascendMember(name)
:param string name: Name of member to ascend
Ascend the specified Gang Member.
:returns: An object with info about the ascension results.
The object has the following structure::
{
respect: Amount of respect lost from ascending
hack: Hacking multiplier gained from ascending. Decimal form
str: Strength multiplier gained from ascending. Decimal form
def: Defense multiplier gained from ascending. Decimal form
dex: Dexterity multiplier gained from ascending. Decimal form
agi: Agility multiplier gained from ascending. Decimal form
cha: Charisma multiplier gained from ascending. Decimal form
}
setTerritoryWarfare
-------------------
.. js:function:: setTerritoryWarfare(engage)
:param bool engage: Whether or not to engage in territory warfare
Set whether or not the gang should engage in territory warfare
getChanceToWinClash
-------------------
.. js:function:: getChanceToWinClash(gangName)
: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
getBonusTime
------------
.. js:function:: getBonusTime()
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
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 seconds