49 lines
2.4 KiB
JavaScript
49 lines
2.4 KiB
JavaScript
|
|
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, // Немного плотнее воды
|
|||
|
|
};
|