sandboxels/mods/flying_fish.js

49 lines
2.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

elements.flying_fish = {
color: ["#0077be", "#00aaff"], // Цвета для летающей рыбы
behavior: [
"SW:water AND M2%10|M2%10|SW:water AND M2%10", // Может прыгать в воздух и возвращаться в воду
"SW:water|XX|SW:water", // Движение влево и вправо в воде
"SW:water AND M1%10|M1%10|SW:water AND M1%10" // Лёгкое спускание, если в воздухе
],
category: "life", // Категория, в которой будет находиться элемент
state: "liquid", // Условное состояние рыбы
density: 997, // Плотность, близкая к воде
tempHigh: 50, // Температура, при которой рыба погибает
stateHigh: "meat",
tempLow: -10, // Температура, при которой рыба замерзает
stateLow: "frozen_fish",
reactions: {
"fire": {elem1: "meat"}, // Рыба "сгорает" при контакте с огнём
"acid": {elem1: null } // Рыба исчезает в кислоте
},
properties: {
energy: 100, // Энергия рыбы, уменьшается со временем
},
tick: function(pixel) {
// Уменьшение энергии
pixel.energy -= 0.1;
// Если энергия исчерпана, рыба превращается в "мертвую рыбу"
if (pixel.energy <= 0) {
changePixel(pixel, "dead_fish");
}
// Восстановление энергии в воде
if (pixel.currentState === "water") {
pixel.energy += 0.5;
}
// Поведение прыжков: при контакте с водой рыбка "прыгает" в воздух
if (pixel.y < height - 1 && isEmpty(pixel.x, pixel.y + 1)) {
pixel.energy += 0.2; // Лёгкое восстановление энергии
}
},
};
elements.dead_fish = {
color: "#555555", // Серый цвет для мертвой рыбы
behavior: behaviors.STATIC, // Никакого движения
category: "life", // Категория остаётся той же
state: "solid", // Мёртвая рыба становится твёрдой
density: 1100, // Немного плотнее воды
};