Merge branch 'master' of https://github.com/Anuken/Mindustry into adjacent-campaign-sectors

This commit is contained in:
Anuken
2025-05-15 22:09:17 -04:00
50 changed files with 147 additions and 40 deletions
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nIf the success result variable is [accent]@wait[],\nwill wait until the previous message finishes.\nOtherwise, outputs whether displaying the message succeeded.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Създава експлозия на избрано място
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Поставяне на правило за игра.
lst.flushmessage = Извежда съобщение на екрана от текстовия буфер.\nИзчаква до приключването на предишното съобщение.
lst.cutscene = Манипулира камерата на играча.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Crea una explosió en una posició.
lst.setrate = Estableix la velocitat dexecució del processador en instruccions/tic.
lst.fetch = Cerca unitats, nuclis, jugadors o estructures mitjançant el seu índex.\nEls índexs van des del 0 fins al total del nombre delements.
lst.packcolor = Empaqueta els components RGBA [0, 1] en un sol nombre per a dibuixar o establir regles.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Estableix una regla de la partida.
lst.flushmessage = Mostra un missatge a la pantalla a partir dels continguts de la cua de text.\nEsperarà fins que acabi el missatge anterior.
lst.cutscene = Manipula la càmera del jugador.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Erstellt an einer beliebigen Stelle eine Explosion.
lst.setrate = Setzt die Ausführungsgeschwindigkeit von Prozessoren in Anweisungen/tick.
lst.fetch = Finde Einheiten, Kerne, Spieler oder Blöcke nach Zahl.\nZahlen fangen bei 0 an und hören bei dem jeweiligen Count auf.
lst.packcolor = Kombiniere [0, 1] RGBA Komponenten zu einer Zahl.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Setze eine Spielregel.
lst.flushmessage = Zeige eine Nachricht aus dem Textspeicher auf dem Bildschirm.\nWartet, bis die vorherige Nachricht wieder verschwindet.
lst.cutscene = Verschiebe die Spielerkamera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Crea una explosión en una localización.
lst.setrate = Establece la velocidad de ejecución de los procesadores lógicos en formato instrucción/tick.
lst.fetch = Busca unidades, núcleos, jugadores o estructuras por índice.\nLos índices comienzan en 0 y finalizan devolviendo el total que se ha contado.
lst.packcolor = Agrupa los componentes RGBA [0, 1] en un solo número para dibujar gráficos o establecer reglas.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Establece una regla de la partida.
lst.flushmessage = Muestra un mensaje en pantalla desde la lista de espera de texto.\nEsperará a que finalice el mensaje anterior.
lst.cutscene = Manipula la cámara del jugador.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Luo räjähdys tietyssä sijainnissa.
lst.setrate = Aseta prosessorin suoritusnopeus ohjeessa/sekunti.
lst.fetch = Etsi yksiköitä, ytimiä, pelaajia tai rakennuksia luettelon perusteella.\nLuettelo alkaa nollasta ja päättyy osiensa lukumäärän.
lst.packcolor = Pakkaa [0, 1] RGBA -komponentteja yhteen numeroon piirtämistä tai sääntöjen asettamista varten.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Aseta pelisääntö.
lst.flushmessage = Näytä näytöllä viesti tekstipuskurista.\nOdottaa, kunnes edellinen viesti loppuu.
lst.cutscene = Hallitse pelaajan kameraa.
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Crée une explosion à un emplacement.
lst.setrate = Définit la vitesse d'exécution d'un processeur en instructions/tick.
lst.fetch = Cherche les unités, noyaux, joueurs ou constructions par index. Commence à 0 et termine par le nombre retourné.
lst.packcolor = Compresse les composants RGBA [0, 1] en un seul nombre pour les opérations de dessins ou les changements de règles.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Change une règle du jeu.
lst.flushmessage = Affiche un message sur l'écran depuis la mémoire tampon de texte.\nAttendra la fin du message précédent avant l'affichage du nouveau.
lst.cutscene = Manipule la caméra du joueur.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Robbanás létrehozása az adott helyen.
lst.setrate = A processzor végrehajtási sebességének beállítása utasítás/órajelciklusban.
lst.fetch = Egységek, támaszpontok, játékosok, vagy épületek lekérdezése index szerint.\nAz indexek 0-tól indulnak és a visszaadott számuknál végződnek.
lst.packcolor = Egyetlen számba tömöríti a [0, 1] RGBA komponenseket a rajzoláshoz vagy szabálymeghatározáshoz.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Játékszabály beállítása.
lst.flushmessage = Üzenet megjelenítése a képernyőn a szövegpufferből. Ha a sikeres válasz változója [accent]@wait[],\nakkor, megvárja, amíg az előző üzenet befejeződik.\nMáskülönben a kimenet független attól, hogy az üzenet megjelenítése sikeres volt-e.
lst.cutscene = A játékos kamerájának mozgatása.
@@ -2488,6 +2488,7 @@ lst.explosion = Membuat sebuah ledakan pada lokasi yang ditentukan.
lst.setrate = Menentukan kecepatan eksekusi prosesor dalam instruksi per tick.
lst.fetch = Mencari unit, inti, pemain atau bangunan dari indeks.\nIndeks dimulai dari 0 dan berakhir pada jumlah yang dikembalikan.
lst.packcolor = Memadatkan [0, 1] komponen RGBA menjadi satu angka untuk menggambar atau rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Menentukan suatu peraturan permainan.
lst.flushmessage = Tampilkan sebuah pesan di layar dari antrian teks.\nAkan menunggu hingga pesan sebelumnya selesai.
lst.cutscene = Mengendalikan kamera pemain.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = ある場所で爆発を起こします。
lst.setrate = プロセッサーの実行速度を1命令/tickで設定します。
lst.fetch = ユニット、コア、プレイヤー、建物を番号で検索します。\n番号は0から始まり、返された回数で終わります。
lst.packcolor = [0, 1] RGBA 成分を1つの数値にまとめて、描画やルール設定に利用します。
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = ゲームルールを設定します。
lst.flushmessage = テキストバッファから画面にメッセージを表示します。\n前のメッセージが終了するまで待ちます。
lst.cutscene = プレイヤーのカメラを操作します。
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = 특정 위치에 폭발을 생성합니다.
lst.setrate = 프로세서 실행 속도를 틱당 연산량으로 설정합니다.
lst.fetch = 유닛, 코어, 플레이어 또는 건물을 엔티티 번호로 조회합니다.\n번호는 0에서 시작하여 엔티티 번호-1에서 끝납니다.
lst.packcolor = 그리기 혹은 규칙 설정을 위해 [0, 1] RGBA 단일 요소로 묶습니다.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = 게임 규칙을 설정합니다.
lst.flushmessage = 텍스트 버퍼로부터 화면에 메세지를 표시합니다.\n이전 메세지가 완료될 때까지 기다립니다.
lst.cutscene = 플레이어 카메라를 조작합니다.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Stwórz eksplozję w lokalizacji.
lst.setrate = Ustaw szybkość wykonywania procesora w instrukcjach/tick.
lst.fetch = Wyszukaj jednostki, rdzenie, graczy lub budynki według indeksu.\nIndeksy zaczynają się od 0 i kończą na ich zwróconej liczbie.
lst.packcolor = Spakuj [0, 1] komponenty RGBA w jedną liczbę do rysowania lub ustawiania reguł.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Ustaw zasady gry.
lst.flushmessage = Wyświetl wiadomość na ekranie z bufora tekstowego.\nPoczeka najpierw na zakończenie wyświetlania poprzedniej wiadomości.
lst.cutscene = Manipuluj kamerą gracza.
@@ -2488,6 +2488,7 @@ lst.explosion = Crie uma explosão em um local.
lst.setrate = Defina a velocidade de execução do processador em instruções/tick.
lst.fetch = Pesquise unidades, núcleos, jogadores ou edifícios por índice.\nOs índices começam em 0 e terminam na contagem retornada.
lst.packcolor = Empacote [0, 1] componentes RGBA em um único número para desenho ou configuração de regra.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Defina uma regra do jogo.
lst.flushmessage = Exibe uma mensagem na tela do buffer de texto.\nAguardará até que a mensagem anterior termine.
lst.cutscene = Manipule a câmera do jogador.
@@ -2488,6 +2488,7 @@ lst.explosion = Crie uma explosão em um local.
lst.setrate = Defina a velocidade de execução do processador em instruções/tick.
lst.fetch = Pesquise unidades, núcleos, jogadores ou edifícios por índice.\nOs índices começam em 0 e terminam na contagem retornada.
lst.packcolor = Empacote [0, 1] componentes RGBA em um único número para desenho ou configuração de regra.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Defina uma regra do jogo.
lst.flushmessage = Exibe uma mensagem na tela do buffer de texto.\nAguardará até que a mensagem anterior termine.
lst.cutscene = Manipule a câmera do jogador.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Создает взрыв на локации.
lst.setrate = Устанавливает скорость выполнения процессора в инструкциях/тиках.
lst.fetch = Ищет единицы, ядра, игроков или зданий по индексу.\nИндексы начинаются с 0 и заканчиваются возвращаемым числом.
lst.packcolor = Упаковывает компоненты RGBA [0, 1] в один номер для рисования или установки правил.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Устанавливает игровое правило.
lst.flushmessage = Отображает сообщение из текстового буфера на экране игрока.\nБудет ожидать окончание предыдущего сообщения.
lst.cutscene = Управляет камерой игрока.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Izazovi eksploziju na mestu.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Postavi pravilo igre.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = สร้างระเบิดที่ตำแหน่ง
lst.setrate = ตั้งค่าความเร็วการสั่งเป็นคำสั่งใน คำสั่ง/ติก
lst.fetch = ค้นหายูนิต แกนกลาง ผู้เล่น หรือสิ่งก่อสร้างตามดัชนี\nดัชนีเริ่มที่ 0 และจบที่ค่าที่จะส่งกลับ
lst.packcolor = แพ็ค [0, 1] ส่วนประกอบ RGBA มาเป็นเลขบรรทัดเดียวสำหรับการวาดหรือการตั้งค่ากฎ
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = ตั้งค่ากฎของเกม
lst.flushmessage = แสดงข้อความบนหน้าจอจากบัฟเฟอร์ข้อความ\nถ้าตัวแปรผลลัพธ์ออกมาเป็น [accent]@wait[]\nจะรอจนกว่าข้อความก่อนหน้าจะเสร็จสิ้น\nนอกจากนั้น จะส่งออกว่าการแสดงผลข้อความสำเร็จหรือไม่
lst.cutscene = ควบคุมมุมกล้องของผู้เล่น
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Create an explosion at a location.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Set a game rule.
lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
lst.cutscene = Manipulate the player camera.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Bir Noktada Patlama oluştur.
lst.setrate = İşlemci Hızını Ayarla (işlem/tick)
lst.fetch = Numara ile Merkez, Birim veya Oyuncu Ara.\nNumaralar, 0dan başlar ve birim sayısında biter.
lst.packcolor = Derle [0, 1] RGBA bileşenleri, çizim veya kural belirleme için tek bir sayıya dönüştürülür.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Bir Oyun Kuralı Ata.
lst.flushmessage = Ekranda bir yazı göster.\nBir önceki yazı kaybolana kadar bekler.
lst.cutscene = Oyuncu Kamerasını hareket ettir.
@@ -2488,6 +2488,7 @@ lst.explosion = Створює вибух у певному місці.
lst.setrate = Установлює швидкість виконання процесора в інструкціях за такт.
lst.fetch = Пошук одиниць, ядер, гравців або будівель за індексом.\nІндекси починаються з 0 і закінчуються на поверненій кількості.
lst.packcolor = Упаковує [0, 1] компоненти RGBA в єдине число для малювання або встановлення правил.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Установлює ігрове правило.
lst.flushmessage = Показує повідомлення на екрані з текстового буфера.\nЧекатиме, поки не закінчиться попереднє повідомлення.
lst.cutscene = Керує камерою гравця.
+1
View File
@@ -2488,6 +2488,7 @@ lst.explosion = Tạo ra một vụ nổ tại một vị trí.
lst.setrate = Đặt tốc độ thực thi khối xử lý theo chỉ lệnh/tích-tắc.
lst.fetch = Tra cứu các đơn vị, lõi, người chơi hoặc công trình bằng chỉ số.\nCác chỉ số bắt đầu từ 0 và kết thúc tại số lượng đếm của chúng.
lst.packcolor = Đóng gói màu thành phần RGBA [0, 1] thành một số đơn dùng cho vẽ hoặc thiết lập quy tắc.
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = Thiết đặt một quy tắc trò chơi.
lst.flushmessage = Hiển thị một tin nhắn trên màn hình từ bộ đệm văn bản.\nNếu giá trị [accent]thành công[] (success) trả về là [accent]@wait[],\nsẽ đợi cho đến khi tin nhắn trước đó hoàn tất.\nNgược lại, xuất ra liệu rằng tin nhắn đã hiển thị thành công.
lst.cutscene = Điều khiển máy quay của người chơi.
@@ -2488,6 +2488,7 @@ lst.explosion = 在某个位置生成爆炸。
lst.setrate = 在指令/时间刻的时间下设置处理器处理速度。
lst.fetch = 按索引查找单位、核心、玩家或建筑物\n索引从 0 开始,以其返回的计数结束。
lst.packcolor = 将 [0,1] 范围内的 RGBA 分量整合成单个数字,用于绘图或规则设置。
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = 设置地图规则。
lst.flushmessage = 在屏幕中央投影文字缓存区的内容\n会等待上一个文字显示结束。
lst.cutscene = 控制玩家游戏视角。
@@ -2488,6 +2488,7 @@ lst.explosion = 在某一位置製造爆炸
lst.setrate = 以指令/每時刻設置處理器速度
lst.fetch = 按索引查找單位、核心、玩家或建築物\n索引從 0 開始,以返回的計數結束
lst.packcolor = 將 [0, 1] 範圍內的 RGBA 分量合爲單個數字,用於繪圖或設置規則
lst.unpackcolor = Unpack RGBA components from a color that was packed using Pack Color.
lst.setrule = 設置遊戲規則
lst.flushmessage = 从文本緩存中讀取並於屏幕上顯示一條消息\n會等待上一條消息結束
lst.cutscene = 控制玩家鏡頭
@@ -147,7 +147,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
if(hasAll){
Call.beginPlace(self(), current.block, team, current.x, current.y, current.rotation);
if(current.block.instantBuild){
if(!net.client() && current.block.instantBuild){
if(plans.size > 0){
plans.removeFirst();
}
@@ -188,7 +188,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
//otherwise, update it.
if(current.breaking){
entity.deconstruct(self(), core, bs);
}else if(entity.current != null && entity.current.unlockedNowHost()){ //only allow building unlocked blocks
}else if(entity.current != null && (state.isEditor() || (state.rules.waves && team == state.rules.waveTeam && entity.current.isVisible()) || (entity.current.unlockedNowHost() && entity.current.environmentBuildable() && entity.current.isPlaceable()))){ //only allow building unlocked blocks
entity.construct(self(), core, bs, current.config);
}
@@ -35,7 +35,7 @@ import static mindustry.logic.GlobalVars.*;
@Component(base = true)
abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Syncc, Shieldc, Displayable, Ranged, Minerc, Builderc, Senseable, Settable{
private static final Vec2 tmp1 = new Vec2(), tmp2 = new Vec2();
static final float warpDst = 30f;
static final float warpDst = 20f;
@Import boolean dead, disarmed;
@Import float x, y, rotation, maxHealth, drag, armor, hitSize, health, shield, ammo, dragMultiplier, armorOverride, speedMultiplier;
@@ -647,6 +647,9 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
if(y > top) dy -= (y - top)/warpDst;
velAddNet(dx * Time.delta, dy * Time.delta);
float margin = tilesize * 2f;
x = Mathf.clamp(x, left - margin, right - tilesize + margin);
y = Mathf.clamp(y, bot - margin, top - tilesize + margin);
}
//clamp position if not flying
@@ -771,7 +774,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
//move down
elevation -= type.fallSpeed * Time.delta;
if(isGrounded() || health <= -maxHealth){
if(isGrounded() || health <= -maxHealth * type.wreckHealthMultiplier){
Call.unitDestroy(id);
}
}
@@ -866,7 +869,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
//if this unit crash landed (was flying), damage stuff in a radius
if(type.flying && !spawnedByCore && type.createWreck && state.rules.unitCrashDamage(team) > 0){
var shields = indexer.getEnemy(team, BlockFlag.shield);
float crashDamage = Mathf.pow(hitSize, 0.75f) * type.crashDamageMultiplier * 5f * state.rules.unitCrashDamage(team);
float crashDamage = Mathf.pow(hitSize, 0.75f) * type.crashDamageMultiplier * 2.5f * state.rules.unitCrashDamage(team);
if(shields.isEmpty() || !shields.contains(b -> b instanceof ExplosionShield s && s.absorbExplosion(x, y, crashDamage))){
Damage.damage(team, x, y, Mathf.pow(hitSize, 0.94f) * 1.25f, crashDamage, true, false, true);
}
@@ -1242,6 +1242,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
@Override
public void setTexture(String textureName){
this.textureName = textureName;
if(headless) return;
boolean firstUpdate = fetchedRegion == null;
+4 -6
View File
@@ -196,7 +196,7 @@ public class SectorInfo{
}
/** Prepare data for writing to a save. */
public void prepare(){
public void prepare(Sector sector){
//update core items
items.clear();
@@ -237,12 +237,10 @@ public class SectorInfo{
export.clear();
}
if(state.rules.sector != null){
state.rules.sector.saveInfo();
}
sector.saveInfo();
if(state.rules.sector != null && state.rules.sector.planet.allowWaveSimulation){
SectorDamage.writeParameters(this);
if(sector.planet.allowWaveSimulation){
SectorDamage.writeParameters(sector);
}
}
+1 -1
View File
@@ -226,7 +226,7 @@ public class Universe{
sector.info.wavesPassed = wavesPassed;
}
float damage = attacked ? SectorDamage.getDamage(sector.info) : 0f;
float damage = attacked ? SectorDamage.getDamage(sector) : 0f;
//damage never goes down until the player visits the sector, so use max
sector.info.damage = Math.max(sector.info.damage, damage);
+1 -1
View File
@@ -118,7 +118,7 @@ public abstract class SaveVersion extends SaveFileReader{
public void writeMeta(DataOutput stream, StringMap tags) throws IOException{
//prepare campaign data for writing
if(state.isCampaign()){
state.rules.sector.info.prepare();
state.rules.sector.info.prepare(state.rules.sector);
state.rules.sector.saveInfo();
}
+24 -2
View File
@@ -1216,8 +1216,7 @@ public class LExecutor{
this.a = a;
}
public PackColorI(){
}
public PackColorI(){}
@Override
public void run(LExecutor exec){
@@ -1225,6 +1224,29 @@ public class LExecutor{
}
}
public static class UnpackColorI implements LInstruction{
public LVar r, g, b, a, value;
public UnpackColorI(LVar r, LVar g, LVar b, LVar a, LVar value){
this.r = r;
this.g = g;
this.b = b;
this.a = a;
this.value = value;
}
public UnpackColorI(){}
@Override
public void run(LExecutor exec){
var color = Tmp.c1.fromDouble(value.num());
r.setnum(color.r);
g.setnum(color.g);
b.setnum(color.b);
a.setnum(color.a);
}
}
public static class CutsceneI implements LInstruction{
public CutsceneAction action = CutsceneAction.stop;
public LVar p1, p2, p3, p4;
+4
View File
@@ -244,6 +244,10 @@ public abstract class LStatement{
}
public String typeName(){
return getClass().getSimpleName().replace("Statement", "");
}
public String name(){
return Strings.insertSpaces(getClass().getSimpleName().replace("Statement", ""));
}
+32 -1
View File
@@ -897,6 +897,35 @@ public class LStatements{
}
}
@RegisterStatement("unpackcolor")
public static class UnpackColorStatement extends LStatement{
public String r = "r", g = "g", b = "b", a = "a", value = "color";
@Override
public void build(Table table){
fields(table, r, str -> r = str);
fields(table, g, str -> g = str);
fields(table, b, str -> b = str);
fields(table, a, str -> a = str);
row(table);
table.add(" = unpack ");
fields(table, value, str -> value = str);
}
@Override
public LInstruction build(LAssembler builder){
return new UnpackColorI(builder.var(r), builder.var(g), builder.var(b), builder.var(a), builder.var(value));
}
@Override
public LCategory category(){
return LCategory.operation;
}
}
@RegisterStatement("end")
public static class EndStatement extends LStatement{
@Override
@@ -1605,6 +1634,8 @@ public class LStatements{
case mapArea -> {
table.add(" = ");
row(table);
fields(table, "x", p1, s -> p1 = s);
fields(table, "y", p2, s -> p2 = s);
row(table);
@@ -1624,7 +1655,7 @@ public class LStatements{
case ban, unban -> {
table.add(" block/unit ");
field(table, value, s -> value = s);
fields(table, value, s -> value = s);
}
default -> {
table.add(" = ");
+2 -1
View File
@@ -295,7 +295,8 @@ public class LogicDialog extends BaseDialog{
for(Prov<LStatement> prov : LogicIO.allStatements){
LStatement example = prov.get();
if(example instanceof InvalidStatement || example.hidden() || (example.privileged() && !privileged) || (example.nonPrivileged() && privileged) || (!text.isEmpty() && !example.name().toLowerCase(Locale.ROOT).contains(text))) continue;
if(example instanceof InvalidStatement || example.hidden() || (example.privileged() && !privileged) || (example.nonPrivileged() && privileged) ||
(!text.isEmpty() && !example.name().toLowerCase(Locale.ROOT).contains(text) && !example.typeName().toLowerCase(Locale.ROOT).contains(text))) continue;
if(matched[0] == null){
matched[0] = prov;
+2
View File
@@ -36,10 +36,12 @@ public enum LogicOp{
len("len", true, (x, y) -> Mathf.dst((float)x, (float)y)),
noise("noise", true, (x, y) -> Simplex.raw2d(0, x, y)),
abs("abs", a -> Math.abs(a)), //not a method reference because it fails to compile for some reason
sign("sign", Math::signum),
log("log", Math::log),
log10("log10", Math::log10),
floor("floor", Math::floor),
ceil("ceil", Math::ceil),
round("round", Math::round),
sqrt("sqrt", Math::sqrt),
rand("rand", d -> GlobalVars.rand.nextDouble() * d),
+1 -1
View File
@@ -239,7 +239,7 @@ public class Map implements Comparable<Map>, Publishable{
int modes = Boolean.compare(Gamemode.pvp.valid(this), Gamemode.pvp.valid(map));
if(modes != 0) return modes;
return name().compareTo(map.name());
return Strings.stripColors(name()).compareTo(Strings.stripColors(map.name()));
}
@Override
+26 -22
View File
@@ -27,23 +27,24 @@ public class SectorDamage{
private static final boolean rubble = true;
/** @return calculated capture progress of the enemy */
public static float getDamage(SectorInfo info){
return getDamage(info, info.wavesPassed);
public static float getDamage(Sector sector){
return getDamage(sector, sector.info.wavesPassed);
}
/** @return calculated capture progress of the enemy */
public static float getDamage(SectorInfo info, int wavesPassed){
return getDamage(info, wavesPassed, false);
public static float getDamage(Sector sector, int wavesPassed){
return getDamage(sector, wavesPassed, false);
}
/** @return maximum waves survived, up to maxRetWave. */
public static int getWavesSurvived(SectorInfo info){
return (int)getDamage(info, maxRetWave, true);
public static int getWavesSurvived(Sector sector){
return (int)getDamage(sector, maxRetWave, true);
}
/** @return calculated capture progress of the enemy if retWave is false, otherwise return the maximum waves survived as int.
* if it survives all the waves, returns maxRetWave. */
public static float getDamage(SectorInfo info, int wavesPassed, boolean retWave){
public static float getDamage(Sector sector, int wavesPassed, boolean retWave){
var info = sector.info;
float health = info.sumHealth;
int wave = info.wave;
float waveSpace = info.waveSpacing;
@@ -64,18 +65,20 @@ public class SectorDamage{
for(int i = waveBegin; i <= waveEnd; i++){
float enemyDps = 0f, enemyHealth = 0f;
for(SpawnGroup group : state.rules.spawns){
//calculate the amount of spawn points used
//if there's a spawn position override, there is only one potential place they spawn
//assume that all overridden positions are valid, should always be true in properly designed campaign maps
int spawnCount = group.spawn != -1 ? 1 : group.type.flying ? airSpawns : groundSpawns;
if(sector.save != null || sector.isBeingPlayed()){
for(SpawnGroup group : (sector.isBeingPlayed() ? state.rules.spawns : sector.save.meta.rules.spawns)){
//calculate the amount of spawn points used
//if there's a spawn position override, there is only one potential place they spawn
//assume that all overridden positions are valid, should always be true in properly designed campaign maps
int spawnCount = group.spawn != -1 ? 1 : group.type.flying ? airSpawns : groundSpawns;
float healthMult = 1f + Mathf.clamp(group.type.armor / 20f);
StatusEffect effect = (group.effect == null ? StatusEffects.none : group.effect);
int spawned = group.getSpawned(i) * spawnCount;
if(spawned <= 0) continue;
enemyHealth += spawned * (group.getShield(i) + group.type.health * effect.healthMultiplier * healthMult);
enemyDps += spawned * group.type.dpsEstimate * effect.damageMultiplier;
float healthMult = 1f + Mathf.clamp(group.type.armor / 20f);
StatusEffect effect = (group.effect == null ? StatusEffects.none : group.effect);
int spawned = group.getSpawned(i) * spawnCount;
if(spawned <= 0) continue;
enemyHealth += spawned * (group.getShield(i) + group.type.health * effect.healthMultiplier * healthMult);
enemyDps += spawned * group.type.dpsEstimate * effect.damageMultiplier;
}
}
float efficiency = health / info.sumHealth;
@@ -106,7 +109,7 @@ public class SectorDamage{
if(timeDestroyEnemy > timeDestroyBase){
health = 0f;
//return current wave if simulating
if(retWave) return i - waveBegin;
if(retWave) return Math.max(i - waveBegin - 1, waveBegin);
break;
}
@@ -132,7 +135,7 @@ public class SectorDamage{
/** Applies wave damage based on sector parameters. */
public static void applyCalculatedDamage(){
//calculate base damage fraction
float damage = getDamage(state.rules.sector.info);
float damage = getDamage(state.rules.sector);
//scaled damage has a power component to make it seem a little more realistic (as systems fail, enemy capturing gets easier and easier)
float scaled = Mathf.pow(damage, 1.2f);
@@ -187,7 +190,8 @@ public class SectorDamage{
}
/** Calculates damage simulation parameters before a game is saved. */
public static void writeParameters(SectorInfo info){
public static void writeParameters(Sector sector){
var info = sector.info;
Building core = state.rules.defaultTeam.core();
Seq<Tile> spawns = new Seq<>();
spawner.eachGroundSpawn((x, y) -> spawns.add(world.tile(x, y)));
@@ -370,7 +374,7 @@ public class SectorDamage{
info.curEnemyDps = curEnemyDps*cmult;
info.curEnemyHealth = curEnemyHealth*cmult;
info.wavesSurvived = getWavesSurvived(info);
info.wavesSurvived = getWavesSurvived(sector);
}
public static void apply(float fraction){
+2
View File
@@ -93,6 +93,8 @@ public class UnitType extends UnlockableContent implements Senseable{
buildRange = Vars.buildingRange,
/** multiplier for damage this (flying) unit deals when crashing on enemy things */
crashDamageMultiplier = 1f,
/** multiplier for health that this flying unit has for its wreck, based on its max health. */
wreckHealthMultiplier = 0.25f,
/** a VERY ROUGH estimate of unit DPS; initialized in init() */
dpsEstimate = -1,
/** graphics clipping size; <0 to calculate automatically */
@@ -30,6 +30,8 @@ import static mindustry.Vars.*;
public class DesktopLauncher extends ClientLauncher{
public final static long discordID = 610508934456934412L;
public final String[] args;
boolean useDiscord = !OS.hasProp("nodiscord"), loadError = false;
Throwable steamError;
@@ -72,6 +74,8 @@ public class DesktopLauncher extends ClientLauncher{
}
public DesktopLauncher(String[] args){
this.args = args;
Version.init();
boolean useSteam = Version.modifier.contains("steam");
testMobile = Seq.with(args).contains("-testMobile");