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

Добыча

Копать умеют не все и не всё, и копают с места — дотянуться до клетки юнит должен сам

тик 0
Связь с юнитом0
тип
Контроль юнита1
типxy
Информация2
=
у
Информация3
=
у
Информация4
=
у
@counter0number
грузnullnull
чегоnullnull
копаетnullnull
ubind @mono
ucontrol mine 9 4 0 0 0

Моно дотягивается до руды лучом и начинает копать: копает становится единицей, груз растёт, чего показывает медь. Секунд за девять юнит наберёт свои двадцать — больше в него не влезет — и добыча прекратится сама.

Поле Что в нём
первое mine
второе и третье клетка с рудой, а не предмет
остальные не используются

В полях стоят координаты, а не предмет: юнит копает конкретную клетку, а не «медь вообще». Найти такую клетку умеет ulocate ore: он отдаёт координаты ближайшей руды нужного вида.

У каждого юнита есть уровень добычи, а у каждой руды — твёрдость. Руда твёрже уровня — команда тихо ничего не сделает:

Юнит Уровень Что берёт Мест под груз
Моно 1 песок, металлолом, медь, свинец 20
Поли 2 и ещё уголь 30
Мега 3 и ещё титан 60
Кинжал, вспышка нет ничего

Твёрдость руды: песок и металлолом — ноль, медь и свинец — единица, уголь — двойка, титан — тройка, торий — четвёрка. Юнит берёт всё, что не твёрже его уровня, и торий в этом списке не достаётся никому: до него нужен уровень четыре.

Когда груз заполнен, добыча останавливается. Юнит так и остаётся на месте, пока его не разгрузят, — сам он никуда не полетит.

Поэтому добывающая программа — это всегда пара «копать — отвезти»:

ubind @mono
sensor груз @unit @totalItems
jump 5 greaterThanEq груз 20
ucontrol mine 9 4 0 0 0
end
ucontrol move 4 4 0 0 0
ucontrol itemDrop container1 20 0 0 0

Пока трюм не полон — копаем; наполнился — летим к складу и сдаём. Никакого «прекратить добычу» отдавать не надо: команда движения отменяет её сама.

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