Перейти к содержимому

Explosion

Урон без источника: ни турели, ни пули — просто в точке карты что-то взорвалось

тик 0
Прыжок -> 30
если
Взрыв1
командаxyрадиусуронвоздушныйназемныйпробиваетэффект
Установить2
=
Найти3
типрезультаткомандаиндексextra
Стоп4
@counter0number
взорвалиnullnull
враговnullnull
explosion @sharded 10 5 3 200 1 1 0 0

Один раз — и вражеского кинжала на клетке 10 5 больше нет: врагов падает с двух до одного. Второй, который стоял в стороне, цел — радиус до него не дотянулся.

Поле Что в нём
первое чей взрыв: его своим не заденет
второе и третье точка в клетках
четвёртое радиус в клетках
пятое урон
шестое и седьмое бить ли по воздуху и по земле
восьмое пробивать ли: бить всех насквозь или только первого
девятое показывать ли вспышку

Первое поле — не «кого бить», а чей это взрыв. Пострадают все, кто не в этой команде.

explosion @sharded 10 5 3 200 1 1 0 0 # ваш взрыв, бьёт врагов
explosion @crux 10 5 3 200 1 1 0 0 # вражеский, бьёт вас

Перепутать легко, и ошибка получается тихая: программа исправно взрывает, а цель стоит целёхонька — просто взрыв оказался «её собственный».

Взрыв — инструмент сценария, и нужен он там, где урон должен случиться без причины:

  • ловушки и мины на карте: игрок наступил в запретную зону — взрыв;
  • события: метеорит, обвал, диверсия;
  • наказание за нарушение правила сценария — например, за постройку в запретной области;
  • добивание: сценарий хочет, чтобы волна закончилась именно сейчас.
query circle unit @crux 10 5 3 0
sensor сколько @queries @size
jump 0 equal сколько 0
explosion @sharded 10 5 3 200 1 1 0 0

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.