diff --git a/mods/scp.js b/mods/scp.js index 4792e6f4..db998d13 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -1,35 +1,36 @@ window.addEventListener("load", () => { document.getElementById("elementButton-mask_head")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-mask_body")?.remove() }) - +window.addEventListener("load", () => { + document.getElementById("elementButton-infected_skin")?.remove() +}) +window.addEventListener("load", () => { + document.getElementById("elementButton-infected_meat")?.remove() +}) +window.addEventListener("load", () => { + document.getElementById("elementButton-frozen_infected_meat")?.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() }) @@ -57,17 +58,20 @@ elements.SCP_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.5 }, "body": { elem1:null, elem2:"z_body" , chance:0.5 }, + "meat": { elem1:null, elem2:"infected_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"infected_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.3 }, "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 }, + "chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, }, - tempHigh: 1000, - stateHigh: [null,null,null,null,"anomalous_essence"], + tempHigh: 750, + stateHigh: [null,null,null,null,null,null,null,null,"anomalous_essence"], tempLow: -100, stateLow: "frozen_008", category: "scp", @@ -85,9 +89,12 @@ elements.frozen_008 = { 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 }, + "meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, + "chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, }, temp: -50, tempHigh: 0, @@ -96,6 +103,122 @@ elements.frozen_008 = { state: "solid", density: 95, }, + +elements.infected_skin = { + color: ["#11111f","#75816B","#4D6B53"], + singleColor: true, + behavior: [ + "XX|CR:stench,stench,stench,SCP_008,fly%0.15 AND CH:skin,meat>infected_skin,infected_meat%1|XX", + "CH:skin,meat>infected_skin,infected_meat%1|XX|CH:skin,meat>infected_skin,infected_meat%1", + "XX|CH:skin,meat>infected_skin,infected_meat%1|XX", + ], + tick: function(pixel) { + if (pixel.temp > 40 && Math.random() < 0.003) { + 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)) { + pixel.temp -= 20; + createPixel("infection",x,y) + break; + } + } + } + if (pixel.temp < 36 && Math.random() < 0.1) { + pixel.temp += 1; + } + doDefaults(pixel); + }, + reactions: { + "cell": { chance:0.01, func:function(pixel1,pixel2){ + changePixel(pixel2,"infected_skin"); + pixel2.color = pixelColorPick(pixel2,RGBToHex(pixel1.color.match(/\d+/g))) + if (pixel1.origColor) { pixel2.origColor = pixel1.origColor } + } }, + "acid": { elem1:"infection" }, + "soap": { elem1:null, elem2:null, chance:0.005 }, + "light": { stain1:"#825043" }, + "poison": { stain1:"#cc564b" }, + "poison_gas": { stain1:"#cc564b" }, + "infection": { stain1:"#cc564b" }, + "pollen": { stain1:"#cc564b" }, + "dust": { stain1:"#cc564b" }, + "flea": { stain1:"#cc564b" }, + "mushroom_spore": { stain1:"#cc564b" }, + "mushroom_stalk": { stain1:"#cc564b" }, + "chlorine": { stain1:"#cc564b" }, + "quicklime": { stain1:"#cc564b" }, + }, + category:"solids", + breakInto: [null,null,"SCP_008","infection","dust"], + temp: 37, + tempHigh: 200, + stateHigh: ["cooked_meat","cooked_meat","cooked_meat","SCP_008"], + tempLow: -18, + stateLow: "frozen_008_meat", + burn:5, + burnTime:400, + burnInto: ["cooked_meat","cooked_meat","SCP_008"], + state: "solid", + density: 1010, + conduct: 0.04, + movable: false, +}, + +elements.infected_meat = { + color: ["#b8b165","#b89765"], + behavior: [ + "XX|CR:stench,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>infected_meat%1|XX", + "SP%99 AND CH:rotten_meat,meat>infected_meat%1|XX|SP%99 AND CH:rotten_meat,meat>infected_meat%1", + "XX|M1 AND CH:rotten_meat,meat>infected_meat%1|XX", + ], + reactions: { + "water": { elem2:"dirty_water" }, + "salt_water": { elem2:"dirty_water" }, + "sugar_water": { elem2:"dirty_water" }, + "dirty_water": { elem2:"broth", tempMin:70, color2:"#d7db69" }, + "seltzer": { elem2:"dirty_water" }, + "fly": { elem1: [null,null,"SCP_008"] , elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + }, + tempHigh: 300, + stateHigh: ["SCP_008","ash","ammonia"], + tempLow: -20, + stateLow: "frozen_infected_meat", + category:"scp", + hidden: true, + burn:12, + burnTime:200, + burnInto:["SCP_008","ash","ammonia"], + state: "solid", + density: 1005, + conduct: 0.1, + isFood: true +}, + +elements.frozen_infected_meat = { + color: "#242424", + behavior: [ + "XX|CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX", + "SP%99 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX|SP%99 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1", + "XX|M1 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX", + ], + reactions: { + "water": { elem2:"dirty_water" }, + "salt_water": { elem1:"infected_meat",elem2:"dirty_water" , chance:0.5 }, + "sugar_water": { elem2:"dirty_water" }, + "seltzer": { elem2:"dirty_water" }, + "fly": { elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + }, + temp: -20, + tempHigh: 10, + stateHigh: "infected_meat", + category:"scp", + hidden: true, + state: "solid", + density: 1005, + conduct: 0.05, +}, elements.possessive_mask = { color: ["#f7ead0","#faf9f6","#e9e6db"], @@ -376,7 +499,7 @@ elements.black_acid = { tempLow: -58.88, burn: 30, burnTime: 10, - burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","ash","ash","anomalous_essence"], + burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","ash","ash","fire","fire","fire","fire","ash","ash","anomalous_essence"], fireColor: "#111111", state: "liquid", density: 1105, @@ -394,7 +517,7 @@ elements.SCP_055 = { category: "scp", state: "solid", tempHigh: 55055055055, - stateHigh: ["metal_scrap","smoke","smoke","anomalous_essence"], + stateHigh: ["metal_scrap","metal_scrap","smoke","smoke","smoke","smoke","smoke","smoke","smoke",null,"anomalous_essence"], }, elements.REDACTED = { @@ -408,6 +531,7 @@ elements.REDACTED = { ], category: "scp", state: "solid", + movable: false, }, elements.plague_doctor = { @@ -820,7 +944,7 @@ elements.shy_head = { hidden: true, color: ["#f7ead0","#faf9f6","#e9e6db"], category: "scp", - breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + breakInto: ["bone","bone","blood","bone","bone","blood","bone","bone","blood","bone","bone","blood","anomalous_essence"], properties: { dead: false }, @@ -854,7 +978,7 @@ elements.shy_head = { pixel.dead = pixelTicks; } } - } + } // homeostasis if (pixel.temp > 37) { pixel.temp -= 1; } else if (pixel.temp < 37) { pixel.temp += 1; } @@ -875,7 +999,6 @@ elements.shy_head = { "z_body": { elem2: ["infection","infection","rotten_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 }, @@ -890,7 +1013,7 @@ elements.shy_body = { hidden: true, color: ["#f7ead0","#faf9f6","#e9e6db"], category: "scp", - breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + breakInto: ["bone","bone","blood","bone","bone","blood","bone","bone","blood","bone","bone","blood","anomalous_essence"], properties: { dead: false, dir: 1, @@ -1004,7 +1127,7 @@ elements.SCP_682 = { color: ["#424242","#75816B","#4D6B53"], behavior: [ "M2%0.5|M2%0.3|M2%0.5", - "M1%10|XX|M1%10", + "M2%10|XX|M2%10", "XX|M1|XX", ], category: "scp", @@ -1067,7 +1190,7 @@ 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", + "M2%10|CH:SCP_682%0.3|M2%10", "XX|M1|XX", ], category: "scp", @@ -1093,8 +1216,8 @@ elements.mad_682 = { "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 }, + "concrete": { elem2 : "dust" , chance:10 }, + "dust": { elem2 : null , chance:10 }, }, hidden: true, state: "solid",