Skip to content

Releases: zentixua/advent-bombs

5.0 | Считаем вектор только когда требуется

08 May 10:56
Compare
Choose a tag to compare
  • Теперь вектор обновляется только при смене State ракеты + при смене Y самой высокой локации на локации-цели.
  • Сократил код, где мы проверяем State ракеты (заменил на функции Is... для каждого State)
  • Переименовал setTargetLocation(Location target_location) на setTargetLocation(Location targetLocation).

4.9 | + Параметр в конфиг

02 May 09:24
Compare
Choose a tag to compare
  • Новый параметр - alarm.sound_play_interval. Обозначает задержку между проигрыванием звука сирены воздушной тревоги. Как обычно, в секундах.
  • Переменные типа Interger из ConfigManager заменил на тип int. Смысла от Interger не вижу.

4.8 | Улучшение тревоги

01 May 08:42
Compare
Choose a tag to compare
  • Теперь проверка на кол-во ракет в воздухе делается прямо в раннабле воздушной тревоги. На будущее так лучше. Если их стаёт 0 - тревога отменяется.
  • Храню в списке теперь не экземпляр RocketRunnable, а саму ракету (Rocket). Простое действие, а в будущем позволит глобально делать всякое со всеми ракетами в полёте.
  • Движение распределено по методам (с Y/без)
  • Y целевой локации теперь обновляется в начале функции move(). В некоторых ситуациях сделает движение ракеты более предсказуемым и правильным.
  • differenceX и differenceZ в RocketLogic теперь тоже типа double, как и FLYING_ROCKET_SPEED. Добавляет точности.

4.7 | Реврайт типов ракет

29 Apr 16:28
Compare
Choose a tag to compare
  • Теперь каждая ракета, как это и положено, имеет свой класс с её конкретной логикой. Но и есть класс, который обозначает дефолтную логику полёта, и на данный момент отличие есть только при взрывах. На будущее, если что, эти дефолтные функции полёта можно будет переназначать спокойно для ракеты, если потребуется.
  • Переименовал класс и package, в связи с изменениями выше переместил некоторые классы в другой package.
  • Все параметры ракеты теперь в классе Rocket, даже мощность взрыва. Логично.
    На будущее так лучше!

4.6

28 Apr 15:09
Compare
Choose a tag to compare
4.6
  • Все задачи, которые должны были запускаться каждый такт теперь не имеют период 0, а 1. Так правильнее и возможно на что-то влияет.

4.5 | Несколько улучшений

28 Apr 07:01
Compare
Choose a tag to compare
  • Мини-фикс аварийного снижения, если DISTANCE_TO_MOVE_WITH_Y не был достигнут (например, в конфиге стоит 0, ракета не смогла бы спуститься). И я это давно исправил проверкой на схожесть X и Z, но теперь сравнение происходит со значением скорости обычного полёта ракеты (FLYING_ROCKET_SPEED), а не постоянным значением 3.
  • Фикс проигрывания звуков: теперь это не раннабла и проигрывание происходит немедленно, + это всё теперь в одном классе. Удобнее, зачем излишки в таком случае?
  • Блоки else-if для движения ракет сделал компактнее (вместо двух "похожих" блоков else-if сделал один блок else). Логика полёта не изменилась.
  • Добавил необязательную в текущей реализации часть условия !isFlying() в блок, который поднимает ракету до высоты полёта. Так в любом случае правильнее.

4.4 | findPath() по-новому

27 Apr 10:04
Compare
Choose a tag to compare
  • Фулл рефакторинг функции findPath(). Теперь с использованием API bukkit`а для работы с вектором.
  • В связи с первым изменением нашёл баг в старой реализации (таки просто установить нулевой Y вектору не есть корректно), потому теперь постройка вектора для ракеты БЕЗ состояния снижения происходит от локации ракеты до целевой локации, у которой Y == Y`ку ракеты.
  • Создаю эффекты полёта ракеты теперь в любом случае (в начале функции).
  • Фикс бесконечности распространения скалка (спавна невидимого моба) при нулевой мощности.

Ещё добавил такой комментарий в конфиг и вам сюда продублирую: "ВНИМАНИЕ! Устанавливать высокие значения в параметрах ракеты НЕ рекомендуется! Это может привести к проблемам. Ясно, окей? Спасибо."))0)

4.3 | Улучшения

25 Apr 13:18
Compare
Choose a tag to compare
  • Переименовал класс логики ракеты.
  • Переименовал функцию проверки, находится ли ракета в состоянии движения с учётом Y.
  • Чуть улучшил логику на этапе взлёта ракеты (сделал одно условие отдельным, что бы оно не входило в if-else блок и ракета сразу же смещалась).
  • Улучшил функцию findPath(), которая считает вектор полёта ракеты. Можно сказать, упростил немного!
  • Теперь условие дистанции до цели, при котором взрывается ракета прямо зависит от move_with_y_speed (от шага смещения позиции ракеты при каждом запуске её задачи). Таким образом, ракета 100% сдетонирует даже если запустить её в бездну.
  • Теперь ракета может взорваться на самом старте, если она находится в блоке или превысила максимальную длительность полёта (вдруг вы максимум 0 поставили). В текущей реализации эта проверка не нужна, а раньше была нужна.

4.2 | Снова новые параметры в конфиг!

24 Apr 17:40
Compare
Choose a tag to compare
  • 4 новых параметра в конфиг -
  flying_speed
  move_up_speed
  move_with_y_speed
  max_fly_duration
  • Фикс дефолтного сообщения о детонации скалковой бомбы (не совсем корректное содержание). Писало, что ракета достигла цели по дефолту, хотя она ведь могла просто врезаться в блок. Теперь, как и у ядерной - "произвела детонацию".

4.1 | Дополнение конфига

24 Apr 16:03
Compare
Choose a tag to compare
  • Отсортировал переменные для улучшения читаемости кода в ConfigManager
  • Добавлена конфигурация длительности блокировки
  • Добавлена конфигурация длительности кулдауна на команды пуска ракет
  • Некоторые улучшения касательно /rocket reload.
  • Исправление ConcurrentModificationException путём использования итератора в RadiationEffect.
  • Фини-улучшение подгрузки кулдауна в коде