All: |
diff --git a/src/Faction/ui/PurchaseableAugmentation.tsx b/src/Faction/ui/PurchaseableAugmentation.tsx
index ece801260..7d9e5cfe6 100644
--- a/src/Faction/ui/PurchaseableAugmentation.tsx
+++ b/src/Faction/ui/PurchaseableAugmentation.tsx
@@ -137,6 +137,12 @@ export class PurchaseableAugmentation extends React.Component {
btnTxt += ` - Level ${getNextNeurofluxLevel()}`;
}
+ let tooltip = <>>;
+ if(typeof this.aug.info === "string")
+ tooltip = <>
{this.aug.stats}>
+ else
+ tooltip = <>{this.aug.info}
{this.aug.stats}>
+
return (
@@ -145,7 +151,7 @@ export class PurchaseableAugmentation extends React.Component {
onClick={this.handleClick}
style={inlineStyleMarkup}
text={btnTxt}
- tooltip={this.aug.info}
+ tooltip={tooltip}
/>
{status}
diff --git a/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts b/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts
index 9f0dcf243..2c020dfdb 100644
--- a/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts
+++ b/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts
@@ -59,6 +59,8 @@ export function createSleevePurchaseAugsPopup(sleeve: Sleeve, p: IPlayer): void
if(typeof tooltip !== 'string') {
tooltip = renderToStaticMarkup(tooltip);
}
+ tooltip += "
";
+ tooltip += renderToStaticMarkup(aug.stats);
ownedAugsDiv.appendChild(createElement("div", {
class: "gang-owned-upgrade", // Reusing a class from the Gang UI
@@ -92,6 +94,8 @@ export function createSleevePurchaseAugsPopup(sleeve: Sleeve, p: IPlayer): void
if(typeof info !== 'string') {
info = renderToStaticMarkup(info);
}
+ info += "
";
+ info += renderToStaticMarkup(aug.stats);
div.appendChild(createElement("p", {
fontSize: "12px",
diff --git a/src/Prestige.js b/src/Prestige.js
index 48fc82167..a851b3022 100755
--- a/src/Prestige.js
+++ b/src/Prestige.js
@@ -97,6 +97,11 @@ function prestigeAugmentation() {
Player.setMoney(1e6);
homeComp.programs.push(Programs.BruteSSHProgram.name);
}
+ if (augmentationExists(AugmentationNames.PCMatrix) &&
+ Augmentations[AugmentationNames.PCMatrix].owned) {
+ homeComp.programs.push(Programs.DeepscanV1.name);
+ homeComp.programs.push(Programs.AutoLink.name);
+ }
// Re-create foreign servers
initForeignServers(Player.getHomeComputer());
diff --git a/src/ui/React/AugmentationAccordion.tsx b/src/ui/React/AugmentationAccordion.tsx
index 19eb601f2..95f9f9248 100644
--- a/src/ui/React/AugmentationAccordion.tsx
+++ b/src/ui/React/AugmentationAccordion.tsx
@@ -28,7 +28,7 @@ export function AugmentationAccordion(props: IProps): React.ReactElement {
return (
{displayName}>}
- panelContent={}
+ panelContent={
{props.aug.stats} }
/>
)
}
@@ -36,7 +36,7 @@ export function AugmentationAccordion(props: IProps): React.ReactElement {
return (
{displayName}>}
- panelContent={{props.aug.info} }
+ panelContent={{props.aug.info}
{props.aug.stats} }
/>
)
}
From 796d91835c62f28bc2ab56e597f4680053649ec9 Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 15 Aug 2021 00:49:19 -0400
Subject: [PATCH 5/6] Simplify all the augmentation effects.
---
src/Augmentation/Augmentation.tsx | 72 +++++++++++++++----------------
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/src/Augmentation/Augmentation.tsx b/src/Augmentation/Augmentation.tsx
index 9cfe37499..d64dedc90 100644
--- a/src/Augmentation/Augmentation.tsx
+++ b/src/Augmentation/Augmentation.tsx
@@ -62,7 +62,7 @@ function generateStatsDescription(mults: IMap, programs?: string[], star
if(x === 1.777-1) return "77.7%";
return numeralWrapper.formatPercentage(x, decimals);
};
- let desc = <>This augmentation: >;
+ let desc = <>Effects:>;
if(mults.hacking_mult &&
mults.hacking_mult == mults.strength_mult &&
@@ -70,28 +70,28 @@ function generateStatsDescription(mults: IMap, programs?: string[], star
mults.hacking_mult == mults.dexterity_mult &&
mults.hacking_mult == mults.agility_mult &&
mults.hacking_mult == mults.charisma_mult){
- desc = <>{desc} - Increases all skills by {f(mults.hacking_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_mult-1)} all skills>
} else {
if(mults.hacking_mult)
- desc = <>{desc} - Increases Hacking by {f(mults.hacking_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_mult-1)} hacking skill>
if(mults.strength_mult &&
mults.strength_mult == mults.defense_mult &&
mults.strength_mult == mults.dexterity_mult &&
mults.strength_mult == mults.agility_mult) {
- desc = <>{desc} - Increases all combat skills by {f(mults.strength_mult-1)}>
+ desc = <>{desc} +{f(mults.strength_mult-1)} combat skills>
} else {
if(mults.strength_mult)
- desc = <>{desc} - Increases Strength by {f(mults.strength_mult-1)}>
+ desc = <>{desc} +{f(mults.strength_mult-1)} strength skill>
if(mults.defense_mult)
- desc = <>{desc} - Increases Defense by {f(mults.defense_mult-1)}>
+ desc = <>{desc} +{f(mults.defense_mult-1)} defense skill>
if(mults.dexterity_mult)
- desc = <>{desc} - Increases Dexterity by {f(mults.dexterity_mult-1)}>
+ desc = <>{desc} +{f(mults.dexterity_mult-1)} dexterity skill>
if(mults.agility_mult)
- desc = <>{desc} - Increases Agility by {f(mults.agility_mult-1)}>
+ desc = <>{desc} +{f(mults.agility_mult-1)} agility skill>
}
if(mults.charisma_mult)
- desc = <>{desc} - Increases Charisma by {f(mults.charisma_mult-1)}>
+ desc = <>{desc} +{f(mults.charisma_mult-1)} Charisma skill>
}
if(mults.hacking_exp_mult &&
@@ -100,77 +100,77 @@ function generateStatsDescription(mults: IMap, programs?: string[], star
mults.hacking_exp_mult === mults.dexterity_exp_mult &&
mults.hacking_exp_mult === mults.agility_exp_mult &&
mults.hacking_exp_mult === mults.charisma_exp_mult) {
- desc = <>{desc} - Increases experience gain for all skills by {f(mults.hacking_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_exp_mult-1)} exp for all skills>
} else {
if(mults.hacking_exp_mult)
- desc = <>{desc} - Increases Hacking experience gain by {f(mults.hacking_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_exp_mult-1)} hacking exp>
if(mults.strength_exp_mult &&
mults.strength_exp_mult === mults.defense_exp_mult &&
mults.strength_exp_mult === mults.dexterity_exp_mult &&
mults.strength_exp_mult === mults.agility_exp_mult) {
- desc = <>{desc} - Increases experience gain for all combat skills by {f(mults.strength_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.strength_exp_mult-1)} combat exp>
} else {
if(mults.strength_exp_mult)
- desc = <>{desc} - Increases Strength experience gain by {f(mults.strength_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.strength_exp_mult-1)} strength exp>
if(mults.defense_exp_mult)
- desc = <>{desc} - Increases Defense experience gain by {f(mults.defense_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.defense_exp_mult-1)} defense exp>
if(mults.dexterity_exp_mult)
- desc = <>{desc} - Increases Dexterity experience gain by {f(mults.dexterity_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.dexterity_exp_mult-1)} dexterity exp>
if(mults.agility_exp_mult)
- desc = <>{desc} - Increases Agility experience gain by {f(mults.agility_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.agility_exp_mult-1)} agility exp>
}
if(mults.charisma_exp_mult)
- desc = <>{desc} - Increases Charisma experience gain by {f(mults.charisma_exp_mult-1)}>
+ desc = <>{desc} +{f(mults.charisma_exp_mult-1)} charisma exp>
}
if(mults.hacking_speed_mult)
- desc = <>{desc} - Increases Hacking speed by {f(mults.hacking_speed_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_speed_mult-1)} faster hacking>
if(mults.hacking_chance_mult)
- desc = <>{desc} - Increases hack() success chance by {f(mults.hacking_chance_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_chance_mult-1)} hack() success chance>
if(mults.hacking_money_mult)
- desc = <>{desc} - Increases hack() power by {f(mults.hacking_money_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_money_mult-1)} hack() power>
if(mults.hacking_grow_mult)
- desc = <>{desc} - Increases grow() by {f(mults.hacking_grow_mult-1)}>
+ desc = <>{desc} +{f(mults.hacking_grow_mult-1)} grow() power>
if(mults.faction_rep_mult &&
mults.faction_rep_mult === mults.company_rep_mult) {
- desc = <>{desc} - Increases reputation gain from factions and companies by {f(mults.faction_rep_mult-1)}>
+ desc = <>{desc} +{f(mults.faction_rep_mult-1)} reputation from factions and companies>
} else {
if(mults.faction_rep_mult)
- desc = <>{desc} - Increases reputation gain from factions by {f(mults.faction_rep_mult-1)}>
+ desc = <>{desc} +{f(mults.faction_rep_mult-1)} reputation from factions>
if(mults.company_rep_mult)
- desc = <>{desc} - Increases reputation gain from companies by {f(mults.company_rep_mult-1)}>
+ desc = <>{desc} +{f(mults.company_rep_mult-1)} reputation from companies>
}
if(mults.crime_money_mult)
- desc = <>{desc} - Increases money gained from committing crimes by {f(mults.crime_money_mult-1)}>
+ desc = <>{desc} +{f(mults.crime_money_mult-1)} crime money>
if(mults.crime_success_mult)
- desc = <>{desc} - Increases crime success rate by {f(mults.crime_success_mult-1)}>
+ desc = <>{desc} +{f(mults.crime_success_mult-1)} crime success rate>
if(mults.work_money_mult)
- desc = <>{desc} - Increases money gained from working by {f(mults.work_money_mult-1)}>
+ desc = <>{desc} +{f(mults.work_money_mult-1)} work money>
if(mults.hacknet_node_money_mult)
- desc = <>{desc} - Increases Hacknet production by {f(mults.hacknet_node_money_mult-1)}>
+ desc = <>{desc} +{f(mults.hacknet_node_money_mult-1)} hacknet production>
if(mults.hacknet_node_purchase_cost_mult)
- desc = <>{desc} - Decreases the purchase cost of Hacknet Nodes by {f(-(mults.hacknet_node_purchase_cost_mult-1))}>
+ desc = <>{desc} -{f(-(mults.hacknet_node_purchase_cost_mult-1))} hacknet nodes cost>
if(mults.hacknet_node_level_cost_mult)
- desc = <>{desc} - Decreases the upgrade cost of Hacknet Nodes by {f(-(mults.hacknet_node_level_cost_mult-1))}>
+ desc = <>{desc} -{f(-(mults.hacknet_node_level_cost_mult-1))} hacknet nodes upgrade cost>
if(mults.bladeburner_max_stamina_mult)
- desc = <>{desc} - Increases Bladeburner Max Stamina by {f(mults.bladeburner_max_stamina_mult-1)}>
+ desc = <>{desc} +{f(mults.bladeburner_max_stamina_mult-1)} Bladeburner Max Stamina>
if(mults.bladeburner_stamina_gain_mult)
- desc = <>{desc} - Increases Bladeburner Stamina gain by {f(mults.bladeburner_stamina_gain_mult-1)}>
+ desc = <>{desc} +{f(mults.bladeburner_stamina_gain_mult-1)} Bladeburner Stamina gain>
if(mults.bladeburner_analysis_mult)
- desc = <>{desc} - Increases Bladeburner Field Analysis effectiveness by {f(mults.bladeburner_analysis_mult-1)}>
+ desc = <>{desc} +{f(mults.bladeburner_analysis_mult-1)} Bladeburner Field Analysis effectiveness>
if(mults.bladeburner_success_chance_mult)
- desc = <>{desc} - Increases success chance in Bladeburner Contracts and Operations by {f(mults.bladeburner_success_chance_mult-1)}>
+ desc = <>{desc} +{f(mults.bladeburner_success_chance_mult-1)} Bladeburner Contracts and Operations success chance>
if(startingMoney)
- desc = <>{desc} - Provides {Money(startingMoney)} after a reset.>
+ desc = <>{desc} Start with {Money(startingMoney)} after installing Augmentations.>
if(programs)
- desc = <>{desc} - Provides {programs.join(' and ')} after a reset.>
+ desc = <>{desc} Start with {programs.join(' and ')} after installing Augmentations.>
return desc;
}
From 67e5e413e4d98fb45caeb55f1427ea1bae8cb00a Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 15 Aug 2021 02:14:07 -0400
Subject: [PATCH 6/6] v0.52.2
---
dist/engine.bundle.js | 4 ++--
dist/engineStyle.bundle.js | 2 +-
dist/vendor.bundle.js | 26 ++++++++++++------------
doc/source/changelog.rst | 14 +++++++++++++
doc/source/conf.py | 2 +-
package.json | 2 +-
src/Augmentation/AugmentationHelpers.jsx | 11 +++++++---
src/BitNode/BitNode.ts | 6 +++++-
src/Constants.ts | 9 +++++++-
src/Faction/FactionHelpers.jsx | 5 +++--
src/SourceFile/SourceFiles.ts | 6 +++++-
src/engine.jsx | 3 ++-
12 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/dist/engine.bundle.js b/dist/engine.bundle.js
index 70852c5f5..cce816b48 100644
--- a/dist/engine.bundle.js
+++ b/dist/engine.bundle.js
@@ -1,4 +1,4 @@
-!function(e){function t(t){for(var r,o,s=t[0],l=t[1],c=t[2],m=0,p=[];m${e} | |
`;a.getElementById("terminal-input").insertAdjacentHTML("beforebegin",r),function(){const e=a.getElementById("terminal-container");e.scrollTop=e.scrollHeight}()}t.post=function(e){i(e)},t.postError=function(e){i(`ERROR: ${e}`,{color:"#ff2929"})},t.hackProgressBarPost=function(e){i(e,{id:"hack-progress-bar"})},t.hackProgressPost=function(e){i(e,{id:"hack-progress"})},t.postElement=function(e){i(r.renderToStaticMarkup(e))},t.postContent=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRamCost=t.RamCosts=t.RamCostConstants=void 0,t.RamCostConstants={ScriptBaseRamCost:1.6,ScriptDomRamCost:25,ScriptHackRamCost:.1,ScriptHackAnalyzeRamCost:1,ScriptGrowRamCost:.15,ScriptGrowthAnalyzeRamCost:1,ScriptWeakenRamCost:.15,ScriptScanRamCost:.2,ScriptPortProgramRamCost:.05,ScriptRunRamCost:1,ScriptExecRamCost:1.3,ScriptSpawnRamCost:2,ScriptScpRamCost:.6,ScriptKillRamCost:.5,ScriptHasRootAccessRamCost:.05,ScriptGetHostnameRamCost:.05,ScriptGetHackingLevelRamCost:.05,ScriptGetMultipliersRamCost:4,ScriptGetServerRamCost:.1,ScriptGetServerMaxRam:.05,ScriptGetServerUsedRam:.05,ScriptFileExistsRamCost:.1,ScriptIsRunningRamCost:.1,ScriptHacknetNodesRamCost:4,ScriptHNUpgLevelRamCost:.4,ScriptHNUpgRamRamCost:.6,ScriptHNUpgCoreRamCost:.8,ScriptGetStockRamCost:2,ScriptBuySellStockRamCost:2.5,ScriptGetPurchaseServerRamCost:.25,ScriptPurchaseServerRamCost:2.25,ScriptGetPurchasedServerLimit:.05,ScriptGetPurchasedServerMaxRam:.05,ScriptRoundRamCost:.05,ScriptReadWriteRamCost:1,ScriptArbScriptRamCost:1,ScriptGetScriptRamCost:.1,ScriptGetRunningScriptRamCost:.3,ScriptGetHackTimeRamCost:.05,ScriptGetFavorToDonate:.1,ScriptCodingContractBaseRamCost:10,ScriptSleeveBaseRamCost:4,ScriptSingularityFn1RamCost:2,ScriptSingularityFn2RamCost:3,ScriptSingularityFn3RamCost:5,ScriptGangApiBaseRamCost:4,ScriptBladeburnerApiBaseRamCost:4},t.RamCosts={hacknet:{numNodes:()=>0,purchaseNode:()=>0,getPurchaseNodeCost:()=>0,getNodeStats:()=>0,upgradeLevel:()=>0,upgradeRam:()=>0,upgradeCore:()=>0,upgradeCache:()=>0,getLevelUpgradeCost:()=>0,getRamUpgradeCost:()=>0,getCoreUpgradeCost:()=>0,getCacheUpgradeCost:()=>0,numHashes:()=>0,hashCost:()=>0,spendHashes:()=>0},sprintf:()=>0,vsprintf:()=>0,scan:()=>t.RamCostConstants.ScriptScanRamCost,hack:()=>t.RamCostConstants.ScriptHackRamCost,hackAnalyzeThreads:()=>t.RamCostConstants.ScriptHackAnalyzeRamCost,hackAnalyzePercent:()=>t.RamCostConstants.ScriptHackAnalyzeRamCost,hackChance:()=>t.RamCostConstants.ScriptHackAnalyzeRamCost,sleep:()=>0,grow:()=>t.RamCostConstants.ScriptGrowRamCost,growthAnalyze:()=>t.RamCostConstants.ScriptGrowthAnalyzeRamCost,weaken:()=>t.RamCostConstants.ScriptWeakenRamCost,print:()=>0,tprint:()=>0,clearLog:()=>0,disableLog:()=>0,enableLog:()=>0,isLogEnabled:()=>0,getScriptLogs:()=>0,nuke:()=>t.RamCostConstants.ScriptPortProgramRamCost,brutessh:()=>t.RamCostConstants.ScriptPortProgramRamCost,ftpcrack:()=>t.RamCostConstants.ScriptPortProgramRamCost,relaysmtp:()=>t.RamCostConstants.ScriptPortProgramRamCost,httpworm:()=>t.RamCostConstants.ScriptPortProgramRamCost,sqlinject:()=>t.RamCostConstants.ScriptPortProgramRamCost,run:()=>t.RamCostConstants.ScriptRunRamCost,exec:()=>t.RamCostConstants.ScriptExecRamCost,spawn:()=>t.RamCostConstants.ScriptSpawnRamCost,kill:()=>t.RamCostConstants.ScriptKillRamCost,killall:()=>t.RamCostConstants.ScriptKillRamCost,exit:()=>0,scp:()=>t.RamCostConstants.ScriptScpRamCost,ls:()=>t.RamCostConstants.ScriptScanRamCost,ps:()=>t.RamCostConstants.ScriptScanRamCost,hasRootAccess:()=>t.RamCostConstants.ScriptHasRootAccessRamCost,getIp:()=>t.RamCostConstants.ScriptGetHostnameRamCost,getHostname:()=>t.RamCostConstants.ScriptGetHostnameRamCost,getHackingLevel:()=>t.RamCostConstants.ScriptGetHackingLevelRamCost,getHackingMultipliers:()=>t.RamCostConstants.ScriptGetMultipliersRamCost,getHacknetMultipliers:()=>t.RamCostConstants.ScriptGetMultipliersRamCost,getBitNodeMultipliers:()=>t.RamCostConstants.ScriptGetMultipliersRamCost,getServer:()=>t.RamCostConstants.ScriptGetMultipliersRamCost/2,getServerMoneyAvailable:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerSecurityLevel:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerBaseSecurityLevel:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerMinSecurityLevel:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerRequiredHackingLevel:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerMaxMoney:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerGrowth:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerNumPortsRequired:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerRam:()=>t.RamCostConstants.ScriptGetServerRamCost,getServerMaxRam:()=>t.RamCostConstants.ScriptGetServerMaxRam,getServerUsedRam:()=>t.RamCostConstants.ScriptGetServerUsedRam,serverExists:()=>t.RamCostConstants.ScriptGetServerRamCost,fileExists:()=>t.RamCostConstants.ScriptFileExistsRamCost,isRunning:()=>t.RamCostConstants.ScriptIsRunningRamCost,getStockSymbols:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockPrice:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockAskPrice:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockBidPrice:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockPosition:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockMaxShares:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockPurchaseCost:()=>t.RamCostConstants.ScriptGetStockRamCost,getStockSaleGain:()=>t.RamCostConstants.ScriptGetStockRamCost,buyStock:()=>t.RamCostConstants.ScriptBuySellStockRamCost,sellStock:()=>t.RamCostConstants.ScriptBuySellStockRamCost,shortStock:()=>t.RamCostConstants.ScriptBuySellStockRamCost,sellShort:()=>t.RamCostConstants.ScriptBuySellStockRamCost,placeOrder:()=>t.RamCostConstants.ScriptBuySellStockRamCost,cancelOrder:()=>t.RamCostConstants.ScriptBuySellStockRamCost,getOrders:()=>t.RamCostConstants.ScriptBuySellStockRamCost,getStockVolatility:()=>t.RamCostConstants.ScriptBuySellStockRamCost,getStockForecast:()=>t.RamCostConstants.ScriptBuySellStockRamCost,purchase4SMarketData:()=>t.RamCostConstants.ScriptBuySellStockRamCost,purchase4SMarketDataTixApi:()=>t.RamCostConstants.ScriptBuySellStockRamCost,getPurchasedServerLimit:()=>t.RamCostConstants.ScriptGetPurchasedServerLimit,getPurchasedServerMaxRam:()=>t.RamCostConstants.ScriptGetPurchasedServerMaxRam,getPurchasedServerCost:()=>t.RamCostConstants.ScriptGetPurchaseServerRamCost,purchaseServer:()=>t.RamCostConstants.ScriptPurchaseServerRamCost,deleteServer:()=>t.RamCostConstants.ScriptPurchaseServerRamCost,getPurchasedServers:()=>t.RamCostConstants.ScriptPurchaseServerRamCost,write:()=>t.RamCostConstants.ScriptReadWriteRamCost,tryWrite:()=>t.RamCostConstants.ScriptReadWriteRamCost,read:()=>t.RamCostConstants.ScriptReadWriteRamCost,peek:()=>t.RamCostConstants.ScriptReadWriteRamCost,clear:()=>t.RamCostConstants.ScriptReadWriteRamCost,getPortHandle:()=>10*t.RamCostConstants.ScriptReadWriteRamCost,rm:()=>t.RamCostConstants.ScriptReadWriteRamCost,scriptRunning:()=>t.RamCostConstants.ScriptArbScriptRamCost,scriptKill:()=>t.RamCostConstants.ScriptArbScriptRamCost,getScriptName:()=>0,getScriptRam:()=>t.RamCostConstants.ScriptGetScriptRamCost,getHackTime:()=>t.RamCostConstants.ScriptGetHackTimeRamCost,getGrowTime:()=>t.RamCostConstants.ScriptGetHackTimeRamCost,getWeakenTime:()=>t.RamCostConstants.ScriptGetHackTimeRamCost,getScriptIncome:()=>t.RamCostConstants.ScriptGetScriptRamCost,getScriptExpGain:()=>t.RamCostConstants.ScriptGetScriptRamCost,getRunningScript:()=>t.RamCostConstants.ScriptGetRunningScriptRamCost,nFormat:()=>0,getTimeSinceLastAug:()=>t.RamCostConstants.ScriptGetHackTimeRamCost,prompt:()=>0,wget:()=>0,getFavorToDonate:()=>t.RamCostConstants.ScriptGetFavorToDonate,universityCourse:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,gymWorkout:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,travelToCity:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,purchaseTor:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,purchaseProgram:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,getCurrentServer:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,connect:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,manualHack:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,installBackdoor:()=>t.RamCostConstants.ScriptSingularityFn1RamCost,getStats:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/4,getCharacterInformation:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/4,getPlayer:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/4,hospitalize:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/4,isBusy:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/4,stopAction:()=>t.RamCostConstants.ScriptSingularityFn1RamCost/2,upgradeHomeRam:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,getUpgradeHomeRamCost:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/2,workForCompany:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,applyToCompany:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,getCompanyRep:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/3,getCompanyFavor:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/3,getCompanyFavorGain:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/4,checkFactionInvitations:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,joinFaction:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,workForFaction:()=>t.RamCostConstants.ScriptSingularityFn2RamCost,getFactionRep:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/3,getFactionFavor:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/3,getFactionFavorGain:()=>t.RamCostConstants.ScriptSingularityFn2RamCost/4,donateToFaction:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,createProgram:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,commitCrime:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getCrimeChance:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getCrimeStats:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getOwnedAugmentations:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getOwnedSourceFiles:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getAugmentationsFromFaction:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getAugmentationPrereq:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getAugmentationCost:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,getAugmentationStats:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,purchaseAugmentation:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,softReset:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,installAugmentations:()=>t.RamCostConstants.ScriptSingularityFn3RamCost,gang:{createGang:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,inGang:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,getMemberNames:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,getGangInformation:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getOtherGangInformation:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getMemberInformation:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,canRecruitMember:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,recruitMember:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getTaskNames:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,getTaskStats:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,setMemberTask:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getEquipmentNames:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/4,getEquipmentCost:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getEquipmentType:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getEquipmentStats:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,purchaseEquipment:()=>t.RamCostConstants.ScriptGangApiBaseRamCost,ascendMember:()=>t.RamCostConstants.ScriptGangApiBaseRamCost,setTerritoryWarfare:()=>t.RamCostConstants.ScriptGangApiBaseRamCost/2,getChanceToWinClash:()=>t.RamCostConstants.ScriptGangApiBaseRamCost,getBonusTime:()=>0},bladeburner:{getContractNames:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/10,getOperationNames:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/10,getBlackOpNames:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/10,getBlackOpRank:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/2,getGeneralActionNames:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/10,getSkillNames:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/10,startAction:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,stopBladeburnerAction:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/2,getCurrentAction:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost/4,getActionTime:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionEstimatedSuccessChance:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionRepGain:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionCountRemaining:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionMaxLevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionCurrentLevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getActionAutolevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,setActionAutolevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,setActionLevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getRank:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getSkillPoints:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getSkillLevel:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getSkillUpgradeCost:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,upgradeSkill:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getTeamSize:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,setTeamSize:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getCityEstimatedPopulation:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getCityEstimatedCommunities:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getCityChaos:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getCity:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,switchCity:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getStamina:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,joinBladeburnerFaction:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,joinBladeburnerDivision:()=>t.RamCostConstants.ScriptBladeburnerApiBaseRamCost,getBonusTime:()=>0},codingcontract:{attempt:()=>t.RamCostConstants.ScriptCodingContractBaseRamCost,getContractType:()=>t.RamCostConstants.ScriptCodingContractBaseRamCost/2,getData:()=>t.RamCostConstants.ScriptCodingContractBaseRamCost/2,getDescription:()=>t.RamCostConstants.ScriptCodingContractBaseRamCost/2,getNumTriesRemaining:()=>t.RamCostConstants.ScriptCodingContractBaseRamCost/5},sleeve:{getNumSleeves:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToShockRecovery:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToSynchronize:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToCommitCrime:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToUniversityCourse:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,travel:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToCompanyWork:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToFactionWork:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,setToGymWorkout:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,getSleeveStats:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,getTask:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,getInformation:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,getSleeveAugmentations:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,getSleevePurchasableAugs:()=>t.RamCostConstants.ScriptSleeveBaseRamCost,purchaseSleeveAug:()=>t.RamCostConstants.ScriptSleeveBaseRamCost},heart:{break:()=>0}},t.getRamCost=function(...e){if(0===e.length)return console.warn("No arguments passed to getRamCost()"),0;let n=t.RamCosts[e[0]];for(let t=1;t