2024-10-05 11:53:31 -04:00
|
|
|
elements.soul = {
|
|
|
|
|
color: "#87fff9",
|
|
|
|
|
tick: function(pixel) {
|
|
|
|
|
if (pixel.y <= 1) { deletePixel(pixel.x,pixel.y); return; }
|
|
|
|
|
if (Math.random() < 0.05) {
|
|
|
|
|
if (!tryMove(pixel,pixel.x,pixel.y-1)) {
|
|
|
|
|
if (!isEmpty(pixel.x,pixel.y-1,true)) {
|
|
|
|
|
var hitPixel = pixelMap[pixel.x][pixel.y-1];
|
|
|
|
|
if (elements[hitPixel.element].movable) {
|
|
|
|
|
swapPixels(pixel,hitPixel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var dir = pixel.flipX ? -1 : 1;
|
|
|
|
|
if (!pixel.stage) {
|
|
|
|
|
if (Math.random() < 0.25) {
|
|
|
|
|
if (!tryMove(pixel,pixel.x+dir,pixel.y-( Math.random() < 0.33 ? 1 : 0 ))) {
|
|
|
|
|
pixel.flipX = !pixel.flipX;
|
|
|
|
|
}
|
|
|
|
|
if (Math.random() < 0.1) {
|
|
|
|
|
pixel.stage = 1;
|
|
|
|
|
pixel.flipX = Math.random() < 0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (pixel.stage === 1) {
|
|
|
|
|
if (!tryMove(pixel,pixel.x+dir,pixel.y+1)) { pixel.flipX = !pixel.flipX; }
|
|
|
|
|
if (Math.random() < 0.25) {
|
|
|
|
|
pixel.stage = 2;
|
|
|
|
|
pixel.flipX = Math.random() < 0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (pixel.stage === 2) {
|
|
|
|
|
if (Math.random() < 0.25) {
|
|
|
|
|
var dirX = Math.floor(Math.random() * (2 - -1) + -1);
|
|
|
|
|
var dirY = Math.floor(Math.random() * (2 - -1) + -1);
|
|
|
|
|
tryMove(pixel,pixel.x+dirX,pixel.y+dirY);
|
|
|
|
|
}
|
|
|
|
|
if (Math.random() < 0.01) {
|
|
|
|
|
pixel.stage = 0;
|
|
|
|
|
pixel.flipX = Math.random() < 0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!pixel.glow) {
|
|
|
|
|
if (Math.random() < 0.25) { pixel.glow = true; }
|
|
|
|
|
}
|
|
|
|
|
else if (Math.random() < 0.01) {
|
|
|
|
|
pixel.glow = false;
|
2024-10-05 19:05:32 -04:00
|
|
|
delete pixel.glow;
|
2024-10-05 11:53:31 -04:00
|
|
|
}
|
|
|
|
|
if (Math.random() < 0.0002 && isEmpty(pixel.x,pixel.y+1)) {
|
|
|
|
|
createPixel("ectoplasm",pixel.x,pixel.y+1);
|
|
|
|
|
}
|
|
|
|
|
if (Math.random() < 0.001) {
|
|
|
|
|
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)) {
|
|
|
|
|
createPixel("flash",x,y);
|
|
|
|
|
pixelMap[x][y].temp = -10;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
doDefaults(pixel);
|
|
|
|
|
},
|
|
|
|
|
reactions: {
|
|
|
|
|
"light_bulb": { charged:true, elem2:"explosion" },
|
2025-12-18 16:22:56 -05:00
|
|
|
"led": { charged:true, elem2:"explosion" },
|
2024-10-05 11:53:31 -04:00
|
|
|
"wire": { charge2:1, chance:0.05 },
|
|
|
|
|
"body": { attr2:{"panic":20} },
|
|
|
|
|
"proton": { elem1:null },
|
|
|
|
|
},
|
|
|
|
|
temp: -10,
|
|
|
|
|
hardness: 100,
|
|
|
|
|
flippableX: true,
|
|
|
|
|
glow: true,
|
|
|
|
|
state: "gas",
|
|
|
|
|
density: 1000,
|
|
|
|
|
ignoreAir: true,
|
|
|
|
|
category: "life",
|
|
|
|
|
insulate: true,
|
2025-01-04 13:10:02 -05:00
|
|
|
hidden: true,
|
|
|
|
|
emit: 3
|
2024-10-05 11:53:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elements.ectoplasm = {
|
|
|
|
|
color: ["#ADF9E7","#c1fbed"],
|
|
|
|
|
behavior: behaviors.LIQUID,
|
|
|
|
|
tick: function(pixel) {
|
|
|
|
|
if (pixel.temp >= -10 && Math.random() < 0.01 && pixelTicks-pixel.start > 100) {
|
|
|
|
|
deletePixel(pixel.x,pixel.y)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
reactions: {
|
2024-10-05 12:18:24 -04:00
|
|
|
"body": { attr2:{"panic":20} },
|
|
|
|
|
"rock_wall": { elem1:null, elem2:"tombstone" }
|
2024-10-05 11:53:31 -04:00
|
|
|
},
|
|
|
|
|
temp: -10,
|
|
|
|
|
category: "liquids",
|
|
|
|
|
state: "liquid",
|
|
|
|
|
density: 0.0001,
|
|
|
|
|
ignoreAir: true,
|
|
|
|
|
insulate: true,
|
|
|
|
|
viscosity: 1666,
|
|
|
|
|
hardness: 100,
|
2025-01-04 13:10:02 -05:00
|
|
|
hidden: true,
|
|
|
|
|
emit: 2
|
2024-10-05 11:53:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elements.head.breakInto = "soul";
|
|
|
|
|
elements.head.burnInto = "soul";
|
|
|
|
|
elements.head.stateHigh = "soul";
|
|
|
|
|
elements.head.stateLow = "soul";
|
|
|
|
|
elements.head.onDelete = function(pixel) {
|
Version 1.10.2 - December 15, 2024 - Birthday III
[Version 1.10.2 - December 15, 2024 - Birthday III]
+ Cheese Powder, from breaking Cheese
+ Chocolate Powder, from breaking Chocolate
[Changes]
~ Drawing lines shows a preview of pixel placement
~ Updated Brick texture for better shading
~ LEDs, Light Bulbs, and Fireflies can be painted
+ Humans panic when seeing dangerous things, like Fire
+ Humans change direction after hitting walls
~ Humans eat more consistently
~ Humans have a panic limit
~ Humans no longer eat Human meat
~ Smash tool moves pixels if they can't be broken
+ Steam decomposes at extreme temperatures
+ Ruins has a Brick texture
~ Brick Rubble no longer breaks into Dust
~ Recolored Brick Rubble
+ Glass has a light border
~ Fancy textures have grain, besides Glass
+ Rock Wall can be made by gluing Rocks
+ Brick can be made by gluing Brick Rubble
+ Mudstone can be made by gluing Dirt
+ Packed Sand can be made by Sand
+ Sponges can dry Mud and Wet Sand
+ Clay can be made by dissolving Wet Sand in Acid
+ Cement can be made with Clay and Quicklime
~ Quicklime no longer turns into Limestone on its own
+ Plastic breaks into Beads
+ Charcoal slowly stains solids
+ Animals can spawn Eggs or offspring in Water
+ Seeds planted under soil will rise
+ Birds eat Spiders and their Webs
+ Rocks destroy Webs
+ Frogs release Steam when cooked
+ Worms break down Fiber
~ Worms compost some Sawdust into Dirt
+ Soap kills Snails and Slugs
+ Soap removes Slime
+ Alcohol kills Flower Pistils
+ Mercury kills Algae
~ Sap boils into some Steam
~ Bread is less flammable
+ Ammonia affects Wheat
+ Poison dirties Salt Water, Sugar Water, and Seltzer
+ Water on burning Oil will explode
+ Bleach reacts with Nut Oil and Grease
+ Baking Soda reacts with Soap
+ Copper Sulfate kills Spiders
+ Copper Sulfate stains Zinc
+ Bless removes Heat Ray
+ Plague makes Heads green
+ Plague destroys Skin
+ Hair absorbs some Water
~ Breaking Balloons makes some Pop
~ Cheese flows slower
~ Coffee Grounds in Milk brew into Coffee instead
~ Mushroom Spores no longer break
~ Acid Clouds don't precipitate when too hot or cold
~ Border can be painted
~ Tweaked Charcoal heat color
~ Moved Light Bulb to after LEDs
+ Midas Touch turns Paper green
~ Midas Touch turns Humans into solid Gold instead of Coins
+ Wall alias 'Solid'
+ Mayo alias 'Mayonnaise'
+ Alcohol alias 'Ethanol'
+ Unbreakable elements are clarified in element info
~ Screenshots download with name of current save
~ Pixel count turns red when all canvas sizes are full
~ Log messages have a black shadow to read on bright backgrounds
~ TPS dialog displays minimum and maximum
[Bug Fixes]
~ Fixed: Replace Mode causes pixels to float while placing
~ Fixed: Detached Heads and dead Humans can eat food
~ Fixed: Pixel alpha isn't set from element properties on creation
~ Fixed: Molten Thermite continues to heat when not burning
~ Fixed: Prop tool can't set value when existing value is null
~ Fixed: Unbreakable pixels can burn away when using Prop tool (Perma-burning!!!)
~ Fixed: Pixels with burnt states never burn when using Prop tool
~ Fixed: Prop tool doesn't retain "0" value on next dialog
~ Fixed: Prop tool doesn't handle changing "x" and "y" properties
~ Fixed: Placing Fire on insulative pixels heats them
~ Fixed: Burning heats insulative pixels
~ Fixed: Rays, Bless, Radiation, and some Bombs change insulative pixel temperature
~ Fixed: Stink Bugs aren't properly killed by Frogs, Sap, Copper Sulfate, and Borax
~ Fixed: Erasing with Lookup selected will only erase 1x1
~ Fixed: Erasing fast with Pick or Lookup selected will leave gaps
~ Fixed: Hail doesn't conduct heat
~ Fixed: Hail cannot break solids without a defined state
~ Fixed: Breaking Humans eventually creates Sand and Cement
~ Fixed: Element buttons arranged in weird columns after certain issues
~ Fixed: Ball doesn't have density and floats on gases
[Technical]
+ BORDER render preset
+ 'grain' element property
+ 'toolHoverStat' element property, function that takes the hovered pixel while selected
+ 'buttonColor' element property
~ Humans now eat any element with true 'isFood' property
~ Pixels with 0% alpha won't appear in Basic View
~ LEDs with 0% alpha will only appear when powered
+ releaseElement function has option to replace liquids
~ Fixed: lineCoords function returns duplicate values
+ empty.js mod for browser JavaScript overriding
2024-12-15 11:45:52 -05:00
|
|
|
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) && pixelMap[x][y].panic !== undefined) {
|
|
|
|
|
pixelMap[x][y].panic += 20;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-05 11:53:31 -04:00
|
|
|
releaseElement(pixel,"soul");
|
|
|
|
|
}
|
|
|
|
|
elements.head.onChange = function(pixel,element) {
|
Version 1.10.2 - December 15, 2024 - Birthday III
[Version 1.10.2 - December 15, 2024 - Birthday III]
+ Cheese Powder, from breaking Cheese
+ Chocolate Powder, from breaking Chocolate
[Changes]
~ Drawing lines shows a preview of pixel placement
~ Updated Brick texture for better shading
~ LEDs, Light Bulbs, and Fireflies can be painted
+ Humans panic when seeing dangerous things, like Fire
+ Humans change direction after hitting walls
~ Humans eat more consistently
~ Humans have a panic limit
~ Humans no longer eat Human meat
~ Smash tool moves pixels if they can't be broken
+ Steam decomposes at extreme temperatures
+ Ruins has a Brick texture
~ Brick Rubble no longer breaks into Dust
~ Recolored Brick Rubble
+ Glass has a light border
~ Fancy textures have grain, besides Glass
+ Rock Wall can be made by gluing Rocks
+ Brick can be made by gluing Brick Rubble
+ Mudstone can be made by gluing Dirt
+ Packed Sand can be made by Sand
+ Sponges can dry Mud and Wet Sand
+ Clay can be made by dissolving Wet Sand in Acid
+ Cement can be made with Clay and Quicklime
~ Quicklime no longer turns into Limestone on its own
+ Plastic breaks into Beads
+ Charcoal slowly stains solids
+ Animals can spawn Eggs or offspring in Water
+ Seeds planted under soil will rise
+ Birds eat Spiders and their Webs
+ Rocks destroy Webs
+ Frogs release Steam when cooked
+ Worms break down Fiber
~ Worms compost some Sawdust into Dirt
+ Soap kills Snails and Slugs
+ Soap removes Slime
+ Alcohol kills Flower Pistils
+ Mercury kills Algae
~ Sap boils into some Steam
~ Bread is less flammable
+ Ammonia affects Wheat
+ Poison dirties Salt Water, Sugar Water, and Seltzer
+ Water on burning Oil will explode
+ Bleach reacts with Nut Oil and Grease
+ Baking Soda reacts with Soap
+ Copper Sulfate kills Spiders
+ Copper Sulfate stains Zinc
+ Bless removes Heat Ray
+ Plague makes Heads green
+ Plague destroys Skin
+ Hair absorbs some Water
~ Breaking Balloons makes some Pop
~ Cheese flows slower
~ Coffee Grounds in Milk brew into Coffee instead
~ Mushroom Spores no longer break
~ Acid Clouds don't precipitate when too hot or cold
~ Border can be painted
~ Tweaked Charcoal heat color
~ Moved Light Bulb to after LEDs
+ Midas Touch turns Paper green
~ Midas Touch turns Humans into solid Gold instead of Coins
+ Wall alias 'Solid'
+ Mayo alias 'Mayonnaise'
+ Alcohol alias 'Ethanol'
+ Unbreakable elements are clarified in element info
~ Screenshots download with name of current save
~ Pixel count turns red when all canvas sizes are full
~ Log messages have a black shadow to read on bright backgrounds
~ TPS dialog displays minimum and maximum
[Bug Fixes]
~ Fixed: Replace Mode causes pixels to float while placing
~ Fixed: Detached Heads and dead Humans can eat food
~ Fixed: Pixel alpha isn't set from element properties on creation
~ Fixed: Molten Thermite continues to heat when not burning
~ Fixed: Prop tool can't set value when existing value is null
~ Fixed: Unbreakable pixels can burn away when using Prop tool (Perma-burning!!!)
~ Fixed: Pixels with burnt states never burn when using Prop tool
~ Fixed: Prop tool doesn't retain "0" value on next dialog
~ Fixed: Prop tool doesn't handle changing "x" and "y" properties
~ Fixed: Placing Fire on insulative pixels heats them
~ Fixed: Burning heats insulative pixels
~ Fixed: Rays, Bless, Radiation, and some Bombs change insulative pixel temperature
~ Fixed: Stink Bugs aren't properly killed by Frogs, Sap, Copper Sulfate, and Borax
~ Fixed: Erasing with Lookup selected will only erase 1x1
~ Fixed: Erasing fast with Pick or Lookup selected will leave gaps
~ Fixed: Hail doesn't conduct heat
~ Fixed: Hail cannot break solids without a defined state
~ Fixed: Breaking Humans eventually creates Sand and Cement
~ Fixed: Element buttons arranged in weird columns after certain issues
~ Fixed: Ball doesn't have density and floats on gases
[Technical]
+ BORDER render preset
+ 'grain' element property
+ 'toolHoverStat' element property, function that takes the hovered pixel while selected
+ 'buttonColor' element property
~ Humans now eat any element with true 'isFood' property
~ Pixels with 0% alpha won't appear in Basic View
~ LEDs with 0% alpha will only appear when powered
+ releaseElement function has option to replace liquids
~ Fixed: lineCoords function returns duplicate values
+ empty.js mod for browser JavaScript overriding
2024-12-15 11:45:52 -05:00
|
|
|
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) && pixelMap[x][y].panic !== undefined) {
|
|
|
|
|
pixelMap[x][y].panic += 20;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-05 11:53:31 -04:00
|
|
|
if (element !== "soul") {
|
|
|
|
|
releaseElement(pixel,"soul");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elements.bless.reactions.soul = { elem2:"human" }
|
|
|
|
|
elements.bless.reactions.ectoplasm = { elem2:null }
|
2024-10-05 12:21:28 -04:00
|
|
|
elements.bless.reactions.tombstone = { elem2:"rock_wall" }
|
2024-10-05 11:53:31 -04:00
|
|
|
|
|
|
|
|
elements.tombstone = {
|
|
|
|
|
color: ["#5f5f5f","#434343","#282828"],
|
|
|
|
|
behavior: [
|
|
|
|
|
"XX|CR:soul%0.01|XX",
|
|
|
|
|
"CR:soul%0.01|XX|CR:soul%0.01",
|
|
|
|
|
"XX|XX|XX",
|
|
|
|
|
],
|
|
|
|
|
category:"special",
|
|
|
|
|
tempHigh: 950,
|
|
|
|
|
stateHigh: "magma",
|
|
|
|
|
state: "solid",
|
|
|
|
|
density: 2550,
|
|
|
|
|
hardness: 0.5,
|
|
|
|
|
breakInto: ["rock","rock","rock","rock","soul","ectoplasm"],
|
|
|
|
|
onStateHigh: function(pixel) {
|
|
|
|
|
releaseElement(pixel,"soul");
|
|
|
|
|
},
|
|
|
|
|
buttonGlow: "#87fff9"
|
|
|
|
|
}
|