mirror of
https://github.com/2009scape/2009scape.github.io.git
synced 2024-11-20 01:42:41 +01:00
186 lines
7.6 KiB
JavaScript
186 lines
7.6 KiB
JavaScript
var shop = {
|
|
|
|
// Variables
|
|
buy10LollipopsButtonShown : false, // True if the buy 10 lollipops button should be shown
|
|
shown : false, // True if the shop is currently shown
|
|
ticklingStep : 0, // Tickling step (increase when we click on the merchant's hat
|
|
clickingOnLollipopStep : 0, // Clicking on lollipop step (increase when we clicked on the top of the lollipop sold at the shop)
|
|
oneLollipopPrice : 0, // Price of one lollipop, calculated depending on the clicking on lollipop step
|
|
tenLollipopsPrice : 0, // Price of ten lollipops, calculated the same way as above
|
|
currentSwordButtonId : "none", // Contains the id of the current sword buying button
|
|
currentSwordPrice : 0, // Contains the price of the current sword being sold by the merchant
|
|
|
|
// Functions
|
|
onload : function(){
|
|
lollipops.delivery(); // The merchant must have some lollipops in stock at the beginning, so we make a delivery
|
|
this.setClickingOnLollipopStep(0); // This also set the lollipops price !
|
|
},
|
|
|
|
check : function(){
|
|
if(candies.nbrOwned >= this.oneLollipopPrice){
|
|
this.setShown(true);
|
|
}
|
|
if(candies.nbrOwned >= 150){
|
|
// If we don't have any sword and there's no sword to sell yet, we show the wooden sword
|
|
if(sword.name == "none" && this.currentSwordButtonId == "none"){
|
|
this.showProduct("wooden_sword");
|
|
}
|
|
}
|
|
},
|
|
|
|
setBuy10LollipopsButtonShown : function(value){
|
|
this.buy10LollipopsButtonShown = value;
|
|
},
|
|
|
|
clickedOnHat : function(){
|
|
switch(this.ticklingStep){
|
|
case 0:
|
|
this.setMerchantSpeech("Hey ! You touched my hat !");
|
|
break;
|
|
case 1:
|
|
this.setMerchantSpeech("Stop that, stop that ! You're tickling me !");
|
|
break;
|
|
case 2:
|
|
this.setMerchantSpeech("Hahahaha ! I'm so ticklish !");
|
|
break;
|
|
case 3:
|
|
this.setMerchantSpeech("Listen, listen : I give you 100 candies ! But stop that please !");
|
|
candies.setNbrOwned(candies.nbrOwned + 100);
|
|
break;
|
|
}
|
|
|
|
this.setTicklingStep(this.ticklingStep + 1);
|
|
},
|
|
|
|
setTicklingStep : function(value){
|
|
this.ticklingStep = value;
|
|
},
|
|
|
|
setClickingOnLollipopStep : function(value){
|
|
this.clickingOnLollipopStep = value;
|
|
|
|
// Set the buttons value if the step is 0 or the price is reducing or is reduced
|
|
if(this.clickingOnLollipopStep <= 4){
|
|
this.oneLollipopPrice = 60;
|
|
this.tenLollipopsPrice = 500;
|
|
htmlInteraction.setInnerHtml("buy_1_lollipop", "Buy a lollipop (60 candies)");
|
|
htmlInteraction.setInnerHtml("buy_10_lollipops", "Buy 10 lollipop (500 candies)");
|
|
}
|
|
else if(this.clickingOnLollipopStep >= 5 && this.clickingOnLollipopStep < 15){
|
|
this.oneLollipopPrice = 60 - (this.clickingOnLollipopStep - 4);
|
|
this.tenLollipopsPrice = 500 - (this.clickingOnLollipopStep - 4) * 5;
|
|
htmlInteraction.setInnerHtml("buy_1_lollipop", "Buy a lollipop (" + this.oneLollipopPrice + " candies)");
|
|
htmlInteraction.setInnerHtml("buy_10_lollipops", "Buy 10 lollipop (" + this.tenLollipopsPrice + " candies)");
|
|
}
|
|
else{
|
|
this.oneLollipopPrice = 60 - (14 - 4);
|
|
this.tenLollipopsPrice = 500 - (14 - 4) * 5;
|
|
htmlInteraction.setInnerHtml("buy_1_lollipop", "Buy a lollipop (" + this.oneLollipopPrice + " candies)");
|
|
htmlInteraction.setInnerHtml("buy_10_lollipops", "Buy 10 lollipop (" + this.tenLollipopsPrice + " candies)");
|
|
}
|
|
},
|
|
|
|
clickedOnLollipop : function(){
|
|
this.setClickingOnLollipopStep(this.clickingOnLollipopStep + 1);
|
|
|
|
// Possibly change the merchant speech
|
|
switch(this.clickingOnLollipopStep){
|
|
case 1:
|
|
this.setMerchantSpeech("Hey ! Don't touch the products !");
|
|
break;
|
|
case 2:
|
|
this.setMerchantSpeech("Seriously, don't touch this lollipop.");
|
|
break;
|
|
case 3:
|
|
this.setMerchantSpeech("Don't touch it ! Other customers may lick it after that, that's gross !");
|
|
break;
|
|
case 4:
|
|
this.setMerchantSpeech("Stop now or I'll be force to do something.");
|
|
break;
|
|
case 15:
|
|
this.setMerchantSpeech("I can't make a lower price... Please stop.");
|
|
break;
|
|
}
|
|
|
|
if(this.clickingOnLollipopStep >= 5 && this.clickingOnLollipopStep < 15){
|
|
this.setMerchantSpeech("Okay, okay, I lower the price, but stop touching it !");
|
|
}
|
|
},
|
|
|
|
showProduct : function(id){
|
|
switch(id){
|
|
// If it's a special product
|
|
case "wooden_sword":
|
|
htmlInteraction.setInnerHtml("sword_with_button", sword.asciiWoodenSwordWithButton);
|
|
this.currentSwordButtonId = "buy_wooden_sword";
|
|
this.currentSwordPrice = 150;
|
|
break;
|
|
case "copper_sword":
|
|
htmlInteraction.setInnerHtml("sword_with_button", sword.asciiCopperSwordWithButton);
|
|
this.currentSwordButtonId = "buy_copper_sword";
|
|
this.currentSwordPrice = 300;
|
|
break;
|
|
case "iron_sword":
|
|
htmlInteraction.setInnerHtml("sword_with_button", sword.asciiIronSwordWithButton);
|
|
this.currentSwordButtonId = "buy_iron_sword";
|
|
this.currentSwordPrice = 500;
|
|
break;
|
|
case "silver_sword":
|
|
htmlInteraction.setInnerHtml("sword_with_button", sword.asciiSilverSwordWithButton);
|
|
this.currentSwordButtonId = "buy_silver_sword";
|
|
this.currentSwordPrice = 1000;
|
|
break;
|
|
case "diamond_sword":
|
|
htmlInteraction.setInnerHtml("sword_with_button", sword.asciiDiamondSwordWithButton);
|
|
this.currentSwordButtonId = "buy_diamond_sword";
|
|
this.currentSwordPrice = 2000;
|
|
break;
|
|
// Else, we just show the html element corresponding to the received id
|
|
default:
|
|
htmlInteraction.setElementVisibility(id, true);
|
|
htmlInteraction.setElementDisplay(id, "block");
|
|
break;
|
|
}
|
|
},
|
|
|
|
show : function(){
|
|
// We show the shop
|
|
if(htmlInteraction.isElementVisible("shop") == false){ // If the shop isn't already visible
|
|
htmlInteraction.setElementVisibility("shop", true);
|
|
this.setMerchantSpeech("Hello, I'm the candy merchant. I would do anything for candies. My lollipops are delicious!");
|
|
}
|
|
|
|
// And the lollipop we can buy :)
|
|
this.showProduct("lollipop");
|
|
},
|
|
|
|
setShown : function(value){
|
|
// If the new value is true but it was false before, we show the shop
|
|
if(value == true && this.shown == false)
|
|
{
|
|
this.show();
|
|
}
|
|
|
|
// We change the value
|
|
this.shown = value;
|
|
},
|
|
|
|
hideProduct : function(id){
|
|
// If it's a special product
|
|
if(id == "sword"){
|
|
this.currentSwordButtonId = "none";
|
|
htmlInteraction.setInnerHtml("sword_with_button", "");
|
|
}
|
|
// Else
|
|
else{
|
|
htmlInteraction.setElementVisibility(id, false);
|
|
htmlInteraction.setElementDisplay(id, "none");
|
|
}
|
|
},
|
|
|
|
setMerchantSpeech : function(text){
|
|
htmlInteraction.setInnerHtml("merchant_speech", speech.makeSpeechFromText(text, 20, " "));
|
|
}
|
|
|
|
};
|