Added Leadership and Management courses

This commit is contained in:
Daniel Xie
2017-04-25 14:14:01 -05:00
parent 3519cd88f7
commit 9d5694e7b5
4 changed files with 107 additions and 108 deletions

View File

@ -468,9 +468,11 @@
<!-- Study/Take classes at a university -->
<a href="#" id="location-study-computer-science" class="a-link-button">Study Computer Science (free)</a>
<a href="#" id="location-data-structures-class" class="a-link-button">Take Data Structures Class</a>
<a href="#" id="location-networks-class" class="a-link-button">Take Networks Class</a>
<a href="#" id="location-algorithms-class" class="a-link-button">Take Algorithms Class</a>
<a href="#" id="location-data-structures-class" class="a-link-button">Take Data Structures course</a>
<a href="#" id="location-networks-class" class="a-link-button">Take Networks course</a>
<a href="#" id="location-algorithms-class" class="a-link-button">Take Algorithms course</a>
<a href="#" id="location-management-class" class="a-link-button">Take Management course</a>
<a href="#" id="location-leadership-class" class="a-link-button">Take Leadership course</a>
<!-- Purchase servers -->
<a href="#" id="location-purchase-1gb" class="a-link-button"> Purchase 1GB Server - $50,000</a>

View File

@ -52,6 +52,8 @@ CONSTANTS = {
ClassDataStructures: "taking a Data Structures course",
ClassNetworks: "taking a Networks course",
ClassAlgorithms: "taking an Algorithms course",
ClassManagement: "taking a Management course",
ClassLeadership: "taking a Leadership course",
//Text that is displayed when the 'help' command is ran in Terminal
HelpText: "analyze Get statistics and information about current machine <br>" +

View File

@ -111,6 +111,8 @@ displayLocationContent = function() {
var classDataStructures = document.getElementById("location-data-structures-class");
var classNetworks = document.getElementById("location-networks-class");
var classAlgorithms = document.getElementById("location-algorithms-class");
var classManagement = document.getElementById("location-management-class");
var classLeadership = document.getElementById("location-leadership-class");
var purchase1gb = document.getElementById("location-purchase-1gb");
var purchase2gb = document.getElementById("location-purchase-2gb");
@ -175,6 +177,8 @@ displayLocationContent = function() {
classDataStructures.style.display = "none";
classNetworks.style.display = "none";
classAlgorithms.style.display = "none";
classManagement.style.display = "none";
classLeadership.style.display = "none";
purchase1gb.style.display = "none";
purchase2gb.style.display = "none";
@ -250,35 +254,7 @@ displayLocationContent = function() {
var costMult = 3;
var expMult = 2;
displayUniversityLocationContent(costMult);
var newStudyCS = studyComputerScience.cloneNode(true);
studyComputerScience.parentNode.replaceChild(newStudyCS, studyComputerScience)
newStudyCS.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
return false;
});
var newClassDataStructures = classDataStructures.cloneNode(true);
classDataStructures.parentNode.replaceChild(newClassDataStructures, classDataStructures);
newClassDataStructures.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
return false;
});
var newClassNetworks = classNetworks.cloneNode(true);
classNetworks.parentNode.replaceChild(newClassNetworks, classNetworks);
newClassNetworks.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
return false;
});
var newClassAlgorithms = classAlgorithms.cloneNode(true);
classAlgorithms.parentNode.replaceChild(newClassAlgorithms, classAlgorithms);
newClassAlgorithms.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
return false;
});
setUniversityLocationButtons(costMult, expMult);
break;
case Locations.AevumECorp:
@ -455,35 +431,8 @@ displayLocationContent = function() {
case Locations.Sector12RothmanUniversity:
var costMult = 2;
var expMult = 1;
displayUniversityLocationContent(costMult);
var newStudyCS = studyComputerScience.cloneNode(true);
studyComputerScience.parentNode.replaceChild(newStudyCS, studyComputerScience)
newStudyCS.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
return false;
});
var newClassDataStructures = classDataStructures.cloneNode(true);
classDataStructures.parentNode.replaceChild(newClassDataStructures, classDataStructures);
newClassDataStructures.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
return false;
});
var newClassNetworks = classNetworks.cloneNode(true);
classNetworks.parentNode.replaceChild(newClassNetworks, classNetworks);
newClassNetworks.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
return false;
});
var newClassAlgorithms = classAlgorithms.cloneNode(true);
classAlgorithms.parentNode.replaceChild(newClassAlgorithms, classAlgorithms);
newClassAlgorithms.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
return false;
});
displayUniversityLocationContent(costMult);
setUniversityLocationButtons(costMult, expMult);
break;
case Locations.Sector12MegaCorp:
@ -731,35 +680,8 @@ displayLocationContent = function() {
case Locations.VolhavenZBInstituteOfTechnology:
var costMult = 4;
var expMult = 3;
displayUniversityLocationContent(costMult);
var newStudyCS = studyComputerScience.cloneNode(true);
studyComputerScience.parentNode.replaceChild(newStudyCS, studyComputerScience)
newStudyCS.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
return false;
});
var newClassDataStructures = classDataStructures.cloneNode(true);
classDataStructures.parentNode.replaceChild(newClassDataStructures, classDataStructures);
newClassDataStructures.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
return false;
});
var newClassNetworks = classNetworks.cloneNode(true);
classNetworks.parentNode.replaceChild(newClassNetworks, classNetworks);
newClassNetworks.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
return false;
});
var newClassAlgorithms = classAlgorithms.cloneNode(true);
classAlgorithms.parentNode.replaceChild(newClassAlgorithms, classAlgorithms);
newClassAlgorithms.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
return false;
});
displayUniversityLocationContent(costMult);
setUniversityLocationButtons(costMult, expMult);
break;
case Locations.VolhavenOmniTekIncorporated:
@ -1446,24 +1368,84 @@ displayUniversityLocationContent = function(costMult) {
var classDataStructuresButton = document.getElementById("location-data-structures-class");
var classNetworksButton = document.getElementById("location-networks-class");
var classAlgorithmsButton = document.getElementById("location-algorithms-class");
var classManagementButton = document.getElementById("location-management-class");
var classLeadershipButton = document.getElementById("location-leadership-class");
studyComputerScienceButton.style.display = "block";
classDataStructuresButton.style.display = "block";
classNetworksButton.style.display = "block";
classAlgorithmsButton.style.display = "block";
var gameCPS = 1 / Engine._idleSpeed;
classManagementButton.style.display = "block";
classLeadershipButton.style.display = "block";
//Costs (per second)
var baseDataStructuresCost = 1;
var baseNetworksCost = 5;
var baseAlgorithmsCost = 20;
var baseDataStructuresCost = 1;
var baseNetworksCost = 5;
var baseAlgorithmsCost = 20;
var baseManagementCost = 10;
var baseLeadershipCost = 20;
var dataStructuresCost = baseDataStructuresCost * costMult;
var networksCost = baseNetworksCost * costMult;
var algorithmsCost = baseAlgorithmsCost * costMult;
var dataStructuresCost = baseDataStructuresCost * costMult;
var networksCost = baseNetworksCost * costMult;
var algorithmsCost = baseAlgorithmsCost * costMult;
var managementCost = baseManagementCost * costMult;
var leadershipCost = baseLeadershipCost * costMult;
//Update button text to show cost
classDataStructuresButton.innerHTML = "Take Data Structures Class ($" + dataStructuresCost + " / sec)";
classNetworksButton.innerHTML = "Take Networks Class ($" + networksCost + " / second)";
classAlgorithmsButton.innerHTML = "Take Algorithms Class ($" + algorithmsCost + " / second)";
}
classDataStructuresButton.innerHTML = "Take Data Structures course ($" + dataStructuresCost + " / sec)";
classNetworksButton.innerHTML = "Take Networks course ($" + networksCost + " / second)";
classAlgorithmsButton.innerHTML = "Take Algorithms course ($" + algorithmsCost + " / second)";
classManagementButton.innerHTML = "Take Management course ($" + managementCost + " / second)";
classLeadershipButton.innerHTML = "Take Leadership course ($" + leadershipCost + " / second)";
}
setUniversityLocationButtons = function(costMult, expMult) {
var studyComputerScience= document.getElementById("location-study-computer-science");
var classDataStructures = document.getElementById("location-data-structures-class");
var classNetworks = document.getElementById("location-networks-class");
var classAlgorithms = document.getElementById("location-algorithms-class");
var classManagement = document.getElementById("location-management-class");
var classLeadership = document.getElementById("location-leadership-class");
var newStudyCS = studyComputerScience.cloneNode(true);
studyComputerScience.parentNode.replaceChild(newStudyCS, studyComputerScience)
newStudyCS.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
return false;
});
var newClassDataStructures = classDataStructures.cloneNode(true);
classDataStructures.parentNode.replaceChild(newClassDataStructures, classDataStructures);
newClassDataStructures.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
return false;
});
var newClassNetworks = classNetworks.cloneNode(true);
classNetworks.parentNode.replaceChild(newClassNetworks, classNetworks);
newClassNetworks.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
return false;
});
var newClassAlgorithms = classAlgorithms.cloneNode(true);
classAlgorithms.parentNode.replaceChild(newClassAlgorithms, classAlgorithms);
newClassAlgorithms.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
return false;
});
var newClassManagement = classManagement.cloneNode(true);
classManagement.parentNode.replaceChild(newClassManagement, classManagement);
newClassManagement.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassManagement);
return false;
});
var newClassLeadership = classLeadership.cloneNode(true);
classLeadership.parentNode.replaceChild(newClassLeadership, classLeadership);
newClassLeadership.addEventListener("click", function() {
Player.startClass(costMult, expMult, CONSTANTS.ClassLeadership);
return false;
});
}

