sandboxels/mods/flying_fish.js

49 lines
2.4 KiB
JavaScript
Raw Permalink Normal View History

2025-01-06 07:58:36 -05:00
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, // Немного плотнее воды
};