From bdc6b0ef4996cc04665492b9a3b69a0c326775dd Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:11:47 -0700 Subject: [PATCH 01/15] scp.js yeah i just added it to submit to see if ryan accepts it um yeah --- mods/scp.js | 1226 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1226 insertions(+) create mode 100644 mods/scp.js diff --git a/mods/scp.js b/mods/scp.js new file mode 100644 index 00000000..bdc51970 --- /dev/null +++ b/mods/scp.js @@ -0,0 +1,1226 @@ +window.addEventListener("load", () => { + document.getElementById("elementButton-mask_head")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-mask_body")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-zombie")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-z_head")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-z_body")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-REDACTED")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-hyper_tickle_monster")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-calm_682")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-mad_682")?.remove() +}) + +// Coding junk past this point + +// also hi jonny ray + +elements.anomalous_essence = { + hidden: true, + color: "#f7ead0", + behavior: behaviors.GAS, + category: "scp", + state: "gas", + density: 0.50, +}; + +elements.SCP_008 = { + color: "#11111f", + behavior: [ + "M2|M1|M2", + "M1|XX|M1", + "M2|M1|M2", + ], + reactions: { + "head": { elem1:null, elem2:"z_head" , chance:0.5 }, + "body": { elem1:null, elem2:"z_body" , chance:0.5 }, + "frog": { elem2:"SCP_008" , chance:0.5 }, + "ant": { elem2:"SCP_008" , chance:0.5 }, + "bee": { elem2:"SCP_008" , chance:0.5 }, + "fish": { elem2:"SCP_008" , chance:0.5 }, + "firefly": { elem2:"SCP_008" , chance:0.5 }, + "chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + }, + tempHigh: 1000, + stateHigh: [null,null,null,null,"anomalous_essence"], + tempLow: -100, + stateLow: "frozen_008", + category: "scp", + state: "gas", + density: 100, +}, + +elements.frozen_008 = { + color: "#242424", + behavior: [ + "XX|XX|XX", + "XX|DL%0.001|X", + "M2%1.0|M1%1.0|M2%1.0", + ], + reactions: { + "head": { elem1:null, elem2:"z_head" , chance:0.4 }, + "body": { elem1:null, elem2:"z_body" , chance:0.4 }, + "chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + }, + temp: -50, + tempHigh: 0, + stateHigh: "SCP_008", + category: "scp", + state: "solid", + density: 95, +}, + +elements.possessive_mask = { + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + behavior: [ + "CR:black_acid%0.1|CR:black_acid%0.5|CR:black_acid%0.1", + "CR:black_acid%0.5|XX|CR:black_acid%0.5", + "CR:black_acid%0.1|CR:black_acid%0.5 AND M1|CR:black_acid%0.1", + ], + breakInto: ["porcelain_shard","porcelain_shard","black_acid","black_acid"], + density: 800, + state: "solid", + tempHigh: 3500, + stateHigh: "porcelain_shard", + reactions: { + "head": { elem1:null, elem2: "mask_head" , chance:0.2 }, + "body": { elem1:null, elem2: "mask_body" , chance:0.1 }, + "z_head": { elem1:null, elem2: "mask_head" , chance:0.1 }, + "z_body": { elem1:null, elem2: "mask_body" , chance:0.05 }, + }, +}, + +elements.mask_body = { + color: ["#242424","#069469","#047e99","#7f5fb0"], + category: "scp", + hidden: true, + density: 1500, + state: "solid", + conduct: .05, + temp: 37, + tempHigh: 250, + stateHigh: "cooked_meat", + tempLow: -30, + stateLow: "frozen_meat", + burn: 10, + burnTime: 250, + burnInto: "cooked_meat", + breakInto: ["black_acid","rotten_meat","bone"], + reactions: { + "cancer": { elem1:"cancer", chance:0.005 }, + "egg": { elem2:"yolk", chance:0.5, oneway:true }, + }, + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall + if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down + var headpixel = pixelMap[pixel.x][pixel.y-2]; + if (headpixel.element == "mask_head") { + if (isEmpty(pixel.x, pixel.y-1)) { + movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1); + } + else { + swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]); + } + } + } + } + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into rotten_meat if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"rotten_meat"); + } + return + } + + // Find the head + if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "mask_head") { + var head = pixelMap[pixel.x][pixel.y-1]; + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") { // If head is not mask head, make it one + var head = pixelMap[pixel.x][pixel.y-1]; + changePixel(head,"mask_head"); + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "z_head") { // If head is not mask head, make it one + var head = pixelMap[pixel.x][pixel.y-1]; + changePixel(head,"mask_head"); + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else { var head = null } + if (pixel.burning) { + pixel.panic += 0.1; + if (head && pixelTicks-pixel.burnStart > 240) { + pixel.color = head.color; + } + } + else if (pixel.panic > 0) { + pixel.panic -= 0.1; + } + + if (isEmpty(pixel.x, pixel.y-1)) { + // create black acid if decapitated 10% chance + if (Math.random() < 0.1 && !pixel.charge) { + createPixel("black_acid", pixel.x, pixel.y-1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + else if (head == null) { return } + else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance + var movesToTry = [ + [1*pixel.dir,0], + [1*pixel.dir,-1], + ]; + // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break. + while (movesToTry.length > 0) { + var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0]; + if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) { + var origx = pixel.x+move[0]; + var origy = pixel.y+move[1]; + if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) { + movePixel(head, head.x+move[0], head.y+move[1]); + break; + } + } + } + // 15% chance to change direction + if (Math.random() < 0.15) { + pixel.dir *= -1; + } + } + + } +}, + +elements.mask_head = { + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + hidden: true, + density: 2280, + state: "solid", + conduct: .05, + temp: 37, + tempHigh: 250, + stateHigh: "possessive_mask", + tempLow: -30, + stateLow: "possessive_mask", + burn: 10, + burnTime: 250, + burnInto: "possessive_mask", + breakInto: "possessive_mask", + forceSaveColor: true, + reactions: { + "cancer": { elem1: "possessive_mask", chance:0.05 }, + "tea": { elem2:null, chance:0.2 }, + "alcohol": { elem2:null, chance:0.2 }, + }, + properties: { + dead: false + }, + behavior: [ + "CR:black_acid%0.1|CR:black_acid%0.5|CR:black_acid%0.1", + "CR:black_acid%0.5|XX|CR:black_acid%0.5", + "CR:black_acid%0.1|CR:black_acid%0.5 AND M1|CR:black_acid%0.1", + ], + tick: function(pixel) { + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into the mask if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"possessive_mask"); + return + } + } + + // Find the body + if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "mask_body") { + var body = pixelMap[pixel.x][pixel.y+1]; + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") { // If body is not mask body, make it one + var body = pixelMap[pixel.x][pixel.y+1]; + changePixel(body,"mask_body"); + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "z_body") { // If body is not mask body, make it one + var body = pixelMap[pixel.x][pixel.y+1]; + changePixel(body,"mask_body"); + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else { var body = null } + + if (tryMove(pixel, pixel.x, pixel.y+1)) { + // create blood if severed 10% chance + if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) { + createPixel("black_acid", pixel.x, pixel.y+1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + } +}, + +elements.black_acid = { + hidden: true, + color: ["#00000f","#111111","#242424"], + behavior: [ + "XX|DB%5|XX", + "DB%6 AND M2%10|XX|DB%6 AND M2%10", + "DB%6 AND M2%10|DB%11 AND M1|DB%6 AND M2%10", + ], + ignore: [/*"SCP_804"*/"shy_head","shy_body","SCP_055","head","body","z_body","z_head","possessive_mask","mask_body","mask_head","glass_shard","porcelain_shard","rad_shard","color_sand","sand","iron","steel","glass","rad_glass","stained_glass","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","oxygen","ozone","gold_coin","silver","nickel","calcium"], + reactions: { + "caustic_potash": { elem1:null, elem2:"potassium_salt" }, + "water": { elem1:null, elem2:"dirty_water" }, + "salt_water": { elem1:null, elem2:"water" }, + "sugar_water": { elem1:null, elem2:"water" }, + "pool_water": { elem1:null, elem2:"water" }, + "plant": { elem1:null, elem2:"dead_plant" }, + "tree_branch": { elem1:null, elem2:"wood" }, + "charcoal": { elem1:null, elem2:"carbon_dioxide" }, + "rock": { elem1:null, elem2:"sand", chance:0.05 }, + "baking_soda": { elem1:null, elem2:["carbon_dioxide","foam"] }, + "calcium": { elem1:null, elem2:"hydrogen", chance:0.01 }, + "zinc": { elem1:null, elem2:null, chance:0.03 }, + "sugar": { elem1:null, elem2:"carbon_dioxide" }, + "glass": { elem1:null, elem2: null , chance:0.01 }, + "rad_glass": { elem1:null, elem2: null , chance:0.01 }, + "stained_glass": { elem1:null, elem2: null , chance:0.01 }, + "glass_shard": { elem1:null, elem2: null , chance:0.015 }, + "rad_shard": { elem1:null, elem2: null , chance:0.015 }, + "porcelain_shard": { elem1:null, elem2: null , chance:0.015 }, + "copper": { elem1:null, elem2: null , chance:0.02 }, + "gold": { elem1:null, elem2: null , chance:0.02 }, + "porcelain": { elem1:null, elem2: null , chance:0.01 }, + "plastic": { elem1:null, elem2: null , chance:0.01 }, + "molten_plastic": { elem1:null, elem2: null , chance:0.02 }, + "gold_coin": { elem1:null, elem2: "gold" , chance:0.1 }, + "silver": { elem1:null, elem2: null , chance:0.02 }, + "nickel": { elem1:null, elem2: null , chance:0.02 }, + "calcium": { elem1:null, elem2: null , chance:0.02 }, + "iron": { elem1:null, elem2: null , chance:0.02 }, + "steel": { elem1:null, elem2: null , chance:0.02 }, + "concrete": { elem1:null, elem2: null , chance:0.05 }, + "rock": { elem1:null, elem2: null , chance:0.04 }, + "dirt": { elem1:null, elem2: null , chance:0.05 }, + "sand": { elem1:null, elem2: null , chance:0.015 }, + "color_sand": { elem1:null, elem2: null , chance:0.015 }, + "mask_head": { elem1:null, elem2: "possessive_mask" , chance:0.001}, + "mask_body": { elem1:null, elem2: null , chance:0.001 }, + "head": { elem1:null, elem2: null , chance:0.01 }, + "body": { elem1:null, elem2: null , chance:0.01 }, + "z_head": { elem1:null, elem2: null , chance:0.02 }, + "z_body": { elem1:null, elem2: null , chance:0.02 }, + /*"SCP_804": { elem1:null, elem2: null , chance:0.02 },*/ + }, + category: "scp", + tempHigh: 1000, + stateHigh: null, + tempLow: -58.88, + burn: 30, + burnTime: 10, + burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","ash","ash","anomalous_essence"], + fireColor: "#111111", + state: "liquid", + density: 1105, + stain: 0.5, +}, + +elements.SCP_055 = { + color: "#00000f", + excludeRandom: true, + behavior: [ + ["XX","XX","XX"], + ["XX","CH:REDACTED","XX"], + ["XX","XX","XX"] + ], + category: "scp", + state: "solid", + tempHigh: 55055055055, + stateHigh: ["metal_scrap","smoke","smoke","anomalous_essence"], +}, + +elements.REDACTED = { + hidden: true, + color: "#00000f", + excludeRandom: true, + behavior: [ + ["XX","xx","XX"], + ["XX","EX","XX"], + ["XX","XX","XX"] + ], + category: "scp", + state: "solid", +}, + +elements.plague_doctor = { + category: "scp", + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (isEmpty(pixel.x, pixel.y+1)) { + createPixel("doc_body", pixel.x, pixel.y+1); + pixel.element = "doc_head"; + } + else if (isEmpty(pixel.x, pixel.y-1)) { + createPixel("doc_head", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].color = pixel.color; + pixel.element = "doc_body"; + } + else { + deletePixel(pixel.x, pixel.y); + } + }, + related: ["doc_body","doc_head"], + cooldown: defaultCooldown +}, + +elements.doc_head = { + hidden: true, + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + breakInto: ["rotten_meat","bone","bone","blood","anomalous_essence"], + properties: { + dead: false + }, + tick: function(pixel) { + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into rotten_meat if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"rotten_meat"); + return + } + } + + // Find the body + if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "doc_body") { + var body = pixelMap[pixel.x][pixel.y+1]; + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else { var body = null } + + if (tryMove(pixel, pixel.x, pixel.y+1)) { + // create blood if severed 10% chance + if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) { + createPixel("blood", pixel.x, pixel.y+1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + }, + density: 1100, + state: "solid", + conduct: .05, + tempHigh: 350, + stateHigh: "rotten_meat", + burn: .01, + burnTime: 300, + burnInto: "rotten_meat", + reactions: { + "alcohol": { elem2 : null , chance:0.5 }, + }, +}, + +elements.doc_body = { + hidden: true, + color: ["#11111f","#242424"], + category: "scp", + breakInto: ["rotten_meat","rotten_meat","bone","blood","anomalous_essence"], + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall + if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down + var headpixel = pixelMap[pixel.x][pixel.y-2]; + if (headpixel.element == "doc_head") { + if (isEmpty(pixel.x, pixel.y-1)) { + movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1); + } + else { + swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]); + } + } + } + } + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into bone if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"bone"); + } + return + } + + // Find the head + if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "doc_head") { + var head = pixelMap[pixel.x][pixel.y-1]; + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else { var head = null } + if (pixel.burning) { + pixel.panic += 0.1; + if (head && pixelTicks-pixel.burnStart > 240) { + pixel.color = head.color; + } + } + else if (pixel.panic > 0) { + pixel.panic -= 0.1; + } + + if (isEmpty(pixel.x, pixel.y-1)) { + // create blood if decapitated 10% chance + if (Math.random() < 0.1 && !pixel.charge) { + createPixel("blood", pixel.x, pixel.y-1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + else if (head == null) { return } + else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance + var movesToTry = [ + [1*pixel.dir,0], + [1*pixel.dir,-1], + ]; + // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break. + while (movesToTry.length > 0) { + var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0]; + if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) { + var origx = pixel.x+move[0]; + var origy = pixel.y+move[1]; + if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) { + movePixel(head, head.x+move[0], head.y+move[1]); + break; + } + } + } + // 15% chance to change direction + if (Math.random() < 0.15) { + pixel.dir *= -1; + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + } + + }, + density: 1100, + state: "solid", + conduct: .005, + tempHigh: 350, + stateHigh: "rotten_meat", + burn: .01, + burnTime: 300, + burnInto: "rotten_meat", + forceSaveColor: true, + reactions: { + "head": { elem2 : "z_head" , chance:0.3}, + "body": { elem2 : "z_body" , chance:0.3}, + }, +}, + +elements.zombie = { + color: ["#75816B","#4D6B53"], + category: "scp", + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (isEmpty(pixel.x, pixel.y+1)) { + createPixel("z_body", pixel.x, pixel.y+1); + pixel.element = "z_head"; + } + else if (isEmpty(pixel.x, pixel.y-1)) { + createPixel("z_head", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].color = pixel.color; + pixel.element = "z_body"; + } + else { + deletePixel(pixel.x, pixel.y); + } + }, + related: ["z_body","z_head"], + cooldown: defaultCooldown +}, + +elements.z_head = { + hidden: true, + color: ["#75816B","#4D6B53"], + category: "scp", + breakInto: ["rotten_meat","bone","bone","blood","anomalous_essence"], + properties: { + dead: false + }, + tick: function(pixel) { + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into rotten_meat if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"rotten_meat"); + return + } + } + + // Find the body + if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "z_body") { + var body = pixelMap[pixel.x][pixel.y+1]; + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else { var body = null } + + if (tryMove(pixel, pixel.x, pixel.y+1)) { + // create blood if severed 10% chance + if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) { + createPixel("infection", pixel.x, pixel.y+1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + }, + density: 1030, + state: "solid", + conduct: .05, + tempHigh: 250, + stateHigh: "rotten_meat", + burn: .01, + burnTime: 200, + burnInto: "rotten_meat", + reactions: { + "head": { elem2 : "z_head" , chance:1.0 }, + "body": { elem2 : "z_body" , chance:1.0 }, + }, +}, + +elements.z_body = { + hidden: true, + color: ["#11111f","#069469","#047e99","#7f5fb0"], + category: "scp", + breakInto: ["rotten_meat","rotten_meat","bone","blood","anomalous_essence"], + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall + if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down + var headpixel = pixelMap[pixel.x][pixel.y-2]; + if (headpixel.element == "z_head") { + if (isEmpty(pixel.x, pixel.y-1)) { + movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1); + } + else { + swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]); + } + } + } + } + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into bone if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"rotten_meat"); + } + return + } + + // Find the head + if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "z_head") { + var head = pixelMap[pixel.x][pixel.y-1]; + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else { var head = null } + if (pixel.burning) { + pixel.panic += 0.1; + if (head && pixelTicks-pixel.burnStart > 240) { + pixel.color = head.color; + } + } + else if (pixel.panic > 0) { + pixel.panic -= 0.1; + } + + if (isEmpty(pixel.x, pixel.y-1)) { + // create blood if decapitated 10% chance + if (Math.random() < 0.1 && !pixel.charge) { + createPixel("infection", pixel.x, pixel.y-1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + else if (head == null) { return } + else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance + var movesToTry = [ + [1*pixel.dir,0], + [1*pixel.dir,-1], + ]; + // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break. + while (movesToTry.length > 0) { + var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0]; + if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) { + var origx = pixel.x+move[0]; + var origy = pixel.y+move[1]; + if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) { + movePixel(head, head.x+move[0], head.y+move[1]); + break; + } + } + } + // 15% chance to change direction + if (Math.random() < 0.15) { + pixel.dir *= -1; + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + } + + }, + density: 1035, + state: "solid", + conduct: .05, + tempHigh: 250, + stateHigh: "rotten_meat", + burn: .01, + burnTime: 300, + burnInto: "rotten_meat", + forceSaveColor: true, + reactions: { + "head": { elem2 : "z_head" , chance:1.0 }, + "body": { elem2 : "z_body" , chance:1.0 }, + }, +}, + +elements.shy_guy = { + category: "scp", + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (isEmpty(pixel.x, pixel.y+1)) { + createPixel("shy_body", pixel.x, pixel.y+1); + pixel.element = "shy_head"; + } + else if (isEmpty(pixel.x, pixel.y-1)) { + createPixel("shy_head", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].color = pixel.color; + pixel.element = "shy_body"; + pixel.color = pixelColorPick(pixel) + } + else { + deletePixel(pixel.x, pixel.y); + } + }, + related: ["shy_body","shy_head"], + cooldown: defaultCooldown +}, + +elements.shy_head = { + hidden: true, + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + properties: { + dead: false + }, + tick: function(pixel) { + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into rotten_meat if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"bone"); + return + } + } + + // Find the body + if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "shy_body") { + var body = pixelMap[pixel.x][pixel.y+1]; + if (body.dead) { // If body is dead, kill head + pixel.dead = body.dead; + } + } + else { var body = null } + + if (tryMove(pixel, pixel.x, pixel.y+1)) { + // create blood if severed 10% chance + if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) { + createPixel("blood", pixel.x, pixel.y+1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + }, + density: 1070, + state: "solid", + conduct: .05, + tempHigh: 3500, + stateHigh: "bone", + burn: .01, + burnTime: 3000, + burnInto: "bone", + reactions: { + "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, + "head": { elem2 : ["blood","blood","blood","bone",null] }, + "body": { elem2: ["blood","blood","meat","bone",null] }, + "rat": { elem2: ["infection","rotten_meat",null]}, + "frog": { elem2: ["slime",null] }, + "cell": { elem2: ["dna","water",null] }, + "cancer": { elem2: ["dna","dirty_water",null], }, + "blood": { elem2: null, chance:0.2 }, + "bone": { elem2: null, chance:0.2 }, + "meat": { elem2: [null,null,null,null,null,null,"rotten_meat"], chance:0.15 }, + "dna": { elem2: null, chance:0.2 }, + "water": { elem2: "dirty_water", chance:0.01 }, + "slime": { elem2: ["dirty_water",null], chance:0.2 }, + }, +}, + +elements.shy_body = { + hidden: true, + color: ["#f7ead0","#faf9f6","#e9e6db"], + category: "scp", + breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall + if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down + var headpixel = pixelMap[pixel.x][pixel.y-2]; + if (headpixel.element == "shy_head") { + if (isEmpty(pixel.x, pixel.y-1)) { + movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1); + } + else { + swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]); + } + } + } + } + doHeat(pixel); + doBurning(pixel); + doElectricity(pixel); + if (pixel.dead) { + // Turn into bone if pixelTicks-dead > 500 + if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { + changePixel(pixel,"bone"); + } + return + } + + // Find the head + if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "shy_head") { + var head = pixelMap[pixel.x][pixel.y-1]; + if (head.dead) { // If head is dead, kill body + pixel.dead = head.dead; + } + } + else { var head = null } + if (pixel.burning) { + pixel.panic += 0.1; + if (head && pixelTicks-pixel.burnStart > 240) { + pixel.color = head.color; + } + } + else if (pixel.panic > 0) { + pixel.panic -= 0.1; + } + + if (isEmpty(pixel.x, pixel.y-1)) { + // create blood if decapitated 10% chance + if (Math.random() < 0.1 && !pixel.charge) { + createPixel("blood", pixel.x, pixel.y-1); + // set dead to true 15% chance + if (Math.random() < 0.15) { + pixel.dead = pixelTicks; + } + } + } + else if (head == null) { return } + else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance + var movesToTry = [ + [1*pixel.dir,0], + [1*pixel.dir,-1], + ]; + // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break. + while (movesToTry.length > 0) { + var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0]; + if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) { + var origx = pixel.x+move[0]; + var origy = pixel.y+move[1]; + if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) { + movePixel(head, head.x+move[0], head.y+move[1]); + break; + } + } + } + // 15% chance to change direction + if (Math.random() < 0.15) { + pixel.dir *= -1; + } + // homeostasis + if (pixel.temp > 37) { pixel.temp -= 1; } + else if (pixel.temp < 37) { pixel.temp += 1; } + } + + }, + density: 1080, + state: "solid", + conduct: .005, + tempHigh: 3500, + stateHigh: "bone", + burn: .01, + burnTime: 3000, + burnInto: "bone", + forceSaveColor: true, + reactions: { + "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, + "head": { elem2 : ["blood","blood","blood","meat","bone",null] }, + "body": { elem2: ["blood","blood","meat","bone",null] }, + "rat": { elem2: ["infection","rotten_meat"]}, + "frog": { elem2: "slime" }, + "cell": { elem2: ["dna","water",null] }, + "cancer": { elem2: ["dna","dirty_water"] }, + "water": { elem2: "dirty_water", chance:0.01 }, + }, +}, + +elements.SCP_682 = { + color: ["#424242","#75816B","#4D6B53"], + behavior: [ + "M2%0.5|M2%0.3|M2%0.5", + "M1%10|XX|M1%10", + "XX|M1|XX", + ], + category: "scp", + density: 7500, + reactions: { + "head": { elem2 : ["bone","blood",null] , chance:10 }, + "body": { elem1 : "mad_682" , elem2 : ["meat","blood",null] , chance:10 }, + "z_head": { elem2 : ["bone","infection",null] , chance:10 }, + "z_body": { elem1 : "mad_682" , elem2 : ["rotten_meat","infection",null] , chance:10 }, + "homunculus": { elem2 : ["slime","blood",null] , chance:10 }, + "frog": { elem2 : ["slime","blood",null] , chance:10 }, + "bird": { elem2 : ["feather","blood",null] , chance:10 }, + "meat": { elem2 : null , chance:0.2 }, + "cooked_meat": { elem2 : null , chance:0.3 }, + "tickle_monster": { elem1 : "calm_682" , chance:0.1 }, + "acid": { elem1 : "calm_682" , chance:0.2 }, + "rotten_meat": { elem2 : null , chance:0.1 }, + "blood": { elem2 : null , chance:0.2 }, + "bone": { elem2 : ["blood",null,null] , chance:0.1 }, + "bone_marrow": { elem2 : ["blood",null] , chance:0.1 }, + "aluminum": { elem2 : "metal_scrap" , chance:0.07 }, + "steel": { elem2 : "metal_scrap" , chance:0.05 }, + "iron": { elem2 : "metal_scrap" , chance:0.08 }, + "glass": { elem2 : "glass_shard" , chance:0.1 }, + "wood": { elem2 : "sawdust" , chance:0.1 }, + "concrete": { elem2 : "dust" , chance:0.05 }, + "dust": { elem2 : null , chance:0.1 }, + }, + state: "solid", + hardness: 1, + conduct: .1, +}, + +elements.calm_682 = { + color: ["#424242","#75816B","#4D6B53"], + behavior: [ + "M2%0.5|M2%0.3|M2%0.5", + "M1%10|CH:mad_682%0.5|M1%10", + "XX|M1|XX", + ], + category: "scp", + density: 7350, + excludeRandom: true, + reactions: { + "meat": { elem2 : null , chance:0.2 }, + "bone": { elem2 : null , chance:0.1 }, + "blood": { elem2 : null , chance:0.1 }, + "cooked_meat": { elem2 : null , chance:0.3 }, + "acid": { elem1 : "calm_682" , chance:0.05 }, + "tickle_monster": { elem1 : "calm_682" , chance:99.9 }, + }, + hidden: true, + state: "solid", + hardness: 1, + conduct: .1, +}, + +elements.mad_682 = { + color: ["#424242","#75816B","#4D6B53"], + behavior: [ + "M2%0.5|M2%0.3|M2%0.5", + "M1%10 AND CH:concrete>dust AND DL:dust|CH:SCP_682%0.3|M1%10 AND CH:concrete>dust AND DL:dust", + "XX|M1|XX", + ], + category: "scp", + density: 8000, + excludeRandom: true, + reactions: { + "head": { elem2 : ["bone","blood",null] }, + "body": { elem2 : ["meat","blood",null] }, + "homunculus": { elem2 : ["slime","blood",null] }, + "frog": { elem2 : ["slime","blood",null] }, + "bird": { elem2 : ["feather","blood",null] }, + "meat": { elem2 : null , chance:0.5 }, + "cooked_meat": { elem2 : null , chance:0.5 }, + "rotten_meat": { elem2 : null , chance:0.2 }, + "blood": { elem2 : null , chance:0.5 }, + "bone": { elem2 : ["blood",null,null] , chance:0.2 }, + "bone_marrow": { elem2 : ["blood",null] , chance:0.2 }, + "aluminum": { elem2 : "metal_scrap" , chance:1.0 }, + "steel": { elem2 : "metal_scrap" , chance:0.2 }, + "iron": { elem2 : "metal_scrap" , chance:0.3 }, + "lead": { elem2 : ["metal_scrap","metal_scrap","radiation"] , chance:0.3 }, + "glass": { elem2 : "glass_shard" }, + "wood": { elem2 : "sawdust" }, + "concrete": { elem2 : "dust" , chance:0.1 }, + "dust": { elem2 : null , chance:0.1 }, + }, + hidden: true, + state: "solid", + hardness: 1, + conduct: .1, +}, + +// SCP-804 WIP template +/* +elements.SCP_804 = { + color:"#beigeish", + category: "scp", + excludeRandom: true, + state: "solid", +}, +*/ + +elements.tickle_monster = { + color: "#FFA500", + behavior: [ + "M2%0.5|M2%0.3 AND CR:fragrance%0.05|M2%0.5", + "M1%10|XX|M1%10", + "XX|M1|XX", + ], + category: "scp", + density: 550, + reactions: { + "sugar_water": { elem2 : "water" , chance:0.2 }, + "dirty_water": { elem2 : "water" , chance:0.2 }, + "candy": { elem2 : null }, + "sugar": { elem2 : null }, + "sauce": { elem2 : null }, + "salt": { elem2 : null , chance:0.2 }, + "cheese": { elem2 : null , chance:0.2 }, + "melted_cheese": { elem2 : null }, + "baked_potato": { elem2 : null , chance:0.2 }, + "mashed_potato": { elem2 : null , chance:0.2 }, + "bread": { elem2 : null , chance:0.2 }, + "toast": { elem2 : null , chance:0.2 }, + "jelly": { elem2 : null }, + "nut_butter": { elem2 : null }, + "grape": { elem2 : null , chance:0.2 }, + "ice_cream": { elem2 : null }, + "juice": { elem2 : null }, + "milk": { elem2 : null }, + "gingerbread": { elem2 : null , chance:0.2 }, + "crumb": { elem2 : null , chance:0.2 }, + "cream": { elem2 : null }, + "baked_batter": { elem2 : null }, + "frozen_yogurt": { elem2 : null }, + "yogurt": { elem2 : null }, + "popcorn": { elem2 : null , chance:0.2 }, + "chocolate": { elem2 : null }, + "chocolate_milk": { elem2 : null }, + "melted_chocolate": { elem2 : null }, + "caramel": { elem2 : null }, + "ash": { elem2 : null , chance:0.2 }, + "dust": { elem2 : null , chance:0.2 }, + "alchohol": { elem1 : "hyper_tickle_monster", elem2 : null }, + "pilk": { elem1 : "hyper_tickle_monster", elem2 : null }, + "coffee_bean": { elem1 : "hyper_tickle_monster", elem2 : null }, + "coffee_ground": { elem1 : "hyper_tickle_monster", elem2 : null }, + "soda": { elem1 : "hyper_tickle_monster", elem2 : null }, + "coffee": { elem1 : "hyper_tickle_monster", elem2 : null }, + "seltzer": { elem1 : "hyper_tickle_monster", elem2 : null }, + }, + state: "liquid", + conduct: .5, + temp: 20, + tempHigh: 350, + stateHigh: ["smoke","smoke","smoke","slime","anomalous_essence"], + burn: .1, + burnTime: 300, + burnInto: ["smoke","smoke","smoke","slime","anomalous_essence"], + stain: 0.03, +}, + +elements.hyper_tickle_monster = { + color: "#FFA500", + hidden: true, + behavior: [ + "XX|XX|XX", + "XX|CH:tickle_monster%1.0|XX", + "XX|XX|XX", + ], + tick: behaviors.BOUNCY, + category: "scp", + density: 575, + reactions: { + "sugar_water": { elem2 : "water" }, + "dirty_water": { elem2 : "water" }, + "candy": { elem2 : null }, + "sugar": { elem2 : null }, + "sauce": { elem2 : null }, + "salt": { elem2 : null }, + "cheese": { elem2 : null }, + "melted_cheese": { elem2 : null }, + "baked_potato": { elem2 : null }, + "mashed_potato": { elem2 : null }, + "bread": { elem2 : null }, + "toast": { elem2 : null }, + "jelly": { elem2 : null }, + "nut_butter": { elem2 : null }, + "grape": { elem2 : null }, + "ice_cream": { elem2 : null }, + "juice": { elem2 : null }, + "milk": { elem2 : null }, + "gingerbread": { elem2 : null }, + "crumb": { elem2 : null }, + "cream": { elem2 : null }, + "baked_batter": { elem2 : null }, + "frozen_yogurt": { elem2 : null }, + "yogurt": { elem2 : null }, + "popcorn": { elem2 : null }, + "chocolate": { elem2 : null }, + "chocolate_milk": { elem2 : null }, + "melted_chocolate": { elem2 : null }, + "alchohol": { elem2 : null }, + "pilk": { elem2 : null }, + "soda": { elem2 : null }, + "coffee": { elem2 : null }, + "seltzer": { elem2 : null }, + }, + state: "liquid", + conduct: .5, + temp: 20, + tempHigh: 350, + stateHigh: ["smoke","smoke","smoke","slime","anomalous_essence"], + burn: .1, + burnTime: 300, + burnInto: ["smoke","smoke","smoke","slime","anomalous_essence"], + stain: 0.08, +}; + +// SCPs with ID over 999 here \ No newline at end of file From 0f46d22a1ca3b83c9e2ef03155671c62c4e80fcd Mon Sep 17 00:00:00 2001 From: redbirdly <155550833+redbirdly@users.noreply.github.com> Date: Wed, 24 Apr 2024 11:36:08 +0800 Subject: [PATCH 02/15] Create lizard_mod.js mod about lizards --- mods/lizard_mod.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 mods/lizard_mod.js diff --git a/mods/lizard_mod.js b/mods/lizard_mod.js new file mode 100644 index 00000000..d8f30415 --- /dev/null +++ b/mods/lizard_mod.js @@ -0,0 +1,91 @@ +// lizard_mod.js by @RedBirdly + +function blendColors(color1, color2, ratio = 0.5) { + // Convert the colors to RGB + const rgb1 = parseColor(color1); + const rgb2 = parseColor(color2); + + // Calculate the blended color + const blendedColor = [ + Math.round(rgb1[0] * (1 - ratio) + rgb2[0] * ratio), // Red + Math.round(rgb1[1] * (1 - ratio) + rgb2[1] * ratio), // Green + Math.round(rgb1[2] * (1 - ratio) + rgb2[2] * ratio) // Blue + ]; + + // Convert the blended color back to a CSS color string + return `rgb(${blendedColor[0]}, ${blendedColor[1]}, ${blendedColor[2]})`; +} + + +function parseColor(color) { + // Create a temporary div to parse the color + const div = document.createElement('div'); + div.style.color = color; + document.body.appendChild(div); + + // Get the computed color + const computedColor = getComputedStyle(div).color; + + // Remove the temporary div + document.body.removeChild(div); + + // Parse the computed color into RGB values + const match = computedColor.match(/\d+/g); + return match.map(Number); +} + +// dark red, dark green, brown, dark gray, light gray, lime +let lizard_colors = ["#4d2f2a", "#356641", "#85754d", "#3c3c3c", "#A1A1A1", "#98fb98"]; + +// camouflage function for lizards +function camo(pixel) { + if (!paused) { + // set camouflage color to random color + if (Math.random() < 0.002) { + let n = Math.floor(Math.random() * lizard_colors.length); + pixel.color = lizard_colors[n]; + } + // set camouflage color to random color but make it slightly gray because camouflage isn't perfect + if (Math.random() < 0.1) { + for (let i = 0; i < currentPixels.length; i++) { + let x = currentPixels[i].x; + let y = currentPixels[i].y; + let dx = Math.abs(x - pixel.x); + let dy = Math.abs(y - pixel.y); + if (dx <= 1 && dy <= 1 && currentPixels[i].element != "lizard") { + pixel.color = blendColors(blendColors(currentPixels[i].color, "#887766", 0.4), pixel.color); + break; + } + } + } + } +} + +// define element +elements.lizard = { + color: lizard_colors, + behavior: [ + "ST%98|M1%6|ST%98", + "XX|XX|M2%20 AND BO", + "XX|M1%80|M2", + ], + tick: camo, + tempHigh: 100, + stateHigh: "ash", + tempLow: 0, + stateLow: "dead_bug", + breakInto: "dead_bug", + category: "life", + burn: 95, + burnTime: 25, + state: "solid", + density: 500, + conduct: 0.15, + reactions: { + "bird": { elem2: null, chance: 0.1, func: behaviors.FEEDPIXEL }, + "plant": { elem2: null, chance: 0.05, func: behaviors.FEEDPIXEL }, + "tomato": { elem2: null, chance: 0.05, func: behaviors.FEEDPIXEL }, + "fly": { elem2: null, chance: 0.15, func: behaviors.FEEDPIXEL }, + "ant": { elem2: null, chance: 0.1, func: behaviors.FEEDPIXEL }, + } +}; From 915a65d3b019e524f0cf67ba6e7c31b4ec423e6c Mon Sep 17 00:00:00 2001 From: ThatOtherProto <127895014+ThatOtherProto@users.noreply.github.com> Date: Wed, 24 Apr 2024 20:03:43 +0100 Subject: [PATCH 03/15] Update Science_mod.js Doing more tmrw --- mods/Science_mod.js | 60 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/mods/Science_mod.js b/mods/Science_mod.js index 47f8b3b4..6f2383c6 100644 --- a/mods/Science_mod.js +++ b/mods/Science_mod.js @@ -1,6 +1,6 @@ // Science mod for Sandboxels // (Inspired by survival.js) -// Build 17 +// Build 18 // By: Lucifer (@a_british_proto (Discord)) // If there is anything you want to suggest or there's a bug then just dm me on discord // Todo: @@ -1383,7 +1383,59 @@ substance.Silver_Sulfate = { hidden:true } -// I done this on my school computers :skull: -// doing more later +// I have finally gotten my motivation back! :D -// I accidentally pressed Ctrl+V instead of Ctrl+C so it deleted my work D: +substance.Silver_Selenide = { + behavior: behaviors.WALL, + color: "333333", + category: "lands", + state: "solid", + hidden:true +} + +// Why am listening to a random playlist? I swear I'm going fully insane + +substance.Silver_Selenate = { + behavior: behaviors.WALL, + color: "FFFFFF", + category: "lands", + state: "solid", + hidden:true +} + +substance.Silver_Telluride = { + behavior: behaviors.WALL, + color: "333333", + category: "lands", + state: "solid", + hidden:true +} + +substance.Silver_Arsenate = { + behavior: behaviors.WALL, + color: "E3E35F", + category: "lands", + state: "solid", + hidden:true +} + +substance.Silver_Phosphate = { + behavior: behaviors.WALL, + color: "FFFF00", + category: "lands", + state: "solid", + hidden:true +} + +// FINALLY WE ARE OUT OF THE SILVER COMPOUNDS!!!11!!1111! :DDDDD +// Now time to go onto the aluminum compounds + +substance.Aluminum_Arsenide = { + behavior: behaviors.WALL, + color: "FF6600", + category: "lands", // Might just change this after I'm done with the substances (as well as the other one(s)) + state: "solid", + hidden:true +} + +// Doing more tmrw I guess, I'm tired From 65966dd0b7865d9d21648363f1294de3636ea6e2 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:10:31 -0400 Subject: [PATCH 04/15] fix error; Update example_mod.js --- mods/example_mod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/example_mod.js b/mods/example_mod.js index ddf36999..7425dac0 100644 --- a/mods/example_mod.js +++ b/mods/example_mod.js @@ -68,7 +68,7 @@ runAfterLoad(function() { }); // Run if another mod is active -if (enabledMods.includes("test.js")) { +if (enabledMods.includes("mods/test.js")) { runAfterLoad(function() { // Your code here console.log("Hello World!"); From 121667add3673faa155cf5c612b9768ac3b47742 Mon Sep 17 00:00:00 2001 From: F3ZZ0 <168129449+F3ZZ0@users.noreply.github.com> Date: Thu, 25 Apr 2024 21:49:35 +0100 Subject: [PATCH 05/15] Add files via upload --- mods/morepowders.js | 209 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 mods/morepowders.js diff --git a/mods/morepowders.js b/mods/morepowders.js new file mode 100644 index 00000000..2925f699 --- /dev/null +++ b/mods/morepowders.js @@ -0,0 +1,209 @@ +elements.template = { + color: "#ffffff", + category: "more_powders", + state: "solid", + hidden: true, + behavior: behaviors.POWDER + } +elements.powder = { + color: ["#c17d17", "#f2a32e"], + behavior: behaviors.POWDER, + category: "more_powders", + state: "solid", + reactions: { + "glue": { elem1: "smoke", elem2: "sticky_powder" }, + "foam": { elem1: "foam_powder", elem2: "foam_powder" }, + "electric": { elem1: null, elem2: "electric_powder" }, + "dust": { elem1: null, elem2: "void_powder" }, + }, + stateHigh: "smoke", +tempHigh: 200, +tempLow: -200, +stateLow: "cold_powder", +stateHigh: "hot_powder", +} +elements.gas_powder = { + color: "#b98ffc", + behavior: behaviors.POWDER, + category: "more_powders", +state: "gas", +stateHigh: "smoke", +tempHigh: 2000, +reactions: { + "up_powder": { elem1: null, elem2: "up_gas_powder" }, +}, +tempLow: -200, +stateLow: "powder", +} +elements.up_powder = { + color: "#8ffcb9", + behavior: behaviors.AGPOWDER, + category: "more_powders", +state: "solid", +tempLow: -200, +stateLow: "powder", +}, +elements.up_gas_powder = { + color: ["#a2c5da", "#a0a7d8"], + behavior: behaviors.AGPOWDER, + category: "more_powders", +state: "gas", +stateHigh: "gas_powder", +tempHigh: 1000, +hidden: true, +tempLow: -200, +stateLow: "powder", +} +elements.slow_powder = { + color: "#c9445c", + behavior:[ + "XX|XX|XX", + "XX|XX|XX", + "M2%20|M1%20|M2%20", + ], + category: "more_powders", +state: "solid", +stateHigh: "smoke", +tempHigh: 2000, +reactions: { + "gas_powder": { elem1: null, elem2: "slow_gas_powder" }, + "up_powder": { elem1: null, elem2: "slow_up_powder" }, +}, +tempLow: -200, +stateLow: "powder", +} +elements.slow_gas_powder = { + color: "#c069aa", + behavior:[ + "XX|XX|XX", + "XX|XX|XX", + "M2%20|M1%20|M2%20", + ], + category: "more_powders", +state: "gas", +stateHigh: "gas_powder", +tempHigh: 1000, +hidden: true, +tempLow: -200, +stateLow: "powder", +} +elements.slow_up_powder = { + color:["#aba18a", "#a4aa8a"], + behavior:[ + "M2%20|M1%20|M2%20", + "XX|XX|XX", + "XX|XX|XX", + ], + category: "more_powders", +state: "solid", +stateHigh: "up_powder", +tempHigh: 1000, +hidden: true, +reactions: { + "slow_powder": { elem1: null, elem2: "slower_up_powder" }, +}, +tempLow: -200, +stateLow: "powder", +} +elements.slower_up_powder = { + color: ["#b5827b", "#b59e7b"], + behavior:[ + "M2%10|M1%10|M2%10", + "XX|XX|XX", + "XX|XX|XX", + ], + category: "more_powders", +state: "solid", +stateHigh: "up_powder", +tempHigh: 1000, +hidden: true, +tempLow: -200, +stateLow: "powder", +} +elements.sticky_powder = { + color: ["#badd96", "#96dd96"], + behavior:[ + "ST|ST|ST", + "ST|XX|ST", + "ST AND M2|ST AND M1|ST AND M2", + ], + category: "more_powders", + state: "solid", + hidden: true, + tempLow: -200, + stateLow: "powder", + } + elements.foam_powder = { + color: ["#e0be8b", "#ffffff"], + behavior: behaviors.FOAM, + category: "more_powders", + state: "gas", + tempLow: -200, + stateLow: "frozen_foam_powder", + hidden: true + } + elements.frozen_foam_powder = { + color: ["#c0eded", "#a7cfba"], + behavior: behaviors.POWDER, + category: "more_powders", + state: "gas", + tempHigh: 1000, + stateHigh: "foam_powder", + hidden: true + } + elements.electric_powder = { + color: ["#eae463", "#f9fc45"], + behavior: [ + "SH|SH|SH", + "SH|XX|SH", + "SH AND M2|SH AND M1|SH AND M2", + ], + category: "more_powders", + state: "solid", + reactions: { + }, + stateHigh: "smoke", + tempHigh: 500, + tempLow: -1000, + stateLow: "powder", + hidden: true + } + elements.hot_powder = { + color: ["#8a3b87", "#d43a3a", "#d43a3a"], + behavior:[ + "HT|HT|HT", + "HT|XX|HT", + "HT AND M2|HT AND M1|HT AND M2", + ], + category: "more_powders", + state: "solid", + tempLow: -200, + stateLow: "cold_powder", + temp: 200, + hidden: true + } + elements.cold_powder = { + color: ["#8a3b87", "#3f3cd4", "#3f3cd4"], + behavior:[ + "CO|CO|CO", + "CO|XX|CO", + "CO AND M2|CO AND M1|CO AND M2", + ], + category: "more_powders", + state: "solid", + tempHigh: 400, + stateHigh: "hot_powder", + temp: -200, + hidden: true + } + elements.void_powder = { + color: "#303031", + category: "more_powders", + state: "solid", + hidden: true, + behavior: [ + "DL|DL|DL", + "DL|XX|DL", + "DL AND M2|DL AND M1|DL AND M2", + ] + } \ No newline at end of file From 3242e064af09da701da1f71863f464c5bde21c52 Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:05:13 +0800 Subject: [PATCH 06/15] food mod compilation --- mods/food_mods.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 mods/food_mods.js diff --git a/mods/food_mods.js b/mods/food_mods.js new file mode 100644 index 00000000..bb088d75 --- /dev/null +++ b/mods/food_mods.js @@ -0,0 +1,15 @@ +var mods_to_include = ["mods/sbstuff.js","mods/ketchup_mod.js","mods/morefoodsmod.js","mods/weAllScreamFor.js","mods/soups.js","mods/pizzasstuff.js","mods/community_desserts.js","mods/plants.js","mods/aChefsDream.js"] + +var mods_included = mods_to_include.map(mod => enabledMods.includes(mod)); +var all_mods_included = mods_included.reduce(function(a,b) { return a && b }); + +if(!all_mods_included) { + var mods_needed = mods_to_include.filter(function(modPath) { return !(enabledMods.includes(modPath)) }); + + mods_needed.forEach(function(modPath) { + enabledMods.splice(enabledMods.indexOf("mods/food_mods"),0,modPath); + }); + localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); + alert(`The following mods have been inserted: ${mods_needed.join(", ")} +Reload the page for the mods to take effect. Happy cooking!`) +} From e21f2451fb13f492c10a537bced96d7348b9515a Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:08:04 +0800 Subject: [PATCH 07/15] Update mod-list.html --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index f07335c9..52bd7060 100644 --- a/mod-list.html +++ b/mod-list.html @@ -310,6 +310,7 @@
Try our NEW GAME: Infinite Chef
Email us at contact@R74n.com for advertising, help, or education!