Предметы: взять и отдать
Юнит — это переносная ячейка склада: один вид предмета, немного мест и обязательная задержка между рейсами
ucontrol itemTake container1 @copper 10 0 0Поли забирает медь из склада: груз растёт, вСкладе убывает. Когда юнит набьётся
доверху — а у поли тридцать мест, — взятие перестанет что-либо менять.
| Поле | itemTake |
itemDrop |
|---|---|---|
| второе | откуда брать: здание | куда сдавать: здание |
| третье | какой предмет | сколько отдать |
| четвёртое | сколько взять | — |
Разница в полях не случайна: брать можно только один вид предмета, и какой — надо сказать; а отдаёт юнит то, что у него есть, — выбирать не из чего.
Три правила передачи
Заголовок раздела «Три правила передачи»Только вплотную. Передача работает в радиусе около шести клеток от здания — примерно
столько же, сколько игрок может перетащить руками. Юнита сначала подводят move,
и только потом командуют передачу.
Не чаще, чем раз в полторы секунды. Между двумя передачами одного юнита проходит 90 тиков. Команда, отданная раньше, просто ничего не сделает: ни ошибки, ни половинной передачи.
Только своё. Чужой склад юниту не отдаст и не примет — команда тихо ничего не сделает.
Юнит везёт один вид предмета
Заголовок раздела «Юнит везёт один вид предмета»У юнита, в отличие от склада, одно место под груз: он несёт медь или графит, но не то и другое сразу. Взяли медь, а потом попробовали взять графит — графита не будет.
| Свойство | Что отдаёт |
|---|---|
@totalItems |
сколько несёт всего |
@firstItem |
что именно несёт: @copper, @graphite или пустота |
@itemCapacity |
сколько влезает: у поли 30, у моно 20, у меги 60 |
Полный рейс
Заголовок раздела «Полный рейс»Вот программа-перевозчик целиком. Она смотрит на груз и решает, куда лететь: пустой — на склад за медью, полный — к получателю.
ubind @polysensor груз @unit @totalItemsjump 6 greaterThanEq груз 30ucontrol move 5 4 0 0 0ucontrol itemTake container1 @copper 30 0 0enducontrol move 15 4 0 0 0ucontrol itemDrop container2 30 0 0 0Три рейса — и девяносто меди переехали во второй склад. Заметьте, что ни within,
ни ожидания здесь нет вовсе: команда передачи отдаётся каждую итерацию и срабатывает
сама, как только юнит долетит и пройдёт задержка. Такой перевозчик короче и надёжнее, чем
программа, которая честно ждёт прибытия.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.