mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-07-21 11:41:18 -04:00
commit all random stuff to repo
This commit is contained in:
255
static/candies/scripts/underwaterCave.js
Executable file
255
static/candies/scripts/underwaterCave.js
Executable file
@@ -0,0 +1,255 @@
|
||||
var underwaterCave = {
|
||||
|
||||
// Variables
|
||||
size : 54,
|
||||
|
||||
// Functions
|
||||
onload : function(){
|
||||
land.addLand("Underwater cave", this.size, 2, this.load.bind(this), this.getText.bind(this), this.move.bind(this));
|
||||
},
|
||||
|
||||
move : function(){
|
||||
var defeated = false;
|
||||
if(quest.things[51].type != "mob") defeated = true; // The Whale has been defeated
|
||||
|
||||
// We create a variable to store the lines of the underwater cave, depending on if the Whale is defeated or not
|
||||
var lines = [];
|
||||
if(defeated == false) lines = this.text.slice(0);
|
||||
else lines = this.textWithoutWhale.slice(0);
|
||||
|
||||
// We make bubbles go up
|
||||
for(var i = this.bubbles.length - 1; i >= 0; i--){
|
||||
if(this.bubbles[i].y == 0 || lines[this.bubbles[i].y-1].charAt(this.bubbles[i].x) != " "){
|
||||
this.bubbles.splice(i, 1);
|
||||
}
|
||||
else this.bubbles[i].y -= 1;
|
||||
}
|
||||
|
||||
// We add bubbles if there isn't enough
|
||||
if(this.bubbles.length < 4){
|
||||
var b = this.bubblesStartingPositions[random.getRandomIntUpTo(this.bubblesStartingPositions.length-1)];
|
||||
if(lines[b.y].charAt(b.x) == " " && lines[b.y-1].charAt(b.x) == " "){
|
||||
this.bubbles.push({x:0, y:0});
|
||||
this.bubbles[this.bubbles.length-1].x = b.x;
|
||||
this.bubbles[this.bubbles.length-1].y = b.y;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
load : function(){
|
||||
for(var i = 1; i < quest.things.length; i++){
|
||||
if(i < 47){ // If we're before the place of octopus guardians
|
||||
if(i > 2){ // If we're underwater
|
||||
if(i >= 26 && i <= 35){ // Eel zone
|
||||
if(random.oneChanceOutOf(3)){
|
||||
quest.things[i] = land.createMob("EEL", 3, 3, "electric tail", "An eel. Weak, but aggressive.", [drops.createDrop("candies", 50 + random.getRandomIntUpTo(50))]);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(random.flipACoin()){
|
||||
var n = 9 + random.getRandomIntUpTo(3);
|
||||
quest.things[i] = land.createMob("F~H", n, n, "fins", "A fish. Easy to beat.", [drops.createDrop("candies", 5)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(i <= 50){ // If we're before the whale
|
||||
if(random.getRandomIntUpTo(10) <= 9) // 9/10 chances
|
||||
quest.things[i] = land.createMob("OCT", 45, 45, "tentacles", "An octopus guardian. It looks dangerous.", []);
|
||||
}
|
||||
else if(i == 51){ // It's the whale (52 and 53 must be void)
|
||||
quest.things[i] = land.createMob("The Whale.", 100, 100, "giant tail", "The Whale does not like to be disturbed.", [drops.createDrop("candies", 400 + random.getRandomIntUpTo(400)), drops.createDrop("object", "key", true), drops.createDrop("object", "hutMap", true), drops.createDrop("object", "swampMap", true), drops.createDrop("object", "boots", true), drops.createDrop("object", "wellMap", true), drops.createDrop("object", "magicianHat", true), drops.createDrop("object", "pinkRing", true), drops.createDrop("object", "forgeMap", true)]);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getText : function(){
|
||||
var defeated = false;
|
||||
if(quest.things[51].type != "mob") defeated = true; // The Whale has been defeated
|
||||
|
||||
// We create a variable to store the lines of the underwater cave, depending on if the Whale is defeated or not
|
||||
var lines = [];
|
||||
if(defeated == false) lines = this.text.slice(0);
|
||||
else lines = this.textWithoutWhale.slice(0);
|
||||
|
||||
// We modify this variable by adding things to it
|
||||
for(var i = 0; i < this.size; i++){
|
||||
if(defeated == true || (defeated == false && i <= 50)){ // If we defeated the Whale or we're not drawing the things located after the Whale
|
||||
if(quest.things[i].type != "none"){
|
||||
lines[this.positions[i].y] = lines[this.positions[i].y].replaceAt(this.positions[i].x, quest.things[i].text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We modify this land var by drawing bubbles
|
||||
for(var i = this.bubbles.length - 1; i >= 0; i--){
|
||||
if(lines[this.bubbles[i].y].charAt(this.bubbles[i].x) == " ") lines[this.bubbles[i].y] = lines[this.bubbles[i].y].replaceAt_with_size(this.bubbles[i].x, "°", 1);
|
||||
else this.bubbles.splice(i, 1);
|
||||
}
|
||||
|
||||
return lines.join("");
|
||||
},
|
||||
|
||||
// Variables
|
||||
|
||||
text : [
|
||||
" / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n",
|
||||
"___________| . . . . . . . . . . . . . . . . . . . . . . _______ . . .\n",
|
||||
". . .| |. . . . . . . . . . . . . . . . . . . ._____/ \\ . . .\n",
|
||||
" . . | | . . . ________. . . . . . . . . . . ./ \\ . .\n",
|
||||
". . .| \\_____/ \\_______ . . . . . . ./ \\ . .\n",
|
||||
" . . \\ \\____________/ \\ .\n",
|
||||
". . . \\ __ | .\n",
|
||||
" . . . \\ __/. | |.\n",
|
||||
". . . . \\ ________/. . .| | .\n",
|
||||
" . . . . \\ ____/. . . . . . ./ / .\n",
|
||||
". . . . . \\___ __/. . . . . . . . ./ / . .\n",
|
||||
" . . . . . . .\\ ______/. . . . . . . . . ./ / . .\n",
|
||||
". . . . . . . .\\_____________/. . . . . ____. . . . . ./ / . . .\n",
|
||||
" . .__________ . . . . . . . . . . . __/ \\_________/ \\. . .\n",
|
||||
". ./ \\ . . . . . . . ______/ \\. . .\n",
|
||||
" ./ ::. \\_____________/ |. .\n",
|
||||
".|(\\./) .-\"\"-. | . .\n",
|
||||
" | `\\'-'` \\ / . .\n",
|
||||
".| '.___,_`__/ / . . .\n",
|
||||
" | __________ _____________/ . . .\n",
|
||||
". \\_____ ________/ . . . . .\\_________/. . . . . . . . . . .\n",
|
||||
" . . . .\\__________/ . . . . . . . . . . . . . . . . . . . . . . . . .\n",
|
||||
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
|
||||
],
|
||||
|
||||
textWithoutWhale : [
|
||||
" / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n",
|
||||
"___________| . . . . . . . . . . . . . . . . . . . . . . _______ . . .\n",
|
||||
". . .| |. . . . . . . . . . . . . . . . . . . ._____/ \\ . . .\n",
|
||||
" . . | | . . . ________. . . . . . . . . . . ./ \\ . .\n",
|
||||
". . .| \\_____/ \\_______ . . . . . . ./ \\ . .\n",
|
||||
" . . \\ \\____________/ \\ .\n",
|
||||
". . . \\ __ | .\n",
|
||||
" . . . \\ __/. | |.\n",
|
||||
". . . . \\ ________/. . .| | .\n",
|
||||
" . . . . \\ ____/. . . . . . ./ / .\n",
|
||||
". . . . . \\___ __/. . . . . . . . ./ / . .\n",
|
||||
" . . . . . . .\\ ______/. . . . . . . . . ./ / . .\n",
|
||||
". . . . . . . .\\_____________/. . . . . ____. . . . . ./ / . . .\n",
|
||||
" . .__________ . . . . . . . . . . . __/ \\_________/ \\. . .\n",
|
||||
". ./ \\ . . . . . . . ______/ \\. . .\n",
|
||||
" ./ \\_____________/ |. .\n",
|
||||
".| | . .\n",
|
||||
" | / . .\n",
|
||||
".| / . . .\n",
|
||||
" | __________ _____________/ . . .\n",
|
||||
". \\_____ ________/ . . . . .\\_________/. . . . . . . . . . .\n",
|
||||
" . . . .\\__________/ . . . . . . . . . . . . . . . . . . . . . . . . .\n",
|
||||
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."
|
||||
],
|
||||
|
||||
positions : [
|
||||
{x:0, y:1},
|
||||
{x:3, y:1},
|
||||
{x:6, y:1},
|
||||
{x:7, y:2},
|
||||
{x:7, y:3},
|
||||
{x:7, y:4},
|
||||
{x:9, y:5},
|
||||
{x:11, y:6},
|
||||
{x:13, y:7},
|
||||
{x:14, y:8},
|
||||
{x:15, y:9},
|
||||
{x:18, y:10},
|
||||
{x:21, y:10},
|
||||
{x:24, y:9},
|
||||
{x:27, y:8},
|
||||
{x:30, y:7},
|
||||
{x:33, y:7},
|
||||
{x:36, y:8},
|
||||
{x:39, y:8},
|
||||
{x:42, y:7},
|
||||
{x:45, y:7},
|
||||
{x:48, y:7},
|
||||
{x:51, y:6},
|
||||
{x:54, y:5},
|
||||
{x:57, y:4},
|
||||
{x:60, y:5},
|
||||
{x:62, y:6},
|
||||
{x:62, y:7},
|
||||
{x:62, y:8},
|
||||
{x:61, y:9},
|
||||
{x:60, y:10},
|
||||
{x:59, y:11},
|
||||
{x:58, y:12},
|
||||
{x:58, y:13},
|
||||
{x:58, y:14},
|
||||
{x:58, y:15},
|
||||
{x:55, y:16},
|
||||
{x:52, y:17},
|
||||
{x:51, y:18},
|
||||
{x:48, y:18},
|
||||
{x:45, y:19},
|
||||
{x:42, y:19},
|
||||
{x:39, y:18},
|
||||
{x:36, y:17},
|
||||
{x:33, y:16},
|
||||
{x:30, y:17},
|
||||
{x:27, y:17},
|
||||
{x:25, y:18},
|
||||
{x:22, y:18},
|
||||
{x:19, y:18},
|
||||
{x:16, y:18},
|
||||
{x:13, y:18},
|
||||
{x:10, y:18},
|
||||
{x:7, y:18}
|
||||
],
|
||||
|
||||
bubblesStartingPositions : [
|
||||
{x:10, y:9},
|
||||
{x:13, y:9},
|
||||
{x:18, y:11},
|
||||
{x:20, y:11},
|
||||
{x:22, y:11},
|
||||
{x:24, y:11},
|
||||
{x:26, y:11},
|
||||
{x:30, y:10},
|
||||
{x:32, y:10},
|
||||
{x:34, y:10},
|
||||
{x:38, y:9},
|
||||
{x:41, y:8},
|
||||
{x:43, y:8},
|
||||
{x:54, y:7},
|
||||
{x:56, y:7},
|
||||
{x:57, y:5},
|
||||
{x:59, y:5},
|
||||
{x:63, y:18},
|
||||
{x:61, y:18},
|
||||
{x:59, y:18},
|
||||
{x:57, y:18},
|
||||
{x:55, y:18},
|
||||
{x:53, y:18},
|
||||
{x:51, y:18},
|
||||
{x:49, y:19},
|
||||
{x:47, y:19},
|
||||
{x:45, y:19},
|
||||
{x:43, y:19},
|
||||
{x:41, y:19},
|
||||
{x:38, y:18},
|
||||
{x:36, y:18},
|
||||
{x:34, y:18},
|
||||
{x:32, y:18},
|
||||
{x:30, y:18},
|
||||
{x:27, y:19},
|
||||
{x:25, y:19},
|
||||
{x:23, y:19},
|
||||
{x:21, y:19},
|
||||
{x:18, y:20},
|
||||
{x:16, y:20},
|
||||
{x:14, y:20},
|
||||
{x:12, y:20},
|
||||
{x:10, y:20},
|
||||
{x:7, y:19},
|
||||
{x:5, y:19},
|
||||
{x:3, y:19}
|
||||
],
|
||||
|
||||
bubbles : []
|
||||
|
||||
};
|
Reference in New Issue
Block a user