From 4e5475f0eda4c75b5b2f052631e93dcdf5a1754c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D1=80=D0=BA=D0=BD=D0=B5=D1=81=D1=81=233729?= <79508138+Darkness6030@users.noreply.github.com> Date: Wed, 14 Jun 2023 01:54:10 +0300 Subject: [PATCH 01/10] Team improvements (#8704) * Update Team.java * Update ServerControl.java * better * kill me please * kill me please * kill me please * Update bundle_ca.properties * kill me please * Update bundle_da.properties * kill me please * kill me please * Update bundle_et.properties * Update bundle_eu.properties * Update bundle_fi.properties * Update bundle_fil.properties * Update bundle_fr.properties * Update bundle_hu.properties * Update bundle_id_ID.properties * Update bundle_ja.properties * Update bundle_ko.properties * Update bundle_lt.properties * Update bundle_nl.properties * Update bundle_nl_BE.properties * Update bundle_pl.properties * Update bundle_pt_BR.properties * Update bundle_pt_PT.properties * Update bundle_ro.properties * Update bundle_ru.properties * Update bundle_sr.properties * Update bundle_sv.properties * Update bundle_th.properties * Update bundle_tr.properties * Update bundle_tk.properties * Update bundle_uk_UA.properties * Update bundle_vi.properties * Update bundle_zh_CN.properties * Update bundle_zh_TW.properties * Update World.java * Update CustomRulesDialog.java * skill issue * skill issue x2 * skill issue x3 --- core/assets/bundles/bundle.properties | 4 ++-- core/assets/bundles/bundle_be.properties | 6 +++--- core/assets/bundles/bundle_bg.properties | 4 ++-- core/assets/bundles/bundle_ca.properties | 6 +++--- core/assets/bundles/bundle_cs.properties | 4 ++-- core/assets/bundles/bundle_da.properties | 6 +++--- core/assets/bundles/bundle_de.properties | 6 +++--- core/assets/bundles/bundle_es.properties | 6 +++--- core/assets/bundles/bundle_et.properties | 6 +++--- core/assets/bundles/bundle_eu.properties | 4 ++-- core/assets/bundles/bundle_fi.properties | 6 +++--- core/assets/bundles/bundle_fil.properties | 6 +++--- core/assets/bundles/bundle_fr.properties | 4 ++-- core/assets/bundles/bundle_hu.properties | 4 ++-- core/assets/bundles/bundle_id_ID.properties | 6 +++--- core/assets/bundles/bundle_ja.properties | 4 ++-- core/assets/bundles/bundle_ko.properties | 6 +++--- core/assets/bundles/bundle_lt.properties | 6 +++--- core/assets/bundles/bundle_nl.properties | 6 +++--- core/assets/bundles/bundle_nl_BE.properties | 6 +++--- core/assets/bundles/bundle_pl.properties | 6 +++--- core/assets/bundles/bundle_pt_BR.properties | 6 +++--- core/assets/bundles/bundle_pt_PT.properties | 6 +++--- core/assets/bundles/bundle_ro.properties | 6 +++--- core/assets/bundles/bundle_ru.properties | 4 ++-- core/assets/bundles/bundle_sr.properties | 4 ++-- core/assets/bundles/bundle_sv.properties | 6 +++--- core/assets/bundles/bundle_th.properties | 6 +++--- core/assets/bundles/bundle_tk.properties | 6 +++--- core/assets/bundles/bundle_tr.properties | 4 ++-- core/assets/bundles/bundle_uk_UA.properties | 6 +++--- core/assets/bundles/bundle_vi.properties | 6 +++--- core/assets/bundles/bundle_zh_CN.properties | 4 ++-- core/assets/bundles/bundle_zh_TW.properties | 4 ++-- core/src/mindustry/core/World.java | 4 ++-- core/src/mindustry/game/Team.java | 4 ++++ core/src/mindustry/ui/dialogs/CustomRulesDialog.java | 8 +++----- core/src/mindustry/ui/dialogs/GameOverDialog.java | 2 +- server/src/mindustry/server/ServerControl.java | 2 +- 39 files changed, 101 insertions(+), 99 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index a50bb826ac..321d19fe30 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -398,9 +398,9 @@ custom = Custom builtin = Built-In map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone! map.random = [accent]Random Map -map.nospawn = This map does not have any cores for the player to spawn in! Add a [#{0}]{1}[] core to this map in the editor. +map.nospawn = This map does not have any cores for the player to spawn in! Add a {0} core to this map in the editor. map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add [#{0}]{1}[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add {0} cores to this map in the editor. map.invalid = Error loading map: corrupted or invalid map file. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 322c204082..51f6e8452e 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -387,9 +387,9 @@ custom = Карыстацкая builtin = Убудаваная map.delete.confirm = Вы сапраўды жадаеце выдаліць гэтую карту? Гэта дзеянне не можа быць адменена! map.random = [accent]Выпадковая карта -map.nospawn = Гэтая карта не мае ні аднаго ядра, у якім гулец можа з’явіцца! Дадайце[accent] аранжавае[] ядро на гэтую карту ў рэдактары. -map.nospawn.pvp = У гэтай карты няма варожых ядраў, у якіх гулец можа з’явіцца! Дадайце[scarlet] не аранжавае[] ядро на гэтую карту ў рэдактары. -map.nospawn.attack = У гэтай карты няма варожых ядраў для нападу гульцом! Дадайце[scarlet] ружовае[] ядро на гэтую карту ў рэдактары. +map.nospawn = Гэтая карта не мае ні аднаго ядра, у якім гулец можа з’явіцца! Дадайце {0} ядро на гэтую карту ў рэдактары. +map.nospawn.pvp = У гэтай карты няма варожых ядраў, у якіх гулец можа з’явіцца! Дадайце [scarlet]не аранжавае[] ядро на гэтую карту ў рэдактары. +map.nospawn.attack = У гэтай карты няма варожых ядраў для нападу гульцом! Дадайце {0} ядро на гэтую карту ў рэдактары. map.invalid = Памылка загрузкі карты: пашкоджаны або недапушчальны файл карты. workshop.update = Абнавіць змесціва workshop.error = Памылка загрузкі інфармацыі з Майстэрні: {0} diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 91db9ccff4..bc7cb7a022 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -392,9 +392,9 @@ custom = Персонализирано builtin = Вградено map.delete.confirm = Сигурни ли сте, че искате да изтриете тази карта? Това действие няма да може да бъде отменено! map.random = [accent]Случайна Карта -map.nospawn = Тази карта няма позиция за ядро на играча! Добавете поне едно [accent]оранжево[] ядро от редактора на карти. +map.nospawn = Тази карта няма позиция за ядро на играча! Добавете поне едно {0} ядро от редактора на карти. map.nospawn.pvp = Тази карта няма достатъчно позиции за ядра на други играчи! Добавете поне едно [scarlet]неоранжево[] ядро от редактора на карти. -map.nospawn.attack = Тази карта няма нито едно вражеско ядро! Добавете поне едно [scarlet]червено[] ядро от редактора на карти. +map.nospawn.attack = Тази карта няма нито едно вражеско ядро! Добавете поне едно {0} ядро от редактора на карти. map.invalid = Грешка при зареждане на карта: увреден или невалиден файл. workshop.update = Обновяване на елемент workshop.error = Грешка при изтегляне на данни от Работилницата: {0} diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index a2ec340707..fbc3481de3 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -392,9 +392,9 @@ custom = Personalitzat builtin = *Integrat* map.delete.confirm = Esteu segur que voleu esborrar aquest mapa? Aquesta acció no es pot desfer! map.random = [accent]Mapa aleatori -map.nospawn = Aquest mapa no té cap nucli per tal que el jugador hi pugui aparèixer! Afegiu-hi un nucli [#{0}]{1}[] amb l’editor. -map.nospawn.pvp = Aquest mapa no té nuclis enemics per tal que hi puguin aparèixer altres jugadors! Afegiu-hi nuclis[scarlet] d’un altre color[] amb l’editor. -map.nospawn.attack = Aquest mapa no té cap nucli enemic que el jugador pugui atacar! Afegiu-hi nuclis [#{0}]{1}[] amb l’editor. +map.nospawn = Aquest mapa no té cap nucli per tal que el jugador hi pugui aparèixer! Afegiu-hi un nucli {0} amb l’editor. +map.nospawn.pvp = Aquest mapa no té nuclis enemics per tal que hi puguin aparèixer altres jugadors! Afegiu-hi nuclis [scarlet]d’un altre color[] amb l’editor. +map.nospawn.attack = Aquest mapa no té cap nucli enemic que el jugador pugui atacar! Afegiu-hi nuclis {0} amb l’editor. map.invalid = S’ha produït un error carregant el mapa: el fitxer està corromput o bé el mapa no és vàlid. workshop.update = Actualitza l’element workshop.error = S’ha produït un error mentre s’obtenien els detalls del Workshop: {0} diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index cdc08cd653..4f0bb1666f 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -392,9 +392,9 @@ custom = Upraveno builtin = Vestavěno map.delete.confirm = Jsi si jistý, že chceš tuto mapu smazat? Tato akce je nevratná! map.random = [accent]Náhodná mapa[] -map.nospawn = Na této mapě nejsou jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [accent]oranžové[] jádro. +map.nospawn = Na této mapě nejsou jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno {0} jádro. map.nospawn.pvp = Tato mapa nemá nepřátelská jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [scarlet]neoranžové[] jádro. -map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být zničena. Přidej v editoru do této mapy aspoň jedno [scarlet]červené[] jádro. +map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být zničena. Přidej v editoru do této mapy aspoň jedno {0} jádro. map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy. workshop.update = Aktualizovat položku workshop.error = Chyba při načítání podrobností z Workshopu na Steamu: {0} diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 0b6bacec39..ca68ad2001 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -388,9 +388,9 @@ custom = Brugerdefineret builtin = Indbygget map.delete.confirm = Er du sikker på, at du vil slette dette spil? Dette kan ikke blive genskabt! map.random = [accent]Tilfældig bane -map.nospawn = Denne bane har ikke nogen kerne, spillere kan opstå fra! Tilføj en [accent]orange[] kerne til denne bane via bane-editoren. -map.nospawn.pvp = Denne bane har ikke nogen kerne, modstandere kan opstå fra! Tilføj en [SCARLET]ikke-orange[] kerne til banen via bane-editoren. -map.nospawn.attack = Denne bane har ikke nogen kerne, spillerne kan angribe! Tilføj en [SCARLET]rød[] kerne til banen via bane-editoren. +map.nospawn = Denne bane har ikke nogen kerne, spillere kan opstå fra! Tilføj en {0} kerne til denne bane via bane-editoren. +map.nospawn.pvp = Denne bane har ikke nogen kerne, modstandere kan opstå fra! Tilføj en [scarlet]ikke-orange[] kerne til banen via bane-editoren. +map.nospawn.attack = Denne bane har ikke nogen kerne, spillerne kan angribe! Tilføj en {0} kerne til banen via bane-editoren. map.invalid = Kunne ikke indlæse bane: bane-filen er i stykker. workshop.update = Opdater genstand workshop.error = Der skete en fejl ved indlæsning af Workshop-detaljer: {0} diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index c6140db203..acfe441288 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -395,9 +395,9 @@ custom = Benutzerdefiniert builtin = Enthalten map.delete.confirm = Bist du sicher, dass du diese Karte löschen willst? Dies kann nicht rückgängig gemacht werden! map.random = [accent]Zufällige Karte -map.nospawn = Diese Karte hat keine Kerne, in denen die Spieler beginnen können! Füge einen [#{0}]{1}[] Kern zu dieser Karte im Editor hinzu. -map.nospawn.pvp = Diese Karte hat keine Kerne für die gegnerischen Spieler! Füge über den Editor [scarlet] nicht-orange[] Kerne zu dieser Karte hinzu. -map.nospawn.attack = Diese Karte hat keine gegnerischen Kerne, die Spieler angreifen können! Füge über den Editor a [#{0}]{1}[] Kerne zu dieser Karte hinzu. +map.nospawn = Diese Karte hat keine Kerne, in denen die Spieler beginnen können! Füge einen {0} Kern zu dieser Karte im Editor hinzu. +map.nospawn.pvp = Diese Karte hat keine Kerne für die gegnerischen Spieler! Füge über den Editor [scarlet]nicht-orange[] Kerne zu dieser Karte hinzu. +map.nospawn.attack = Diese Karte hat keine gegnerischen Kerne, die Spieler angreifen können! Füge über den Editor a {0} Kerne zu dieser Karte hinzu. map.invalid = Fehler beim Laden der Karte: Beschädigte oder ungültige Kartendatei. workshop.update = Objekt aktualisieren workshop.error = Fehler beim Laden von Workshop-Details: {0} diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 4617af9729..ea7ffae1f1 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -392,9 +392,9 @@ custom = Personalizado builtin = Incorporado map.delete.confirm = ¿Quieres borrar este mapa? ¡Esta acción no se puede deshacer! map.random = [accent]Mapa aleatorio -map.nospawn = ¡Este mapa no tiene ningún núcleo para que aparezca el jugador! Agrega un núcleo [#{0}]{1}[] al mapa desde el editor. -map.nospawn.pvp = ¡Este mapa no tiene ningún núcleo enemigo donde puedan aparecer otros jugadores! Añade un núcleo[scarlet] de otro color[] a este mapa en el editor. -map.nospawn.attack = ¡Este mapa no tiene ningún núcleo enemigo al que los jugadores deban atacar! Añade núcleos [#{0}]{1}[] a este mapa desde el editor. +map.nospawn = ¡Este mapa no tiene ningún núcleo para que aparezca el jugador! Agrega un núcleo {0} al mapa desde el editor. +map.nospawn.pvp = ¡Este mapa no tiene ningún núcleo enemigo donde puedan aparecer otros jugadores! Añade un núcleo [scarlet]de otro color[] a este mapa en el editor. +map.nospawn.attack = ¡Este mapa no tiene ningún núcleo enemigo al que los jugadores deban atacar! Añade núcleos {0} a este mapa desde el editor. map.invalid = Error cargando el mapa: Archivo de mapa corrupto o no válido. workshop.update = Actualizar artículo workshop.error = Error al obtener detalles del Steam Workshop: {0} diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index eb844d685c..a5f99c88fc 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -388,9 +388,9 @@ custom = Mängija loodud builtin = Sisse-ehitatud map.delete.confirm = Oled kindel, et soovid maailma kustutada? Seda ei saa tagasi võtta! map.random = [accent]Suvaline maailm -map.nospawn = Selles maailmas ei ole mängijate tuumikuid!\nLisa redaktoris sellele maailmale[accent] oranž[] tuumik. -map.nospawn.pvp = Selles maailmas ei ole piisavalt mängijate tuumikuid!\nLisa redaktoris sellele maailmale[scarlet] mitte-oranže[] tuumikuid. -map.nospawn.attack = Selles maailmas ei ole mängijate poolt rünnatavaid vaenlaste tuumikuid!\nLisa redaktoris sellele maailmale[scarlet] punaseid[] tuumikuid. +map.nospawn = Selles maailmas ei ole mängijate tuumikuid!\nLisa redaktoris sellele maailmale {0} tuumik. +map.nospawn.pvp = Selles maailmas ei ole piisavalt mängijate tuumikuid!\nLisa redaktoris sellele maailmale [scarlet]mitte-oranže[] tuumikuid. +map.nospawn.attack = Selles maailmas ei ole mängijate poolt rünnatavaid vaenlaste tuumikuid!\nLisa redaktoris sellele maailmale {0} tuumikuid. map.invalid = Viga maailma laadimisel: ebasobiv või riknenud fail. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 74a43b89f3..78ea706807 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -390,9 +390,9 @@ custom = Pertsonalizatua builtin = Jolas barnekoa map.delete.confirm = Ziur mapa hau ezabatu nahi duzula? Ekintza hau ezin da desegin! map.random = [accent]Ausazko mapa -map.nospawn = Mapa honek ez du muinik jokalaria sortu dadin! Gehitu muin [accent] laranja[] bat mapa honi editorean. +map.nospawn = Mapa honek ez du muinik jokalaria sortu dadin! Gehitu muin {0} bat mapa honi editorean. map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [scarlet]laranja ez den[] muinen bat edo batzuk mapa honi editorean. -map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [scarlet]gorriak[] mapa honi editorean. +map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin {0} mapa honi editorean. map.invalid = Errorea mapa kargatzean: Mapa-fitxategi baliogabe edo hondatua. workshop.update = Eguneratu elementua workshop.error = Errorea tailerreko xehetasunak eskuratzean: {0} diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 0db4e783f2..a89ab87c72 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -388,9 +388,9 @@ custom = Mukautettu builtin = Sisäänrakennettu map.delete.confirm = Oletko varma että haluat poistaa tämän kartan? Poistoa ei voi peruuttaa! map.random = [accent]Satunnainen kartta -map.nospawn = Tässä kartassa ei ole ytimiä joihin syntyä! Lisää[accent] oranssi[] ydin karttaan editorissa. -map.nospawn.pvp = Tässä kartassa ei ole vihollisytimiä, joihin pelaaja voisi syntyä! Lisää karttaan[scarlet] ei-oransseja[] ytimiä editorissa. -map.nospawn.attack = Tässä kartassa ei ole vihollisytimiä, joihin pelaaja voisi hyökätä! Lisää karttaan[scarlet] punaisia[] ytimiä editorissa. +map.nospawn = Tässä kartassa ei ole ytimiä joihin syntyä! Lisää {0} ydin karttaan editorissa. +map.nospawn.pvp = Tässä kartassa ei ole vihollisytimiä, joihin pelaaja voisi syntyä! Lisää karttaan [scarlet]ei-oransseja[] ytimiä editorissa. +map.nospawn.attack = Tässä kartassa ei ole vihollisytimiä, joihin pelaaja voisi hyökätä! Lisää karttaan {0} ytimiä editorissa. map.invalid = Virhe ladatessa karttaa: korruptoitunut tai väärä karttatiedosto. workshop.update = Päivitä tavara workshop.error = Virhe Workshopin tietoja noudettaessa: {0} diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 07d2d9ee38..6d96a06a13 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -388,9 +388,9 @@ custom = Custom builtin = Built-In map.delete.confirm = Sigurado ka bang gusto mong tanggalin ang mapang ito? Ang gawaing ito ay hindi pwedeng baguhin! map.random = [accent]Random Map -map.nospawn = Ang mapa na ito ay walang anumang mga core para sa player upang mai-spawn in! Mag-dagdag ng [accent]orange[] core sa editor ng mapa! -map.nospawn.pvp = Ang mapa na ito ay walang anumang mga core ng kaaway para sa player upang i-spawn! Add[scarlet] non-orange[] cores to this map in the editor. -map.nospawn.attack = Ang mapa na ito ay walang anumang mga core ng kaaway para sa pag-atake ng manlalaro! Add[scarlet] red[] cores to this map in the editor. +map.nospawn = Ang mapa na ito ay walang anumang mga core para sa player upang mai-spawn in! Mag-dagdag ng {0} core sa editor ng mapa! +map.nospawn.pvp = Ang mapa na ito ay walang anumang mga core ng kaaway para sa player upang i-spawn! Add [scarlet]non-orange[] cores to this map in the editor. +map.nospawn.attack = Ang mapa na ito ay walang anumang mga core ng kaaway para sa pag-atake ng manlalaro! Add {0} cores to this map in the editor. map.invalid = Error loading map: corrupted o sira na map file. workshop.update = Update Item workshop.error = Error sa pagkuha ng mga detalye ng workshop: {0} diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 561e204149..9ff625eced 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -396,9 +396,9 @@ custom = Personnalisé builtin = Intégré map.delete.confirm = Voulez-vous vraiment supprimer cette carte ?\nIl n'y aura pas de retour en arrière ! map.random = [accent]Carte aléatoire -map.nospawn = Cette carte n'a aucun noyau pour que les joueurs puissent apparaître !\nAjoutez au moins un Noyau [#{0}]{1}[] sur cette carte dans l'éditeur. +map.nospawn = Cette carte n'a aucun noyau pour que les joueurs puissent apparaître !\nAjoutez au moins un Noyau {0} sur cette carte dans l'éditeur. map.nospawn.pvp = Cette carte n'a aucun noyau ennemi pour que les joueurs ennemis puissent apparaître !\nAjoutez au moins un Noyau [scarlet]non-orange[] dans l'éditeur. -map.nospawn.attack = Cette carte n'a aucun noyau ennemi à attaquer !\nAjouter au moins un Noyau [#{0}]{1}[] sur cette carte dans l'éditeur. +map.nospawn.attack = Cette carte n'a aucun noyau ennemi à attaquer !\nAjouter au moins un Noyau {0} sur cette carte dans l'éditeur. map.invalid = Erreur lors du chargement de la carte: carte corrompue ou invalide. workshop.update = Mettre à jour workshop.error = Erreur lors de la récupération des détails du Steam Workshop: {0} diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index e0108d0690..d506ce5010 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -391,9 +391,9 @@ custom = Egyedi builtin = Beépített map.delete.confirm = Biztosan törlöd ezt a mapot? Ez a művelet nem visszavonható! map.random = [accent]Véletlenszerű Map -map.nospawn = Ez a map nem rendelkezik maggal, amelyen a játékos kezdhet! Adj hozzá egy [accent]narancssárga[] magot ehhez a maphoz a szerkesztőben! +map.nospawn = Ez a map nem rendelkezik maggal, amelyen a játékos kezdhet! Adj hozzá egy {0} magot ehhez a maphoz a szerkesztőben! map.nospawn.pvp = Ezen a térképen nincsen ellenséges mag, amelyen a másik csapat kezdhet! Adjon hozzá [scarlet]nem narancssárga[] magot ehhez a maphoz a szerkesztőben! -map.nospawn.attack = Ezen a térképen nincsen ellenséges mag! Adjon hozzá [scarlet]piros[] magot ehhez a maphoz a szerkesztőben! +map.nospawn.attack = Ezen a térképen nincsen ellenséges mag! Adjon hozzá {0} magot ehhez a maphoz a szerkesztőben! map.invalid = Hiba történt a map betöltésekor: sérült vagy érvénytelen mapfájl. workshop.update = Item frissítése workshop.error = Hiba történt a workshop részleteinek lekérdezésekor: {0} diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index d385ab9b9a..b3ae60aa99 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -392,9 +392,9 @@ custom = Modifikasi builtin = Terpasang map.delete.confirm = Anda yakin ingin menghapus peta ini? Aksi ini tidak bisa diubah! map.random = [accent]Peta Acak -map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting. -map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[scarlet] selain jingga[] ke dalam peta di penyunting. -map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting. +map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti {0} ke dalam peta di penyunting. +map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti [scarlet]selain jingga[] ke dalam peta di penyunting. +map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti {0} ke dalam peta di penyunting. map.invalid = Terjadi kesalahan saat memuat peta: rusak atau file peta tidak valid. workshop.update = Perbarui Item workshop.error = Terjadi kesalahan saat mengambil detail workshop: {0} diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index ce4792d03c..3b3ea25f9b 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -392,9 +392,9 @@ custom = カスタム builtin = 組み込み map.delete.confirm = マップを削除してもよろしいですか? これは元に戻すことができません! map.random = [accent]ランダムマップ -map.nospawn = このマップにはプレイヤーが出現するためのコアがありません! エディターで[#{0}]{1}[]のコアをマップに追加してください。 +map.nospawn = このマップにはプレイヤーが出現するためのコアがありません! エディターで{0}のコアをマップに追加してください。 map.nospawn.pvp = このマップには敵のプレイヤーが出現するためのコアがありません! エディターで[scarlet]オレンジ色ではない[]コアをマップに追加してください。 -map.nospawn.attack = このマップには攻撃するための敵のコアがありません! エディターで[#{0}]{1}[]のコアをマップに追加してください。 +map.nospawn.attack = このマップには攻撃するための敵のコアがありません! エディターで{0}のコアをマップに追加してください。 map.invalid = マップの読み込みエラー: ファイルが無効、または破損しています。 workshop.update = 更新 workshop.error = ワークショップの詳細を取得中にエラーが発生しました: {0} diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 3242986013..c7360fe208 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -392,9 +392,9 @@ custom = 사용자 정의 builtin = 내장 map.delete.confirm = 정말로 이 맵을 삭제하시겠습니까? 이 명령은 취소할 수 없습니다! map.random = [accent]무작위 맵 -map.nospawn = 이 맵에 플레이어가 생성될 코어가 없습니다! 편집기에서 [#{0}]{1}[] 코어를 맵에 추가하세요. -map.nospawn.pvp = 이 맵에는 적 플레이어가 생성될 코어가 없습니다! 편집기에서 [royal]주황색 팀이 아닌[] 코어를 추가하세요. -map.nospawn.attack = 이 맵에는 플레이어가 공격할 수 있는 적 코어가 없습니다! 편집기에서 [#{0}]{1}[] 코어를 맵에 추가하세요. +map.nospawn = 이 맵에 플레이어가 생성될 코어가 없습니다! 편집기에서 {0} 코어를 맵에 추가하세요. +map.nospawn.pvp = 이 맵에는 적 플레이어가 생성될 코어가 없습니다! 편집기에서 [scarlet]주황색 팀이 아닌[] 코어를 추가하세요. +map.nospawn.attack = 이 맵에는 플레이어가 공격할 수 있는 적 코어가 없습니다! 편집기에서 {0} 코어를 맵에 추가하세요. map.invalid = 맵 로드 오류: 맵 파일이 손상되었거나 잘못된 파일입니다. workshop.update = 아이템 업데이트 workshop.error = 창작마당 세부 사항을 가져오는 중 오류가 발생했습니다: {0} diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index d2673f8bf3..9a09ff4a09 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -388,9 +388,9 @@ custom = Pasirinktinis builtin = Integruotas map.delete.confirm = Ar esate tikras, jog norite išpašalinti šį žemėlapį? Šis veiksmas negali būti atstatytas map.random = [accent]Atsitiktinis žemėlapis -map.nospawn = Šiame žemėlapyje nėra jokio branduolio atsirasti žaidėjui! Įdėkite[accent] oranžinį[] branduolį į žemėlapį redaktoriuje. -map.nospawn.pvp = Šiame žemėlapyje nėra jokio priešų branduolio atsirasti žaidėjui! Įdėkite[scarlet] ne oranžinį[] branduolį į žemėlapį redaktoriuje. -map.nospawn.attack = Šiame žemėlapyje nėra jokio priešo branduolio, kurį reikia sunaikinti žaidėjams! Įdėkite[scarlet] raudoną[] branduolį į žemėlapį redaktoriuje. +map.nospawn = Šiame žemėlapyje nėra jokio branduolio atsirasti žaidėjui! Įdėkite {0} branduolį į žemėlapį redaktoriuje. +map.nospawn.pvp = Šiame žemėlapyje nėra jokio priešų branduolio atsirasti žaidėjui! Įdėkite [scarlet]ne oranžinį[] branduolį į žemėlapį redaktoriuje. +map.nospawn.attack = Šiame žemėlapyje nėra jokio priešo branduolio, kurį reikia sunaikinti žaidėjams! Įdėkite {0} branduolį į žemėlapį redaktoriuje. map.invalid = Įvyko klaida kraunant žemėlapį: sugadintas arba klaidingas žemėlapio failas. workshop.update = Atnaujinti elementą workshop.error = Klaida kraunant Dirbtuvės duomenis: {0} diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 89e1c94d15..957fe4e850 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -396,9 +396,9 @@ custom = Aangepast builtin = Ingebouwd map.delete.confirm = Weet je zeker dat je deze map wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt! map.random = [accent]Willekeurige map -map.nospawn = Deze map heeft geen cores voor de spelers om in te spawnen! Voeg een[royal] blauwe[] core toe aan de map via de editor. -map.nospawn.pvp = Deze map heeft geen cores voor je vijanden om in te spawnen! Voeg een[scarlet] rode[] core to aan de map via de editor. -map.nospawn.attack = Deze map bevat geen vijandige cores om aan te vallen! Voeg een[scarlet] rode[] core toe aan de map via de editor. +map.nospawn = Deze map heeft geen cores voor de spelers om in te spawnen! Voeg een {0} core toe aan de map via de editor. +map.nospawn.pvp = Deze map heeft geen cores voor je vijanden om in te spawnen! Voeg een [scarlet]rode[] core to aan de map via de editor. +map.nospawn.attack = Deze map bevat geen vijandige cores om aan te vallen! Voeg een {0} core toe aan de map via de editor. map.invalid = Fout tijdens laden van map: Ongeldig map bestand. workshop.update = Bijwerken workshop.error = Fout bij laden workshop info: {0} diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index dd9747beb1..01dc225f26 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -388,9 +388,9 @@ custom = Aangepast builtin = Ingebouwd map.delete.confirm = Weet je zeker dat je deze kaart wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden! map.random = [accent]Willekeurige Map -map.nospawn = Deze map heeft geen cores voor spelers om te spawnen! Voeg een[royal] blauwe[] core toe in de mapbewerker. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Voeg een[scarlet] niet-blauwe[] core toe in de mapbewerker. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Voeg een[scarlet] rode[] core toe in de mapbewerker. +map.nospawn = Deze map heeft geen cores voor spelers om te spawnen! Voeg een {0} core toe in de mapbewerker. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Voeg een [scarlet]niet-blauwe[] core toe in de mapbewerker. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Voeg een {0} core toe in de mapbewerker. map.invalid = Fout tijdens het laden van de map: Corrupt of ongeldig mapbestand. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 85963f4723..6892a0128b 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -392,9 +392,9 @@ custom = Własne builtin = Wbudowane map.delete.confirm = Czy jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić! map.random = [accent]Losowa Mapa -map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze. -map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[scarlet] inny niż żółty[] rdzeń do mapy w edytorze. -map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[scarlet] czerwony[] rdzeń do mapy w edytorze. +map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj {0} rdzeń do tej mapy w edytorze. +map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj [scarlet]inny niż żółty[] rdzeń do mapy w edytorze. +map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj {0} rdzeń do mapy w edytorze. map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy. workshop.update = Aktualizuj pozycję workshop.error = Błąd podczas wczytywania szczegółów z Warsztatu: {0} diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index a375b69b92..edde545b26 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -392,9 +392,9 @@ custom = Customizado builtin = Padrão map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser anulado! map.random = [accent]Mapa aleatório -map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo[accent] amarelo[] para este mapa no editor. -map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[scarlet] núcleos vermelhos[] no mapa no editor. -map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[scarlet] núcleos[] vermelhos no editor. +map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo {0} para este mapa no editor. +map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione [scarlet]núcleos vermelhos[] no mapa no editor. +map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque {0} vermelhos no editor. map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto. workshop.update = Atualizar item workshop.error = Erro buscando os detalhes da oficina: {0} diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index b29055f725..4f8a7007a3 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -388,9 +388,9 @@ custom = Customizado builtin = Embutido map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser desfeito! map.random = [accent]Mapa aleatório -map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo[accent] amarelo[] para este mapa no editor. -map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[scarlet] Núcleos vermelhos[] no mapa no editor. -map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[scarlet] Núcleos[] vermelhos no editor. +map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo {0} para este mapa no editor. +map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione núcleos [scarlet]vermelhos[] no mapa no editor. +map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! Adicione núcleos {0} no mapa no editor. map.invalid = Erro ao carregar o mapa: Ficheiro de mapa invalido ou corrupto. workshop.update = Atualizar Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 2e58c4d874..09bfd11242 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -392,9 +392,9 @@ custom = Personalizată builtin = Prestabilită map.delete.confirm = Ești sigur că vrei să ștergi această hartă? Acțiunea este ireversibilă! map.random = [accent]Hartă Aleatorie -map.nospawn = Harta asta nu are niciun nucleu în care vor apărea jucătorii! Adaugă un nucleu [#{0}]{1}[] acestei hărți în editor. -map.nospawn.pvp = Această hartă nu are niciun nucleu inamic în care să apară jucătorii! Adaugă nuclee[scarlet] care nu sunt portocalii[] acestei hărți în editor. -map.nospawn.attack = Această hartă nu are niciun nucleu inamic pe care să îl atace jucătorii! Adaugă nuclee [#{0}]{1}[] acestei hărți în editor. +map.nospawn = Harta asta nu are niciun nucleu în care vor apărea jucătorii! Adaugă un nucleu {0} acestei hărți în editor. +map.nospawn.pvp = Această hartă nu are niciun nucleu inamic în care să apară jucătorii! Adaugă nuclee [scarlet]care nu sunt portocalii[] acestei hărți în editor. +map.nospawn.attack = Această hartă nu are niciun nucleu inamic pe care să îl atace jucătorii! Adaugă nuclee {0} acestei hărți în editor. map.invalid = Eroare la încărcarea hărții: fișier corupt sau invalid. workshop.update = Fă Update la Item workshop.error = Eroare la preluarea detaliilor din Workshop: {0} diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 9d35faef64..7ec20d3b66 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -392,9 +392,9 @@ custom = Пользовательская builtin = Встроенная map.delete.confirm = Вы действительно хотите удалить эту карту? Это действие не может быть отменено! map.random = [accent]Случайная карта -map.nospawn = На этой карте ни одного ядра, в котором игрок может появиться! Добавьте ядро команды [#{0}]{1}[] на эту карту в редакторе. +map.nospawn = На этой карте ни одного ядра, в котором игрок может появиться! Добавьте ядро команды {0} на эту карту в редакторе. map.nospawn.pvp = На этой карте нет вражеских ядер, в которых игрок может появиться! Добавьте [scarlet]вражеское[] ядро на эту карту в редакторе. -map.nospawn.attack = На этой карте нет вражеских ядер для атаки игроком! Добавьте ядро команды [#{0}]{1}[] на эту карту в редакторе. +map.nospawn.attack = На этой карте нет вражеских ядер для атаки игроком! Добавьте ядро команды {0} на эту карту в редакторе. map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты. workshop.update = Обновить содержимое workshop.error = Ошибка загрузки информации из Мастерской: {0} diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 43a6b6210a..c893680a15 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -392,9 +392,9 @@ custom = Tkana builtin = Ugrađena map.delete.confirm = Da li ste sigurni da želite obrisati ovu mapu? Ovaj čin je nepovratan! map.random = [accent]Nasumična Mapa -map.nospawn = Ova mapa nema jezgra u kom će se stvoriti igrač! Dodaj [#{0}]{1}[] jezgro ovoj mapi u editor-u. +map.nospawn = Ova mapa nema jezgra u kom će se stvoriti igrač! Dodaj {0} jezgro ovoj mapi u editor-u. map.nospawn.pvp = Ova mapa nema neprijateljskih jezgara u kom će se stvoriti igrač! Dodaj jezgara[scarlet] od drugih timova[] ovoj mapi u editor-u. -map.nospawn.attack = Ova mapa nema neprijateljskih jezgara koje će igrač napadati! Dodaj [#{0}]{1}[] jezgara ovoj mapi u editor-u. +map.nospawn.attack = Ova mapa nema neprijateljskih jezgara koje će igrač napadati! Dodaj {0} jezgara ovoj mapi u editor-u. map.invalid = Greška prilikom učitavanja mape: datoteka mape sadrži nečitljive delove. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index bb4a6ffa64..f72681bb7f 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -388,9 +388,9 @@ custom = Anpassad builtin = Inbyggd map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone! map.random = [accent]Random Map -map.nospawn = This map does not have any cores for the player to spawn in! Add a[accent] orange[] core to this map in the editor. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. +map.nospawn = This map does not have any cores for the player to spawn in! Add a {0} core to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add [scarlet]non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add {0} cores to this map in the editor. map.invalid = Error loading map: corrupted or invalid map file. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 7c0c17f81c..a1e9c66b01 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -392,9 +392,9 @@ custom = กำหนดเอง builtin = ค่าเริ่มต้น map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้! map.random = [accent]สุ่มแมพ -map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[#{0}]{1}[] ลงในตัวแก้ไข -map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[scarlet]ที่ไม่ใช่สีส้ม[] ลงในตัวแก้ไข -map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง [#{0}]{1}[] ลงในตัวแก้ไข +map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง {0} ลงในตัวแก้ไข +map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง [scarlet]ที่ไม่ใช่สีส้ม[] ลงในตัวแก้ไข +map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง {0} ลงในตัวแก้ไข map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง workshop.update = อัปเดตไอเท็ม workshop.error = เกิดข้อผิดพลาดในการนำเข้าเวิร์กช็อป รายละเอียดดังนี้: {0} diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index d50e252fb7..0062055a1b 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -388,9 +388,9 @@ custom = Ozel builtin = Yapilandirilmis map.delete.confirm = Haritayi silmek istedigine emin misin? Bu geri alinamaz! map.random = [accent]Rasgele harita -map.nospawn = Haritada Oyncularin cikmasi icin cekirdek yok! Haritaya[royal]Mavi[] cekirdek ekle. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] red[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. +map.nospawn = Haritada Oyncularin cikmasi icin cekirdek yok! Haritaya {0} cekirdek ekle. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add [scarlet]non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add {0} cores to this map in the editor. map.invalid = Harita yuklenemedi. Gecersiz yada bozuk dosya. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 9319b26dbb..0bc1dd2099 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -392,9 +392,9 @@ custom = Özel builtin = Yerleşik map.delete.confirm = Bu haritayı silmek istediğinizden emin misiniz? Bunu geri alamazsınız! map.random = [accent]Rastgele Harita -map.nospawn = Bu haritada oyuncunun doğacağı hiç bir Merkez yok! Düzenleyiciden bu haritaya[accent] turuncu[] bir Merkez ekleyin. +map.nospawn = Bu haritada oyuncunun doğacağı hiç bir Merkez yok! Düzenleyiciden bu haritaya {0} bir Merkez ekleyin. map.nospawn.pvp = Bu Haritada düşmanın doğacağı hiç Merkez yok! Düzenleyiciden bu haritaya [scarlet]turuncu olmayan[] Merkezler ekleyin. -map.nospawn.attack = Bu haritada oyuncunun saldıracağı hiç düşman çekirdeği yok! Editörden haritaya[scarlet] düşman[] Merkezler ekleyin. +map.nospawn.attack = Bu haritada oyuncunun saldıracağı hiç düşman çekirdeği yok! Editörden haritaya {0} Merkezler ekleyin. map.invalid = Haritayı açarken hata oldu: bozulmuş ya da geçersiz harita dosyası.- workshop.update = Nesneyi Güncelle workshop.error = Atölye ayrıntılarını alırken hata oluştu: {0} diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 9028522271..77d9098e86 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -394,9 +394,9 @@ custom = Користувацька builtin = Вбудована map.delete.confirm = Ви дійсно хочете видалити цю мапу? Цю дію неможливо буде скасувати! map.random = [accent]Випадкова мапа -map.nospawn = Ця мапа не має жодного ядра для появи гравця! Додайте [accent]помаранчеве[] ядро до цієї мапи в редакторі. -map.nospawn.pvp = У цієї мапи немає ворожих ядер, у яких гравець може з’явитися! Додайте [#{0}]{1}[] ядро до цієї мапи в редакторі. -map.nospawn.attack = У цієї мапи немає ворожих ядер, у яких гравець може з’явитися! Додайте [#{0}]{1}[] ядро до цієї мапи в редакторі. +map.nospawn = Ця мапа не має жодного ядра для появи гравця! Додайте {0} ядро до цієї мапи в редакторі. +map.nospawn.pvp = У цієї мапи немає ворожих ядер, у яких гравець може з’явитися! Додайте [scarlet]вороже[] ядро до цієї мапи в редакторі. +map.nospawn.attack = У цієї мапи немає ворожих ядер для атаки гравцем! Додайте {0} ядро до цієї мапи в редакторі. map.invalid = Помилка завантаження мапи: пошкоджений або невірний файл мапи. workshop.update = Оновити предмет workshop.error = Помилка під час отримання інформації з Майстерні: {0} diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index cfffa8afb6..739db98fff 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -393,9 +393,9 @@ custom = Tùy chỉnh builtin = Xây trong map.delete.confirm = Bạn có chắc chắn muốn xóa bản đồ này không? Hành động này không thể hoàn tác! map.random = [accent]Bản đồ ngẫu nhiên -map.nospawn = Bản đồ này không có bất kỳ căn cứ nào để người chơi hồi sinh! Thêm một căn cứ [accent] cam[] vào bản đồ ở trình chỉnh sửa. -map.nospawn.pvp = Bản đồ này không có bất kỳ căn cứ kẻ thù nào để người chơi hồi sinh! Thêm một căn cứ khác màu [scarlet]cam [] vào bản đồ ở trình chỉnh sửa. -map.nospawn.attack = Bản đồ này không có bất kỳ căn cứ kẻ thù nào để người chơi tấn công! Thêm một căn cứ màu[scarlet] đỏ[] vào bản đồ ở trình chỉnh sửa. +map.nospawn = Bản đồ này không có bất kỳ căn cứ nào để người chơi hồi sinh! Thêm một căn cứ {0} vào bản đồ ở trình chỉnh sửa. +map.nospawn.pvp = Bản đồ này không có bất kỳ căn cứ kẻ thù nào để người chơi hồi sinh! Thêm một căn cứ khác màu [scarlet]cam[] vào bản đồ ở trình chỉnh sửa. +map.nospawn.attack = Bản đồ này không có bất kỳ căn cứ kẻ thù nào để người chơi tấn công! Thêm một căn cứ màu {0} vào bản đồ ở trình chỉnh sửa. map.invalid = Lỗi khi tải bản đồ: tệp bản đồ bị hỏng hoặc không hợp lệ. workshop.update = Cập nhật mục workshop.error = Lỗi khi tìm nạp thông tin chi tiết ở workshop: {0} diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 5f90c5edcc..d028ee6dba 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -395,9 +395,9 @@ custom = 自定义 builtin = 内置 map.delete.confirm = 您确定要删除这张地图吗?这个操作无法撤销! map.random = [accent]随机地图 -map.nospawn = 这个地图缺少己方核心!请在地图编辑器中添加一个[#{0}]{1}[]队的核心。 +map.nospawn = 这个地图缺少己方核心!请在地图编辑器中添加一个{0}队的核心。 map.nospawn.pvp = 这个地图缺少对方核心!请在地图编辑器中添加一个[scarlet]除黄队以外[]的核心。 -map.nospawn.attack = 这个地图缺少敌方核心!请在地图编辑器中添加一个[#{0}]{1}[]队的核心。 +map.nospawn.attack = 这个地图缺少敌方核心!请在地图编辑器中添加一个{0}队的核心。 map.invalid = 地图载入错误:地图文件可能已经损坏。 workshop.update = 更新内容 workshop.error = 获取创意工坊详细信息时出错:{0} diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index a30baea264..30cfc6ba5b 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -392,9 +392,9 @@ custom = 自訂 builtin = 内建 map.delete.confirm = 確認要刪除地圖嗎?此動作無法復原! map.random = [accent]隨機地圖 -map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[#{0}]{1}[]的核心。 +map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個{0}的核心。 map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[scarlet]不是橘色[]的核心。 -map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[#{0}]{1}[]的核心。 +map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個{0}的核心。 map.invalid = 地圖載入錯誤:地圖可能已經損毀。 workshop.update = 更新項目 workshop.error = 擷取工作坊詳細資訊時出錯:{0} diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index 7dacad6e59..92e3e46a8c 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -366,8 +366,8 @@ public class World{ if(!headless){ if(state.teams.cores(checkRules.defaultTeam).size == 0 && !checkRules.pvp){ - ui.showErrorMessage(Core.bundle.format("map.nospawn", checkRules.defaultTeam.color, checkRules.defaultTeam.localized())); invalidMap = true; + ui.showErrorMessage(Core.bundle.format("map.nospawn", checkRules.defaultTeam.coloredName())); }else if(checkRules.pvp){ //pvp maps need two cores to be valid if(state.teams.getActive().count(TeamData::hasCore) < 2){ invalidMap = true; @@ -376,7 +376,7 @@ public class World{ }else if(checkRules.attackMode){ //attack maps need two cores to be valid invalidMap = state.rules.waveTeam.data().noCores(); if(invalidMap){ - ui.showErrorMessage(Core.bundle.format("map.nospawn.attack", checkRules.waveTeam.color, checkRules.waveTeam.localized())); + ui.showErrorMessage(Core.bundle.format("map.nospawn.attack", checkRules.waveTeam.coloredName())); } } }else{ diff --git a/core/src/mindustry/game/Team.java b/core/src/mindustry/game/Team.java index 0bd8aef35b..60885a9417 100644 --- a/core/src/mindustry/game/Team.java +++ b/core/src/mindustry/game/Team.java @@ -134,6 +134,10 @@ public class Team implements Comparable{ public String localized(){ return Core.bundle.get("team." + name + ".name", name); } + + public String coloredName(){ + return emoji + "[#" + color + "]" + localized() + "[]"; + } @Override public int compareTo(Team team){ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 1708005773..965304ab7d 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -201,7 +201,6 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.unitcostmultiplier", f -> rules.unitCostMultiplier = f, () -> rules.unitCostMultiplier); number("@rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier); - main.button("@bannedunits", () -> showBanned("@bannedunits", ContentType.unit, rules.bannedUnits, u -> !u.isHidden())).left().width(300f).row(); check("@bannedunits.whitelist", b -> rules.unitWhitelist = b, () -> rules.unitWhitelist); @@ -280,7 +279,7 @@ public class CustomRulesDialog extends BaseDialog{ boolean[] shown = {false}; Table wasMain = main; - main.button("[#" + team.color + "]" + team.localized() + (team.emoji.isEmpty() ? "" : "[] " + team.emoji), Icon.downOpen, Styles.togglet, () -> { + main.button(team.coloredName(), Icon.downOpen, Styles.togglet, () -> { shown[0] = !shown[0]; }).marginLeft(14f).width(260f).height(55f).update(t -> { ((Image)t.getChildren().get(1)).setDrawable(shown[0] ? Icon.upOpen : Icon.downOpen); @@ -300,8 +299,8 @@ public class CustomRulesDialog extends BaseDialog{ numberi("@rules.rtsmaxsquadsize", f -> teams.rtsMaxSquad = f, () -> teams.rtsMaxSquad, () -> teams.rtsAi, 1, 1000); number("@rules.rtsminattackweight", f -> teams.rtsMinWeight = f, () -> teams.rtsMinWeight, () -> teams.rtsAi); - check("@rules.buildai", b -> teams.buildAi = b, () -> teams.buildAi, () -> team != rules.defaultTeam && rules.env != Planets.erekir.defaultEnv && !rules.pvp); //disallow on Erekir (this is broken for mods I'm sure, but whatever) + check("@rules.buildai", b -> teams.buildAi = b, () -> teams.buildAi, () -> team != rules.defaultTeam && rules.env != Planets.erekir.defaultEnv && !rules.pvp); number("@rules.buildaitier", false, f -> teams.buildAiTier = f, () -> teams.buildAiTier, () -> teams.buildAi && rules.env != Planets.erekir.defaultEnv && !rules.pvp, 0, 1); check("@rules.infiniteresources", b -> teams.infiniteResources = b, () -> teams.infiniteResources); @@ -313,7 +312,6 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.unitcostmultiplier", f -> teams.unitCostMultiplier = f, () -> teams.unitCostMultiplier); number("@rules.unithealthmultiplier", f -> teams.unitHealthMultiplier = f, () -> teams.unitHealthMultiplier); - main = wasMain; }, () -> shown[0]).growX().row(); } @@ -327,7 +325,7 @@ public class CustomRulesDialog extends BaseDialog{ for(Team team : Team.baseTeams){ t.button(Tex.whiteui, Styles.squareTogglei, 38f, () -> { cons.get(team); - }).pad(1f).checked(b -> prov.get() == team).size(60f).tooltip(team.localized()).with(i -> i.getStyle().imageUpColor = team.color); + }).pad(1f).checked(b -> prov.get() == team).size(60f).tooltip(team.coloredName()).with(i -> i.getStyle().imageUpColor = team.color); } }).padTop(0).row(); } diff --git a/core/src/mindustry/ui/dialogs/GameOverDialog.java b/core/src/mindustry/ui/dialogs/GameOverDialog.java index 677607ee66..107726b6cc 100644 --- a/core/src/mindustry/ui/dialogs/GameOverDialog.java +++ b/core/src/mindustry/ui/dialogs/GameOverDialog.java @@ -55,7 +55,7 @@ public class GameOverDialog extends BaseDialog{ cont.table(t -> { if(state.rules.pvp && winner != null){ - t.add(Core.bundle.format("gameover.pvp", winner.localized())).center().pad(6); + t.add(Core.bundle.format("gameover.pvp", winner.coloredName())).center().pad(6); }else{ t.add(state.isCampaign() ? Core.bundle.format("sector.lost", state.getSector().name()) : "@gameover").center().pad(6); } diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index f06042ddab..e773530c8c 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -185,7 +185,7 @@ public class ServerControl implements ApplicationListener{ nextMapOverride = null; if(map != null){ Call.infoMessage((state.rules.pvp - ? "[accent]The " + event.winner.name + " team is victorious![]\n" : "[scarlet]Game over![]\n") + ? "[accent]The " + event.winner.coloredName() + " team is victorious![]\n" : "[scarlet]Game over![]\n") + "\nNext selected map: [accent]" + map.name() + "[white]" + (map.hasTag("author") ? " by[accent] " + map.author() + "[white]" : "") + "." + "\nNew game begins in " + roundExtraTime + " seconds."); From 7bb03e80860f0044c30141c3faa3f50dfb7baec6 Mon Sep 17 00:00:00 2001 From: BeDanGames <92419640+BeDanGames@users.noreply.github.com> Date: Wed, 14 Jun 2023 20:10:44 +0700 Subject: [PATCH 02/10] Update servers_v7.json (#8712) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 504048fa84..49112355f8 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -133,7 +133,7 @@ }, { "name": "|RussianServers|[]", - "address": ["2p2g.ml:6567", "2p2g.ml:6568", "2p2g.ml:6569", "2p2g.ml:6570", "2p2g.ml:6571", "2p2g.ml:6572", "2p2g.ml:6573"] + "address": ["tyancraft.ru:6567", "tyancraft.ru:6568", "tyancraft.ru:6569", "tyancraft.ru:6570", "tyancraft.ru:6571", "tyancraft.ru:6572", "tyancraft.ru:6573"] }, { "name": "Hungarian", From 913722202e220eb8ae71a90fd440d7dc56f0ef8c Mon Sep 17 00:00:00 2001 From: Github Actions Date: Wed, 14 Jun 2023 13:11:46 +0000 Subject: [PATCH 03/10] Automatic bundle update --- core/assets/bundles/bundle_tk.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 0062055a1b..63e24eb32c 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -389,7 +389,7 @@ builtin = Yapilandirilmis map.delete.confirm = Haritayi silmek istedigine emin misin? Bu geri alinamaz! map.random = [accent]Rasgele harita map.nospawn = Haritada Oyncularin cikmasi icin cekirdek yok! Haritaya {0} cekirdek ekle. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add [scarlet]non-orange[] cores to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add [scarlet]non-orange[] cores to this map in the editor. map.nospawn.attack = This map does not have any enemy cores for player to attack! Add {0} cores to this map in the editor. map.invalid = Harita yuklenemedi. Gecersiz yada bozuk dosya. workshop.update = Update Item From 71caf3154305a1cfa827671aae2728e3ab215b0b Mon Sep 17 00:00:00 2001 From: Alexander397172YT <76264974+Alexander397172YT@users.noreply.github.com> Date: Thu, 15 Jun 2023 20:52:14 +0400 Subject: [PATCH 04/10] new CreateDustry IP (#8713) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 49112355f8..d8d83c800e 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -173,6 +173,6 @@ }, { "name": "CreateDustry", - "address": ["116.202.83.83:25689"] + "address": ["95.216.68.161:55639"] } ] From 40c5510205e04defd63ddd967f4db17a5ee6857d Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 15 Jun 2023 10:57:27 -0700 Subject: [PATCH 05/10] Better handling of missiles splitting to other missiles (#8603) - Pass a shooter separate to owner into `BulletType#create`. `killShooter` kills the owner while the shooter is passed into the missile ai - `killShooter` no longer kills already dead units - `MissileAI` no longer aims at shooter's aim pos if the shooter is dead --- core/src/mindustry/ai/types/MissileAI.java | 2 +- core/src/mindustry/entities/bullet/BulletType.java | 12 +++++++++--- core/src/mindustry/type/Weapon.java | 4 +++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/ai/types/MissileAI.java b/core/src/mindustry/ai/types/MissileAI.java index b5d8271975..dc941df8a7 100644 --- a/core/src/mindustry/ai/types/MissileAI.java +++ b/core/src/mindustry/ai/types/MissileAI.java @@ -14,7 +14,7 @@ public class MissileAI extends AIController{ float time = unit instanceof TimedKillc t ? t.time() : 1000000f; - if(time >= unit.type.homingDelay && shooter != null){ + if(time >= unit.type.homingDelay && shooter != null && !shooter.dead()){ unit.lookAt(shooter.aimX, shooter.aimY); } diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 9797160948..45e2c67313 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -554,7 +554,7 @@ public class BulletType extends Content implements Cloneable{ public void init(Bullet b){ - if(killShooter && b.owner() instanceof Healthc h){ + if(killShooter && b.owner() instanceof Healthc h && !h.dead()){ h.kill(); } @@ -726,6 +726,10 @@ public class BulletType extends Content implements Cloneable{ } public @Nullable Bullet create(@Nullable Entityc owner, Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY){ + return create(owner, owner, team, x, y, angle, damage, velocityScl, lifetimeScl, data, mover, aimX, aimY); + } + + public @Nullable Bullet create(@Nullable Entityc owner, @Nullable Entityc shooter, Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY){ if(spawnUnit != null){ //don't spawn units clientside! if(!net.client()){ @@ -738,17 +742,19 @@ public class BulletType extends Content implements Cloneable{ } //assign unit owner if(spawned.controller() instanceof MissileAI ai){ - if(owner instanceof Unit unit){ + if(shooter instanceof Unit unit){ ai.shooter = unit; } - if(owner instanceof ControlBlock control){ + if(shooter instanceof ControlBlock control){ ai.shooter = control.unit(); } } spawned.add(); } + //Since bullet init is never called, handle killing shooter here + if(killShooter && owner instanceof Healthc h && !h.dead()) h.kill(); //no bullet returned return null; diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index fd8fd02304..1322ccc4d5 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -10,6 +10,7 @@ import arc.math.geom.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; +import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; import mindustry.audio.*; import mindustry.content.*; @@ -458,7 +459,8 @@ public class Weapon implements Cloneable{ lifeScl = bullet.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : 1f, angle = angleOffset + shootAngle + Mathf.range(inaccuracy + bullet.inaccuracy); - mount.bullet = bullet.create(unit, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); + Entityc shooter = unit.controller() instanceof MissileAI ai ? ai.shooter : unit; //Pass the missile's shooter down to its bullets + mount.bullet = bullet.create(unit, shooter, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); handleBullet(unit, mount, mount.bullet); if(!continuous){ From bf1484b17c63ef2756995a4d7c14dc7e99d9515e Mon Sep 17 00:00:00 2001 From: WayZer Date: Fri, 16 Jun 2023 03:44:02 +0800 Subject: [PATCH 06/10] Update CoreBlock.java (#8583) --- core/src/mindustry/world/blocks/storage/CoreBlock.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index aa0ed7ba29..d33ee51ece 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -593,11 +593,6 @@ public class CoreBlock extends StorageBlock{ state.teams.unregisterCore(this); - int max = itemCapacity * state.teams.cores(team).size; - for(Item item : content.items()){ - items.set(item, Math.min(items.get(item), max)); - } - for(CoreBuild other : state.teams.cores(team)){ other.onProximityUpdate(); } From 2ff7ccfc193e5f2d0f67e6fe78c0e52275199352 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 15 Jun 2023 16:33:01 -0700 Subject: [PATCH 07/10] Laser pierce fixes. (#8526) * Flip pierce check order Allow pierce cap + laser to function together * Apply to continuous bullets + Make visually accurately show length. * laser parameter for findPierceLength consistency with collideLine --- core/src/mindustry/entities/Damage.java | 24 +++++++++++++------ .../bullet/ContinuousFlameBulletType.java | 2 +- .../bullet/ContinuousLaserBulletType.java | 14 +++++++---- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 3b3571df09..5c83b1a283 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -137,6 +137,16 @@ public class Damage{ return found ? tmpBuilding : null; } + public static float findLength(Bullet b, float length, boolean laser, int pierceCap){ + if(pierceCap > 0){ + length = findPierceLength(b, pierceCap, laser, length); + }else if(laser){ + length = findLaserLength(b, length); + } + + return length; + } + public static float findLaserLength(Bullet b, float length){ vec.trnsExact(b.rotation(), length); @@ -149,6 +159,10 @@ public class Damage{ } public static float findPierceLength(Bullet b, int pierceCap, float length){ + return findPierceLength(b, pierceCap, b.type.laserAbsorb, length); + } + + public static float findPierceLength(Bullet b, int pierceCap, boolean laser, float length){ vec.trnsExact(b.rotation(), length); rect.setPosition(b.x, b.y).setSize(vec.x, vec.y).normalize().grow(3f); @@ -163,7 +177,7 @@ public class Damage{ if(build != null && build.team != b.team && build.collide(b) && b.checkUnderBuild(build, x * tilesize, y * tilesize)){ distances.add(b.dst(build)); - if(b.type.laserAbsorb && build.absorbLasers()){ + if(laser && build.absorbLasers()){ maxDst = Math.min(maxDst, b.dst(build)); return true; } @@ -189,7 +203,7 @@ public class Damage{ /** Collides a bullet with blocks in a laser, taking into account absorption blocks. Resulting length is stored in the bullet's fdata. */ public static float collideLaser(Bullet b, float length, boolean large, boolean laser, int pierceCap){ - float resultLength = findPierceLength(b, pierceCap, length); + float resultLength = findPierceLength(b, pierceCap, laser, length); collideLine(b, b.team, b.type.hitEffect, b.x, b.y, b.rotation(), resultLength, large, laser, pierceCap); @@ -223,11 +237,7 @@ public class Damage{ * Only enemies of the specified team are damaged. */ public static void collideLine(Bullet hitter, Team team, Effect effect, float x, float y, float angle, float length, boolean large, boolean laser, int pierceCap){ - if(laser){ - length = findLaserLength(hitter, length); - }else if(pierceCap > 0){ - length = findPierceLength(hitter, pierceCap, length); - } + length = findLength(hitter, length, laser, pierceCap); collidedBlocks.clear(); vec.trnsExact(angle, length); diff --git a/core/src/mindustry/entities/bullet/ContinuousFlameBulletType.java b/core/src/mindustry/entities/bullet/ContinuousFlameBulletType.java index 36c8d9017c..4d67083cec 100644 --- a/core/src/mindustry/entities/bullet/ContinuousFlameBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousFlameBulletType.java @@ -57,7 +57,7 @@ public class ContinuousFlameBulletType extends ContinuousBulletType{ @Override public void draw(Bullet b){ float mult = b.fin(lengthInterp); - float realLength = (pierceCap <= 0 ? length : Damage.findPierceLength(b, pierceCap, length)) * mult; + float realLength = Damage.findLength(b, length * mult, laserAbsorb, pierceCap); float sin = Mathf.sin(Time.time, oscScl, oscMag); diff --git a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java index 2b16fe2eaf..b8d6d029be 100644 --- a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java @@ -41,9 +41,8 @@ public class ContinuousLaserBulletType extends ContinuousBulletType{ @Override public void draw(Bullet b){ - float realLength = Damage.findLaserLength(b, length); float fout = Mathf.clamp(b.time > b.lifetime - fadeTime ? 1f - (b.time - (lifetime - fadeTime)) / fadeTime : 1f); - float baseLen = realLength * fout; + float realLength = Damage.findLength(b, length * fout, laserAbsorb, pierceCap); float rot = b.rotation(); for(int i = 0; i < colors.length; i++){ @@ -55,17 +54,17 @@ public class ContinuousLaserBulletType extends ContinuousBulletType{ float ellipseLenScl = Mathf.lerp(1 - i / (float)(colors.length), 1f, pointyScaling); Lines.stroke(stroke); - Lines.lineAngle(b.x, b.y, rot, baseLen - frontLength, false); + Lines.lineAngle(b.x, b.y, rot, realLength - frontLength, false); //back ellipse Drawf.flameFront(b.x, b.y, divisions, rot + 180f, backLength, stroke / 2f); //front ellipse - Tmp.v1.trnsExact(rot, baseLen - frontLength); + Tmp.v1.trnsExact(rot, realLength - frontLength); Drawf.flameFront(b.x + Tmp.v1.x, b.y + Tmp.v1.y, divisions, rot, frontLength * ellipseLenScl, stroke / 2f); } - Tmp.v1.trns(b.rotation(), baseLen * 1.1f); + Tmp.v1.trns(b.rotation(), realLength * 1.1f); Drawf.light(b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, lightStroke, lightColor, 0.7f); Draw.reset(); @@ -76,4 +75,9 @@ public class ContinuousLaserBulletType extends ContinuousBulletType{ //no light drawn here } + @Override + public float currentLength(Bullet b){ + float fout = Mathf.clamp(b.time > b.lifetime - fadeTime ? 1f - (b.time - (lifetime - fadeTime)) / fadeTime : 1f); + return length * fout; + } } From be7a360bf55a3956cb852faa718d7900ca356eda Mon Sep 17 00:00:00 2001 From: Tornado3708 <107116054+Tornado3708@users.noreply.github.com> Date: Fri, 16 Jun 2023 06:31:37 +0300 Subject: [PATCH 08/10] Update bundle_be.properties (#8697) Foreshadow, tar fields and particular interface text translation. --- core/assets/bundles/bundle_be.properties | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 51f6e8452e..eb9c2e8c14 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -56,7 +56,7 @@ mods.browser.sortstars = Сартаваць па зоркам schematic = Схема schematic.add = Захаваць схему... schematics = Схемы -schematic.search = Search schematics... +schematic.search = Пошук схемы... schematic.replace = Схема с дадзенай назвай ужо існуе. Замяніць яе? schematic.exists = Схема с дадзенай назвай ужо існуе. schematic.import = Імпартаваць схему... @@ -69,7 +69,7 @@ schematic.shareworkshop = Падзяліцца ў Майстэрні schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Адлюстраваць схему schematic.saved = Схема захавана. schematic.delete.confirm = Гэтая схема будзе выдалена. -schematic.edit = Edit Schematic +schematic.edit = Рэдагаваць схему schematic.info = {0}x{1}, {2} блокаў schematic.disabled = [scarlet]Схемы забаронены[]\nВам нельга выкарыстоўваць схемы на гэтай [accent]карце[] альбо [accent]серверы. schematic.tags = Тэгі: @@ -126,7 +126,7 @@ uploadingpreviewfile = Выгрузка файла прадпрагляду committingchanges = Унясенне змяненняў done = Гатова feature.unsupported = Ваша прылада не падтрымлівае гэтую магчымасць. -mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[] +mods.initfailed = [red]⚠[] Папярэдні асобнік Mindustry не атрымалася ініцыялізаваць. Гэта напэўна выклікана тым, што моды не працуюць належным чынам.\n\nКаб прадухіліць цыкл збояў, [red]усе моды былі адключаныя.[] mods = Мадыфікацыі mods.none = [lightgray]Мадыфікацыі не знойдзены! mods.guide = Кіраўніцтва па мадам @@ -297,7 +297,7 @@ server.invalidport = Няправільны нумар порта! server.error = [барвовы]Памылка стварэння сервера. save.new = Новае захаванне save.overwrite = Вы ўпэўненыя, што жадаеце перазапісаць\nгэты слот для захавання? -save.nocampaign = Individual save files from the campaign cannot be imported. +save.nocampaign = Індывідуальныя файлы захавання кампаніі нельга імпартаваць. overwrite = Перазапісаць save.none = Захавання не знойдзены! savefail = Не атрымалася захаваць гульню! @@ -440,14 +440,14 @@ waves.title = Хвалі waves.remove = Выдаліць waves.every = кожны waves.waves = хваля (ы) -waves.health = health: {0}% +waves.health = Здароўе: {0}% waves.perspawn = за з’яўленне waves.shields = адзінак шчыта/хвалю waves.to = да waves.spawn = зявілася: waves.spawn.all = <усе> waves.spawn.select = Выбар Кропкі Зяўлення -waves.spawn.none = [scarlet]no spawns found in map +waves.spawn.none = [scarlet]спаўны на карце не знойдзены waves.max = максімум адзінак waves.guardian = Вартаўнік waves.preview = Папярэдні прагляд @@ -463,8 +463,8 @@ waves.sort.reverse = Рэверсіўнае Сартаванне waves.sort.begin = Пачатак waves.sort.health = Здароўе waves.sort.type = Тып -waves.search = Search waves... -waves.filter = Unit Filter +waves.search = Пошук хваль... +waves.filter = Фільтраваць Юнітав waves.units.hide = Схаваць Усё waves.units.show = Паказаць Усё @@ -536,12 +536,12 @@ toolmode.eraseores = Сцерці руды toolmode.eraseores.description = Сцерці толькі руды. toolmode.fillteams = Змяніць каманду блокаў toolmode.fillteams.description = Змяняе прыналежнасць \nблокаў да каманды. -toolmode.fillerase = Fill Erase -toolmode.fillerase.description = Erase blocks of the same type. +toolmode.fillerase = Сцерці заліўку +toolmode.fillerase.description = Сцерці ўсе блокі аднаго тыпу. toolmode.drawteams = Змяніць каманду блока toolmode.drawteams.description = Змяняе прыналежнасць \nблокаў да каманды. -toolmode.underliquid = Under Liquids -toolmode.underliquid.description = Draw floors under liquid tiles. +toolmode.underliquid = Пад вадкасцямі +toolmode.underliquid.description = Малюе паверхні пад вадзяныя блокі. filters.empty = [lightgray]Няма фільтраў! Дадайце адзін пры дапамозе кнопкі ніжэй. filter.distort = Скажэнне @@ -636,7 +636,7 @@ marker.minimap.name = Міні-Мапа marker.shape.name = Форма marker.text.name = Тэкст marker.background = Задні Фон -marker.outline = Outline +marker.outline = Контур objective.research = [accent]Даследаваць:\n[]{0}[lightgray]{1} objective.produce = [accent]Атрымаць:\n[]{0}[lightgray]{1} objective.destroyblock = [accent]Знішчыць:\n[]{0}[lightgray]{1} @@ -760,7 +760,7 @@ sector.craters.description = Вада сабралася ў гэтым крат sector.ruinousShores.description = Ператварыўшаяся ў мусар, берагавая лінія. Раней, гэта лакацыя была раёнам берагавой абароны. Мала што ад яе засталося. Толькі самыя простыя абарончыя структуры засталіся непашкоджанымі, усё яшчэ ператвораныя ў металалом.\nПрацягніце пашырэнне па-за гэты сектар. Адкрыйце нанава гэту тэхналогію. sector.stainedMountains.description = Далей ідзе востраў на якім ляжаць горы, яшчэ не заплямлены спорамі.\nДабудзьце багата тытану ў гэтым сектары. Даведайцеся як выкарыстоуваць яго.\n\nВарожая прысутнасць тут мацней. Не дайце ім часу каб адправіць іх мацнейшыя адзінкі. sector.overgrowth.description = Гэты сектар зарос, бліжэйшы да крыніцы спораў.\nВораг заснаваў тутThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. +sector.tarFields.description = Ваколіцы зоны здабычы нафты, паміж гарамі і пустыняй. Адзін з некалькіх зон з прыдатнымі для выкарыстання запасамі дзёгцю.\nТаксама закінутая, гэтая зона мае побач небяспечных ворагаў. Не варта недаацэньваць іх.\n\n[lightgray]Знайдзіце па магчымасці тэхналогіі перапрацоўкі нафты. sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. @@ -1521,7 +1521,7 @@ block.solar-panel.name = Сонечная панэль block.solar-panel-large.name = Вялікая сонечная панэль block.oil-extractor.name = Нафтавая вышка block.repair-point.name = Рамонтны пункт -block.repair-turret.name = Repair Turret +block.repair-turret.name = Рамонтна турэль block.pulse-conduit.name = Імпульсны трубаправод block.plated-conduit.name = Умацаваны трубаправод block.phase-conduit.name = Фазавы трубаправод @@ -1997,7 +1997,7 @@ block.ripple.description = Вельмі магутная артылерыйск block.cyclone.description = Вялікая турэль, якая можа весці агонь па паветраных і наземных мэтах. Страляе разрыўнымі снарадамі па бліжэйшых ворагам. block.spectre.description = Масіўная двуствольное гармата. Страляе буйнымі бранябойнымі кулямі па паветраных і наземных мэтах. block.meltdown.description = Масіўная лазерная гармата. Зараджае і страляе пастаянным лазерным прамянём ў бліжэйшых ворагаў. Патрабуецца астуджальная вадкасць для працы. -block.foreshadow.description = Fires a large single-target bolt over long distances. Prioritizes enemies with higher max health. +block.foreshadow.description = Страляе маланкай па адной цэлі на вялікай адлегласці. Аддае прыярытэт ворагам з большым максімальным здароўем. block.repair-point.description = Бесперапынна лечыць бліжэйшую пашкоджаную баявую адзінку або мех у сваім радыусе. block.segment.description = Пашкоджвае і знішчае снарады. Лазерныя снарады не шкодзяца. block.parallax.description = Fires a tractor beam that pulls in air targets, damaging them in the process. From ed6619d2dffdbd19d0566a34f97eb1cce6d2d3fb Mon Sep 17 00:00:00 2001 From: JniTrRny <85090668+JniTrRny@users.noreply.github.com> Date: Fri, 16 Jun 2023 22:56:55 +0700 Subject: [PATCH 09/10] Update bundle_th.properties (#8714) --- core/assets/bundles/bundle_th.properties | 194 +++++++++++------------ 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index a1e9c66b01..70f0763ad9 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -57,7 +57,7 @@ mods.browser.sortstars = เรียงตามคะแนนดาว schematic = แผนผัง schematic.add = บันทึกแผนผัง... schematics = แผนผัง -schematic.search = Search schematics... +schematic.search = ค้นหาแผนผัง... schematic.replace = มีแผนผังที่ใช้ชื่อนี้แล้ว แทนที่เลยไหม? schematic.exists = มีแผนผังในชื่อนั้นอยู่แล้ว schematic.import = นำเข้าแผนผัง... @@ -70,7 +70,7 @@ schematic.shareworkshop = แชร์บนเวิร์กช็อป schematic.flip = [accent][[{0}][]/[accent][[{1}][]: กลับแผนผัง schematic.saved = บันทึกแผนผังแล้ว schematic.delete.confirm = แผนผังนี้จะถูกกำจัดให้หมดสิ้นไม่เหลือซาก -schematic.edit = Edit Schematic +schematic.edit = แก้ไขแผนผัง schematic.info = {0}x{1}, {2} บล็อก schematic.disabled = [scarlet]การใช้แผนผังถูกปิดไว้[]\nคุณไม่สามารถใช้แผนผังได้ใน[accent]แมพ[]หรือ[accent]เซิร์ฟเวอร์[]นี้ schematic.tags = แท็ก: @@ -79,7 +79,7 @@ schematic.addtag = เพิ่มแท็ก schematic.texttag = แท็กข้อความ schematic.icontag = แท็กไอคอน schematic.renametag = เปลี่ยนชื่อแท็ก -schematic.tagged = {0} tagged +schematic.tagged = {0} ถูกแท็ก schematic.tagdelconfirm = จะลบแท็กนี้ทั่วทั้งหมดเลยใช่ไหม? schematic.tagexists = แท็กนี้มีอยู่แล้ว @@ -174,7 +174,7 @@ mod.jarwarn = [scarlet]ม็อดไฟล์ JAR นั้นค่อนข mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น mod.remove.confirm = ม็อดนี้จะถูกลบออกไป mod.author = [lightgray]ผู้สร้าง:[] {0} -mod.missing = เซฟนี้มีม็อดที่คุณพึ่งอัปเดตหรือไม่ได้ติดตั้งแล้ว อาจทำให้เซฟเสีย คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]ม็อดที่ใช้:\n{0} +mod.missing = เซฟนี้มีม็อดที่คุณพึ่งอัปเดตหรือไม่ได้ติดตั้งแล้ว อาจทำให้เซฟเสีย คุณแน่ใจหรือว่าจะโหลดเซฟนี้?\n[lightgray]ม็อดที่ใช้:\n{0} mod.preview.missing = ก่อนที่จะนำม็อดไปลงในเวิร์กช็อป คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของม็อดแล้วลองอีกครั้ง mod.folder.missing = ม็อดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงในเวิร์กช็อปได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดม็อด mod.scripts.disable = เครื่องของคุณไม่รองรับม็อดที่มีสคริปต์ คุณจำเป็นต้องปิดม็อดเหล่านี้ก่อนจึงจะสามารถเล่นได้ @@ -260,13 +260,13 @@ trace.modclient = ไคลเอนต์ปรับแต่ง: [accent]{0} trace.times.joined = ครั้งที่เข้า: [accent]{0} trace.times.kicked = ครั้งที่โดนเตะ: [accent]{0} trace.ips = IPs: -trace.names = Names: +trace.names = ชื่อ: invalidid = ไคลเอนต์ ID ไม่ถูกต้อง! กรุณารายงานบัคนี้ -player.ban = Ban -player.kick = Kick -player.trace = Trace -player.admin = Toggle Admin -player.team = Change Team +player.ban = แบน +player.kick = เตะ +player.trace = แกะรอย +player.admin = ปรับสถานะแอดมิน +player.team = เปลี่ยนทีม server.bans = แบน server.bans.none = ไม่พบผู้เล่นที่ถูกแบน! server.admins = แอดมิน @@ -283,8 +283,8 @@ confirmkick = คุณแน่ใจหรือว่าจะเตะผู confirmunban = คุณแน่ใจหรือว่าจะเลิกแบนผู้เล่นนี้? confirmadmin = คุณแน่ใจหรือว่าจะแต่งตั้งผู้เล่นคนนี้เป็นแอดมิน? confirmunadmin = คุณแน่ใจหรือว่าจะลบสถานะการเป็นแอดมินของผู้เล่นนี้? -votekick.reason = Vote-Kick Reason -votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason: +votekick.reason = เหตุผลการโหวตเตะ +votekick.reason.message = คุณแน่ใจหรือว่าจะโหวตเตะ "{0}[white]"?\nถ้าใช่ โปรดระบุเหตุผล: joingame.title = เข้าร่วมเกม joingame.ip = ที่อยู่: disconnect = ตัดการเชื่อมต่อแล้ว @@ -297,7 +297,7 @@ connecting = [accent]กำลังเชื่อมต่อ... reconnecting = [accent]กำลังเชื่อมต่อใหม่... connecting.data = [accent]กำลังโหลดข้อมูลของโลก ... server.port = พอร์ต: -server.addressinuse = มีคนใช้ที่อยู่นี้แล้ว! +server.addressinuse = มีคนใช้ที่อยู่นี้อยู่แล้ว! server.invalidport = เลขพอร์ตไม่ถูกต้อง! server.error = [crimson]การโฮสต์เซิร์ฟเวอร์ผิดพลาด save.new = เซฟใหม่ @@ -380,7 +380,7 @@ wave.waveInProgress = [lightgray]คลื่นกำลังดำเนิ waiting = [lightgray]กำลังรอ... waiting.players = รอผู้เล่น... wave.enemies = ศัตรูคงเหลือ [lightgray]{0} [accent]ตัว -wave.enemycores = แกนกลางศัตรูเหลือ [accent]{0}[lightgray] แกน +wave.enemycores = [accent]{0}[lightgray] แกนกลางศัตรู wave.enemycore = [accent]{0}[lightgray] แกนกลางศัตรู wave.enemy = ศัตรูคงเหลือ [lightgray]{0} [accent]ตัว wave.guardianwarn = ผู้พิทักษ์จะปรากฏตัวในอีก [accent]{0}[] คลื่น! @@ -393,7 +393,7 @@ builtin = ค่าเริ่มต้น map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้! map.random = [accent]สุ่มแมพ map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง {0} ลงในตัวแก้ไข -map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง [scarlet]ที่ไม่ใช่สีส้ม[] ลงในตัวแก้ไข +map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[scarlet]ที่ไม่ใช่สีส้ม[] ลงในตัวแก้ไข map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง {0} ลงในตัวแก้ไข map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง workshop.update = อัปเดตไอเท็ม @@ -468,8 +468,8 @@ waves.sort.reverse = เรียงย้อนกลับ waves.sort.begin = เริ่มต้น waves.sort.health = พลังชีวิต waves.sort.type = ชนิด -waves.search = Search waves... -waves.filter = Unit Filter +waves.search = ค้นหาคลื่น... +waves.filter = ตัวกรองยูนิต waves.units.hide = ซ่อนทั้งหมด waves.units.show = แสดงทั้งหมด @@ -506,7 +506,7 @@ editor.loadmap = โหลดแมพ editor.savemap = เซฟแมพ editor.saved = เซฟเรียบร้อย! editor.save.noname = แมพของคุณไม่มีชื่อ! สามารถตั้งชื่อได้ในเมนู 'ข้อมูลแมพ' -editor.save.overwrite = แมพของคุณไปทับกับแมพค่าเริ่มต้น! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ' +editor.save.overwrite = แมพของคุณไปทับซ้อนกับแมพค่าเริ่มต้น! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ' editor.import.exists = [scarlet]ไม่สามารถนำเข้าได้:[] มีแมพค่าเริ่มต้นที่ชื่อ '{0}' อยู่แล้ว! editor.import = นำเข้า... editor.importmap = นำเข้าแมพ @@ -542,14 +542,14 @@ toolmode.eraseores = ลบแร่ toolmode.eraseores.description = ลบเฉพาะแร่เท่านั้น toolmode.fillteams = เติมทีม toolmode.fillteams.description = เติมทีมแทนที่จะเป็นบล็อก -toolmode.fillerase = Fill Erase -toolmode.fillerase.description = Erase blocks of the same type. +toolmode.fillerase = เติมลบล้าง +toolmode.fillerase.description = ลบล้างบล็อกชนิดเดียวกัน toolmode.drawteams = วาดทีม toolmode.drawteams.description = วาดทีมแทนที่จะเป็นบล็อก toolmode.underliquid = ใต้พื้นของเหลว toolmode.underliquid.description = วาดพื้นด้านใต้ช่องของเหลว -filters.empty = [lightgray]ไม่มีฟิลเตอร์! เพิ่มด้วยปุ่มด้านล่างนี้ +filters.empty = [lightgray]ไม่มีฟิลเตอร์! เพิ่มฟิลเตอร์ด้วยปุ่มด้านล่างนี้ filter.distort = บิดเบือน filter.noise = นอยส์ @@ -696,7 +696,7 @@ weather.sandstorm.name = พายุทราย weather.sporestorm.name = พายุสปอร์ weather.fog.name = หมอก -campaign.playtime = \uf129 [lightgray]เวลาที่เล่นเซ็กเตอร์ไป: {0} +campaign.playtime =  [lightgray]เวลาที่เล่นเซ็กเตอร์ไป: {0} campaign.complete = [accent]ยินดีด้วย\n\nศัตรูบน {0} ได้ถูกกำจัดหมดสิ้นแล้ว\n[lightgray]เซ็กเตอร์สุดท้ายได้ถูกยึดครองแล้ว sectorlist = เซ็กเตอร์ @@ -780,7 +780,7 @@ sector.fungalPass.description = ทางเปลี่ยนผ่านระ sector.biomassFacility.description = แหล่งต้นกำเนิดของสปอร์ ที่นี่คือฐานวิจัยและผลิตสปอร์เริ่มแรก\nวิจัยเทคโนโลยีที่อยู่ภายในนั้น เพาะชำ[accent]สปอร์[]เพื่อเป็นเชื้อเพลิงและใช้ในการผลิตพลาสติก\n\n[gray]เมื่อสถานแห่งนี้ถึงจุดจบลง สปอร์ก็ถูกปล่อยออกมา ไม่มีสิ่งใดในระบบนิเวศท้องถิ่นที่สามารถแข่งขันกับ\nสิ่งมีชีวิตที่แพร่กระจายในระดับนี้ได้ sector.windsweptIslands.description = เลยแนวชายฝั่งไป จะพบกับหมู่เกาะที่ตั้งอยู่ห่างไกลแห่งนี้ เคยมีบันทึกว่าที่นี่มีโรงงานผลิต[accent]พลาสตาเนี่ยม[]อยู่\n\nทำลายเรือศัตรู สร้างฐานทัพบนเกาะ วิจัยโรงงานพวกนี้ sector.extractionOutpost.description = ด่านที่อยู่ห่างไกล สร้างโดยศัตรูเพื่อใช้ในการส่งทรัพยากรไปยังฐานทัพอื่น\n\nเทคโนโลยีการส่งไอเท็มข้ามเซ็กเตอร์เป็นสิ่งจำเป็นสำหรับการพิชิตถัดๆ ไป ทำลายด่าน วิจัยฐานส่งของ -sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของเรือขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษเหล็กและหิมะปกคลุมไปทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้ +sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของยานขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษซากเหล็กและหิมะปกคลุมไปทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้ sector.planetaryTerminal.description = เป้าหมายสุดท้าย\n\nฐานทัพติดชายหาดนี้มีสิ่งประดิษฐ์ที่สามารถส่งแกนกลางไปยังดาวที่อยู่ใกล้ๆ ได้ ฐานทัพมีการป้องกันที่แน่นหนามาก\n\nผลิตยูนิตเรือ กวาดล้างศัตรูให้เร็วที่สุด วิจัยสิ่งประดิษฐ์นั่น sector.coastline.description = ถัดมาจากที่ราบเกลือ เป็นที่ตั้งของแนวชายฝั่ง พบเศษซากของเทคโนโลยียูนิตเรือที่ล้ำหน้าอยู่ในพื้นที่แห่งนี้\nขับไล่ศัตรูออกไป ยึดพื้นที่นี้มา วิจัยเทคโนโลยีนั้น sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา @@ -814,7 +814,7 @@ sector.marsh.description = พื้นที่แห่งนี้มีบ sector.peaks.description = ภูมิประเทศแบบขุนเขาในพื้นที่แห่งนี้ทำให้ยูนิตปกติใช้การไม่ได้ จำเป็นจะต้องมียูนิตที่บินได้เพื่อที่จะบุกโจมตี\nควรระวังป้อมปืนต่อต้านอากาศยานของศัตรูให้ดี มีความไปได้ที่จะสามารถตัดกำลังป้อมปืนบางส่วนได้โดยการทำลายสิ่งก่อสร้างที่รองรับพวกมัน sector.ravine.description = ทางเชื่อมขนส่งทรัพยากรที่สำคัญของศัตรู ตรวจไม่พบแกนกลางศัตรูในพื่นที่นี้ แต่ก็ต้องเตรียมตัวรับมือกับกำลังศัตรูที่จะมาในหลากหลายรูปแบบ\nผลิต[accent]เสิร์จอัลลอย[]แล้วสร้างป้อมปืน[accent]อัฟฟลิกต์[]มาป้องกัน sector.caldera-erekir.description = ทรัพยากรที่ถูกตรวจพบในพื้นที่นี้นั้นกระจัดกระจายไปในหลายๆ เกาะ\nวิจัยและพัฒนาเทคโนโลยีการขนส่งด้วยโดรน -sector.stronghold.description = ปราการขนาดใหญ่ของศัตรูนี้กำลังปกป้องแหล่งแร่[accent]ทอเรี่ยม[]จำนวนมหาศาลในพื้นที่แห่งนี้\nจงใช้มันเพื่อนำไปพัฒนาป้อมปืนและยูนิตขึ้นสูงกว่า +sector.stronghold.description = ปราการขนาดใหญ่ของศัตรูนี้กำลังปกป้องแหล่งแร่[accent]ทอเรี่ยม[]จำนวนมหาศาลในพื้นที่แห่งนี้\nจงใช้มันเพื่อนำไปพัฒนาป้อมปืนและยูนิตขั้นสูงกว่า sector.crevice.description = ศัตรูจะส่งกำลังโจมตีที่ดุร้ายและทรงพลังเป็นพิเศษเพื่อที่จะทำลายฐานทัพของคุณในพื้นที่นี้\nวิจัยและพัฒนา[accent]คาร์ไบต์[]กับ[accent]เครื่องกำเนิดไฟฟ้าไพโรไลซิส[]เพื่อเพิ่มโอกาสการอยู่รอดในพื้นที่นี้ sector.siege.description = พื้นที่นี้ประกอบไปด้วยหุบเขาคู่ขนานสองแห่งที่ทำให้ต้องทำการบุกโจมตีทั้งสองฝั่งพร้อมกัน\nวิจัย[accent]ไซยาโนเจน[]เพื่อที่จะสามารถสร้างยูนิตรถถังที่แข็งแกร่งขึ้น\nโปรดระวัง: ตรวจพบขีปนาวุธพิสัยไกลของศัตรู สามารถทำลายหัวรบขีปนาวุธได้ก่อนที่มันจะระเบิด sector.crossroads.description = ฐานทัพศัตรูในพื้นที่นี้ได้ถูกก่อสร้างในพื้นที่ที่หลากหลาย วิจัยยูนิตแต่ละตัวเพื่อปรับใช้ในสถานการณ์ต่างๆ\nเพิ่มเติม: ฐานทัพบางฐานได้รับการปกป้องด้วยโล่พลังงาน จงหาวิธีที่จะตัดพลังงานของโล่ออกให้ได้ @@ -1092,7 +1092,7 @@ setting.fps.name = แสดง FPS และ Ping setting.console.name = เปิดใช้งานคอนโซล setting.smoothcamera.name = กล้องแบบลื่นไหล setting.vsync.name = VSync -setting.pixelate.name = ภาพพิกเซล[lightgray] (ปิดใช้งานแอนิเมชั่น) +setting.pixelate.name = ภาพกราฟิกแบบพิกเซล setting.minimap.name = แสดงมินิแมพ setting.coreitems.name = แสดงไอเท็มในแกนกลาง setting.position.name = แสดงตำแหน่งของผู้เล่น @@ -1113,7 +1113,7 @@ setting.bridgeopacity.name = ความโปร่งแสงของสะ setting.playerchat.name = แสดงกล่องแชทบนผู้เล่น setting.showweather.name = แสดงกราฟิกสภาพอากาศ setting.hidedisplays.name = ซ่อนหน้าจอลอจิก -setting.macnotch.name = ปรับอินเทอร์เฟซเพื่อแสดงรอยบาก +setting.macnotch.name = ปรับอินเตอร์เฟซให้เข้ากับติ่งหน้าจอ setting.macnotch.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง steam.friendsonly = เพื่อนเท่านั้น steam.friendsonly.tooltip = ว่าจะให้แค่เพื่อนเท่านั้นหรือไม่ที่จะสามารถเข้าร่วมเกมของคุณได้\nหากคุณติ๊กช่องนี้ออกนั้นจะทำให้เกมของคุณเปิดเป็นสาธารณะ - ใครๆก็จะสามารถเข้าร่วมเกมของคุณได้ @@ -1136,8 +1136,8 @@ keybind.press.axis = กดแกนหรือปุ่มใดก็ได keybind.screenshot.name = ถ่ายรูปแมพ keybind.toggle_power_lines.name = เปิด/ปิด ลำแสงพลังงาน keybind.toggle_block_status.name = เปิด/ปิด สถานะของบล็อก -keybind.move_x.name = เคลื่อนที่ในแกน x -keybind.move_y.name = เคลี่อนที่ในแกน y +keybind.move_x.name = เคลื่อนที่ในแกน X +keybind.move_y.name = เคลี่อนที่ในแกน Y keybind.mouse_move.name = ตามเม้าส์ keybind.pan.name = เคลื่อนการมองเห็น keybind.boost.name = บูสต์ @@ -1213,11 +1213,11 @@ rules.coreincinerates = แกนกลางเผาทรัพยากร rules.disableworldprocessors = ปิดการทำงานของตัวประมวลผลโลก rules.schematic = อนุญาตให้ใช้แผนผัง rules.wavetimer = นับถอยหลังการปล่อยคลื่น -rules.wavesending = การปล่อยคลื่น +rules.wavesending = กดเพื่อปล่อยคลื่น rules.waves = คลื่น rules.attack = โหมดการโจมตี -rules.buildai = Base Builder AI -rules.buildaitier = Builder AI Tier +rules.buildai = AI สร้างฐานทัพ +rules.buildaitier = ระดับการสร้างของ AI rules.rtsai = RTS AI [red](ไม่เสถียร) rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด @@ -1245,7 +1245,7 @@ rules.buildcostmultiplier = พหุคูณราคาทรัพยาก rules.buildspeedmultiplier = พหุคูณความเร็วการสร้าง rules.deconstructrefundmultiplier = พหุคูณการคืนทรัพยากรเมื่อทำลาย rules.waitForWaveToEnd = คลื่นจะรอศัตรู -rules.wavelimit = Map Ends After Wave +rules.wavelimit = แมพจบหลังคลื่นที่ rules.dropzoneradius = รัศมีจุดเกิดของศัตรู:[lightgray] (ช่อง) rules.unitammo = ยูนิตต้องใช้กระสุน rules.enemyteam = ทีมศัตรู @@ -1313,11 +1313,11 @@ liquid.hydrogen.name = ไฮโดรเจน liquid.nitrogen.name = ไนโตรเจน liquid.cyanogen.name = ไซยาโนเจน -# three conditions if you want to cancel transliteration in these names -# 1. no random lame bali sanskrit, sounds weird in futuristic units -# 2. nice naming similarities for each unit tree -# 3. name may not be very similar to the original, but it should at least resemble some of it -# sometimes transliteration are better, so maybe keep some of the unit tree (like spiders or boats) to be transliterated - Translator +# Three suggestions if you would like to change the transliteration in these names. +# 1. Using Bali-Sanskrit language sounds weird in futuristic units, please don't. +# 2. Keep names consistent in each unit tree. +# 3. Name should resemble the unit, or the original english name. +# But sometimes transliteration is better, for instance boats, spiders, so please keep it like that - Translator unit.dagger.name = แด็กเกอร์ unit.mace.name = เมส @@ -1453,7 +1453,7 @@ block.metal-floor-2.name = พื้นโลหะ 2 block.metal-floor-3.name = พื้นโลหะ 3 block.metal-floor-4.name = พื้นโลหะ 4 block.metal-floor-5.name = พื้นโลหะ 5 -block.metal-floor-damaged.name = พื้นเหล็กที่เสียหาย +block.metal-floor-damaged.name = พื้นเหล็กผุพัง block.dark-panel-1.name = แผ่นดำ 1 block.dark-panel-2.name = แผ่นดำ 2 block.dark-panel-3.name = แผ่นดำ 3 @@ -1490,9 +1490,9 @@ block.router.name = เร้าเตอร์ block.distributor.name = เครื่องแจกจ่าย block.sorter.name = เครื่องคัดแยก block.inverted-sorter.name = เครื่องคัดแยกกลับด้าน -block.message.name = ตัวเก็บข้อความ -block.reinforced-message.name = ตัวเก็บข้อความเสริมกำลัง -block.world-message.name = ตัวเก็บข้อความโลก +block.message.name = กล่องข้อความ +block.reinforced-message.name = กล่องข้อความเสริมกำลัง +block.world-message.name = กล่องข้อความโลก block.illuminator.name = ตัวเปล่งแสง block.overflow-gate.name = ประตูระบาย block.underflow-gate.name = ประตูระบายข้าง @@ -1784,78 +1784,78 @@ hint.respawn = ถ้าอยากเกิดใหม่ ให้กดป hint.respawn.mobile = คุณกำลังควบคุมยูนิตหรือบล็อกอยู่ ถ้าจะเกิดใหม่เป็นยาน [accent]กดที่รูปอวาตาร์ซ้ายบน[] hint.desktopPause = กด [accent][[Space][] เพื่อหยุดชั่วคราวหรือเล่นต่อ hint.breaking = [accent]คลิ๊กขวา[] แล้วลากเพื่อทำลายบล็อก -hint.breaking.mobile = เปิดใช้ \ue817 [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน +hint.breaking.mobile = เปิดใช้  [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน hint.blockInfo = ดูข้อมูลของบล็อกโดยการเลือกจาก[accent]เมนูการสร้าง[] แล้วกดที่รูป [accent][[?][] ตรงด้านขวา hint.derelict = สิ่งก่อสร้างที่ถูก[accent]ทิ้งร้าง[]คือเศษซากพังทลายของฐานเก่าแก่ที่ไม่สามารถใช้งานได้แล้ว\n\nสิ่งก่อสร้างพวกนี้สามารถ[accent]ทุบทิ้ง[]เพื่อเก็บเกี่ยวทรัพยากรที่อยู่ในนั้นได้ -hint.research = กดปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ -hint.research.mobile = กดปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ +hint.research = กดปุ่ม  [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ +hint.research.mobile = กดปุ่ม  [accent]วิจัย[] ใน  [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพันธมิตรหรือป้อมปืน hint.unitControl.mobile = [accent][[กดสองครั้ง][] เพื่อควบคุมยานพันธมิตรหรือป้อมปืน hint.unitSelectControl = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกด [accent]L-shift[]\nระหว่างที่อยู่ในโหมดสั่งการ ให้คลิ๊กแล้วลากเพื่อเลือกยูนิต แล้ว[accent]คลิ๊กขวา[]ที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น hint.unitSelectControl.mobile = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกดปุ่ม[accent]สั่งการ[]ที่ซ้ายล่างของจอ\nระหว่างที่อยู่ในโหมดสั่งการ ให้กดค้างแล้วลากเพื่อเลือกยูนิต แล้วกดที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น -hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ตรงขวาล่าง -hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ใน \ue88c [accent]เมนู[] +hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก  [accent]แผนที่[] ตรงขวาล่าง +hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก  [accent]แผนที่[] ใน  [accent]เมนู[] hint.schematicSelect = กด [accent][[F][] แล้วลากเพื่อเลือกบล็อกที่จะคัดลอกและวาง\n\n[accent][[คลิ๊กกลาง][] เพื่อคัดลอกบล็อกชนิดเดียว -hint.rebuildSelect = กด [accent][[B][] แล้วลากเพื่อเลือกแปลนบล็อกที่ถูกทำลาย\nแปลนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ -hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically. +hint.rebuildSelect = กด [accent][[B][] แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ +hint.rebuildSelect.mobile = กดปุ่ม  คัดลอก แล้วกดปุ่ม  สร้างใหม่แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ hint.conveyorPathfind = กด [accent][[L-Ctrl][] ในขณะที่กำลังลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ -hint.conveyorPathfind.mobile = เปิดใช้งาน \ue844 [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ +hint.conveyorPathfind.mobile = เปิดใช้งาน  [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ hint.boost = กด [accent][[L-Shift][] เพื่อบูสต์ข้ามสิ่งกีดขวางด้วยยูนิตของคุณ\n\nยูนิตพื้นดินบางประเภทเท่านั้นที่บินได้ hint.payloadPickup = กด [accent][[[] เพื่อหยิบบล็อกเล็กๆ หรือยูนิต hint.payloadPickup.mobile = [accent]กดค้างไว้[]ที่บล็อกเล็กๆ หรือตัวยูนิตเพื่อหยิบขึ้นมา hint.payloadDrop = กด [accent]][] เพื่อวางสิ่งที่บรรทุกอยู่ hint.payloadDrop.mobile = [accent]กดค้างไว้[]ที่พื้นที่โล่งๆ เพื่อวางสิ่งที่บรรทุกอยู่ hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หากเติมน้ำเข้าไปจะช่วยดับไฟรอบข้างให้อัตโนมัติ -hint.generator = \uf879 [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย \uf87f [accent]ตัวจ่ายพลังงาน[] -hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ \uf835 [accent]กราไฟท์[]ใส่ใน \uf861 ดูโอ/ \uf859 ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์ -hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง \uf868 [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ \uf869 [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง +hint.generator =  [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย  [accent]ตัวจ่ายพลังงาน[] +hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้  [accent]กราไฟท์[]ใส่ใน  ดูโอ/  ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์ +hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง  [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ  [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวเหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง hint.presetDifficulty = เซ็กเตอร์นี้มี[scarlet]ระดับภัยคุกคามศัตรูสูง[]\n[accent]ไม่แนะนำ[]ให้ลงจอดไปยังเซ็กเซอร์พวกนั้นหากไม่มีการเตรียมพร้อมและเทคโนโลยี -hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[] +hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่กักเก็บไว้เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[] hint.factoryControl = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดคลิ๊กขวาที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ hint.factoryControl.mobile = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ -gz.mine = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด -gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด -gz.research = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด -gz.research.mobile = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม \ue800 [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน -gz.conveyors = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน -gz.conveyors.mobile = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง +gz.mine = ขยับเข้าไปใกล้ๆ กับ  [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด +gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ  [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด +gz.research = เปิด  ต้นไม้แห่งเทคโนโลยี\nวิจัย  [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด +gz.research.mobile = เปิด  ต้นไม้แห่งเทคโนโลยี\nวิจัย  [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม  [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน +gz.conveyors = วิจัยและวาง  [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +gz.conveyors.mobile = วิจัยและวาง  [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง gz.drills = ขยายปฎิบัติการขุด\nวางเครื่องขุดเชิงกลเพิ่ม\nขุดทองแดง 100 ชิ้น -gz.lead = \uf837 [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว -gz.moveup = \ue804 ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป -gz.turrets = วิจัยและวางป้อมปืน \uf861 [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ \uf838 [accent]กระสุน[]จากสายพาน +gz.lead =  [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว +gz.moveup =  ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป +gz.turrets = วิจัยและวางป้อมปืน  [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ  [accent]กระสุน[]จากสายพาน gz.duoammo = เติมกระสุนให้แก่ป้อมปืนดูโอ้ด้วย[accent]ทองแดง[] โดยใช้สายพาน -gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง \uf8ae [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน +gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง  [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน gz.defend = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี -gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน \uf860 [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้ \uf837 [accent]ตะกั่ว[]เป็นกระสุน +gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน  [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้  [accent]ตะกั่ว[]เป็นกระสุน gz.scatterammo = เติมกระสุนให้แก่ป้อมปืนสแก็ตเตอร์ด้วย[accent]ตะกั่ว[] โดยใช้สายพาน gz.supplyturret = [accent]เติมกระสุนป้อมปืน gz.zone1 = นี่คือจุดเกิดของศัตรู -gz.zone2 = สิ่งก่อสร้างทุกอย่างในรัศมีจะถูกทำลายเมื่อมีคลื่นเริ่มขึ้น +gz.zone2 = สิ่งก่อสร้างทุกอย่างในรัศมีจะถูกทำลายเมื่อมีคลื่นใหม่เริ่มขึ้น gz.zone3 = คลื่นกำลังจะเริ่มขึ้นแล้ว\nเตรียมตัวให้พร้อม gz.finish = สร้างป้อมปืนเพิ่ม ขุดทรัพยากรให้ได้มากกว่านี้\nแล้วป้องกันคลื่นทั้งหมดเพื่อ[accent]ยึดครองเซ็กเตอร์[] -onset.mine = กดคลิ๊กซ้ายเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ -onset.mine.mobile = กดที่หน้าจอเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง -onset.research = เปิดหน้า \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง \uf73e [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] -onset.bore = วิจัยและวาง \uf741 [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ -onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง \uf73d [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า -onset.ducts = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน -onset.ducts.mobile = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง +onset.mine = กดคลิ๊กซ้ายเพื่อขุด  [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ +onset.mine.mobile = กดที่หน้าจอเพื่อขุด  [accent]เบริลเลี่ยม[] จากกำแพง +onset.research = เปิดหน้า  ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง  [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] +onset.bore = วิจัยและวาง  [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ +onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง  [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า +onset.ducts = วิจัยและวาง  [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +onset.ducts.mobile = วิจัยและวาง  [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง onset.moremine = ขยายปฎิบัติการขุด\nวางเครื่องขุดเจาะพลาสม่าเพิ่มแล้วใช้โหนดลำแสงเพื่อจ่ายพลังงานให้กับมัน\nขุดเบริลเลี่ยม 200 ชิ้น -onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้ \uf835 [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์ -onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย \uf74d [accent]เครื่องบดหน้าผา[]และ \uf779 [accent]เตาหลอมไฟฟ้าซิลิกอน[] -onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้ \uf834 [accent]ทราย[]และ \uf835 [accent]กราไฟต์[]เพื่อผลิต \uf82f [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย -onset.crusher = ใช้ \uf74d [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย -onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง \uf6a2 [accent]เครื่องสรรค์สร้างรถถัง[] +onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้  [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์ +onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย  [accent]เครื่องบดหน้าผา[]และ  [accent]เตาหลอมไฟฟ้าซิลิกอน[] +onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้  [accent]ทราย[]และ  [accent]กราไฟต์[]เพื่อผลิต  [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย +onset.crusher = ใช้  [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย +onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง  [accent]เครื่องสรรค์สร้างรถถัง[] onset.makeunit = ผลิตยูนิตขึ้นมา\nใช้ปุ่ม "?" เพื่อดูความต้องการทรัพยากรของแต่ละโรงงานที่เลือกมา -onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน \uf6eb [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้ \uf748 [accent]กระสุน[] +onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน  [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้  [accent]กระสุน[] onset.turretammo = เติมกระสุนให้แก่ป้อมปืนด้วย[accent]กระสุนเบริลเลี่ยม[] -onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง \uf6ee [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน +onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง  [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน onset.enemies = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี onset.attack = ศัตรูอ่อนแอลงแล้ว ตอบโต้กลับ -onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพหน้าด่านและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง \uf725 แกนกลาง +onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพหน้าด่านและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง  แกนกลาง onset.detect = ศัตรูจะสามารถตรวจจับการมีอยู่ของคุณได้ในอีก 2 นาที\nจัดตั้งกองกำลังป้องกัน ปฏิบัติการขุด และการผลิต split.pickup = บล็อกบางชนิดสามารถถูกหยิบขึ้นมาได้ด้วยยูนิตแกนกลาง\nบรรทุก[accent]ที่เก็บของ[]นี้มาแล้วเอาไปวางใน[accent]เครื่องโหลดสิ่งบรรทุก[]\n(ปุ่มค่าเริ่มต้นคือ [ สำหรับหยิบและ ] สำหรับวางบล็อก) @@ -1873,12 +1873,12 @@ item.graphite.description = เกิดจากการจัดเรีย item.sand.description = ทรัพยาการที่พบได้ทั่วไป ใช้ในการแปรรูปเป็นวัสดุอื่นๆ หรือนำไปเผาเป็น[accent]กระจกเมต้า[] item.coal.description = ใช้เป็นเชื้อเพลิงและการแปรรูปเป็นวัสดุอื่นๆ item.coal.details = ดูเหมือนจะเป็นซากพืชดึกดำบรรพ์ เกิดขึ้นนานก่อนการแพร่พันธุ์ของสปอร์เสียอีก -item.titanium.description = โลหะเบาซึ่งหายากตามธรรมชาติ ใช้อย่างแพร่หลายในการขนย้ายของเหลว เครื่องขุดเจาะและอากาศยาน +item.titanium.description = ใช้อย่างแพร่หลายในการขนย้ายของเหลว เครื่องขุดเจาะและอากาศยาน item.thorium.description = ใช้ในการเสริมเกราะของสิ่งก่อสร้างต่างๆ หรือนำไปเป็นเป็นเชื้อเพลิงนิวเคลียร์ item.scrap.description = ใช้ในเตาหลอมแร่และเครื่องบดอัดเพื่อเปลี่ยนเป็นทรัพยากรอื่นๆ item.scrap.details = เศษที่เหลือจากสิ่งก่อสร้างและยูนิตเก่า มีร่องรอยของโลหะหลายชนิดอยู่ เกิดจากฐานทัพโบราณในสมัยสงครามเก่าแก่ถูกทำลาย ทำให้วัสดุต่างๆ พังลงมารวมกับ item.silicon.description = วัสดุกึ่งตัวนำที่มีประโยชน์มาก ใช้ในแผงโซล่าเซลล์ อุปกรณ์อิเล็กทรอนิกที่ซับซ้อน\nหรือนำไปเป็นกระสุนติดตามตัวสำหรับป้อมปืน -item.plastanium.description = ใช้ในอากาศยานขั้นสูง เป็นฉนวนกันความร้อนหรือนำไปเป็นกระสุนกระจาย +item.plastanium.description = วัสดุที่เบาและดัดได้ ใช้ในอากาศยานขั้นสูง เป็นฉนวนกันความร้อนหรือนำไปเป็นกระสุนกระจาย item.phase-fabric.description = วัสดุที่เบาจนแทบจะไร้น้ำหนัก ใช้ในอิเล็กทรอนิกส์ขั้นสูงและเทคโนโลยีซ่อมแซมตนเอง item.surge-alloy.description = โลหะผสมขั้นสูงที่มีคุณสมบัติทางไฟฟ้าที่จำเพาะ\nใช้ในอาวุธขั้นสูงและการป้องกันต่างๆ item.spore-pod.description = กระเปาะของสปอร์สังเคราะห์ สังเคราะห์โดยการสกัดสปอร์ที่อยู่ในบรรยากาศ\nใช้ในอุตสาหกรรม ใช้ในการกลั่นเป็นน้ำมัน สารระเบิดและเชื้อเพลิง @@ -1906,12 +1906,12 @@ liquid.nitrogen.description = ใช้ในการสกัดทรัพ liquid.neoplasm.description = ชีวมวลอันตรายที่เป็นผลพลอยได้จากเตาปฏิกรนีโอพลาเซีย แพร่กระจายอย่างรวดเร็วสู่บล็อกที่บรรจุน้ำที่ชีวมวลนี้สัมผัส สร้างความเสียหายมันไปในระหว่างทาง หนืดข้น liquid.neoplasm.details = นีโอพลาสม์ ก้อนเซลล์เนื้องอกที่ถูกสังเคราะห์ขึ้นและควบคุมไม่ได้ ขยายตัวอย่างรวดเร็วโดยจับตัวกันเป็นก้อน ทนทานต่อความร้อน เป็นอันตรายอย่างยิ่งต่อสิ่งก่อสร้างที่เกี่ยวข้องกับน้ำ\n\nซับซ้อนและไม่เสถียรเกินไปสำหรับการวินิจฉัยขั้นพื้นฐาน ไม่ทราบส่วนผสมที่เป็นไปได้ แนะนำเป็นอย่างยิ่งให้นำมันไปเผาสลายในบ่อแร่หลอม -block.derelict = \uf77e [lightgray]ถูกทิ้งร้าง +block.derelict =  [lightgray]ถูกทิ้งร้าง block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นว่าจะเป็นสายพานด้วยกันเอง block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดค่าสีของแสงได้อีกด้วย... เจ๋งใช่มั้ยล่ะ block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร block.reinforced-message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร -block.world-message.description = ตัวเก็บข้อความสำหรับการสร้างแมพ ไม่สามารถทำลายได้ +block.world-message.description = กล่องข้อความสำหรับการสร้างแมพ ไม่สามารถทำลายได้ block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น block.silicon-smelter.description = ผลิตซิลิกอนจากการหลอมทรายและถ่านหินเข้าด้วยกัน @@ -2228,7 +2228,7 @@ lst.end = ย้อนกลับไปยังด้านบนสุดข lst.wait = รอเวลาเป็นวินาที lst.stop = หยุดยั้งการทำงานของตัวประมวลผล lst.lookup = ค้นหาชนิดไอเท็ม/ของเหลว/ยูนิต/บล็อกตาม ID\nสามารถหาจำนวนนับทั้งหมดของแต่ละชนิดได้ด้วย:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] -lst.jump = ข้ามไปยังจุดต่างๆ โดยมีเงื่อนไข +lst.jump = ข้ามไปยังคำสั่งต่างๆ โดยสามารถตั้งเงื่อนไขได้ lst.unitbind = เลือกยูนิตถัดไปเป็นชนิด และเก็บค่าไว้ในตัวแปร [accent]@unit[] lst.unitcontrol = ควบคุมยูนิตที่เลือกไว้ lst.unitradar = ค้นหายูนิตรอบๆ ยูนิตที่เลือกไว้ @@ -2237,11 +2237,11 @@ lst.getblock = รับข้อมูลของช่องที่ตำ lst.setblock = ปรับแต่งข้อมูลของช่องที่ตำแหน่งใดๆ lst.spawnunit = เสกยูนิตมาที่ตำแหน่งที่กำหนดไว้ lst.applystatus = ใส่หรือล้างเอฟเฟกต์สถานะจากยูนิต -lst.spawnwave = จำลองคลื่นที่ตำแหน่งใดๆ\nจะไม่เพิ่มจำนวนคลื่นในสถิติ +lst.spawnwave = จำลองคลื่นที่ตำแหน่งใดๆ lst.explosion = เสกระเบิดที่ตำแหน่ง lst.setrate = ตั้งค่าความเร็วการสั่งเป็นคำสั่งใน คำสั่ง/ติก -lst.fetch = ค้นหายูนิต แกนกลาง ผู้เล่น หรือสิ่งก่อสร้างตามดัชนี\nดัชนีเริ่มที่ 0 และจบที่ค่าที่ส่งกลับ -lst.packcolor = แพ็ค [0, 1] ส่วนประกอบ RGBA มาเป็นเลขบรรทัดเดียวสำหรับการวาดหรือตั้งค่ากฎ +lst.fetch = ค้นหายูนิต แกนกลาง ผู้เล่น หรือสิ่งก่อสร้างตามดัชนี\nดัชนีเริ่มที่ 0 และจบที่ค่าที่จะส่งกลับ +lst.packcolor = แพ็ค [0, 1] ส่วนประกอบ RGBA มาเป็นเลขบรรทัดเดียวสำหรับการวาดหรือการตั้งค่ากฎ lst.setrule = ตั้งค่ากฎของเกม lst.flushmessage = แสดงข้อความบนหน้าจอจากบัฟเฟอร์ข้อความ\nจะรอจนกว่าข้อความก่อนหน้าจะเสร็จสิ้น lst.cutscene = ควบคุมมุมกล้องของผู้เล่น @@ -2260,7 +2260,7 @@ lenum.enabled = ว่าบล็อกเปิดใช้งาน/ทำง laccess.color = สีของตัวเปล่งแสง laccess.controller = ผู้ควบคุมยูนิต ถ้าผู้ควบคุมคือตัวประมวลผล จะส่งกลับค่า processor\nนอกนั้น จะส่งกลับค่าตัวยูนิตเอง laccess.dead = ว่าสิ่งก่อสร้าง/ยูนิตนั้นตายแล้วหรือใช้งานไม่ได้แล้ว -laccess.controlled = จะส่งกลับ:\n[accent]@ctrlProcessor[] ถ้าผู้ควบคุมคือตัวประมวลผลลอจิก\n[accent]@ctrlPlayer[] ถ้าสิ่งก่อสร้าง/ยูนิตถูกควบคุมโดยผู้เล่น\n[accent]@ctrlCommand[] ถ้ายูนิตถูกสั่งการโดยผู้เล่นอยู่\nนอกนั้น 0 +laccess.controlled = จะส่งกลับ:\n[accent]@ctrlProcessor[] ถ้าผู้ควบคุมคือตัวประมวลผลลอจิก\n[accent]@ctrlPlayer[] ถ้าสิ่งก่อสร้าง/ยูนิตถูกควบคุมโดยผู้เล่น\n[accent]@ctrlCommand[] ถ้ายูนิตถูกสั่งการโดยผู้เล่นอยู่\nนอกนั้นจะเป็น 0 laccess.progress = ความคืบหน้าการดำเนินการจาก 0 ถึง 1\nจะส่งกลับค่าการผลิต การรีโหลดของป้อมปืน หรือความคืบหน้าในการสร้างสิ่งก่อสร้าง laccess.speed = ความเร็วสูงสุดของยูนิตในหน่วย ช่อง/วินาที @@ -2295,7 +2295,7 @@ lenum.always = เป็นจริงเสมอ lenum.idiv = หารจำนวนเต็ม lenum.div = หาร\nจะส่งกลับ[accent]ค่าว่าง[] หากหารศูนย์ lenum.mod = โมดูโล่ (หารหาเศษ) -lenum.equal = เท่ากับ แบบบังคับประเภท\nสิ่งที่ไม่ใช่ค่าว่างเมื่อเทียบกับตัวเลขจะให้ค่า 1 นอกนั้นจะให้ค่า 0 +lenum.equal = เท่ากับ แบบบังคับประเภท\nสิ่งที่ไม่ใช่ค่าว่างเมื่อเทียบกับตัวเลขจะส่งกลับค่า 1 นอกนั้นจะส่งกลับค่า 0 lenum.notequal = ไม่เท่ากับ บังคับประเภท lenum.strictequal = เท่ากับที่เข้มงวด ไม่บังคับประเภท\nสามารถใช้ตรวจสอบหา[accent]ค่าว่าง[]ได้ lenum.shl = เลื่อนบิตไปทางซ้าย @@ -2308,8 +2308,8 @@ lenum.xor = แยกเฉพาะ แบบบิต lenum.min = เทียบต่ำสุดของสองหมายเลข lenum.max = เทียบสูงสุดของสองหมายเลข -lenum.angle = มุมของเวกเตอร์ เป็นองศา -lenum.anglediff = Absolute distance between two angles in degrees. +lenum.angle = มุมของเวกเตอร์ หน่วยเป็นองศา +lenum.anglediff = ระยะทางสัมบูรณ์ระหว่างมุมสองมุม หน่วยเป็นองศา lenum.len = ความยาวของเวกเตอร์ lenum.sin = ไซน์ หน่วยเป็นองศา @@ -2357,13 +2357,13 @@ sensor.in = สิ่งก่อสร้าง/ยูนิตให้ตร radar.from = สิ่งก่อสร้างที่จะใช้ในการค้นหา\nระยะเซนเซอร์จะขึ้นอยู่กับระยะของสิ่งก่อสร้าง radar.target = ตัวกรองในการหายูนิต radar.and = ตัวกรองเพิ่มเติม -radar.order = เรียงลำดับคำสั่ง\n0 เพื่อเรียงย้อนกลับ +radar.order = เรียงลำดับคำสั่ง\nใส่ค่า 0 เพื่อเรียงย้อนกลับ radar.sort = เมตริกเพื่อจัดเรียงผลลัพย์ตาม radar.output = ตัวแปรของยูนิตที่มองหา unitradar.target = ตัวกรองในการหายูนิต unitradar.and = ตัวกรองเพิ่มเติม -unitradar.order = เรียงลำดับคำสั่ง\n0 เพื่อเรียงย้อนกลับ +unitradar.order = เรียงลำดับคำสั่ง\nใส่ค่า 0 เพื่อเรียงย้อนกลับ unitradar.sort = เมตริกเพื่อจัดเรียงผลลัพธ์ตาม unitradar.output = ตัวแปรของยูนิตที่มองหา @@ -2380,7 +2380,7 @@ unitlocate.group = กลุ่มสิ่งก่อสร้างที่ lenum.idle = หยุดขยับ แต่ยังคงขุด/ก่อสร้าง\nสถานะเริ่มต้นของยูนิต lenum.stop = หยุดขยับ/ขุด/ก่อสร้าง -lenum.unbind = ยกเลิกการควบคุมลอจิกทั้งหมด\nเปลี่ยนเป็น AI ธรรมดาต่อ +lenum.unbind = ยกเลิกการควบคุมลอจิกทั้งหมด\nเปลี่ยนไปใช้ AI ธรรมดาต่อ lenum.move = ขยับไปที่ตำแหน่งที่กำหนดไว้ lenum.approach = เข้าใกล้ตำแหน่งโดยกำหนดระยะห่าง lenum.pathfind = ขยับไปที่ตำแหน่งที่กำหนดไว้ โดยมีการคำนวณเพื่อเลี่ยงสิ่งกีดขวาง @@ -2394,8 +2394,8 @@ lenum.payenter = เข้าไป/ลงจอดบนบล็อกบร lenum.flag = ปักธงยูนิตเป็นหมายเลข lenum.mine = ขุดที่ตำแหน่งเป้าหมาย lenum.build = สร้างสิ่งก่อสร้าง -lenum.getblock = ดึงข้อมูลสิ่งก่อสร้างและประเภทของสิ่งก่อสร้างที่ตำแหน่งเป้าหมาย\nหน่วยต้องอยู่ในช่วงของตำแหน่ง\nบล็อกตันที่ไม่ใช่สิ่งก่อสร้างจะส่งกลับเป็น [accent]@solid[] -lenum.within = ตรวจสอบว่ายูนิตอยู่ในระยะหรือไม่ +lenum.getblock = ดึงข้อมูลสิ่งก่อสร้างและประเภทของสิ่งก่อสร้างที่ตำแหน่งเป้าหมาย\nยูนิตต้องอยู่ในระยะของตำแหน่ง\nบล็อกตันที่ไม่ใช่สิ่งก่อสร้างจะมีชนิดเป็น [accent]@solid[] +lenum.within = ตรวจสอบว่ายูนิตนั้นอยู่ในระยะหรือไม่ lenum.boost = เริ่ม/หยุดการบูสต์ #Don't translate these yet! From 500f22b1d04785de86af0a6cd9d34217ca9a6464 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 16 Jun 2023 15:57:43 +0000 Subject: [PATCH 10/10] Automatic bundle update --- core/assets/bundles/bundle_th.properties | 76 ++++++++++++------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 70f0763ad9..1b3c120719 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -696,7 +696,7 @@ weather.sandstorm.name = พายุทราย weather.sporestorm.name = พายุสปอร์ weather.fog.name = หมอก -campaign.playtime =  [lightgray]เวลาที่เล่นเซ็กเตอร์ไป: {0} +campaign.playtime = \uf129 [lightgray]เวลาที่เล่นเซ็กเตอร์ไป: {0} campaign.complete = [accent]ยินดีด้วย\n\nศัตรูบน {0} ได้ถูกกำจัดหมดสิ้นแล้ว\n[lightgray]เซ็กเตอร์สุดท้ายได้ถูกยึดครองแล้ว sectorlist = เซ็กเตอร์ @@ -1784,51 +1784,51 @@ hint.respawn = ถ้าอยากเกิดใหม่ ให้กดป hint.respawn.mobile = คุณกำลังควบคุมยูนิตหรือบล็อกอยู่ ถ้าจะเกิดใหม่เป็นยาน [accent]กดที่รูปอวาตาร์ซ้ายบน[] hint.desktopPause = กด [accent][[Space][] เพื่อหยุดชั่วคราวหรือเล่นต่อ hint.breaking = [accent]คลิ๊กขวา[] แล้วลากเพื่อทำลายบล็อก -hint.breaking.mobile = เปิดใช้  [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน +hint.breaking.mobile = เปิดใช้ \ue817 [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน hint.blockInfo = ดูข้อมูลของบล็อกโดยการเลือกจาก[accent]เมนูการสร้าง[] แล้วกดที่รูป [accent][[?][] ตรงด้านขวา hint.derelict = สิ่งก่อสร้างที่ถูก[accent]ทิ้งร้าง[]คือเศษซากพังทลายของฐานเก่าแก่ที่ไม่สามารถใช้งานได้แล้ว\n\nสิ่งก่อสร้างพวกนี้สามารถ[accent]ทุบทิ้ง[]เพื่อเก็บเกี่ยวทรัพยากรที่อยู่ในนั้นได้ -hint.research = กดปุ่ม  [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ -hint.research.mobile = กดปุ่ม  [accent]วิจัย[] ใน  [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ +hint.research = กดปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ +hint.research.mobile = กดปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพันธมิตรหรือป้อมปืน hint.unitControl.mobile = [accent][[กดสองครั้ง][] เพื่อควบคุมยานพันธมิตรหรือป้อมปืน hint.unitSelectControl = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกด [accent]L-shift[]\nระหว่างที่อยู่ในโหมดสั่งการ ให้คลิ๊กแล้วลากเพื่อเลือกยูนิต แล้ว[accent]คลิ๊กขวา[]ที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น hint.unitSelectControl.mobile = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกดปุ่ม[accent]สั่งการ[]ที่ซ้ายล่างของจอ\nระหว่างที่อยู่ในโหมดสั่งการ ให้กดค้างแล้วลากเพื่อเลือกยูนิต แล้วกดที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น -hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก  [accent]แผนที่[] ตรงขวาล่าง -hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก  [accent]แผนที่[] ใน  [accent]เมนู[] +hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ตรงขวาล่าง +hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ใน \ue88c [accent]เมนู[] hint.schematicSelect = กด [accent][[F][] แล้วลากเพื่อเลือกบล็อกที่จะคัดลอกและวาง\n\n[accent][[คลิ๊กกลาง][] เพื่อคัดลอกบล็อกชนิดเดียว hint.rebuildSelect = กด [accent][[B][] แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ -hint.rebuildSelect.mobile = กดปุ่ม  คัดลอก แล้วกดปุ่ม  สร้างใหม่แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ +hint.rebuildSelect.mobile = กดปุ่ม \ue874 คัดลอก แล้วกดปุ่ม \ue80f สร้างใหม่แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ hint.conveyorPathfind = กด [accent][[L-Ctrl][] ในขณะที่กำลังลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ -hint.conveyorPathfind.mobile = เปิดใช้งาน  [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ +hint.conveyorPathfind.mobile = เปิดใช้งาน \ue844 [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ hint.boost = กด [accent][[L-Shift][] เพื่อบูสต์ข้ามสิ่งกีดขวางด้วยยูนิตของคุณ\n\nยูนิตพื้นดินบางประเภทเท่านั้นที่บินได้ hint.payloadPickup = กด [accent][[[] เพื่อหยิบบล็อกเล็กๆ หรือยูนิต hint.payloadPickup.mobile = [accent]กดค้างไว้[]ที่บล็อกเล็กๆ หรือตัวยูนิตเพื่อหยิบขึ้นมา hint.payloadDrop = กด [accent]][] เพื่อวางสิ่งที่บรรทุกอยู่ hint.payloadDrop.mobile = [accent]กดค้างไว้[]ที่พื้นที่โล่งๆ เพื่อวางสิ่งที่บรรทุกอยู่ hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หากเติมน้ำเข้าไปจะช่วยดับไฟรอบข้างให้อัตโนมัติ -hint.generator =  [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย  [accent]ตัวจ่ายพลังงาน[] -hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้  [accent]กราไฟท์[]ใส่ใน  ดูโอ/  ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์ -hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง  [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ  [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง +hint.generator = \uf879 [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย \uf87f [accent]ตัวจ่ายพลังงาน[] +hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ \uf835 [accent]กราไฟท์[]ใส่ใน \uf861 ดูโอ/ \uf859 ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์ +hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง \uf868 [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ \uf869 [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวเหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง hint.presetDifficulty = เซ็กเตอร์นี้มี[scarlet]ระดับภัยคุกคามศัตรูสูง[]\n[accent]ไม่แนะนำ[]ให้ลงจอดไปยังเซ็กเซอร์พวกนั้นหากไม่มีการเตรียมพร้อมและเทคโนโลยี hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่กักเก็บไว้เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[] hint.factoryControl = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดคลิ๊กขวาที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ hint.factoryControl.mobile = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ -gz.mine = ขยับเข้าไปใกล้ๆ กับ  [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด -gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ  [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด -gz.research = เปิด  ต้นไม้แห่งเทคโนโลยี\nวิจัย  [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด -gz.research.mobile = เปิด  ต้นไม้แห่งเทคโนโลยี\nวิจัย  [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม  [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน -gz.conveyors = วิจัยและวาง  [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน -gz.conveyors.mobile = วิจัยและวาง  [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง +gz.mine = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด +gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด +gz.research = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด +gz.research.mobile = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม \ue800 [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน +gz.conveyors = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +gz.conveyors.mobile = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง gz.drills = ขยายปฎิบัติการขุด\nวางเครื่องขุดเชิงกลเพิ่ม\nขุดทองแดง 100 ชิ้น -gz.lead =  [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว -gz.moveup =  ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป -gz.turrets = วิจัยและวางป้อมปืน  [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ  [accent]กระสุน[]จากสายพาน +gz.lead = \uf837 [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว +gz.moveup = \ue804 ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป +gz.turrets = วิจัยและวางป้อมปืน \uf861 [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ \uf838 [accent]กระสุน[]จากสายพาน gz.duoammo = เติมกระสุนให้แก่ป้อมปืนดูโอ้ด้วย[accent]ทองแดง[] โดยใช้สายพาน -gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง  [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน +gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง \uf8ae [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน gz.defend = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี -gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน  [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้  [accent]ตะกั่ว[]เป็นกระสุน +gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน \uf860 [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้ \uf837 [accent]ตะกั่ว[]เป็นกระสุน gz.scatterammo = เติมกระสุนให้แก่ป้อมปืนสแก็ตเตอร์ด้วย[accent]ตะกั่ว[] โดยใช้สายพาน gz.supplyturret = [accent]เติมกระสุนป้อมปืน gz.zone1 = นี่คือจุดเกิดของศัตรู @@ -1836,26 +1836,26 @@ gz.zone2 = สิ่งก่อสร้างทุกอย่างในร gz.zone3 = คลื่นกำลังจะเริ่มขึ้นแล้ว\nเตรียมตัวให้พร้อม gz.finish = สร้างป้อมปืนเพิ่ม ขุดทรัพยากรให้ได้มากกว่านี้\nแล้วป้องกันคลื่นทั้งหมดเพื่อ[accent]ยึดครองเซ็กเตอร์[] -onset.mine = กดคลิ๊กซ้ายเพื่อขุด  [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ -onset.mine.mobile = กดที่หน้าจอเพื่อขุด  [accent]เบริลเลี่ยม[] จากกำแพง -onset.research = เปิดหน้า  ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง  [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] -onset.bore = วิจัยและวาง  [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ -onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง  [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า -onset.ducts = วิจัยและวาง  [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน -onset.ducts.mobile = วิจัยและวาง  [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง +onset.mine = กดคลิ๊กซ้ายเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ +onset.mine.mobile = กดที่หน้าจอเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง +onset.research = เปิดหน้า \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง \uf73e [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] +onset.bore = วิจัยและวาง \uf741 [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ +onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง \uf73d [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า +onset.ducts = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +onset.ducts.mobile = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง onset.moremine = ขยายปฎิบัติการขุด\nวางเครื่องขุดเจาะพลาสม่าเพิ่มแล้วใช้โหนดลำแสงเพื่อจ่ายพลังงานให้กับมัน\nขุดเบริลเลี่ยม 200 ชิ้น -onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้  [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์ -onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย  [accent]เครื่องบดหน้าผา[]และ  [accent]เตาหลอมไฟฟ้าซิลิกอน[] -onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้  [accent]ทราย[]และ  [accent]กราไฟต์[]เพื่อผลิต  [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย -onset.crusher = ใช้  [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย -onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง  [accent]เครื่องสรรค์สร้างรถถัง[] +onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้ \uf835 [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์ +onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย \uf74d [accent]เครื่องบดหน้าผา[]และ \uf779 [accent]เตาหลอมไฟฟ้าซิลิกอน[] +onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้ \uf834 [accent]ทราย[]และ \uf835 [accent]กราไฟต์[]เพื่อผลิต \uf82f [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย +onset.crusher = ใช้ \uf74d [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย +onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง \uf6a2 [accent]เครื่องสรรค์สร้างรถถัง[] onset.makeunit = ผลิตยูนิตขึ้นมา\nใช้ปุ่ม "?" เพื่อดูความต้องการทรัพยากรของแต่ละโรงงานที่เลือกมา -onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน  [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้  [accent]กระสุน[] +onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน \uf6eb [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้ \uf748 [accent]กระสุน[] onset.turretammo = เติมกระสุนให้แก่ป้อมปืนด้วย[accent]กระสุนเบริลเลี่ยม[] -onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง  [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน +onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง \uf6ee [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน onset.enemies = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี onset.attack = ศัตรูอ่อนแอลงแล้ว ตอบโต้กลับ -onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพหน้าด่านและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง  แกนกลาง +onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพหน้าด่านและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง \uf725 แกนกลาง onset.detect = ศัตรูจะสามารถตรวจจับการมีอยู่ของคุณได้ในอีก 2 นาที\nจัดตั้งกองกำลังป้องกัน ปฏิบัติการขุด และการผลิต split.pickup = บล็อกบางชนิดสามารถถูกหยิบขึ้นมาได้ด้วยยูนิตแกนกลาง\nบรรทุก[accent]ที่เก็บของ[]นี้มาแล้วเอาไปวางใน[accent]เครื่องโหลดสิ่งบรรทุก[]\n(ปุ่มค่าเริ่มต้นคือ [ สำหรับหยิบและ ] สำหรับวางบล็อก) @@ -1906,7 +1906,7 @@ liquid.nitrogen.description = ใช้ในการสกัดทรัพ liquid.neoplasm.description = ชีวมวลอันตรายที่เป็นผลพลอยได้จากเตาปฏิกรนีโอพลาเซีย แพร่กระจายอย่างรวดเร็วสู่บล็อกที่บรรจุน้ำที่ชีวมวลนี้สัมผัส สร้างความเสียหายมันไปในระหว่างทาง หนืดข้น liquid.neoplasm.details = นีโอพลาสม์ ก้อนเซลล์เนื้องอกที่ถูกสังเคราะห์ขึ้นและควบคุมไม่ได้ ขยายตัวอย่างรวดเร็วโดยจับตัวกันเป็นก้อน ทนทานต่อความร้อน เป็นอันตรายอย่างยิ่งต่อสิ่งก่อสร้างที่เกี่ยวข้องกับน้ำ\n\nซับซ้อนและไม่เสถียรเกินไปสำหรับการวินิจฉัยขั้นพื้นฐาน ไม่ทราบส่วนผสมที่เป็นไปได้ แนะนำเป็นอย่างยิ่งให้นำมันไปเผาสลายในบ่อแร่หลอม -block.derelict =  [lightgray]ถูกทิ้งร้าง +block.derelict = \uf77e [lightgray]ถูกทิ้งร้าง block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นว่าจะเป็นสายพานด้วยกันเอง block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดค่าสีของแสงได้อีกด้วย... เจ๋งใช่มั้ยล่ะ block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร