From 110138f3ee181860b20780063efe2ea4acc6f663 Mon Sep 17 00:00:00 2001 From: danielyxie Date: Thu, 31 Aug 2017 00:04:23 -0500 Subject: [PATCH] Fixed some bugs with Stock Market --- dist/bundle.js | 145 ++++++++++++++++++++++++++++++++++++-- src/Constants.js | 134 +++++++++++++++++++++++++++++++++++ src/NetscriptFunctions.js | 6 +- src/StockMarket.js | 4 +- 4 files changed, 278 insertions(+), 11 deletions(-) diff --git a/dist/bundle.js b/dist/bundle.js index 4b548719f..1639162d6 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -3068,6 +3068,140 @@ let CONSTANTS = { "The code above will use the getServerMoneyAvailable() function to check how much money there is on the 'foodnstuff' server. " + "If there is more than $200,000, then it will try to hack that server. If there is $200,000 or less on the server, " + "then the code will call grow('foodnstuff') instead and add more money to the server.

", + TutorialSingularityFunctionsText: "

Singularity Functions


" + + "The Singularity Functions are a special set of Netscript functions that are unlocked in BitNode-4. " + + "These functions allow you to control many additional aspects of the game through scripts, such as " + + "working for factions/companies, purchasing/installing Augmentations, and creating programs.

" + + "If you are in BitNode-4, then you will automatically have access to all of these functions. " + + "You can use the Singularity Functions in other BitNodes if and only if you have the Source-File " + + "for BitNode-4 (aka Source-File 4). Each level of Source-File 4 will open up additional Singularity " + + "Functions that you can use in other BitNodes. If your Source-File 4 is upgraded all the way to level 3, " + + "then you will be able to access all of the Singularity Functions.

" + + "Note that Singularity Functions require a lot of RAM outside of BitNode-4 (their RAM costs are multiplied by " + + "10 if you are not in BitNode-4).

" + + "universityCourse(universityName, courseName)
" + + "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 will automatically set you to start taking a course at a university. If you are already " + + "in the middle of some 'working' action (such as working at a company, for a faction, or on a program), " + + "then running this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the university. The names are NOT case-sensitive. " + + "Note that you must be in the correct city for whatever university you specify. The three universities are:

" + + "Summit University
Rothman University
ZB Institute of Technology

" + + "The second argument must be a string with the name of the course you are taking. These names are NOT case-sensitive. " + + "The available courses are:

" + + "Study Computer Science
Data Structures
Networks
Algorithms
Management
Leadership

" + + "The cost and experience gains for all of these universities and classes are the same as if you were to manually " + + "visit and take these classes.

" + + "This function will return true if you successfully start taking the course, and false otherwise.

" + + "gymWorkout(gymName, stat)
" + + "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 will automatically set you to start working out at a gym to train a particular stat. If you are " + + "already in the middle of some 'working' action (such as working at a company, for a faction, or on a program), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the gym. The names are NOT case-sensitive. Note that you must " + + "be in the correct city for whatever gym you specify. The available gyms are:

" + + "Crush Fitness Gym
Snap Fitness Gym
Iron Gym
Powerhouse Gym
Millenium Fitness Gym

" + + "The second argument must be a string with the stat you want to work out. These are NOT case-sensitive. " + + "The valid stats are:

strength OR str
defense OR def
dexterity OR dex
agility OR agi

" + + "The cost and experience gains for all of these gyms are the same as if you were to manually visit these gyms and train " + + "This function will return true if you successfully start working out at the gym, and false otherwise.

" + + "travelToCity(cityname)
" + + "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 the player to travel to any city. The cost for using this function is the same as the cost for traveling through the Travel Agency.

" + + "The argument passed into this must be a string with the name of the city to travel to. Note that this argument IS CASE SENSITIVE. The valid cities are:

" + + "Aevum
Chongqing
Sector-12
New Tokyo
Ishima
Volhaven

" + + "This function will return true if you successfully travel to the specified city and false otherwise.

" + + "purchaseTor()
" + + "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 " + + "function is the same as if you were to manually purchase one.

" + + "This function will return true if it successfully purchase a TOR router and false otherwise.

" + + "purchaseProgram(programName)
" + + "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 programs. You MUST have a TOR router in order to use this function.

" + + "The argument passed in must be a string with the name of the program (including the '.exe' extension). This argument is " + + "NOT case-sensitive.

Example: " + + "purchaseProgram('brutessh.exe');

" + + "The cost of purchasing programs using this function is the same as if you were purchasing them through the Dark Web (using " + + "the buy Terminal command).

" + + "This function will return true if the specified program is purchased, and false otherwise.

" + + "upgradeHomeRam()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will upgrade amount of RAM on the player's home computer. The cost is the same as if you were to do it manually.

" + + "This function will return true if the player's home computer RAM is successfully upgraded, and false otherwise.

" + + "getUpgradeHomeRamCost()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "Returns the cost of upgrading the player's home computer RAM.

" + + "workForCompany()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically set you to start working at the company at which you are employed. If you are already " + + "in the middle of some 'working' action (such as working for a faction, training at a gym, or creating a program), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "This function will return true if the player starts working, and false otherwise.

" + + "applyToCompany(companyName, field)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically try to apply to the specified company for a position in the specified field. This " + + "function can also be used to apply for promotions by specifying the company and field you are already employed at.

" + + "The first argument must be a string with the name of the company. This argument IS CASE-SENSITIVE. The second argument must " + + "be a string representing the 'field' to which you want to apply. This second argument is NOT case-sensitive. Valid values for " + + "the second argument are:

" + + "software
software consultant
it
security engineer
network engineer
business
business consultant
" + + "security
agent
employee
part-time employee
waiter
part-time waiter

" + + "This function will return true if you successfully get a job/promotion, and false otherwise. Note " + + "that if you are trying to use this function to apply for a promotion and you don't get one, it will return false.

" + + "getCompanyRep(companyName)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will return the amount of reputation you have at the specified company. If the company passed in as " + + "an argument is invalid, -1 will be returned.

" + + "The argument passed in must be a string with the name of the company. This argument IS CASE-SENSITIVE.

" + + "checkFactionInvitations()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "Returns an array with the name of all Factions you currently have oustanding invitations from.

" + + "joinFaction(name)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically accept an invitation from a faction and join it.

" + + "The argument must be a string with the name of the faction. This name IS CASE-SENSITIVE.

" + + "workForFaction(factionName, workType)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically set you to start working for the specified Faction. Obviously, you " + + "must be a member of the Faction or else this function will fail. If you are already in the middle of " + + "some 'working' action (such as working for a company, training at a gym, or creating a program), then running " + + "this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the faction. This argument IS CASE-SENSITIVE. The second argument " + + "must be a string with the type of work you want to perform for the faction. The valid values for this argument are:

" + + "
hacking/hacking contracts/hackingcontracts
field/fieldwork/field work
security/securitywork/security work

" + + "This function will return true if you successfully start working for the specified faction, and false otherwise.

" + + "getFactionRep(factionName)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function returns the amount of reputation you have for the specified Faction. The argument must be a " + + "string with the name of the Faction. The argument IS CASE-SENSITIVE.

" + + "createProgram(programName)
" + + "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 automatically set you to start working on creating the specified program. If you are already in " + + "the middle of some 'working' action (such as working for a company, training at a gym, or taking a course), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "The argument passed in must be a string designating the name of the program. This argument is NOT case-sensitive.

" + + "Example:

createProgram('relaysmtp.exe');

" + + "Note that creating a program using this function has the same hacking level requirements as it normally would. These level requirements are:

" + + "BruteSSH.exe: 50
FTPCrack.exe: 100
relaySMTP.exe: 250
HTTPWorm.exe: 500
SQLInject.exe: 750
" + + "DeepscanV1.exe: 75
DeepscanV2.exe: 400
ServerProfiler.exe: 75
AutoLink.exe: 25

" + + "This function returns true if you successfully start working on the specified program, and false otherwise.

" + + "getAugmentationCost(augName)
" + + "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 returns an array with two elements that gives the cost for the specified Augmentation" + + ". The first element in the returned array is the reputation requirement of the Augmentation, and the second element " + + "is the money cost.

" + + "The argument passed in must be a string with the name of the Augmentation. This argument IS CASE-SENSITIVE. " + + "If an invalid Augmentation name is passed in, this function will return the array [-1, -1].

" + + "purchaseAugmentation(factionName, augName)
" + + "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 try to purchase the specified Augmentation through the given Faction.

" + + "The two arguments must be strings specifying the name of the Faction and Augmentation, respectively. These arguments are both CASE-SENSITIVE.

" + + "This function will return true if the Augmentation is successfully purchased, and false otherwise.

" + + "installAugmentations()
" + + "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 automatically install your Augmentations, resetting the game as usual.

" + + "It will return true if successful, and false otherwise.", TutorialTravelingText:"There are six major cities in the world that you are able to travel to:

" + " Aevum
" + @@ -31282,11 +31416,11 @@ function Stock(name, symbol, mv, b, otlkMag, initPrice=10000) { } Stock.prototype.toJSON = function() { - return Generic_toJSON("Stock", this); + return Object(__WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__["b" /* Generic_toJSON */])("Stock", this); } Stock.fromJSON = function(value) { - return Generic_fromJSON(Stock, value.data); + return Object(__WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(Stock, value.data); } __WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__["c" /* Reviver */].constructors.Stock = Stock; @@ -31338,7 +31472,6 @@ function initStockSymbols() { StockSymbols["Sigma Cosmetics"] = "SGC"; StockSymbols["Joes Guns"] = "JGN"; StockSymbols["Catalyst Ventures"] = "CTYS"; - StockSymbols["Taiyang Digital"] = "TAI"; StockSymbols["Microdyne Technologies"] = "MDYN"; StockSymbols["Titan Laboratories"] = "TITN"; } @@ -35521,7 +35654,7 @@ function NetscriptFunctions(workerScript) { expMult = 2; break; case __WEBPACK_IMPORTED_MODULE_7__Location_js__["a" /* Locations */].VolhavenZBInstituteOfTechnology.toLowerCase(): - if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].city != __WEBPACK_IMPORTED_MODULE_7__Location_js__["a" /* Locations */].Aevum) { + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].city != __WEBPACK_IMPORTED_MODULE_7__Location_js__["a" /* Locations */].Volhaven) { workerScript.scriptRef.log("ERROR: You cannot study at ZB Institute of Technology because you are not in Volhaven. universityCourse() failed"); return false; } @@ -35816,7 +35949,7 @@ function NetscriptFunctions(workerScript) { cost = cost * mult; if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].money.lt(cost)) { - workerScript.scriptRef.log("You do not have enough money to purchase additional RAM for your home computer"); + workerScript.scriptRef.log("ERROR: upgradeHomeRam() failed because you don't have enough money"); return false; } @@ -35881,7 +36014,7 @@ function NetscriptFunctions(workerScript) { } if (!Object(__WEBPACK_IMPORTED_MODULE_1__Company_js__["e" /* companyExists */])(companyName)) { - workerScript.scriptRef.log("ERROR: applyToCompany failed because specified company " + companyName + " does not exist."); + workerScript.scriptRef.log("ERROR: applyToCompany() failed because specified company " + companyName + " does not exist."); return false; } diff --git a/src/Constants.js b/src/Constants.js index 39c720354..905903a0d 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -625,6 +625,140 @@ let CONSTANTS = { "The code above will use the getServerMoneyAvailable() function to check how much money there is on the 'foodnstuff' server. " + "If there is more than $200,000, then it will try to hack that server. If there is $200,000 or less on the server, " + "then the code will call grow('foodnstuff') instead and add more money to the server.

", + TutorialSingularityFunctionsText: "

Singularity Functions


" + + "The Singularity Functions are a special set of Netscript functions that are unlocked in BitNode-4. " + + "These functions allow you to control many additional aspects of the game through scripts, such as " + + "working for factions/companies, purchasing/installing Augmentations, and creating programs.

" + + "If you are in BitNode-4, then you will automatically have access to all of these functions. " + + "You can use the Singularity Functions in other BitNodes if and only if you have the Source-File " + + "for BitNode-4 (aka Source-File 4). Each level of Source-File 4 will open up additional Singularity " + + "Functions that you can use in other BitNodes. If your Source-File 4 is upgraded all the way to level 3, " + + "then you will be able to access all of the Singularity Functions.

" + + "Note that Singularity Functions require a lot of RAM outside of BitNode-4 (their RAM costs are multiplied by " + + "10 if you are not in BitNode-4).

" + + "universityCourse(universityName, courseName)
" + + "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 will automatically set you to start taking a course at a university. If you are already " + + "in the middle of some 'working' action (such as working at a company, for a faction, or on a program), " + + "then running this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the university. The names are NOT case-sensitive. " + + "Note that you must be in the correct city for whatever university you specify. The three universities are:

" + + "Summit University
Rothman University
ZB Institute of Technology

" + + "The second argument must be a string with the name of the course you are taking. These names are NOT case-sensitive. " + + "The available courses are:

" + + "Study Computer Science
Data Structures
Networks
Algorithms
Management
Leadership

" + + "The cost and experience gains for all of these universities and classes are the same as if you were to manually " + + "visit and take these classes.

" + + "This function will return true if you successfully start taking the course, and false otherwise.

" + + "gymWorkout(gymName, stat)
" + + "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 will automatically set you to start working out at a gym to train a particular stat. If you are " + + "already in the middle of some 'working' action (such as working at a company, for a faction, or on a program), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the gym. The names are NOT case-sensitive. Note that you must " + + "be in the correct city for whatever gym you specify. The available gyms are:

" + + "Crush Fitness Gym
Snap Fitness Gym
Iron Gym
Powerhouse Gym
Millenium Fitness Gym

" + + "The second argument must be a string with the stat you want to work out. These are NOT case-sensitive. " + + "The valid stats are:

strength OR str
defense OR def
dexterity OR dex
agility OR agi

" + + "The cost and experience gains for all of these gyms are the same as if you were to manually visit these gyms and train " + + "This function will return true if you successfully start working out at the gym, and false otherwise.

" + + "travelToCity(cityname)
" + + "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 the player to travel to any city. The cost for using this function is the same as the cost for traveling through the Travel Agency.

" + + "The argument passed into this must be a string with the name of the city to travel to. Note that this argument IS CASE SENSITIVE. The valid cities are:

" + + "Aevum
Chongqing
Sector-12
New Tokyo
Ishima
Volhaven

" + + "This function will return true if you successfully travel to the specified city and false otherwise.

" + + "purchaseTor()
" + + "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 " + + "function is the same as if you were to manually purchase one.

" + + "This function will return true if it successfully purchase a TOR router and false otherwise.

" + + "purchaseProgram(programName)
" + + "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 programs. You MUST have a TOR router in order to use this function.

" + + "The argument passed in must be a string with the name of the program (including the '.exe' extension). This argument is " + + "NOT case-sensitive.

Example: " + + "purchaseProgram('brutessh.exe');

" + + "The cost of purchasing programs using this function is the same as if you were purchasing them through the Dark Web (using " + + "the buy Terminal command).

" + + "This function will return true if the specified program is purchased, and false otherwise.

" + + "upgradeHomeRam()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will upgrade amount of RAM on the player's home computer. The cost is the same as if you were to do it manually.

" + + "This function will return true if the player's home computer RAM is successfully upgraded, and false otherwise.

" + + "getUpgradeHomeRamCost()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "Returns the cost of upgrading the player's home computer RAM.

" + + "workForCompany()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically set you to start working at the company at which you are employed. If you are already " + + "in the middle of some 'working' action (such as working for a faction, training at a gym, or creating a program), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "This function will return true if the player starts working, and false otherwise.

" + + "applyToCompany(companyName, field)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically try to apply to the specified company for a position in the specified field. This " + + "function can also be used to apply for promotions by specifying the company and field you are already employed at.

" + + "The first argument must be a string with the name of the company. This argument IS CASE-SENSITIVE. The second argument must " + + "be a string representing the 'field' to which you want to apply. This second argument is NOT case-sensitive. Valid values for " + + "the second argument are:

" + + "software
software consultant
it
security engineer
network engineer
business
business consultant
" + + "security
agent
employee
part-time employee
waiter
part-time waiter

" + + "This function will return true if you successfully get a job/promotion, and false otherwise. Note " + + "that if you are trying to use this function to apply for a promotion and you don't get one, it will return false.

" + + "getCompanyRep(companyName)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will return the amount of reputation you have at the specified company. If the company passed in as " + + "an argument is invalid, -1 will be returned.

" + + "The argument passed in must be a string with the name of the company. This argument IS CASE-SENSITIVE.

" + + "checkFactionInvitations()
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "Returns an array with the name of all Factions you currently have oustanding invitations from.

" + + "joinFaction(name)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically accept an invitation from a faction and join it.

" + + "The argument must be a string with the name of the faction. This name IS CASE-SENSITIVE.

" + + "workForFaction(factionName, workType)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function will automatically set you to start working for the specified Faction. Obviously, you " + + "must be a member of the Faction or else this function will fail. If you are already in the middle of " + + "some 'working' action (such as working for a company, training at a gym, or creating a program), then running " + + "this function will automatically cancel that action and give you your earnings.

" + + "The first argument must be a string with the name of the faction. This argument IS CASE-SENSITIVE. The second argument " + + "must be a string with the type of work you want to perform for the faction. The valid values for this argument are:

" + + "
hacking/hacking contracts/hackingcontracts
field/fieldwork/field work
security/securitywork/security work

" + + "This function will return true if you successfully start working for the specified faction, and false otherwise.

" + + "getFactionRep(factionName)
" + + "If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function.

" + + "This function returns the amount of reputation you have for the specified Faction. The argument must be a " + + "string with the name of the Faction. The argument IS CASE-SENSITIVE.

" + + "createProgram(programName)
" + + "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 automatically set you to start working on creating the specified program. If you are already in " + + "the middle of some 'working' action (such as working for a company, training at a gym, or taking a course), then " + + "running this function will automatically cancel that action and give you your earnings.

" + + "The argument passed in must be a string designating the name of the program. This argument is NOT case-sensitive.

" + + "Example:

createProgram('relaysmtp.exe');

" + + "Note that creating a program using this function has the same hacking level requirements as it normally would. These level requirements are:

" + + "BruteSSH.exe: 50
FTPCrack.exe: 100
relaySMTP.exe: 250
HTTPWorm.exe: 500
SQLInject.exe: 750
" + + "DeepscanV1.exe: 75
DeepscanV2.exe: 400
ServerProfiler.exe: 75
AutoLink.exe: 25

" + + "This function returns true if you successfully start working on the specified program, and false otherwise.

" + + "getAugmentationCost(augName)
" + + "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 returns an array with two elements that gives the cost for the specified Augmentation" + + ". The first element in the returned array is the reputation requirement of the Augmentation, and the second element " + + "is the money cost.

" + + "The argument passed in must be a string with the name of the Augmentation. This argument IS CASE-SENSITIVE. " + + "If an invalid Augmentation name is passed in, this function will return the array [-1, -1].

" + + "purchaseAugmentation(factionName, augName)
" + + "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 try to purchase the specified Augmentation through the given Faction.

" + + "The two arguments must be strings specifying the name of the Faction and Augmentation, respectively. These arguments are both CASE-SENSITIVE.

" + + "This function will return true if the Augmentation is successfully purchased, and false otherwise.

" + + "installAugmentations()
" + + "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 automatically install your Augmentations, resetting the game as usual.

" + + "It will return true if successful, and false otherwise.", TutorialTravelingText:"There are six major cities in the world that you are able to travel to:

" + " Aevum
" + diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js index e9530eb84..33543a28b 100644 --- a/src/NetscriptFunctions.js +++ b/src/NetscriptFunctions.js @@ -949,7 +949,7 @@ function NetscriptFunctions(workerScript) { expMult = 2; break; case Locations.VolhavenZBInstituteOfTechnology.toLowerCase(): - if (Player.city != Locations.Aevum) { + if (Player.city != Locations.Volhaven) { workerScript.scriptRef.log("ERROR: You cannot study at ZB Institute of Technology because you are not in Volhaven. universityCourse() failed"); return false; } @@ -1244,7 +1244,7 @@ function NetscriptFunctions(workerScript) { cost = cost * mult; if (Player.money.lt(cost)) { - workerScript.scriptRef.log("You do not have enough money to purchase additional RAM for your home computer"); + workerScript.scriptRef.log("ERROR: upgradeHomeRam() failed because you don't have enough money"); return false; } @@ -1309,7 +1309,7 @@ function NetscriptFunctions(workerScript) { } if (!companyExists(companyName)) { - workerScript.scriptRef.log("ERROR: applyToCompany failed because specified company " + companyName + " does not exist."); + workerScript.scriptRef.log("ERROR: applyToCompany() failed because specified company " + companyName + " does not exist."); return false; } diff --git a/src/StockMarket.js b/src/StockMarket.js index 1135eb98f..5fa077bbe 100644 --- a/src/StockMarket.js +++ b/src/StockMarket.js @@ -5,7 +5,8 @@ import {Player} from "./Player.js"; import {dialogBoxCreate} from "../utils/DialogBox.js"; import {clearEventListeners, getRandomInt} from "../utils/HelperFunctions.js"; -import {Reviver} from "../utils/JSONReviver.js"; +import {Reviver, Generic_toJSON, + Generic_fromJSON} from "../utils/JSONReviver.js"; import {formatNumber} from "../utils/StringHelperFunctions.js"; /* StockMarket.js */ @@ -78,7 +79,6 @@ function initStockSymbols() { StockSymbols["Sigma Cosmetics"] = "SGC"; StockSymbols["Joes Guns"] = "JGN"; StockSymbols["Catalyst Ventures"] = "CTYS"; - StockSymbols["Taiyang Digital"] = "TAI"; StockSymbols["Microdyne Technologies"] = "MDYN"; StockSymbols["Titan Laboratories"] = "TITN"; }