From c0605dc9654ff3cc5e4d4bbf20447dc8626d00ef Mon Sep 17 00:00:00 2001 From: Daniil200707 <128793965+Daniil200707@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:58:36 +0200 Subject: [PATCH] flying_fish.js Add mod of flying fish --- mods/flying_fish.js | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 mods/flying_fish.js diff --git a/mods/flying_fish.js b/mods/flying_fish.js new file mode 100644 index 00000000..24497448 --- /dev/null +++ b/mods/flying_fish.js @@ -0,0 +1,49 @@ +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, // Немного плотнее воды +}; \ No newline at end of file