From 6721d9a6a1a1efaf42e7b0e0abf143d053a9916d Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Fri, 26 Apr 2024 19:53:00 -0700 Subject: [PATCH 01/12] Update Batteries.js --- mods/Batteries.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index 424a79a7..8f4584d6 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -22,7 +22,7 @@ elements.low_battery= { ], behaviorOn: [ "XX|SH%10|XX", // shocks (adds charge) - "SH%10|CH:charged_battery%0.05|SH%10", + "SH%10|CH:charged_battery%0.045|SH%10", "XX|SH%10|XX", ], colorOn: "#4fb613", @@ -41,7 +41,7 @@ elements.dead_battery= { ], behaviorOn: [ "XX|XX|XX", - "XX|CH:low_battery%0.05|XX", + "XX|CH:low_battery%0.045|XX", "XX|XX|XX", ], colorOn: "#699e19", @@ -93,6 +93,7 @@ elements.radio_wave= { } }, category: "energy", + reactions: {electric: {elem1: null, elem2: null, chance: 0.5}}, density: 1, //charge: 0.5, conduct: 0.01 From d924b15fefb1ce1ce26fe74669b1298270a8828b Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Thu, 9 May 2024 13:56:36 -0700 Subject: [PATCH 02/12] Update Thread.js --- mods/Thread.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/mods/Thread.js b/mods/Thread.js index 03c22ff4..4b68bd85 100644 --- a/mods/Thread.js +++ b/mods/Thread.js @@ -145,3 +145,34 @@ elements.lamb = { density: 1450, conduct: 0.2 }; +elements.loom = { + color: "#296127", + behavior: behaviors.WALL, + category: "machines", + tick: function(pixel) { + if (pixel.start === pixelTicks){ + pixel.contype = converter2Var; + pixel.specialturn = converter1Var; + } + for (var i = 0; i < squareCoords.length; i++) { + var coord = squareCoords[i]; + var x = pixel.x+coord[0]; + var y = pixel.y+coord[1]; + if (!isEmpty(x,y, true)) { + var otherPixel = pixelMap[x][y]; + if ((otherPixel.element == pixel.specialturn || pixel.specialturn == "all") && !elements.converter.ignore.includes(otherPixel.element)){ + changePixel(otherPixel, pixel.contype) + } + } + } + }, + onSelect: function() { + var answer5 = prompt("Please input what type of element should be converted. Write \"all\" to include everything.",(converter1Var||undefined)); + if (!answer5) { return } + converter1Var = answer5; + var answer6 = prompt("Please input what it should turn into.",(converter2Var||undefined)); + if (!answer6) { return } + converter2Var = answer6; + }, + movable: false, +}, From b8267c08e6de647542773f5902f0de70621ee4c4 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Thu, 9 May 2024 14:04:06 -0700 Subject: [PATCH 03/12] Update Thread.js --- mods/Thread.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/Thread.js b/mods/Thread.js index 4b68bd85..7ba6cc8a 100644 --- a/mods/Thread.js +++ b/mods/Thread.js @@ -145,6 +145,8 @@ elements.lamb = { density: 1450, conduct: 0.2 }; +converter1Var = 0; +converter2Var = 0; elements.loom = { color: "#296127", behavior: behaviors.WALL, From 80597b23a2509d0db50cc3f5bc262a4524916291 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Thu, 9 May 2024 14:23:53 -0700 Subject: [PATCH 04/12] Update Batteries.js --- mods/Batteries.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mods/Batteries.js b/mods/Batteries.js index 8f4584d6..a5c5bfc4 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -98,3 +98,21 @@ elements.radio_wave= { //charge: 0.5, conduct: 0.01 }; +elements.e_nuke = { + desc: "Works like the nuke but needs power to explode", + color: ["#534636"], + hardness: elements.nuke.hardness, + state: "solid", + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "M2|M1|M2", + ], + conduct: 1, + category: "machines", + behaviorOn:[ + "XX|XX|XX", + "XX|XX|XX", + "M2|M1 AND EX:60>plasma,plasma,plasma,plasma,radiation,rad_steam|M2", + ], +}; From 95a1f99c6dc4b3398ab9f9b3c566a2826d8cf73a Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Thu, 9 May 2024 14:30:55 -0700 Subject: [PATCH 05/12] Update Batteries.js --- mods/Batteries.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index a5c5bfc4..9c934e11 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -99,18 +99,18 @@ elements.radio_wave= { conduct: 0.01 }; elements.e_nuke = { - desc: "Works like the nuke but needs power to explode", + desc: "Works like the nuke but needs power to explode", color: ["#534636"], - hardness: elements.nuke.hardness, - state: "solid", - behavior: [ + hardness: elements.nuke.hardness, + state: "solid", + behavior: [ "XX|XX|XX", "XX|XX|XX", "M2|M1|M2", ], - conduct: 1, - category: "machines", - behaviorOn:[ + conduct: 1, + category: "machines", + behaviorOn:[ "XX|XX|XX", "XX|XX|XX", "M2|M1 AND EX:60>plasma,plasma,plasma,plasma,radiation,rad_steam|M2", From b5308d2d2010a8b3e047c72017eff307d1e20bfb Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Thu, 9 May 2024 14:31:37 -0700 Subject: [PATCH 06/12] Update Batteries.js --- mods/Batteries.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index 9c934e11..2a756051 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -100,7 +100,7 @@ elements.radio_wave= { }; elements.e_nuke = { desc: "Works like the nuke but needs power to explode", - color: ["#534636"], + color: "#534636", hardness: elements.nuke.hardness, state: "solid", behavior: [ From 8e855b3ab64a148aad6414a66dfaac8eac33f6d9 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Fri, 10 May 2024 11:59:46 -0700 Subject: [PATCH 07/12] Update Batteries.js --- mods/Batteries.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index 2a756051..74d8e194 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -109,10 +109,65 @@ elements.e_nuke = { "M2|M1|M2", ], conduct: 1, - category: "machines", + category: "weapons", behaviorOn:[ "XX|XX|XX", "XX|XX|XX", "M2|M1 AND EX:60>plasma,plasma,plasma,plasma,radiation,rad_steam|M2", ], }; +elements.10_timer= { + color: ["#000000"], + behavior: behaviors.WALL, + colorOn: "#000000", + tick: elements.gasoline_engine = { + color: "#6d5f5d", + behavior: behaviors.WALL, + state: "solid", + density: 1000, + category: "testing", + properties: { + time: 10 + }, + tick: function(pixel){ + if (pixel.timer <= 40){ + if(!pixel.timer){pixel.timer = 0} + pixel.timer -= 10 + } + else if (otherPixel.element == "gasoline_engine"){ + var otherPixel = pixelMap[x][y] + var otherShock = otherPixel.timer || 0 + var currentShock = pixel.timer || 0 + if (otherShock == currentShock){break;} + if (otherShock > currentShock){ + otherPixel.timer -- + pixel.timer ++ + } else { + otherPixel.timer ++ + pixel.timer -- + } + } + } + }} + if (!pixel.charge && !pixel.chargeCD && pixel.timer){ + for (var i = 0; i < adjacentCoords.length; i++){ + var coord = adjacentCoords[i] + var x = pixel.x + coord[0] + var y = pixel.y + coord[1] + if (!isEmpty(x, y, true)){ + if (elements[pixelMap[x][y]].conduct > 0){ + pixel.charge = 1 + pixel.timer -- + break; + } + } + } + } + } +} + category: "energy", + reactions: {electric: {elem1: null, elem2: null, chance: 0.5}}, + density: 1, + //charge: 0.5, + conduct: 0 +}; From cdd71834ba1cd2efd4ab31ebae0cc3728101aec7 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Tue, 14 May 2024 16:11:23 -0700 Subject: [PATCH 08/12] Update Batteries.js --- mods/Batteries.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index 74d8e194..dccd1e4b 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -120,7 +120,8 @@ elements.10_timer= { color: ["#000000"], behavior: behaviors.WALL, colorOn: "#000000", - tick: elements.gasoline_engine = { + tick: , +elements.gasoline_engine = { color: "#6d5f5d", behavior: behaviors.WALL, state: "solid", From 693ea4c6f57eb5f9faf0dbc7c4dd784f5209e043 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Tue, 14 May 2024 16:47:55 -0700 Subject: [PATCH 09/12] Update Batteries.js --- mods/Batteries.js | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index dccd1e4b..5c51c78c 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -120,7 +120,44 @@ elements.10_timer= { color: ["#000000"], behavior: behaviors.WALL, colorOn: "#000000", - tick: , + conduct: 0, + category: "machines", + properties: { + wait: 15, + waitReduce: false, + }, + tick: function(pixel){ + if (pixel.waitReduce){pixel.wait -= 1} + if (pixel.wait == 0){ + pixel.elementsSeen = {} + } + for (var i = 0; i < adjacentCoords.length; i++) { + var coord = adjacentCoords[i]; + var x = pixel.x+coord[0]; + var y = pixel.y+coord[1]; + if (!isEmpty(x,y, true)){ + if (!pixel.waitReduce){ + pixel.waitReduce = true + }, + if (pixel.wait == 0){ + if (!pixel.elementsSeen[pixelMap[x][y].element] && pixelMap[x][y].element != "healing_serum"){ + pixel.elementsSeen[pixelMap[x][y].element] = 1 + } else if (pixelMap[x][y].element != "healing_serum") { + pixel.elementsSeen[pixelMap[x][y].element] += 1 + } + } + } + if (pixel.wait == 0){ + if (Object.keys(pixel.elementsSeen).length == 0){ + deletePixel(pixel.x, pixel.y) + return; + } else{ + changePixel(pixel, Object.keys(pixel.elementsSeen).reduce((a, b) => pixel.elementsSeen[a] > pixel.elementsSeen[b] ? a : b)) + } + } + } + } +} elements.gasoline_engine = { color: "#6d5f5d", behavior: behaviors.WALL, @@ -128,7 +165,7 @@ elements.gasoline_engine = { density: 1000, category: "testing", properties: { - time: 10 + timer: 10 }, tick: function(pixel){ if (pixel.timer <= 40){ From 26b1afa509d48984f7ab6d69e4c95df2d9f1d4cf Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Tue, 14 May 2024 16:54:35 -0700 Subject: [PATCH 10/12] Create IreThings --- mods/IreThings | 169 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 mods/IreThings diff --git a/mods/IreThings b/mods/IreThings new file mode 100644 index 00000000..bb754dc3 --- /dev/null +++ b/mods/IreThings @@ -0,0 +1,169 @@ + +elements.charged_battery= { + color: "#9c6c25", + behavior: [ + "XX|SH%50|XX", // shocks (adds charge) + "SH%50|CH:low_battery%0.05|SH%50", + "XX|SH%50|XX", + ], + colorOn: "#00ff00", + category: "machines", + tempHigh: 1455.5, + stateHigh: ["molten_steel","explosion","acid_gas"], + charge: 0.5, + conduct: 1, +}; +elements.low_battery= { + color: "#9c6c25", + behavior: [ + "XX|SH%10|XX", // shocks (adds charge) + "SH%10|CH:dead_battery%0.05|SH%10", + "XX|SH%10|XX", + ], + behaviorOn: [ + "XX|SH%10|XX", // shocks (adds charge) + "SH%10|CH:charged_battery%0.045|SH%10", + "XX|SH%10|XX", + ], + colorOn: "#4fb613", + category: "machines", + tempHigh: 1455.5, + stateHigh: ["molten_steel","explosion","acid_gas"], + charge: 0.5, + conduct: 0.75, +}; +elements.dead_battery= { + color: "#9c6c25", + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|XX|XX", + ], + behaviorOn: [ + "XX|XX|XX", + "XX|CH:low_battery%0.045|XX", + "XX|XX|XX", + ], + colorOn: "#699e19", + category: "machines", + tempHigh: 1455.5, + stateHigh: ["molten_steel","explosion","acid_gas"], + charge: 0.5, + conduct: 0.5, +}; +elements.radio_broadcaster= { + color: "#78784c", + behavior: behaviors.WALL, + behaviorOn: [ + "XX|SH AND CR:radio_wave AND CR:radio_wave|XX", + "SH AND CR:radio_wave AND CR:radio_wave|XX|SH AND CR:radio_wave AND CR:radio_wave", + "XX|SH AND CR:radio_wave AND CR:radio_wave|XX", + ], + colorOn: "#ffff59", + category: "machines", + tempHigh: 1455.5, + stateHigh: ["molten_steel","explosion","acid_gas"], + conduct: 1 +}; +elements.radio_receiver= { + color: "#78784c", + behavior: behaviors.WALL, + reactions: {radio_wave: {elem2: "electric", chance: 0.75}}, + colorOn: "#ffff59", + category: "machines", + tempHigh: 1455.5, + stateHigh: ["molten_steel","explosion","acid_gas"], + conduct: 1 +}; +elements.radio_wave= { + color: ["#000000"], + behavior: behaviors.BOUNCY, + behaviorOn: [ + ["XX","CL","XX"], + ["CL","DL%5","CL"], + ["XX","CL","XX"] + ] + , + colorOn: "#000000", + tick: function(pixel){ + if (currentElement == "radio_wave"){ + pixel.color = "rgb(15, 15, 15)"; + } else { + pixel.color = "rgba(0, 0, 0, -1)"; + } + }, + category: "energy", + reactions: {electric: {elem1: null, elem2: null, chance: 0.5}}, + density: 1, + //charge: 0.5, + conduct: 0.01 +}; +elements.e_nuke = { + desc: "Works like the nuke but needs power to explode", + color: "#534636", + hardness: elements.nuke.hardness, + state: "solid", + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "M2|M1|M2", + ], + conduct: 1, + category: "weapons", + behaviorOn:[ + "XX|XX|XX", + "XX|XX|XX", + "M2|M1 AND EX:60>plasma,plasma,plasma,plasma,radiation,rad_steam|M2", + ], +}; +elements.10_timer= { + color: ["#000000"], + behavior: behaviors.WALL, + colorOn: "#000000", + conduct: 0, + category: "machines", + properties: { + wait: 15, + waitReduce: false, + }, + tick: function(pixel){ + if (pixel.waitReduce){pixel.wait -= 1} + if (pixel.wait == 0){ + pixel.elementsSeen = {} + } + for (var i = 0; i < adjacentCoords.length; i++) { + var coord = adjacentCoords[i]; + var x = pixel.x+coord[0]; + var y = pixel.y+coord[1]; + if (!isEmpty(x,y, true)){ + if (!pixel.waitReduce){ + pixel.waitReduce = true + }, + if (pixel.wait == 0){ + if (!pixel.elementsSeen[pixelMap[x][y].element] && pixelMap[x][y].element != "healing_serum"){ + pixel.elementsSeen[pixelMap[x][y].element] = 1 + } else if (pixelMap[x][y].element != "healing_serum") { + pixel.elementsSeen[pixelMap[x][y].element] += 1 + } + } + } + if (pixel.wait == 0){ + if (Object.keys(pixel.elementsSeen).length == 0){ + deletePixel(pixel.x, pixel.y) + return; + } else{ + changePixel(pixel, Object.keys(pixel.elementsSeen).reduce((a, b) => pixel.elementsSeen[a] > pixel.elementsSeen[b] ? a : b)) + } + } + } + } +} +elements.gasoline_engine = { + color: "#6d5f5d", + behavior: behaviors.WALL, + state: "solid", + density: 1000, + category: "testing", + properties: { + timer: 10 + }, From 7b8d9f05210080cb46d2d908bd61fb5818955f75 Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Tue, 14 May 2024 16:54:57 -0700 Subject: [PATCH 11/12] Rename IreThings to IreThings.js --- mods/{IreThings => IreThings.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{IreThings => IreThings.js} (100%) diff --git a/mods/IreThings b/mods/IreThings.js similarity index 100% rename from mods/IreThings rename to mods/IreThings.js From 0c728c30f928b11e3734d21ee461e6e86a52eb6a Mon Sep 17 00:00:00 2001 From: IreoftheShire <155935118+IreoftheShire@users.noreply.github.com> Date: Mon, 10 Jun 2024 20:33:45 -0700 Subject: [PATCH 12/12] Update Batteries.js --- mods/Batteries.js | 275 +++++++++++++++++++++++++++++----------------- 1 file changed, 176 insertions(+), 99 deletions(-) diff --git a/mods/Batteries.js b/mods/Batteries.js index 5c51c78c..e0d668c1 100644 --- a/mods/Batteries.js +++ b/mods/Batteries.js @@ -96,116 +96,193 @@ elements.radio_wave= { reactions: {electric: {elem1: null, elem2: null, chance: 0.5}}, density: 1, //charge: 0.5, - conduct: 0.01 + conduct: 0.01, + ignore: ["radio_wave"], }; + elements.e_nuke = { - desc: "Works like the nuke but needs power to explode", - color: "#534636", - hardness: elements.nuke.hardness, + desc: "Works like a nuke but needs power to explode", + color: elements.nuke.color, + hardness: 0.5, state: "solid", - behavior: [ - "XX|XX|XX", - "XX|XX|XX", - "M2|M1|M2", - ], + behavior: behaviors.POWDER, conduct: 1, category: "weapons", - behaviorOn:[ + behaviorOn: [ "XX|XX|XX", "XX|XX|XX", "M2|M1 AND EX:60>plasma,plasma,plasma,plasma,radiation,rad_steam|M2", ], + name: "E-Nuke", }; -elements.10_timer= { - color: ["#000000"], - behavior: behaviors.WALL, - colorOn: "#000000", - conduct: 0, - category: "machines", - properties: { - wait: 15, - waitReduce: false, - }, - tick: function(pixel){ - if (pixel.waitReduce){pixel.wait -= 1} - if (pixel.wait == 0){ - pixel.elementsSeen = {} - } - for (var i = 0; i < adjacentCoords.length; i++) { - var coord = adjacentCoords[i]; - var x = pixel.x+coord[0]; - var y = pixel.y+coord[1]; - if (!isEmpty(x,y, true)){ - if (!pixel.waitReduce){ - pixel.waitReduce = true - }, - if (pixel.wait == 0){ - if (!pixel.elementsSeen[pixelMap[x][y].element] && pixelMap[x][y].element != "healing_serum"){ - pixel.elementsSeen[pixelMap[x][y].element] = 1 - } else if (pixelMap[x][y].element != "healing_serum") { - pixel.elementsSeen[pixelMap[x][y].element] += 1 +elements.drill = { + color: ["#a7ab81","#a3a685", "#9ba252"], + tick: function(pixel) { + for (var i = 0; i < 3; i++) { + var skip = false; + if (!isEmpty(pixel.x,pixel.y+1,true)) { + var p = pixelMap[pixel.x][pixel.y+1]; + if (p.element === "drill") { skip = true; } + if (Math.random() < 0.9 && elements[p.element].hardness !== 1) { + deletePixel(p.x,p.y); + } + } + if (!tryMove(pixel,pixel.x,pixel.y+1,["flash","smoke"]) && !skip) { + explodeAt(pixel.x,pixel.y,5,"flash"); + var coords = circleCoords(pixel.x,pixel.y,2); + coords.forEach(function(coord){ + var x = coord.x; + var y = coord.y; + if (!isEmpty(x,y,true)) { + pixelMap[x][y].temp += 55; + pixelTempCheck(pixelMap[x][y]); } - } - } - if (pixel.wait == 0){ - if (Object.keys(pixel.elementsSeen).length == 0){ - deletePixel(pixel.x, pixel.y) - return; - } else{ - changePixel(pixel, Object.keys(pixel.elementsSeen).reduce((a, b) => pixel.elementsSeen[a] > pixel.elementsSeen[b] ? a : b)) - } + }) + deletePixel(pixel.x,pixel.y); + return; } } - } -} -elements.gasoline_engine = { - color: "#6d5f5d", - behavior: behaviors.WALL, - state: "solid", - density: 1000, - category: "testing", - properties: { - timer: 10 - }, - tick: function(pixel){ - if (pixel.timer <= 40){ - if(!pixel.timer){pixel.timer = 0} - pixel.timer -= 10 - } - else if (otherPixel.element == "gasoline_engine"){ - var otherPixel = pixelMap[x][y] - var otherShock = otherPixel.timer || 0 - var currentShock = pixel.timer || 0 - if (otherShock == currentShock){break;} - if (otherShock > currentShock){ - otherPixel.timer -- - pixel.timer ++ - } else { - otherPixel.timer ++ - pixel.timer -- - } - } - } - }} - if (!pixel.charge && !pixel.chargeCD && pixel.timer){ - for (var i = 0; i < adjacentCoords.length; i++){ - var coord = adjacentCoords[i] - var x = pixel.x + coord[0] - var y = pixel.y + coord[1] - if (!isEmpty(x, y, true)){ - if (elements[pixelMap[x][y]].conduct > 0){ - pixel.charge = 1 - pixel.timer -- - break; - } - } - } - } - } -} - category: "energy", - reactions: {electric: {elem1: null, elem2: null, chance: 0.5}}, - density: 1, - //charge: 0.5, - conduct: 0 + }, + category: "weapons", + state: "solid", + density: 100000000, + temp: 55, + hardness: 1, + maxSize: 3, + cooldown: defaultCooldown, + excludeRandom: true, }; +elements.holy_hand_grenade = { + color: elements.gold.color, + behavior: [ + "XX|EX:6>god_ray,bless,bless,bless%1|XX", + "XX|XX|XX", + "M2|M1 AND EX:6>god_ray,bless,bless,bless%1|M2", + ], + behaviorOn: [ + "XX|XX|XX", + "XX|EX:6>god_ray,bless,bless,bless%1|XX", + "XX|XX|XX", + ], + category: "weapons", + state: "solid", + density: 1300, + tempHigh: 1455.5, + stateHigh: ["molten_steel", "god_ray"], + excludeRandom: true, + conduct: 1, + cooldown: defaultCooldown, +}; +//Fioushemastor (Aparently needlessly complicated. IDK) +elements.timer_input = { + color: "#4d0a03", + behavior: behaviors.WALL, + category: "machines", + insulate: true, + conduct: 1, + noMix: true + } + + let TimerDelay = 100 + elements.Timer = { + color: "#838cc2", + behavior: behaviors.WALL, + tick: function(pixel){ + if (pixelTicks == pixel.start) { + pixel.delay = TimerDelay + } + //ceck all surroundings + for (let offset of adjacentCoords) { + if (isEmpty(pixel.x+offset[0], pixel.y+offset[1])) continue; + if (pixelMap[pixel.x+offset[0]][pixel.y+offset[1]].charge && pixelMap[pixel.x+offset[0]][pixel.y+offset[1]].element == "timer_input") { + let oppositeCoords = {x: pixel.x-offset[0], y: pixel.y-offset[1]} + pixel.timers.push({start: pixelTicks, coords: oppositeCoords, delay: pixel.delay}) + } + } + //go through all timers + for (let index in pixel.timers) { + let timer = pixel.timers[index] + if (timer.start == pixelTicks-pixel.delay) { + if (isEmpty(timer.coords.x, timer.coords.y, true)) continue; + pixelMap[timer.coords.x][timer.coords.y].charge = 1 + pixel.timers.splice(index, 1) + } + } + + }, + onSelect: () => { + TimerDelay = prompt("what shall the delay be? (in ticks)", 100) + }, + colorOn: "#ffff59", + category: "machines", + tempHigh: 1455.5, + stateHigh: "molten_steel", + conduct: 0, + properties: { + timers: [], + delay: 100 + } + }; + +//ExtraMachines +elements.titanium = { + desc: "Another metal that does not erode nor conduct electricity", + conduct: 0, + color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], + tempHigh:3000, + stateHigh: "molten_titanium", + category: "solids", + state: "soild", + hardness: 1, + density: 792, + behavior: behaviors.WALL, +}; + +elements.molten_titanium = { + desc: "Melted version of titanium", + temp : 3000, + conduct: 0, + color: ["#d16e04","#FFCC99","#FF6600","#FF7F50","#DC143C","#800020"], + tempLow:2999, + stateLow: "titanium", + category: "states", + state: "soild", + density: 792, + behavior: behaviors.MOLTEN, +}; +textures.Reniforced_Titanuim = { + REINFORCEDTITANIUM: [ + "GiGgggGiGGg", + "gggGGGGgggg", + "iiiiiiiiiii", + "GgGGggggGGg", + "GggGGgggGGg", + "igGGGgggggi", + "GggggggGGGG", + "GggGGgggggg", + "Ggggggggggg", + "ggggggGGggg", + "Ggggggggggg", + "iiiiiiiiiii",], + + +}; + +elements.Reniforced_Titanuim = { + color: "#787878", + colorPattern: textures.Reniforced_Titanuim.REINFORCEDTITANIUM, + colorKey: { + "g": "#787878", + "G": "#606060", + "i": "#332f2f"}, + behavior: behaviors.WALL, + + tempHigh: 4000, + stateHigh : "molten_titanium", + category: "solids", + state: "solid", + density: 5000, + hardness:1, + noMix: true +}; +