diff --git a/mods/funny_liquid_3.js b/mods/funny_liquid_3.js index 2eccf778..231eb6b6 100644 --- a/mods/funny_liquid_3.js +++ b/mods/funny_liquid_3.js @@ -1,114 +1,179 @@ -elements.shit = { - color: ["#57391b","#47290b","#6e5737","#754e2e","#825324","#5b611e"], +elements.vomit = { + color: ["#d9cb89", "#dbe6a1", "#e3da94", "#f5e6a4", "#f2f0e9", "#ded276", "#f0d58d"], behavior: [ - "XX|CR:plague%0.1 AND CR:fly%0.01 AND CR:methane%0.0316|XX", - "ST%65 AND SP|CH:dried_shit%0.02|ST%65 AND SP", - "M2%50|M1 AND SW:water%50|M2%50", + "XX|DB%3.5|XX", + "DB%3.5 AND M2|XX|DB%3.5 AND M2", + "DB%3.5 AND M1|DB%7 AND M1|DB%3.5 AND M1", ], + ignore: ["glass","glass_shard","baked_clay","acid_gas","neutral_acid","acid","water","steam","ice","snow","wall","brick","plastic","dirt","sand","mud","rock","wet_sand","gravel","vomit","vomit_snow","frozen_vomit"], reactions: { - "fly": { "elem1":"fly", "elem2":[null,null,null,null,null,null,"fly"], "chance":0.02, }, + "ash": { "elem1":"neutral_acid", "elem2":null }, + "limestone": { "elem1":"neutral_acid", "elem2":null }, + "quicklime": { "elem1":"neutral_acid", "elem2":null }, + "slaked_lime": { "elem1":"neutral_acid", "elem2":null }, + "borax": { "elem1":"neutral_acid", "elem2":null }, + "ammonia": { "elem1":"neutral_acid", "elem2":null }, + "iron": { "elem1":["vomit","vomit","vomit",null], "elem2":"rust" }, + "copper": { "elem1":["vomit","vomit","vomit",null], "elem2":"oxidized_copper" }, }, + category: "vomit", tempHigh: 100, - stateHigh: ["steam","steam","steam","dried_shit"], - tempLow: 0, - stateLow: "frozen_shit", - category: "shit", - state: "solid", - density: 1060, -}, - -elements.altnull = { - color: settings.bg, - behavior: behaviors.SELFDELETE, - reactions: { - "altnull": { "elem1": null, "elem2": null } - }, - tick: function(pixel) { - deletePixel(pixel.x,pixel.y) - }, - burn: 10000, - burnTime: 1, - hidden: true, - category: "special", -}, - - -elements.dried_shit = { - color: ["#b58738","#8c7245","#ad915f","#b5a174","#705e34","#bdad88"], - behavior: [ - "XX|CR:plague%0.005 AND CR:fly%0.0005|XX", - "XX|XX|XX", - "M2|M1|M2", - ], - reactions: { - "fly": { "elem1":"fly", "elem2":[null,null,null,null,null,null,null,"fly"], "chance":0.004, }, - }, - category: "shit", - state: "solid", - density: 265, - burn: 120, - burnTime: 300, - burnInto: ["ash","altnull","altnull"], - tempHigh: 300, //bs - stateHigh: ["ash","altnull","altnull"], -}, - -elements.diarrhea = { - color: ["#5c481c","#544513","#754d1c","#8a7829","#ad7315","#755c30"], - behavior: [ - "XX|CR:plague%0.2 AND CR:fly%0.02|XX", - "M2%50 AND ST%60|CH:shit%0.0065|M2%50 AND ST%60", - "M1%65 AND M2|M1|M1%65 AND M2", - ], - reactions: { - "fly": { "elem1":"fly", "elem2":[null,null,null,null,null,null,"fly"], "chance":0.02, }, - }, - tempLow: -50, - stateLow: "frozen_diarrhea", - tempHigh: 100, - stateHigh: ["steam","steam","steam","steam","dried_shit"], - category: "shit", + stateHigh: ["acid_gas","steam","plague"], + tempLow: 0, //https://www.sciencedirect.com/science/article/pii/S0021925818757876/pdf?md5=dcf060653cff604b4e7297265d71594f&pid=1-s2.0-S0021925818757876-main.pdf + stateLow: "frozen_vomit", state: "liquid", - density: 1030, //bs - viscosity: 3, + density: 1049, }, -elements.frozen_shit = { - color: ["#87695b","#77594b","#9e8777","#a57e6e","#b28364","#8b915e"], - behavior: behaviors.WALL, +elements.acid_gas.ignore.push("water") +elements.acid_gas.ignore.push("steam") +elements.acid_gas.ignore.push("ice") +elements.acid_gas.ignore.push("snow") +elements.acid_gas.ignore.push("vomit") +elements.acid_gas.ignore.push("vomit_snow") +elements.acid_gas.ignore.push("frozen_vomit") + +elements.acid.ignore.push("water") +elements.acid.ignore.push("steam") +elements.acid.ignore.push("ice") +elements.acid.ignore.push("snow") +elements.acid.ignore.push("vomit") +elements.acid.ignore.push("vomit_snow") +elements.acid.ignore.push("frozen_vomit") + +elements.frozen_vomit = { + color: ["#e9dba9", "#ebf6c1", "#f3eab4", "#fff6c4", "#fffff9", "#eee296", "#ffe5ad"], + behavior: [ + "XX|DB%2|XX", + "DB%2|XX|DB%2", + "DB%2|DB%4|DB%2", + ], + ignore: ["glass","glass_shard","baked_clay","acid_gas","neutral_acid","acid","water","steam","ice","snow","wall","brick","plastic","dirt","sand","mud","rock","wet_sand","gravel","vomit","vomit_snow","frozen_vomit"], + reactions: { + "ash": { "elem1":"neutral_acid", "elem2":null }, + "limestone": { "elem1":"neutral_acid", "elem2":null }, + "quicklime": { "elem1":"neutral_acid", "elem2":null }, + "slaked_lime": { "elem1":"neutral_acid", "elem2":null }, + "borax": { "elem1":"neutral_acid", "elem2":null }, + "ammonia": { "elem1":"neutral_acid", "elem2":null }, + "iron": { "elem1":["vomit","vomit","vomit",null], "elem2":"rust" }, + "copper": { "elem1":["vomit","vomit","vomit",null], "elem2":"oxidized_copper" }, + }, + category: "vomit", + temp: -5, tempHigh: 0, - stateHigh: "shit", - category: "shit", + stateHigh: "vomit", state: "solid", - density: 972, hidden: true, + density: 1049, + breakInto: "vomit_snow", }, -elements.frozen_diarrhea = { - color: ["#4c886c","#948563","#b58d6c","#cab879","#edb365","#b59c80"], - behavior: behaviors.WALL, +elements.vomit_snow = { + color: ["#e9dba9", "#ebf6c1", "#f3eab4", "#fff6c4", "#fffff9", "#eee296", "#ffe5ad"], + behavior: [ + "XX|DB%3|XX", + "DB%3|XX|DB%3", + "DB%3 AND M2|DB%6 AND M1|DB%3 AND M2", + ], + ignore: ["glass","glass_shard","baked_clay","acid_gas","neutral_acid","acid","water","steam","ice","snow","wall","brick","plastic","dirt","sand","mud","rock","wet_sand","gravel","vomit","vomit_snow","frozen_vomit"], + reactions: { + "ash": { "elem1":"neutral_acid", "elem2":null }, + "limestone": { "elem1":"neutral_acid", "elem2":null }, + "quicklime": { "elem1":"neutral_acid", "elem2":null }, + "slaked_lime": { "elem1":"neutral_acid", "elem2":null }, + "borax": { "elem1":"neutral_acid", "elem2":null }, + "ammonia": { "elem1":"neutral_acid", "elem2":null }, + "iron": { "elem1":["vomit","vomit","vomit",null], "elem2":"rust" }, + "copper": { "elem1":["vomit","vomit","vomit",null], "elem2":"oxidized_copper" }, + }, + category: "liquids", + temp: -5, tempHigh: 0, - stateHigh: "diarrhea", - category: "shit", + stateHigh: "vomit", state: "solid", - density: 945, hidden: true, -}, - -elements.water.reactions.shit = { "elem1":["shit","shit","diarrhea"], "elem2":["dirty_water","dirty_water",null] } -elements.water.reactions.dried_shit = { "elem1":"shit", "elem2":["water","dirty_water","water","dirty_water",null] } -elements.water.reactions.diarrhea = { "elem1":"diarrhea", "elem2":"dirty_water" } - + density: 1049, +} runAfterLoad(function() { + if(enabledMods.includes("mods/funny_liquid.js")) { //Vomit should kill cum, but I'm protecting cum for the "funny". + elements.vomit.ignore.push("cum"); + elements.vomit.ignore.push("cum_water"); + elements.vomit.ignore.push("cum_ice"); + elements.vomit.ignore.push("precum"); + elements.vomit.ignore.push("precum_ice"); + elements.vomit.ignore.push("cum_water_ice"); + elements.vomit.ignore.push("dead_cum"); + elements.vomit.ignore.push("dead_cum_water"); + elements.vomit.ignore.push("dead_cum_ice"); + elements.vomit.ignore.push("dead_cum_water_ice"); + elements.vomit.ignore.push("cummy_mud"); + elements.vomit.ignore.push("dead_cummy_mud"); + elements.vomit.ignore.push("cummy_sand"); + elements.vomit.ignore.push("dead_cummy_sand"); + elements.vomit.ignore.push("cummy_permafrost"); + elements.vomit.ignore.push("dead_cummy_permafrost"); + elements.vomit.ignore.push("cummy_snake"); + elements.vomit.ignore.push("cum_slime"); + elements.vomit.ignore.push("burnt_cum"); + elements.vomit.ignore.push("cum_fairy"); + elements.vomit.ignore.push("cum_bomb"); + elements.vomit.ignore.push("cum_reviver"); + elements.vomit.ignore.push("cum_snow"); + elements.vomit.ignore.push("dead_cum_snow"); + elements.vomit.ignore.push("precum_snow"); + } + + if(enabledMods.includes("mods/funny_liquid_2.js")) { + elements.vomit.ignore.push("piss"); + elements.vomit.ignore.push("piss_water"); + elements.vomit.ignore.push("piss_ice"); + elements.vomit.ignore.push("piss_water_ice"); + elements.vomit.ignore.push("pissed_mud"); + elements.vomit.ignore.push("pissed_sand"); + elements.vomit.ignore.push("pissed_permafrost"); + elements.vomit.ignore.push("piss_fairy"); + elements.vomit.ignore.push("piss_bomb"); + } + + if(enabledMods.includes("mods/funny_solid.js")) { + elements.vomit.ignore.push("shit"); + elements.vomit.ignore.push("dried_shit"); + elements.vomit.ignore.push("diarrhea"); + elements.vomit.ignore.push("frozen_shit"); + elements.vomit.ignore.push("frozen_diarrhea"); + } + + foodArray = [] + foodArray = Object.keys(elements).filter(function(e) { + return elements[e].category == "food"; + }); + + manualFoodArray = ["honey","caramel","molasses","ketchup","chocolate_syrup"] + + /*if(enabledMods.includes("mods/ketchup_mod.js")) { + //TODO: ketchup mod integration + }*/ + + if(foodArray && manualFoodArray) { + for(i = 0; i < manualFoodArray.length; i++) { + foodArray.push(manualFoodArray[i]) + } + } + + if(foodArray) { + for(i = 0; i < foodArray.length; i++) { + elements.vomit.reactions[foodArray[i]] = { elem1: ["vomit","vomit","vomit","vomit","vomit",null,null], elem2: [foodArray[i],null], chance: 0.6 } + } + } + if(enabledMods.includes("mods/fey_and_more.js")) { - //shit elements as impurities { - eLists.IMPURITY.push("shit"); - eLists.IMPURITY.push("dried_shit"); - eLists.IMPURITY.push("diarrhea"); - eLists.IMPURITY.push("frozen_shit"); - eLists.IMPURITY.push("frozen_diarrhea"); + //vomit elements as impurities { + eLists.IMPURITY.push("vomit"); + eLists.IMPURITY.push("frozen_vomit"); + eLists.IMPURITY.push("vomit_snow"); //} //regenerate behaviors of elements that use eLists.IMPURITY { elements.pure_water.behavior = [ @@ -122,20 +187,20 @@ runAfterLoad(function() { "M2 AND DL:"+eLists.IMPURITY+"|M1 AND DL:"+eLists.IMPURITY+"|M2 AND DL:"+eLists.IMPURITY+"", ]; //} - //shit fairy { - elements.shit_fairy = { - color: ["#cc9868","#c2a75f","#bd9751"], + //vomit fairy { + elements.vomit_fairy = { + color: ["#b7e64c", "#f2d785", "#e8e88e"], state: "solid", behavior: [ "XX|M1|M1", "XX|FX%5|XX", - "XX|CR:shit%0.5 AND CR:fairy_dust%0.005 AND M1|M1", + "XX|CR:vomit%0.5 AND CR:fairy_dust%0.005 AND M1|M1", ], category: "fey", }; //} //eList rebuilding { - eLists.FAIRY.push("shit_fairy"); + eLists.FAIRY.push("vomit_fairy"); elements.iron.behavior = [ "XX|DL:"+eLists.FAIRY+"|XX", "DL:"+eLists.FAIRY+"|XX|DL:"+eLists.FAIRY+"", @@ -149,29 +214,40 @@ runAfterLoad(function() { //} //concoction support (it's all mistakes) { - elements.concoction.reactions.shit = { "elem1": "mistake", "elem2": null }, - elements.concoction.reactions.dried_shit = { "elem1": "mistake", "elem2": null }, - elements.concoction.reactions.diarrhea = { "elem1": "mistake", "elem2": null }, - elements.concoction.reactions.frozen_shit = { "elem1": "mistake", "elem2": null }, - elements.concoction.reactions.frozen_diarrhea = { "elem1": "mistake", "elem2": null }, + elements.concoction.reactions.vomit = { "elem1": "mistake", "elem2": null }, + elements.concoction.reactions.frozen_vomit = { "elem1": "mistake", "elem2": null }, + elements.concoction.reactions.vomit_snow = { "elem1": "mistake", "elem2": null }, //} - //shit fairy creation { - elements.fairy.reactions.shit = { "elem1": "shit_fairy" } + //vomit fairy creation { + elements.fairy.reactions.vomit = { "elem1": "vomit_fairy" } + elements.vomit.reactions.fairy = { "elem2": "vomit_fairy" } //} - }; + elements.vomit.ignore.push("fairy") + elements.vomit.ignore.push("vomit_fairy") + }; if(enabledMods.includes("mods/fey_and_more.js") && enabledMods.includes("mods/randomness.js")) { - //additional eList rebuilding for RM steel derivatives - elements.tungstensteel.behavior = [ - "XX|DL:"+eLists.FAIRY+"|XX", - "DL:"+eLists.FAIRY+"|XX|DL:"+eLists.FAIRY+"", - "XX|DL:"+eLists.FAIRY+"|XX", - ], - elements.molten_tungstensteel.behavior = [ - "XX|DL:"+eLists.FAIRY+" AND CR:fire%2.5|XX", - "DL:"+eLists.FAIRY+" AND M2|XX|DL:"+eLists.FAIRY+" AND M2", - "M1|DL:"+eLists.FAIRY+"|M1", - ] + if(elements.tungstensteel && elements.molten_tungstensteel) { + elements.tungstensteel.behavior = [ + "XX|DL:"+eLists.FAIRY+"|XX", + "DL:"+eLists.FAIRY+"|XX|DL:"+eLists.FAIRY+"", + "XX|DL:"+eLists.FAIRY+"|XX", + ], + elements.molten_tungstensteel.behavior = [ + "XX|DL:"+eLists.FAIRY+" AND CR:fire%2.5|XX", + "DL:"+eLists.FAIRY+" AND M2|XX|DL:"+eLists.FAIRY+" AND M2", + "M1|DL:"+eLists.FAIRY+"|M1", + ] + } }; + }); + +if(elements.fairy && elements.vomit && elements.vomit_fairy) { + if(elements.fairy.reactions.vomit) { + if(elements.fairy.reactions) { + elements.fairy.reactions.vomit = { "elem1": "vomit_fairy" } + } + } +}