mirror of
https://github.com/2009scape/2009scape.github.io.git
synced 2024-11-20 01:42:41 +01:00
98 lines
3.3 KiB
JavaScript
98 lines
3.3 KiB
JavaScript
|
var spells = {
|
||
|
|
||
|
// Variables
|
||
|
list : [],
|
||
|
fasterCandiesFiboPrev : 1,
|
||
|
fasterCandiesFiboCurr : 2,
|
||
|
|
||
|
// Functions
|
||
|
onload : function(){
|
||
|
// We add the spells
|
||
|
this.addSpell("Candies, faster candies !", this.getFasterCandiesPrice.bind(this), this.fasterCandies.bind(this), "Congratulations ! You will now gain more candies each second !", []);
|
||
|
this.addSpell("Candies, more candies !", this.getMoreCandiesPrice.bind(this), this.moreCandies.bind(this), "///", []);
|
||
|
this.addSpell("Sword, better sword !", this.getBetterSwordPrice.bind(this), this.betterSword.bind(this), "///", ["specialSword"]);
|
||
|
|
||
|
// We sort the list
|
||
|
this.sortListDependingOnPrice();
|
||
|
},
|
||
|
|
||
|
sortListDependingOnPrice : function(){
|
||
|
this.list.sort(this.priceSortFunction);
|
||
|
},
|
||
|
|
||
|
priceSortFunction : function(spellA, spellB){
|
||
|
var priceA = spellA.price();
|
||
|
var priceB = spellB.price();
|
||
|
|
||
|
if(priceA < priceB) return -1;
|
||
|
else if(priceB < priceA) return 1;
|
||
|
return 0;
|
||
|
},
|
||
|
|
||
|
getBetterSwordPrice : function(){
|
||
|
return Math.floor(Math.pow(sword.specialPower+1, 2.6)) * 10000;
|
||
|
},
|
||
|
|
||
|
getFasterCandiesPrice : function(){
|
||
|
return Math.pow(this.fasterCandiesFiboCurr, 2) * 10000;
|
||
|
},
|
||
|
|
||
|
addSpell : function(name, price, effect, speech, conditions){
|
||
|
this.list.push({name:name, price:price, effect:effect, speech:speech, conditions:conditions});
|
||
|
},
|
||
|
|
||
|
getMoreCandiesPrice : function(){
|
||
|
return 300000;
|
||
|
},
|
||
|
|
||
|
betterSword : function(){
|
||
|
sword.setSpecialPower(sword.specialPower + 1);
|
||
|
this.sortListDependingOnPrice();
|
||
|
|
||
|
// And we change the hut's speech by ourselves
|
||
|
switch(sword.name){
|
||
|
case "Sword of Life":
|
||
|
hut.setSpeech("Your Sword of Life will now drain more energy from your enemies.");
|
||
|
break;
|
||
|
case "Sword of Flames":
|
||
|
hut.setSpeech("Your Sword of Flames is now more powerful.")
|
||
|
break;
|
||
|
case "Sword of Summoning":
|
||
|
hut.setSpeech("You can now summon " + sword.summonList[sword.getIndexOfBetterToSummon()].name + " !");
|
||
|
break;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
moreCandies : function(){
|
||
|
var nbr = Math.floor(candies.nbrTotal/20);
|
||
|
|
||
|
// We can't gain more candies than the price we pay for the spell !
|
||
|
if(nbr > 300000) nbr = 300000;
|
||
|
|
||
|
candies.setNbrOwned(candies.nbrOwned + nbr);
|
||
|
hut.setSpeech("Here's " + nbr + " candies for you !");
|
||
|
},
|
||
|
|
||
|
nextFasterCandiesFiboStep : function(){
|
||
|
this.setFasterCandiesFibo(this.fasterCandiesFiboCurr, this.fasterCandiesFiboPrev + this.fasterCandiesFiboCurr);
|
||
|
},
|
||
|
|
||
|
setFasterCandiesFibo : function(prev, curr){
|
||
|
// Set the new values
|
||
|
this.fasterCandiesFiboPrev = prev;
|
||
|
this.fasterCandiesFiboCurr = curr;
|
||
|
|
||
|
// Sort the spells list depending on their price, since the price of the faster candies spell just changed
|
||
|
this.sortListDependingOnPrice();
|
||
|
},
|
||
|
|
||
|
fasterCandies : function(){
|
||
|
// We change candies per second
|
||
|
candies.setCandiesPerSecond(this.fasterCandiesFiboCurr);
|
||
|
|
||
|
// We continue fibo
|
||
|
this.nextFasterCandiesFiboStep();
|
||
|
}
|
||
|
|
||
|
};
|