Merge branch 'main' of https://github.com/JustAGenericUsername/sandboxelsmodding
This commit is contained in:
commit
883f99fe94
|
|
@ -379,6 +379,7 @@
|
|||
<tr><td>invisible_wall.js</td><td>Element like Wall that takes the color of the background</td><td>Alice</td></tr>
|
||||
<tr><td>lightmap.js</td><td>Light sources glow</td><td>RedBirdly</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Liquids can mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>manyMoreThemes.js</td><td>Adds additional themes</td><td>Jayd</td></tr>
|
||||
<tr><td>moreViews.js</td><td>Many new rendering modes</td><td>ggod</td></tr>
|
||||
<tr><td>nicer_flame.js</td><td>Fire is visually pleasing</td><td>RedBirdly</td></tr>
|
||||
<tr><td>occlusion.js</td><td>Realistic shadows, similar to Terraria's lighting</td><td>RedBirdly</td></tr>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,133 @@
|
|||
// mod moment
|
||||
// also made by 3pm
|
||||
|
||||
// starting the initiation
|
||||
version = "0.0.1"
|
||||
subversion = "0.0.12"
|
||||
versionname = "Gullible On The Ceilling"
|
||||
|
||||
console.log("3pms_mod.js " + version + " \"" + versionname + "\"")
|
||||
console.log("3pms_mod.js | Initiating...")
|
||||
|
||||
// bypassing the tps limit
|
||||
// nvm this is useless
|
||||
// whatever im keeping it
|
||||
|
||||
setTimeout(() => {
|
||||
const tpsbutton = document.getElementById("tpsButton");
|
||||
tpsbutton.onclick = () => {
|
||||
var tpsprompt = prompt(
|
||||
"Enter the new simulation Ticks Per Second (TPS). This is how many updates per second the simulation will run.\n\n" +
|
||||
"The default is 30.\n\nThe current TPS is " + tps + ".\n\nNOTE: 3pms_mod.js removes the TPS limit.\n" +
|
||||
"Any TPS higher than 1000 isn\'t recommended.\n\n"
|
||||
);
|
||||
|
||||
var newtps = parseInt(tpsprompt);
|
||||
if (tpsprompt !== null) {
|
||||
if (isNaN(newtps) || newtps == "") {
|
||||
alert("You did not enter a valid TPS.");
|
||||
} else {
|
||||
tps = parseInt(newtps);
|
||||
if (isNaN(tps) || tps <= 0) {
|
||||
alert("You did not enter a valid TPS.");
|
||||
tps = 30;
|
||||
}
|
||||
}
|
||||
resetInterval(tps);
|
||||
}
|
||||
focusGame();
|
||||
};
|
||||
}, 1000);
|
||||
|
||||
// more settings
|
||||
|
||||
function showMoreSettings() {
|
||||
showingMenu="moresettings"
|
||||
console.log("3pms_mod.js | Opening More Settings....")
|
||||
var moresettingsParent = document.getElementById("moresettingsParent");
|
||||
moresettingsParent.style.display = "block";
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
const gamediv = document.getElementById("gameDiv")
|
||||
gamediv.insertAdjacentHTML("beforeend", `
|
||||
<div id="moresettingsParent" style="display: none" class="menuParent">
|
||||
<div id="moresettingsMenu">
|
||||
<button class="XButton" onclick="closeMenu();showSettings();">-</button>
|
||||
<span class="menuTitle">More Settings</span>
|
||||
<div class="menuText" style="padding-top:1em">
|
||||
<p>Nothing to see here ;3</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>`);
|
||||
const menuText = document.getElementsByClassName("menuText")[6]
|
||||
const newButton = document.createElement("button")
|
||||
newButton.innerText = "More Settings"
|
||||
newButton.className = "settingsButton"
|
||||
newButton.onclick = () => {
|
||||
closeMenu();
|
||||
showMoreSettings()
|
||||
}
|
||||
menuText.appendChild(newButton)
|
||||
}, 1000);
|
||||
|
||||
// elements
|
||||
|
||||
elements.calcium_oxide = { // most of this is taken off calcium
|
||||
color: ["#544E45","#6A635E","#6E6A61","#756F62","#918A7B"],
|
||||
tick: function(pixel) {
|
||||
behaviors.POWDER(pixel);
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var x = pixel.x+adjacentCoords[i][0];
|
||||
var y = pixel.y+adjacentCoords[i][1];} },
|
||||
tempHigh: 842,
|
||||
reactions: {
|
||||
water: {elem1:"calcium_oxide", elem2:"steam"},
|
||||
salt_water: {elem1:"calcium_oxide", elem2:"steam"},
|
||||
sugar_water: {elem1:"calcium_oxide", elem2:"steam"},
|
||||
dirty_water: {elem1:"calcium_oxide", elem2:"steam"}
|
||||
},
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 1550,
|
||||
conduct: 0.40,
|
||||
hardness: 0.2,
|
||||
fireColor: "#ff6b21"
|
||||
}
|
||||
|
||||
elements.eeraser = { // finally integrating it after over a year
|
||||
color: "#FFFF00",
|
||||
behavior: behaviors.WALL,
|
||||
behaviorON: [
|
||||
"DL|DL|DL",
|
||||
"DL|DL|DL",
|
||||
"DL|DL|DL",
|
||||
],
|
||||
category: "machines",
|
||||
insulate: elements.wire.insulate,
|
||||
conduct: elements.wire.conduct,
|
||||
noMix: elements.wire.noMix
|
||||
};
|
||||
|
||||
// stopping the initiation
|
||||
|
||||
setTimeout(() => {
|
||||
console.log("3pms_mod.js | Initiated. Thank you.")
|
||||
}, 1000);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const thing=document.createElement("p");thing.innerText="MY NAME 📛 IS DAVID 👨🎤 DAD 👨👩👧👦👨👩👧👧 I ℹ️ WANT SOME ICE 🧊🇦🇶 CREAM 🧴🧴 DAVID 👨🎤 THAT IS MY NAME 📛 DAVID 👨🎤👨🎤 I ℹ️ WANT ANOTHER WHERE ❔❓ IS MY BALL 🏈🏈 I’M RUNNING 🏃♂️🏃♀️ OUT ON 🔛 THE ROAD 🚧 THERE IS A 🅰️ CAR 🚔🚖 AND IT IS GOING TO HIT 👊 ME 🖐🙋♀️ HEEEEEEEEELP HELP 💁 MEEEEEEE HEEEEEEEEEEEEEEEEELP\n\nthanks for using 3pms_mod.js :3";document.body.appendChild(thing)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
elements.candy.colorPattern = [
|
||||
"WWRRRWWRRR",
|
||||
"WWRRWWWRRW",
|
||||
"WRRRWWRRRW",
|
||||
"WRRWWWRRWW",
|
||||
"RRRWWRRRWW",
|
||||
"RRWWWRRWWW",
|
||||
"RRWWRRRWWR",
|
||||
"RWWWRRWWWR",
|
||||
"RWWRRRWWRR",
|
||||
"WWWRRWWWRR",
|
||||
]
|
||||
elements.candy.colorKey = {"R":"#c92626", "W":"#e3e3e3"}
|
||||
elements.candy.color = ["#c92626","#e3e3e3","#c92626","#e3e3e3","#c92626"]
|
||||
elements.candy.breakIntoColor = ["#c92626","#e3e3e3"]
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
elements.candy.colorPattern = [
|
||||
"W","W","W","W","W",
|
||||
"O","O","O","O","O",
|
||||
"Y","Y","Y","Y","Y",
|
||||
]
|
||||
elements.candy.colorKey = {"W":"#ffffff", "Y":"#ffcd55", "O":"#ff9933"}
|
||||
elements.candy.color = ["#ffffff","#ffffff","#ff9933","#ff9933","#ffcd55","#ffcd55"]
|
||||
elements.candy.breakIntoColor = ["#ffffff","#ffcd55","#ff9933"]
|
||||
|
|
@ -0,0 +1 @@
|
|||
elements.egg.color = elements.bead.color
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
if (!enabledMods.includes("mods/betterSettings.js")) { enabledMods.unshift("mods/betterSettings.js"); localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); window.location.reload(); };
|
||||
let setting = null
|
||||
|
||||
dependOn("betterSettings.js", () => {
|
||||
const tabMMT = new SettingsTab("Many More Themes");
|
||||
setting = new SelectSetting("Themes", "Themes", [[0, "disabled"],[1, "Stardust"], [2, "Aqautic(coming soon!)"], [3, "Supernova(coming soon!)"], [4, "Sunrise(coming soon!)"]]);
|
||||
|
||||
tabMMT.registerSetting(setting);
|
||||
settingsManager.registerTab(tabMMT);
|
||||
|
||||
|
||||
|
||||
if (setting.value == 1){
|
||||
const link = document.createElement("link");
|
||||
link.rel = "stylesheet";
|
||||
link.type = "text/css";
|
||||
link.href = "https://jayd-rubies.github.io/assets/css/stardust.css";
|
||||
document.head.appendChild(link);
|
||||
document.body.style.backgroundImage = 'url("https://jayd-rubies.github.io/assets/image/2025_05_16_0x5_Kleki.png")';
|
||||
document.body.style.backgroundSize = 'cover';
|
||||
window.addEventListener("load",function(){;
|
||||
document.querySelectorAll(".categoryButton").forEach(e => {
|
||||
e.style.backgroundColor = "#5c008440";
|
||||
e.style.borderColor = "#5c0084";
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
}, true,);
|
||||
|
||||
settings.bg = "transparernt";
|
||||
// setting.onUpdate((setting) => {
|
||||
// if (setting == 1) {
|
||||
// function drawCursor() {
|
||||
// var layerCtx = canvasLayers.gui.getContext('2d');
|
||||
// var mouseOffset = Math.trunc(mouseSize/2);
|
||||
// var topLeft = [mousePos.x-mouseOffset,mousePos.y-mouseOffset];
|
||||
// var bottomRight = [mousePos.x+mouseOffset,mousePos.y+mouseOffset];
|
||||
// // Draw a square around the mouse
|
||||
// layerCtx.strokeStyle = "#5c0084";
|
||||
// layerCtx.fillStyle = "#5c008440";
|
||||
// layerCtx.strokeRect(topLeft[0]*pixelSize,topLeft[1]*pixelSize,(bottomRight[0]-topLeft[0]+1)*pixelSize,(bottomRight[1]-topLeft[1]+1)*pixelSize);
|
||||
// layerCtx.beginPath();
|
||||
// layerCtx.lineWidth = 3;
|
||||
// layerCtx.stroke();
|
||||
// layerCtx.fillRect(topLeft[0]*pixelSize,topLeft[1]*pixelSize,(bottomRight[0]-topLeft[0]+1)*pixelSize,(bottomRight[1]-topLeft[1]+1)*pixelSize);
|
||||
// layerCtx.fill();
|
||||
// // draw one transparent pixel in the center
|
||||
// if (settings.precision) {
|
||||
// layerCtx.fillStyle = "#5c008480";
|
||||
// layerCtx.fillRect(mousePos.x*pixelSize,mousePos.y*pixelSize,pixelSize,pixelSize);
|
||||
// }
|
||||
// if (shaping) {
|
||||
// if (shaping === 1) { // Draw a white line from shapeStart.x to shapeStart.y
|
||||
// layerCtx.beginPath();
|
||||
// layerCtx.strokeStyle = "#5c0084";
|
||||
// layerCtx.lineWidth = 3;
|
||||
// layerCtx.moveTo(shapeStart.x*pixelSize+pixelSizeHalf, shapeStart.y*pixelSize+pixelSizeHalf);
|
||||
// layerCtx.lineTo(mousePos.x*pixelSize+pixelSizeHalf, mousePos.y*pixelSize+pixelSizeHalf);
|
||||
// layerCtx.stroke()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// drawCursor()
|
||||
// }
|
||||
// }) ¯\_(ツ)_/¯
|
||||
// i'll figure it out later
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
// Oxide.theme.js
|
||||
|
||||
runAfterReset(function applyTheme() {
|
||||
// Only run once
|
||||
const index = runAfterResetList.findIndex(fn => fn.name === "applyTheme");
|
||||
if (index !== -1) runAfterResetList.splice(index, 1);
|
||||
|
||||
const css = `
|
||||
:root {
|
||||
--theme: #66AC92;
|
||||
--theme-dark: #015C53;
|
||||
--theme-darker: #015C53;
|
||||
--theme-darker-opac85: #015C5377;
|
||||
--theme-darkest: #0B1E1A;
|
||||
--theme-darkest2: #0B1E1A;
|
||||
--theme-opac85: #66AC9279;
|
||||
--theme-opac75: #66AC92BF;
|
||||
--theme-opac50: #00000080;
|
||||
--theme-opac25: #66AC9240;
|
||||
--theme-opac10: #66AC921A;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--theme);
|
||||
text-decoration: underline;
|
||||
}
|
||||
`;
|
||||
|
||||
let styleTag = document.getElementById("themeStyle");
|
||||
if (!styleTag) {
|
||||
styleTag = document.createElement("style");
|
||||
styleTag.id = "themeStyle";
|
||||
document.body.appendChild(styleTag);
|
||||
}
|
||||
|
||||
styleTag.textContent = css;
|
||||
|
||||
document
|
||||
.getElementById('extraInfo')
|
||||
.querySelectorAll('*')
|
||||
.forEach(el => {el.style.color = '#66AC92'; el.style.backgrounda = 'none';});
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,729 @@
|
|||
elements.sand = {
|
||||
color: "#e6d577",
|
||||
behavior: behaviors.POWDER,
|
||||
reactions: {
|
||||
"water":{elem1:"wet_sand",elem2:null},
|
||||
"salt_water":{elem1:"wet_sand",elem2:"foam"},
|
||||
"sugar_water":{elem1:"wet_sand",elem2:null},
|
||||
"seltzer":{elem1:"wet_sand",elem2:null},
|
||||
"dirty_water":{elem1:"wet_sand",elem2:null},
|
||||
"pool_water":{elem1:"wet_sand",elem2:null},
|
||||
"slush":{elem1:"wet_sand",elem2:null},
|
||||
"soda":{elem1:"wet_sand",elem2:null},
|
||||
"juice":{elem1:"wet_sand",elem2:null},
|
||||
"milk":{elem1:"wet_sand",elem2:null},
|
||||
"chocolate_milk":{elem1:"wet_sand",elem2:null},
|
||||
"fruit_milk":{elem1:"wet_sand",elem2:null},
|
||||
"pilk":{elem1:"wet_sand",elem2:null},
|
||||
"eggnog":{elem1:"wet_sand",elem2:null},
|
||||
"nut_milk":{elem1:"wet_sand",elem2:null},
|
||||
"cream":{elem1:"wet_sand",elem2:null},
|
||||
"vinegar":{elem1:"wet_sand",elem2:null},
|
||||
"blood":{elem1:"wet_sand",elem2:null},
|
||||
"vaccine":{elem1:"wet_sand",elem2:null},
|
||||
"antibody":{elem1:"wet_sand",elem2:null},
|
||||
"infection":{elem1:"wet_sand",elem2:null},
|
||||
"poison":{elem1:"wet_sand",elem2:null},
|
||||
"antidote":{elem1:"wet_sand",elem2:null},
|
||||
"tornado":{elem1:"sandstorm", oneway:true},
|
||||
"charcoal":{elem1:"filter_powder", elem2: null}
|
||||
},
|
||||
tempHigh: 1700,
|
||||
stateHigh: "molten_glass",
|
||||
category: "land",
|
||||
state: "solid",
|
||||
density: 1602
|
||||
}
|
||||
|
||||
elements.water = {
|
||||
color: "#2167ff",
|
||||
behavior: behaviors.LIQUID,
|
||||
tempHigh: 100,
|
||||
stateHigh: "steam",
|
||||
tempLow: 0,
|
||||
stateLow: "ice",
|
||||
category: "liquids",
|
||||
heatCapacity: 4.184,
|
||||
reactions: {
|
||||
"salt": { elem1: "salt_water", elem2: null, temp1:-20 },
|
||||
"sugar": { elem1: "sugar_water", elem2: null },
|
||||
"honey": { elem1: "sugar_water" },
|
||||
"caramel": { elem1: "sugar_water", elem2: null },
|
||||
"molasses": { elem1: "sugar_water", chance:0.05 },
|
||||
"candy": { elem1: "sugar_water", elem2:"foam", chance:0.005 },
|
||||
"dust": { elem1: "dirty_water", elem2: null },
|
||||
"ash": { elem1: "dirty_water", elem2: null },
|
||||
"cyanide": { elem1: "dirty_water", elem2: null },
|
||||
"cyanide_gas": { elem1: "dirty_water", elem2: null },
|
||||
"carbon_dioxide": { elem1: "seltzer", elem2: null, oneway:true },
|
||||
"sulfur": { elem1: "dirty_water", elem2: null },
|
||||
"rat": { elem1: "dirty_water", chance:0.005 },
|
||||
"infection": { elem1: "dirty_water", elem2: null },
|
||||
"plague": { elem1: "dirty_water", elem2: null },
|
||||
"rust": { elem1: "dirty_water", chance:0.005 },
|
||||
"lead": { elem1: "dirty_water", chance:0.005 },
|
||||
"solder": { elem1: "dirty_water", chance:0.005 },
|
||||
"fallout": { elem1: "dirty_water", chance:0.25 },
|
||||
"radiation": { elem1: "dirty_water", chance:0.25 },
|
||||
"uranium": { elem1: "dirty_water", chance:0.25 },
|
||||
"rad_steam": { elem1: "dirty_water", chance:0.02 },
|
||||
"rad_glass": { elem1: "dirty_water", chance:0.005 },
|
||||
"rad_shard": { elem1: "dirty_water", chance:0.01 },
|
||||
"rotten_meat": { elem1: "dirty_water", chance:0.25 },
|
||||
"rotten_cheese": { elem1: "dirty_water", chance:0.25 },
|
||||
"cancer": { elem1: "dirty_water", chance:0.25 },
|
||||
"oil": { elem1: "dirty_water", chance:0.005 },
|
||||
"dioxin": { elem1: "dirty_water", chance:0.1 },
|
||||
"neutron": { elem1: ["dirty_water","dirty_water","dirty_water","rad_steam"], elem2:null, chance:0.1 },
|
||||
"rock": { elem2: "wet_sand", chance: 0.00035 },
|
||||
"limestone": { elem2: "wet_sand", chance: 0.00035 },
|
||||
"tuff": { elem2: "wet_sand", color2:"#7a6b5c", chance: 0.00035 },
|
||||
"ruins": { elem2: "rock", chance: 0.00035 },
|
||||
"mudstone": { elem2: "mud", chance: 0.00035 },
|
||||
"methane": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
|
||||
"ammonia": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
|
||||
"fly": { elem2:"dead_bug", chance:0.1, oneway:true },
|
||||
"firefly": { elem2:"dead_bug", chance:0.1, oneway:true },
|
||||
"bee": { elem2:"dead_bug", chance:0.05, oneway:true },
|
||||
"stink_bug": { elem2:"dead_bug", chance:0.1, oneway:true },
|
||||
"cured_meat": { elem1:"salt_water", elem2:"meat" },
|
||||
"water": { elem2:"bubble", attr2:{"clone":"water"}, chance:0.001, tempMin:85 },
|
||||
// electrolysis:
|
||||
"aluminum": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0025 },
|
||||
"zinc": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.015 },
|
||||
"steel": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
|
||||
"iron": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
|
||||
"tin": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.01 },
|
||||
"brass": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
|
||||
"bronze": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
|
||||
"copper": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"silver": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"gold": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"glycol":{elem1:"coolant",elem2:"coolant"},
|
||||
"filter_powder":{elem1:"filtered_water",elem2: null}
|
||||
},
|
||||
state: "liquid",
|
||||
density: 997,
|
||||
conduct: 0.02,
|
||||
stain: -0.5,
|
||||
extinguish: true
|
||||
}
|
||||
|
||||
elements.glycol = {
|
||||
color: "#ededed",
|
||||
behavior: behaviors.LIQUID,
|
||||
tempHigh: 121,
|
||||
stateHigh: "acid",
|
||||
tempLow: -12,
|
||||
stateLow: "glycol_ice",
|
||||
category: "saturns",
|
||||
state: "liquid",
|
||||
density: 1115,
|
||||
alias: "ethylene glycol"
|
||||
}
|
||||
|
||||
elements.glycol_ice = {
|
||||
color: "#dedede",
|
||||
behavior: behaviors.WALL,
|
||||
tempHigh: -11,
|
||||
stateHigh: "glycol",
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 1115,
|
||||
alias: "ethylene glycol in ice form"
|
||||
}
|
||||
|
||||
elements.coolant_ice = {
|
||||
color: "#beddf7",
|
||||
behavior: behaviors.WALL,
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 997,
|
||||
tempHigh: -37,
|
||||
stateHigh: "coolant",
|
||||
temp: -200,
|
||||
reactions: {
|
||||
"cooler": { elem1: "supercoolant_ice" },
|
||||
"supercooler": { elem1: "supercoolant_ice" }
|
||||
},
|
||||
breakInto: "coolant"
|
||||
}
|
||||
|
||||
elements.coolant = {
|
||||
color: "#77b9f2",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "saturns",
|
||||
state: "liquid",
|
||||
density: 997,
|
||||
tempLow: -200,
|
||||
stateLow: "coolant_ice",
|
||||
tempHigh: 111,
|
||||
stateHigh: "fire",
|
||||
temp: -100,
|
||||
reactions: {
|
||||
"cooler": { elem1: "supercoolant" },
|
||||
"supercooler": { elem1: "supercoolant" }
|
||||
},
|
||||
extinguish: true
|
||||
}
|
||||
|
||||
elements.supercoolant_ice = {
|
||||
color: "#7db9fa",
|
||||
behavior: behaviors.WALL,
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 997,
|
||||
tempHigh: 0,
|
||||
stateHigh: "supercoolant",
|
||||
temp: -273,
|
||||
reactions: {
|
||||
"heater": { elem1: "coolant_ice" },
|
||||
"superheater": { elem1: "coolant_ice" }
|
||||
},
|
||||
breakInto: "supercoolant"
|
||||
}
|
||||
|
||||
elements.supercoolant = {
|
||||
color: "#3695f5",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "saturns",
|
||||
state: "liquid",
|
||||
density: 997,
|
||||
tempLow: -273,
|
||||
stateLow: "supercoolant_ice",
|
||||
tempHigh: 222,
|
||||
stateHigh: "steam",
|
||||
temp: -200,
|
||||
reactions: {
|
||||
"heater": { elem1: "coolant" },
|
||||
"superheater": { elem1: "coolant" }
|
||||
},
|
||||
extinguish: true
|
||||
}
|
||||
|
||||
elements.exploder_question_mark = {
|
||||
color: "#ff0548",
|
||||
tool: function(pixel) {
|
||||
if (pixel.element == "sand")
|
||||
pixel.element = "snad"
|
||||
},
|
||||
category: "saturns",
|
||||
}
|
||||
|
||||
elements.exploder = {
|
||||
color: "#ff0548",
|
||||
tool: function(pixel) {
|
||||
pixel.element = "explosion"
|
||||
},
|
||||
category: "saturns",
|
||||
}
|
||||
|
||||
elements.n_exploder = {
|
||||
color: "#09ff05",
|
||||
tool: function(pixel) {
|
||||
pixel.element = "n_explosion"
|
||||
},
|
||||
category: "saturns",
|
||||
}
|
||||
|
||||
elements.wet_snad = {
|
||||
color: "#ada67b",
|
||||
behavior: behaviors.LIQUID,
|
||||
reactions: {
|
||||
"snad":{elem1:"snad"}
|
||||
},
|
||||
tempHigh: 100,
|
||||
stateHigh: "snad",
|
||||
category: "saturns",
|
||||
state: "liquid",
|
||||
density: 1603
|
||||
}
|
||||
elements.snad = {
|
||||
color: "#968b4d",
|
||||
behavior: behaviors.SUPPORT,
|
||||
reactions: {
|
||||
"water":{elem1:"wet_snad",elem2:null},
|
||||
"salt_water":{elem1:"wet_snad",elem2:"salt"},
|
||||
"sugar_water":{elem1:"wet_snad",elem2:null},
|
||||
"seltzer":{elem1:"wet_snad",elem2:null},
|
||||
"dirty_water":{elem1:"wet_snad",elem2:null},
|
||||
"pool_water":{elem1:"wet_snad",elem2:null},
|
||||
"slush":{elem1:"wet_snad",elem2:null},
|
||||
"soda":{elem1:"wet_snad",elem2:null},
|
||||
"juice":{elem1:"wet_snad",elem2:null},
|
||||
"milk":{elem1:"wet_snad",elem2:null},
|
||||
"chocolate_milk":{elem1:"wet_snad",elem2:null},
|
||||
"fruit_milk":{elem1:"wet_snad",elem2:null},
|
||||
"pilk":{elem1:"wet_snad",elem2:null},
|
||||
"eggnog":{elem1:"wet_snad",elem2:null},
|
||||
"nut_milk":{elem1:"wet_snad",elem2:null},
|
||||
"cream":{elem1:"wet_snad",elem2:null},
|
||||
"vinegar":{elem1:"wet_snad",elem2:null},
|
||||
"blood":{elem1:"wet_snad",elem2:null},
|
||||
"vaccine":{elem1:"wet_snad",elem2:null},
|
||||
"antibody":{elem1:"wet_snad",elem2:null},
|
||||
"infection":{elem1:"wet_snad",elem2:null},
|
||||
"poison":{elem1:"wet_snad",elem2:null},
|
||||
"antidote":{elem1:"wet_snad",elem2:null},
|
||||
"tornado":{elem1:"sad_storm", oneway:true},
|
||||
},
|
||||
tempHigh: 1700,
|
||||
stateHigh: "molten_glass",
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 1602
|
||||
}
|
||||
|
||||
elements.sad_storm = {
|
||||
color: "#a0d4e8",
|
||||
behavior: behaviors.SUPERFLUID,
|
||||
tempHigh: 1700,
|
||||
stateHigh: "sandstorm",
|
||||
category: "saturns",
|
||||
state: "liquid",
|
||||
density: 20000000,
|
||||
desc: "it's so sad..."
|
||||
}
|
||||
|
||||
elements.extinguish = {
|
||||
color: "#19f7ff",
|
||||
behavior: [
|
||||
"CO:2|CO:2|CO:2",
|
||||
"CO:2|CO:2|CO:2",
|
||||
"CO:2|CO:2|CO:2",
|
||||
],
|
||||
tool: function(pixel) {
|
||||
if (shiftDown) {pixel.temp += elements.cool.temp+(Math.random()*elements.cool.temp*200000)*20;}
|
||||
else {pixel.temp += elements.cool.temp+(Math.random()*elements.cool.temp*200000);}
|
||||
pixelTempCheck(pixel);
|
||||
},
|
||||
temp: -2,
|
||||
insulate:true,
|
||||
canPlace: false,
|
||||
category: "saturns"
|
||||
}
|
||||
|
||||
elements.temp_neutralizer = {
|
||||
color: "#b4f092",
|
||||
behavior: [
|
||||
"CO:2|CO:2|CO:2",
|
||||
"CO:2|CO:2|CO:2",
|
||||
"CO:2|CO:2|CO:2",
|
||||
],
|
||||
tool: function(pixel) {
|
||||
pixel.temp = 0
|
||||
pixelTempCheck(pixel)
|
||||
},
|
||||
temp: -2,
|
||||
insulate:true,
|
||||
canPlace: false,
|
||||
category: "saturns"
|
||||
}
|
||||
|
||||
elements.icicle = {
|
||||
color: "#81ccd4",
|
||||
behavior: [
|
||||
"XX|SA|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1|M2"
|
||||
],
|
||||
reactions: {
|
||||
"snow":{elem2: "icicle"},
|
||||
"ice":{elem2: "icicle"},
|
||||
"slush":{elem2: "icicle"},
|
||||
"water":{elem2: "icicle"}
|
||||
},
|
||||
category: "saturns",
|
||||
temp: -5,
|
||||
tempHigh: 1,
|
||||
stateHigh: "water",
|
||||
state: "solid",
|
||||
breakInto: "snow"
|
||||
}
|
||||
|
||||
elements.digger = {
|
||||
color: "#7affc1",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|DL|XX",
|
||||
"CH:digger_wall|M1 AND CH:digger AND CR:digger|CH:digger_wall"
|
||||
],
|
||||
category: "saturns",
|
||||
density: 100000,
|
||||
state: "solid"
|
||||
}
|
||||
|
||||
elements.digger_plane = {
|
||||
color: "#6fad90",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"M1|XX|M1",
|
||||
"XX|CR:digger%25|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
density: 1000000,
|
||||
state: "solid"
|
||||
}
|
||||
|
||||
elements.digger_wall = {
|
||||
color: "#1d6e45",
|
||||
behavior: behaviors.WALL,
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.5,
|
||||
noMix: true
|
||||
}
|
||||
|
||||
elements.assimilator = {
|
||||
color: "#d52feb",
|
||||
behavior: [
|
||||
"XX|CH:assimilator%25|XX",
|
||||
"CH:assimilator%25|XX|CH:assimilator%25",
|
||||
"XX|CH:assimilator%25|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["virus", "lattice"],
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.true_assimilator = {
|
||||
color: "#e52feb",
|
||||
behavior: [
|
||||
"XX|CH:true_assimilator|XX",
|
||||
"CH:true_assimilator|XX|CH:true_assimilator",
|
||||
"XX|CH:true_assimilator|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["virus", "filler"],
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.consumer = {
|
||||
color: "#eb2fd5",
|
||||
behavior: [
|
||||
"XX|CR:consumer%25|XX",
|
||||
"CR:consumer%25|XX|CR:consumer%25",
|
||||
"XX|CR:consumer%25|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["assimilator", "lattice"],
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.true_consumer = {
|
||||
color: "#fb2fd5",
|
||||
behavior: [
|
||||
"XX|CR:true_consumer|XX",
|
||||
"CR:true_consumer|XX|CR:true_consumer",
|
||||
"XX|CR:true_consumer|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["assimilator", "filler"],
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.integrator = {
|
||||
color: "#eb2f7d",
|
||||
behavior: [
|
||||
"XX|CR:integrator%25 AND CH:integrator%25|XX",
|
||||
"CR:integrator%25 AND CH:integrator%25|XX|CR:integrator%25 AND CH:integrator%25",
|
||||
"XX|CR:integrator%25 AND CH:integrator%25|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["consumer", "assimilator"],
|
||||
reactions: {
|
||||
"strange_matter":{elem1: "eternial",elem2: "eternial"},
|
||||
},
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.true_integrator = {
|
||||
color: "#fb2f7d",
|
||||
behavior: [
|
||||
"XX|CR:true_integrator AND CH:true_integrator|XX",
|
||||
"CR:true_integrator AND CH:true_integrator|XX|CR:true_integrator AND CH:true_integrator",
|
||||
"XX|CR:true_integrator AND CH:true_integrator|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["true_consumer", "true_assimilator"],
|
||||
reactions: {
|
||||
"strange_matter":{elem1: "absoluterial",elem2: "absoluterial"},
|
||||
},
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.eternial = {
|
||||
color: "#eb2f4e",
|
||||
behavior: [
|
||||
"CR:eternial%25 AND CH:eternial%25|CR:eternial%25 AND CH:eternial%25|CR:eternial%25 AND CH:eternial%25",
|
||||
"CR:eternial%25 AND CH:eternial%25|XX|CR:eternial%25 AND CH:eternial%25",
|
||||
"CR:eternial%25 AND CH:eternial%25|CR:eternial%25 AND CH:eternial%25|CR:eternial%25 AND CH:eternial%25"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["integrator", "strange_matter"],
|
||||
alias: "eternal material",
|
||||
reactions: {
|
||||
"strange_matter":{elem2: null}
|
||||
},
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.absoluterial = {
|
||||
color: "#fb2f4e",
|
||||
behavior: [
|
||||
"CR:absoluterial AND CH:absoluterial|CR:absoluterial AND CH:absoluterial|CR:absoluterial AND CH:absoluterial",
|
||||
"CR:absoluterial AND CH:absoluterial|XX|CR:absoluterial AND CH:absoluterial",
|
||||
"CR:absoluterial AND CH:absoluterial|CR:absoluterial AND CH:absoluterial|CR:absoluterial AND CH:absoluterial"
|
||||
],
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
hardness: 0.9,
|
||||
noMix: true,
|
||||
breakInto: ["true_integrator", "strange_matter"],
|
||||
alias: "absolute material",
|
||||
reactions: {
|
||||
"strange_matter":{elem2: null}
|
||||
},
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.void_jelly = {
|
||||
color: "#1d052b",
|
||||
behavior: [
|
||||
"XX|DL AND M2%25|XX",
|
||||
"DL AND M2%10|XX|DL AND M2%10",
|
||||
"XX|DL AND M1|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
hardness: 1,
|
||||
state: "solid",
|
||||
reactions: {
|
||||
"void":{elem2:"void_jelly"},
|
||||
"strange_matter":{elem2:"explosion"}
|
||||
},
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
elements.glitch = {
|
||||
color: "#000000",
|
||||
behavior: [
|
||||
"XX|CH:random AND M2|XX",
|
||||
"CH:random AND M2|XX|CH:random AND M2",
|
||||
"XX|CH:random AND M1|XX"
|
||||
],
|
||||
category: "saturns",
|
||||
hardness: 1,
|
||||
tick: function(pixel) {
|
||||
var randomColor = "#" + Math.floor(Math.random()*16777215).toString(16);
|
||||
pixel.color = randomColor;
|
||||
|
||||
var randomTemp = Math.random() * 1000 - 273;
|
||||
pixel.temperature = randomTemp;
|
||||
},
|
||||
reactions: {
|
||||
"malware":{elem2:"glitch", chance:0.1},
|
||||
"virus":{elem2:"glitch", chance:0.1},
|
||||
"filler":{elem2:"lattice", chance:0.25},
|
||||
"lattice":{elem2:"filler", chance:0.25},
|
||||
"void":{elem2:"warp", chance:0.25},
|
||||
"warp":{elem2:"void", chance:0.25},
|
||||
"snake":{elem2:"loopy", chance:0.25},
|
||||
"loopy":{elem2:["snake","ball"], chance:0.25},
|
||||
"ball":{elem2:"loopy", chance:0.25},
|
||||
"border":{elem2:["wall","null"], chance:0.25},
|
||||
"wall":{elem2:["border","null"], chance:0.25},
|
||||
"rainbow":{elem2:"static", chance:0.5},
|
||||
"static":{elem2:"rainbow", chance:0.5}
|
||||
}
|
||||
}
|
||||
|
||||
elements.filtered_water = {
|
||||
color: "#578cff",
|
||||
behavior: behaviors.LIQUID,
|
||||
tempHigh: 100,
|
||||
stateHigh: "nice_steam",
|
||||
tempLow: 0,
|
||||
stateLow: "nice_ice",
|
||||
category: "saturns",
|
||||
heatCapacity: 4.184,
|
||||
reactions: {
|
||||
"salt": { elem1: "salt_water", elem2: null, temp1:-20 },
|
||||
"sugar": { elem1: "sugar_water", elem2: null },
|
||||
"honey": { elem1: "sugar_water" },
|
||||
"caramel": { elem1: "sugar_water", elem2: null },
|
||||
"molasses": { elem1: "sugar_water", chance:0.05 },
|
||||
"candy": { elem1: "sugar_water", elem2:"foam", chance:0.005 },
|
||||
"carbon_dioxide": { elem1: "seltzer", elem2: null, oneway:true },
|
||||
"rock": { elem2: "wet_sand", chance: 0.00035 },
|
||||
"limestone": { elem2: "wet_sand", chance: 0.00035 },
|
||||
"tuff": { elem2: "wet_sand", color2:"#7a6b5c", chance: 0.00035 },
|
||||
"ruins": { elem2: "rock", chance: 0.00035 },
|
||||
"mudstone": { elem2: "mud", chance: 0.00035 },
|
||||
"methane": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
|
||||
"ammonia": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
|
||||
"cured_meat": { elem1:"salt_water", elem2:"meat" },
|
||||
"water": { elem2:"bubble", attr2:{"clone":"water"}, chance:0.001, tempMin:85 },
|
||||
"filtered_water": { elem2:"bubble", attr2:{"clone":"filtered_water"}, chance:0.001, tempMin:85 },
|
||||
// electrolysis:
|
||||
"aluminum": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0025 },
|
||||
"zinc": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.015 },
|
||||
"steel": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
|
||||
"iron": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
|
||||
"tin": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.01 },
|
||||
"brass": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
|
||||
"bronze": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
|
||||
"copper": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"silver": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"gold": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
|
||||
"glycol":{elem1:"coolant",elem2:"coolant"},
|
||||
}
|
||||
}
|
||||
elements.nice_steam = {
|
||||
color: "#abd6ff",
|
||||
behavior: behaviors.GAS,
|
||||
tick: function(pixel) {
|
||||
if (pixel.temp > 3000 && Math.random() < 0.01) {
|
||||
changePixel(pixel,Math.random() < 0.5 ? "hydrogen" : "oxygen");
|
||||
}
|
||||
},
|
||||
reactions: {
|
||||
"nice_steam": { elem1: "cloud", elem2: "cloud", chance:0.05, "y":[0,15], "setting":"clouds" },
|
||||
"rain_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"cloud": { elem1: "cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"snow_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"hail_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"thunder_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"pyrocumulus": { elem1: "cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"fire_cloud": { elem1: "cloud", elem2: "cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
|
||||
"smoke": { elem2: null, chance:0.001 },
|
||||
"carbon_dioxide": { elem2: null, chance:0.001 },
|
||||
"plasma": { elem1:"ozone", tempMin:500, charged:true },
|
||||
"copper": { elem1:"oxygen", chance:0.01 },
|
||||
"bronze": { elem1:"oxygen", chance:0.005 },
|
||||
"iron": { elem1:"oxygen", chance:0.005 },
|
||||
"steel": { elem1:"oxygen", chance:0.004 },
|
||||
"tornado":{elem1:"cloud"},
|
||||
"melted_wax": { elem1:"explosion" }
|
||||
},
|
||||
temp: 150,
|
||||
tempLow: 95,
|
||||
extraTempLow: {
|
||||
0: "rime"
|
||||
},
|
||||
stateLow: "filtered_water",
|
||||
category: "saturns",
|
||||
state: "gas",
|
||||
density: 0.3,
|
||||
conduct: 0.001,
|
||||
stain: -0.025,
|
||||
alias: "water vapor but nice",
|
||||
extinguish: true
|
||||
}
|
||||
|
||||
elements.nice_ice = {
|
||||
color: "#b2daeb",
|
||||
behavior: behaviors.WALL,
|
||||
temp: -5,
|
||||
tempHigh: 5,
|
||||
stateHigh: "filtered_water",
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 908,
|
||||
breakInto: "snow"
|
||||
}
|
||||
|
||||
elements.filter_powder = {
|
||||
color: "#7a7862",
|
||||
behavior: behaviors.POWDER,
|
||||
tempHigh: 100,
|
||||
stateHigh: "charcoal",
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 1080,
|
||||
breakInto: "sand",
|
||||
reactions: {
|
||||
"water": {elem1: null, elem2: "filtered_water"},
|
||||
"dirty_water": {elem1: null, elem2: "water"},
|
||||
"salt_water": {elem1: "salt", elem2: "filtered_water"},
|
||||
"sugar_water": {elem1: "sugar", elem2: "filtered_water"},
|
||||
"rock": {elem1: "stable_filter_powder", elem2: null}
|
||||
}
|
||||
}
|
||||
|
||||
elements.stable_filter_powder = {
|
||||
color: "#7d7c72",
|
||||
behavior: behaviors.POWDER,
|
||||
tempHigh: 100,
|
||||
stateHigh: "charcoal",
|
||||
category: "saturns",
|
||||
state: "solid",
|
||||
density: 1080,
|
||||
breakInto: "sand",
|
||||
reactions: {
|
||||
"water": {elem2: "filtered_water"},
|
||||
"dirty_water": {elem2: "water"},
|
||||
"salt_water": {elem2: "filtered_water"},
|
||||
"sugar_water": {elem2: "filtered_water"}
|
||||
}
|
||||
}
|
||||
|
||||
elements.petulantia_ferrobacteria = {
|
||||
color: ["#ee3400","ee8300","#eed600"],
|
||||
behavior: [
|
||||
"XX|M2%10|XX",
|
||||
"M1%50|XX|M1%50",
|
||||
"XX|M1|XX"
|
||||
],
|
||||
reactions: {
|
||||
"infection": { elem2:"dna", chance:0.015 },
|
||||
"antibody": { elem2:"cell", chance:0.01 },
|
||||
"cell": { elem2:"dna", chance:0.03 },
|
||||
"sugar_water": { elem2:"cell", chance:0.04 },
|
||||
"alcohol": { elem2:[null,"dna"], chance:0.02 },
|
||||
"poison": { elem1:null, chance:0.02 },
|
||||
"plague": { elem2:"infection", chance:0.02 },
|
||||
"mercury": { elem1:null, chance:0.02 },
|
||||
"chlorine": { elem1:null, chance:0.02 },
|
||||
"cyanide": { elem1:null, chance:0.02 },
|
||||
"soap": { elem1:null, elem2: null, chance:0.15},
|
||||
"oxygen": { elem2:"carbon_dioxide", chance:0.05 },
|
||||
"ammonia": { elem2:"nitrogen", chance:0.05 },
|
||||
"oil": { elem2:"methane", chance:0.001 },
|
||||
"milk": { elem2:"yogurt", chance:0.01 },
|
||||
"chocolate_milk": { elem2:"yogurt", chance:0.01, color2:"#4c392c" },
|
||||
"fruit_milk": { elem2:"yogurt", chance:0.01, color2:"#977871" },
|
||||
"pilk": { elem2:"yogurt", chance:0.01, color2:"#bba789" },
|
||||
"eggnog": { elem2:"yogurt", chance:0.01, color2:"#ae9a7e" },
|
||||
"dna": { elem2:"petulantia_ferrobacteria", chance:0.5}
|
||||
},
|
||||
tempHigh: 102,
|
||||
stateHigh: ["steam","steam","steam","sugar"],
|
||||
tempLow: -2,
|
||||
stateLow: ["ice","ice","ice","sugar_ice"],
|
||||
state: "solid",
|
||||
density: 1000.1,
|
||||
category: "saturns",
|
||||
breakInto: ["water","dna","dna","dna"],
|
||||
alias: "iron-stabber"
|
||||
}
|
||||
Loading…
Reference in New Issue