View File

@ -769,7 +769,6 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
this.workDefExpGainRate = 0;
this.workDexExpGainRate = 0;
this.workAgiExpGainRate = 0;
this.workChaExpGainRate = 0;
this.workRepGainRate = 0;
this.workMoneyGainRate = 0;
@ -787,15 +786,20 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
var baseDataStructuresCost = 1;
var baseNetworksCost = 5;
var baseAlgorithmsCost = 20;
var baseManagementCost = 10;
var baseLeadershipCost = 20;
var baseStudyComputerScienceExp = 0.02;
var baseDataStructuresExp = 0.1;
var baseNetworksExp = 0.5;
var baseAlgorithmsExp = 2.0;
var baseNetworksExp = 0.4;
var baseAlgorithmsExp = 1.5;
var baseManagementExp = 0.8;
var baseLeadershipExp = 1.5;
//Find cost and exp gain per game cycle
var cost = 0;
var hackExp = 0;
var chaExp = 0;
switch (className) {
case CONSTANTS.ClassStudyComputerScience:
hackExp = baseStudyComputerScienceExp * expMult / gameCPS;
@ -812,13 +816,22 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
cost = baseAlgorithmsCost * costMult / gameCPS;
hackExp = baseAlgorithmsExp * expMult / gameCPS;
break;
case CONSTANTS.ClassManagement:
cost = baseManagementCost * costMult / gameCPS;
chaExp = baseManagementExp * expMult / gameCPS;
break;
case CONSTANTS.ClassLeadership:
cost = baseLeadershipCost * costMult / gameCPS;
chaExp = baseLeadershipExp * expMult / gameCPS;
break;
default:
throw new Error("ERR: Invalid/unregocnized class name");
return;
}
this.workMoneyLossRate = cost;
this.workHackExpGainRate = hackExp;
this.workMoneyLossRate = cost;
this.workHackExpGainRate = hackExp;
this.workChaExpGainRate = chaExp;
var cancelButton = document.getElementById("work-in-progress-cancel-button");
@ -883,7 +896,7 @@ PlayerObject.prototype.finishClass = function() {
this.updateSkillLevels();
var txt = "After " + this.className + " for " + convertTimeMsToTimeElapsedString(this.timeWorked) + ", <br>" +
"you spent a total of " + this.workMoneyGained * -1 + ". <br><br>" +
"you spent a total of $" + this.workMoneyGained * -1 + ". <br><br>" +
"You earned a total of: <br>" +
(this.workHackExpGained).toFixed(3) + " hacking exp <br>" +
(this.workStrExpGained).toFixed(3) + " strength exp <br>" +