sandboxels/mods/SuperASAX_Funny_Mod.js

297 lines
10 KiB
JavaScript
Raw Normal View History

2024-08-09 16:26:43 -04:00
//Made by SuperASAX or SuperAAX
elements.spread_bomb = {
color: "#524c41",
behavior: [
"XX|EX:10|XX",
"XX|DL|XX",
"M2 AND CL|M1 AND EX:10|M2 AND CL",
],
category: "Super's Funny Mod",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
},
elements.random_bomb = {
color: "#524c41",
behavior: [
"XX|EX:10|XX",
"CL%10|DL%5|CL%10",
"M2 AND CL%10|M1%25 AND EX:10|M2 AND CL%10",
],
category: "Super's Funny Mod",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
},
elements.strange_spread = {
color: "#ABCDEF",
category: "Super's Funny Mod",
behavior: [
"CL%90|XX|CL%90",
"XX|EX:5%0.1|XX",
"M2 AND CL%10|M1%25|M2 AND CL%10",
],
},
elements.cheese_matter = {
color: "#fcba03",
tick: function(pixel) {
for (var i = 0; i < adjacentCoords.length; i++) {
var coords = adjacentCoords[i];
var x = pixel.x + coords[0];
var y = pixel.y + coords[1];
if ((Math.random() < 0.05 || coords[0]) && !isEmpty(x,y,true)) {
var elem = pixelMap[x][y].element;
if (elements.cheese_matter.ignore.indexOf(elem) === -1 && elements[elem].hardness !== 1) {
if (coords[1]) {
swapPixels(pixel,pixelMap[x][y]);
}
else {
changePixel(pixelMap[x][y],"cheese_matter");
}
}
}
}
var move1Spots = [
[pixel.x, pixel.y+1],
[pixel.x+1, pixel.y+1],
[pixel.x-1, pixel.y+1],
]
if (Math.random() < 0.1) { move1Spots.push([pixel.x-1,pixel.y]) }
if (Math.random() < 0.1) { move1Spots.push([pixel.x+1,pixel.y]) }
if (Math.random() < 0.1) { move1Spots.push([pixel.x,pixel.y-1]) }
if (Math.random() < 0.1) { move1Spots.push([pixel.x-1,pixel.y-1]) }
if (Math.random() < 0.1) { move1Spots.push([pixel.x+1,pixel.y-1]) }
for (var i = 0; i < move1Spots.length; i++) {
var j = Math.floor(Math.random()*move1Spots.length);
var coords = move1Spots[j];
if (tryMove(pixel, coords[0], coords[1])) { break; }
else { move1Spots.splice(j, 1); }
}
doDefaults(pixel);
},
reactions: {
"void": { elem1:"explosion" }
},
category: "Super's Funny Mod",
state: "solid",
density: 2000,
excludeRandom: true,
2024-08-10 14:46:39 -04:00
ignore: ["fire","smoke","antimatter","cheese_matter","wall","ewall","plasma","void","border","cheese"],
2024-08-09 16:26:43 -04:00
behavior: [
"XX|XX|XX",
"XX|CH:cheese%5|XX",
"XX|XX|XX",
],
},
elements.antiball = {
color: "#EEA537",
behavior: [
"ST|ST AND M1|ST",
"ST|XX|ST",
"ST|ST|ST",
],
state: "solid",
category: "Super's Funny Mod"
2024-08-10 14:46:39 -04:00
},
elements.bomb_bird = {
color: "#997457",
properties: { "phase": 2, "rising":0 },
tick: function(pixel) {
if (Math.random() < 0.00007 && isEmpty(pixel.x,pixel.y+2)) {
createPixel("spread_bomb",pixel.x,pixel.y+2);
}
var newX = pixel.x;
var newY = pixel.y;
if (pixel.phase === 1) { // Landing
newX += pixel.flipX ? -1 : 1;
newY += Math.random() < 0.5 ? 0 : 1;
if (!tryMove(pixel, newX, newY)) {
if (outOfBounds(newX, newY)) { pixel.phase = 0 }
else {
var newPixel = pixelMap[newX][newY];
if (elements[newPixel.element].state !== "solid") { pixel.phase = 3; }
else if (newPixel.element === "bomb_bird") {
pixel.phase = 3;
newPixel.phase = 3;
}
else { pixel.phase = 0; }
}
} // Stop landing
}
else if (pixel.phase === 2) { // Gliding
newX += pixel.flipX ? -1 : 1;
newY += Math.random() < 0.9 ? 0 : 1;
if (Math.random() < 0.01) { pixel.phase = 1 } // Start landing
if (!tryMove(pixel, newX, newY)) {
pixel.flipX = !pixel.flipX;
if (!outOfBounds(newX, newY) && pixelMap[newX][newY].element !== "bird") {
pixel.phase = 3;
}
}
}
else if (pixel.phase === 0) { // Standing
if (Math.random() < 0.05) { newX += pixel.flipX ? -1 : 1; }
newY ++;
if (Math.random() < 0.01) { pixel.phase = 3 } // Start rising
if (!tryMove(pixel, newX, newY)) {
if (!outOfBounds(newX, newY) && pixelMap[newX][newY].element === "bird") {
pixel.phase = 3;
pixelMap[newX][newY].phase = 3;
}
}
}
else if (pixel.phase === 3) { // Rising
newX += pixel.flipX ? -1 : 1;
newY --;
if (!tryMove(pixel, newX, newY) || (pixel.rising > 5 && Math.random() < 0.05)) { pixel.phase = 2; pixel.rising = 0; } // Start gliding
else { pixel.rising ++; }
}
doHeat(pixel);
doElectricity(pixel);
doBurning(pixel);
},
flippableX: true,
reactions: {
"head": {elem1:"explosion"},
"body": {elem1:"explosion"},
"fly": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"firefly": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"bee": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"worm": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"ant": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"stink_bug": { elem2:"stench", chance:0.025, func:behaviors.FEEDPIXEL },
"dead_bug": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"lichen": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"termite": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"flea": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"mushroom_cap": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"mushroom_gill": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"seeds": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"flower_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"wheat_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"corn_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"corn": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"potato_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"grass_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"crumb": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"pumpkin": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL },
"pumpkin_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"rice": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"coffee_bean": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"coffee_ground": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"nut": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"nut_meat": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"nut_butter": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"jelly": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"plague": { elem1:"plague", chance:0.05 },
"oxygen": { elem2:"carbon_dioxide", chance:0.5 }
},
foodNeed: 20,
temp: 41,
tempHigh: 120,
stateHigh: "cooked_meat",
stateHighColor: "#E4CFB9",
tempLow: -18,
stateLow: "frozen_meat",
category:"Super's Funny Mod",
burn:50,
burnTime:100,
breakInto: ["feather","blood"],
state: "solid",
density: 400,
conduct: 0.5
},
elements.fillerX = {
color: "#ae4cd9",
behavior: [
"DL|CL|DL",
"CL|XX|CL",
"DL|CL|DL",
],
category:"special",
excludeRandom: true,
reactions: {
"neutron": { elem1:"lattice" },
"proton": { elem1:"vertical" },
"electric": { elem1:"horizontal" },
"positron": { elem1:"vertical" },
"plasma": { elem1:"armageddon", tempMin:500, charged:true },
},
density: 1834
},
elements.latticeX = {
color: "#cb4cd9",
behavior: [
"CL|DL|CL",
"DL|XX|DL",
"CL|DL|CL",
],
tick: function(pixel) {
for (var i = 0; i < adjacentCoords.length; i++) {
var coords = adjacentCoords[i];
var x = pixel.x + coords[0];
var y = pixel.y + coords[1];
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "lattice") {
deletePixel(x,y)
}
}
},
reactions: {
"cold_fire": { elem1:"ice_nine", chance:0.1 },
"proton": { elem1:"filler", elem2:null, chance:0.1 },
"electric": { elem1:null, elem2:"filler", chance:0.1 },
},
category:"special",
excludeRandom: true,
movable: false,
density: 917
},
elements.mystery_thing_1 = {
color: "#EEA537",
behavior: [
"ST AND CL%10|ST AND CL%10 AND M2|ST AND CL%10",
"ST AND CL%10|DL%25 AND EX:5%1|ST AND CL%10",
"ST AND CL%10|ST AND M1|ST AND CL%10",
],
state: "solid",
category: "Super's Funny Mod",
reactions: {
"water": { elem1:"null" }
},
},
elements.mystery_thing_2 = {
color: "#abcfed",
behavior: [
"CL%10 AND CH:galvanized_steel%10|CL%10 AND CH:galvanized_steel%10|CL%10 AND CH:galvanized_steel%10",
"M2|CH:galvanized_steel%10 AND CH:spread_bomb%0.1|M2",
"CH:null%10|M1|CH:null%10",
],
category: "Super's Funny Mod",
name:"0.1 by 0.1 meter apartment"
},
elements.sandboxelizer = {
color: "#e6d577",
category: "Super's Funny Mod",
behavior: [
"CL%3 AND CH:sand%10|M2|CL%3 AND CH:sand%10",
"M2|M1|M2",
"CL%3 AND CH:sand%10|M2|CL%3 AND CH:sand%10",
],
reactions: {
"sand": { elem1:"void", chance:0.1}
}
};
//just doing some modding