mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-03-15 03:11:07 -07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ca2b51d4fe
47 changed files with 1050 additions and 963 deletions
|
|
@ -993,6 +993,7 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -979,6 +979,7 @@ bullet.splashdamage = [stat]{0}[lightgray] щети на площ ~[stat] {1}[li
|
|||
bullet.incendiary = [stat]Подпалване
|
||||
bullet.homing = [stat]Самонасочване
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x светкавица ~ [stat]{1}[lightgray] щети
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] щети на сгради
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ database = Base de dades del nucli
|
|||
database.button = Base de dades
|
||||
savegame = Desa la partida
|
||||
loadgame = Carrega una partida
|
||||
joingame = Unir-se a una partida
|
||||
joingame = Uneix-me a una partida
|
||||
customgame = Partida personalitzada
|
||||
newgame = Partida nova
|
||||
none = <cap>
|
||||
|
|
@ -149,15 +149,15 @@ mod.incompatiblemod = [red]Incompatible
|
|||
mod.blacklisted = [red]Unsupported
|
||||
mod.unmetdependencies = [red]Depèndencies sense resoldre
|
||||
mod.erroredcontent = [scarlet]Errors del contingut
|
||||
mod.circulardependencies = [red]Circular Dependencies
|
||||
mod.incompletedependencies = [red]Incomplete Dependencies
|
||||
mod.circulardependencies = [red]Dependències circulars
|
||||
mod.incompletedependencies = [red]Dependències incompletes
|
||||
mod.requiresversion.details = Requereix la versió: [accent]{0}[]\nCal actualitzar la vostra versió del joc. El mod necessita una versió nova (potser una distribució alfa o beta) per a funcionar.
|
||||
mod.outdatedv7.details = Aquest mod és incompatible amb l’última versió del joc. L’autor l’ha d’actualitzar i afegir [accent]minGameVersion: 136[] al seu fitxer [accent]mod.json[].
|
||||
mod.blacklisted.details = Aquest mod s’ha afegit manualment a la llista negra perquè causa problemes amb aquesta versió del joc. No el feu servir.
|
||||
mod.missingdependencies.details = A aquest mod li falten dependències: {0}
|
||||
mod.erroredcontent.details = Aquesta partida ha causat errors mentre es carregava. Pregunteu a l’autor del mod si pot arreglar-ho.
|
||||
mod.circulardependencies.details = This mod has dependencies that depends on each other.
|
||||
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
|
||||
mod.circulardependencies.details = Aquest mod depèn d’un segon mod que, al seu torn, depèn del mod anterior. No es permeten dependències circulars.
|
||||
mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té una dependència no vàlida o que no es pot trobar: {0}.
|
||||
mod.requiresversion = Cal la versió [red]{0}[] del joc.
|
||||
mod.errors = S’han produït errors quan es carregava el contingut.
|
||||
mod.noerrorplay = [scarlet]S’executen mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar.
|
||||
|
|
@ -335,7 +335,7 @@ command.repair = Repara
|
|||
command.rebuild = Reconstrueix
|
||||
command.assist = Assisteix al jugador
|
||||
command.move = Mou
|
||||
command.boost = Boost
|
||||
command.boost = Sobrevola
|
||||
openlink = Obre l’enllaç
|
||||
copylink = Copia l’enllaç
|
||||
back = Enrere
|
||||
|
|
@ -983,6 +983,7 @@ bullet.splashdamage = [stat]{0}[lightgray] de dany a l’àrea ~[stat] {1}[light
|
|||
bullet.incendiary = [stat]incendiari
|
||||
bullet.homing = [stat]munició guiada
|
||||
bullet.armorpierce = [stat]perforador d’armadures
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació:
|
||||
bullet.lightning = [stat]{0}[lightgray]× llampec ~ [stat]{1}[lightgray] de dany
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] de dany a les estructures
|
||||
|
|
@ -1465,7 +1466,7 @@ block.distributor.name = Distrïbudor
|
|||
block.sorter.name = Classificador
|
||||
block.inverted-sorter.name = Classificador invers
|
||||
block.message.name = Missatge
|
||||
block.reinforced-message.name = Missatge reforçat
|
||||
block.reinforced-message.name = Missatge destacat
|
||||
block.world-message.name = Missatge mundial
|
||||
block.illuminator.name = Il·luminador
|
||||
block.overflow-gate.name = Porta de desbordament
|
||||
|
|
@ -1877,7 +1878,7 @@ liquid.neoplasm.details = Neoplasma. Una massa incontrolable de cèl·lules sint
|
|||
block.derelict = \uf77e [lightgray]En ruïnes
|
||||
block.armored-conveyor.description = Mou objectes. Pels laterals només accepta entrades des d’altres cintes transportadores.
|
||||
block.illuminator.description = Emet llum.
|
||||
block.message.description = Emmagatzema un missatge. Els aliats ho poden fer servir per a comunicar-se.
|
||||
block.message.description = Emmagatzema un missatge. Els aliats el poden fer servir per a comunicar-se.
|
||||
block.reinforced-message.description = Emmagatzema un missatge que serveix per a què els aliats es puguin comunicar.
|
||||
block.world-message.description = Un bloc de missatge que es far servir per a fer mapes. No es pot destruir.
|
||||
block.graphite-press.description = Comprimeix carbó fins obtenir-ne grafit.
|
||||
|
|
|
|||
|
|
@ -981,6 +981,7 @@ bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[li
|
|||
bullet.incendiary = [stat]zápalný
|
||||
bullet.homing = [stat]samonaváděcí
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag střel:
|
||||
bullet.lightning = [stat]{0}[lightgray]x jiskření ~ [stat]{1}[lightgray] poškození
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] poškození budov
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] områdeskade ~[stat] {1}[lightgray] f
|
|||
bullet.incendiary = [stat]brændfarlig
|
||||
bullet.homing = [stat]målsøgende
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -992,6 +992,7 @@ bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray
|
|||
bullet.incendiary = [stat]entzündend
|
||||
bullet.homing = [stat]zielsuchend
|
||||
bullet.armorpierce = [stat]panzerbrechend
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x Splittergeschosse:
|
||||
bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden
|
||||
|
|
|
|||
|
|
@ -989,6 +989,7 @@ bullet.splashdamage = [stat]{0}[lightgray] daño en área ~[stat] {1}[lightgray]
|
|||
bullet.incendiary = [stat]incendiaria
|
||||
bullet.homing = [stat]rastreadora
|
||||
bullet.armorpierce = [stat]perforación de armadura
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x proyectiles fragmentados:
|
||||
bullet.lightning = [stat]{0}[lightgray]x rayos ~ [stat]{1}[lightgray] daño
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray]
|
|||
bullet.incendiary = [stat]süttiv
|
||||
bullet.homing = [stat]isesihtiv
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -971,6 +971,7 @@ bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray
|
|||
bullet.incendiary = [stat]su-eragilea
|
||||
bullet.homing = [stat]gidatua
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -968,6 +968,7 @@ bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] pa
|
|||
bullet.incendiary = [stat]sytyttävä
|
||||
bullet.homing = [stat]itseohjautuva
|
||||
bullet.armorpierce = [stat]haarniskan läpäisevä
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x sirpaleammuksia:
|
||||
bullet.lightning = [stat]{0}[lightgray]x salama ~ [stat]{1}[lightgray] vahinkoa
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] vahinko rakennuksiin
|
||||
|
|
|
|||
|
|
@ -968,6 +968,7 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -993,6 +993,7 @@ bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgra
|
|||
bullet.incendiary = [stat]incendiaire
|
||||
bullet.homing = [stat]autoguidé
|
||||
bullet.armorpierce = [stat]perceur d'armure
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation :
|
||||
bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments
|
||||
|
|
|
|||
|
|
@ -978,6 +978,7 @@ bullet.splashdamage = [stat]{0}[lightgray] területi sebzés ~[stat] {1}[lightgr
|
|||
bullet.incendiary = [stat]gyújtó
|
||||
bullet.homing = [stat]nyomkövető
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] épület sebzés
|
||||
|
|
|
|||
|
|
@ -989,6 +989,7 @@ bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgra
|
|||
bullet.incendiary = [stat]membakar
|
||||
bullet.homing = [stat]mengejar
|
||||
bullet.armorpierce = [stat]menembus baju besi
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x pecahan:
|
||||
bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan
|
||||
|
|
|
|||
|
|
@ -975,6 +975,7 @@ bullet.splashdamage = [stat]{0}[lightgray] danno ad area ~[stat] {1}[lightgray]
|
|||
bullet.incendiary = [stat]incendiario
|
||||
bullet.homing = [stat]autoguidato
|
||||
bullet.armorpierce = [stat]perforazione alle armature
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frammentazione:
|
||||
bullet.lightning = [stat]{0}[lightgray]x fulmine ~ [stat]{1}[lightgray] danno
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] danno alle costruzioni
|
||||
|
|
|
|||
|
|
@ -981,6 +981,7 @@ bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[ligh
|
|||
bullet.incendiary = [stat]焼夷弾
|
||||
bullet.homing = [stat]追尾弾
|
||||
bullet.armorpierce = [stat]アーマー貫通
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x ライトニング ~ [stat]{1}[lightgray] ダメージ
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] 対物ダメージ
|
||||
|
|
|
|||
|
|
@ -981,6 +981,7 @@ bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgra
|
|||
bullet.incendiary = [stat]방화[]
|
||||
bullet.homing = [stat]유도[]
|
||||
bullet.armorpierce = [stat]방어 관통
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]개 파편 탄환:[][]
|
||||
bullet.lightning = [stat]{0}[lightgray]x 전격 ~ [stat]{1}[lightgray] 피해량[][][][]
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] 건물 피해량[][]
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] zonos žalos ~[stat] {1}[lightgray] b
|
|||
bullet.incendiary = [stat]uždegantis
|
||||
bullet.homing = [stat]sekimas
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -981,6 +981,7 @@ bullet.splashdamage = [stat]{0}[lightgray] gebied scade ~[stat] {1}[lightgray] t
|
|||
bullet.incendiary = [stat]brandstichtend
|
||||
bullet.homing = [stat]doelzoekend
|
||||
bullet.armorpierce = [stat]pantserdoorborend
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x fragment kogels:
|
||||
bullet.lightning = [stat]{0}[lightgray]x bliksem ~ [stat]{1}[lightgray] schade
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] gebouwschade
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -979,6 +979,7 @@ bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[ligh
|
|||
bullet.incendiary = [stat]zapalający
|
||||
bullet.homing = [stat]naprowadzający
|
||||
bullet.armorpierce = [stat]przebijający pancerz
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x pociski odłamkowe:
|
||||
bullet.lightning = [stat]{0}[lightgray]x błyskawice ~ [stat]{1}[lightgray] Obrażenia
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] obrażeń budynkom
|
||||
|
|
|
|||
|
|
@ -990,6 +990,7 @@ bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgra
|
|||
bullet.incendiary = [stat]Incendiário
|
||||
bullet.homing = [stat]Guiado
|
||||
bullet.armorpierce = [stat]pentração de armadura
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x balas de fragmentação:
|
||||
bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] dano em construção
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray]
|
|||
bullet.incendiary = [stat]Incendiário
|
||||
bullet.homing = [stat]Guiado
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -981,6 +981,7 @@ bullet.splashdamage = [stat]{0}[lightgray] forță pe raza ~[stat] {1}[lightgray
|
|||
bullet.incendiary = [stat]incendiar
|
||||
bullet.homing = [stat]cu radar
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x fragmente:
|
||||
bullet.lightning = [stat]{0}[lightgray]x fulgere ~ [stat]{1}[lightgray] forță
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] forță/clădire
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ command.repair = Ремонтировать
|
|||
command.rebuild = Восстанавливать
|
||||
command.assist = Помогать игроку
|
||||
command.move = Двигаться
|
||||
command.boost = Подняться
|
||||
command.boost = Лететь
|
||||
openlink = Открыть ссылку
|
||||
copylink = Скопировать ссылку
|
||||
back = Назад
|
||||
|
|
@ -982,6 +982,7 @@ bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat]
|
|||
bullet.incendiary = [stat]зажигательный
|
||||
bullet.homing = [stat]самонаводящийся
|
||||
bullet.armorpierce = [stat]бронебойный
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x осколочный(ых) снаряд(ов):
|
||||
bullet.lightning = [stat]{0}[lightgray]x молнии ~ [stat]{1}[lightgray] урона
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] урона по постройкам
|
||||
|
|
@ -1183,14 +1184,14 @@ mode.editor.name = Редактор
|
|||
mode.pvp.name = PvP
|
||||
mode.pvp.description = Сражайтесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте.
|
||||
mode.attack.name = Атака
|
||||
mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте.
|
||||
mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется вражеское ядро на карте.
|
||||
mode.custom = Пользовательские правила
|
||||
rules.infiniteresources = Бесконечные ресурсы
|
||||
rules.onlydepositcore = Разрешен перенос только в ядро
|
||||
rules.reactorexplosions = Взрывы реакторов
|
||||
rules.coreincinerates = Ядро сжигает избыток ресурсов
|
||||
rules.disableworldprocessors = Отключить мировые процессоры
|
||||
rules.schematic = Схемы разрешены
|
||||
rules.schematic = Разрешить схемы
|
||||
rules.wavetimer = Интервал волн
|
||||
rules.wavesending = Отправка волн
|
||||
rules.waves = Волны
|
||||
|
|
@ -1203,7 +1204,7 @@ rules.rtsminattackweight = Минимальный вес для атаки
|
|||
rules.cleanupdeadteams = Очистка строений побежденных команд (PvP)
|
||||
rules.corecapture = Захват ядра после уничтожения
|
||||
rules.polygoncoreprotection = Полигональная защита ядер
|
||||
rules.placerangecheck = Проверка диапазона размещения
|
||||
rules.placerangecheck = Запретить размещение турелей возле вражеских построек
|
||||
rules.enemyCheat = Бесконечные ресурсы ИИ
|
||||
rules.blockhealthmultiplier = Множитель прочности блоков
|
||||
rules.blockdamagemultiplier = Множитель урона блоков
|
||||
|
|
@ -1218,7 +1219,7 @@ rules.unitcap = Начальный лимит единиц
|
|||
rules.limitarea = Ограничить область карты
|
||||
rules.enemycorebuildradius = Радиус защиты враж. ядер:[lightgray] (блок.)
|
||||
rules.wavespacing = Интервал волн:[lightgray] (сек)
|
||||
rules.initialwavespacing = Начальное расстояние между волнами:[lightgray] (сек)
|
||||
rules.initialwavespacing = Время до первой волны:[lightgray] (сек)
|
||||
rules.buildcostmultiplier = Множитель затрат на строительство
|
||||
rules.buildspeedmultiplier = Множитель скорости строительства
|
||||
rules.deconstructrefundmultiplier = Множитель возврата ресурсов при разборке
|
||||
|
|
@ -2180,7 +2181,7 @@ lst.getlink = Получает соединение процессора по и
|
|||
lst.control = Контролирует блок.
|
||||
lst.radar = Обнаруживает единицы вокруг постройки с заданным радиусом.
|
||||
lst.sensor = Получает данные из постройки или единицы.
|
||||
lst.set = Устанавливает переменную.
|
||||
lst.set = Задаёт значение переменной.
|
||||
lst.operation = Совершает операцию над 1-2 переменными.
|
||||
lst.end = Переходит к началу стека операций.
|
||||
lst.wait = Ждёт определённое количество секунд.
|
||||
|
|
@ -2201,7 +2202,7 @@ lst.setrate = Устанавливает скорость выполнения
|
|||
lst.fetch = Ищет единицы, ядра, игроков или зданий по индексу.\nИндексы начинаются с 0 и заканчиваются возвращаемым числом.
|
||||
lst.packcolor = Упаковывает компоненты RGBA [0, 1] в один номер для рисования или установки правил.
|
||||
lst.setrule = Устанавливает игровое правило.
|
||||
lst.flushmessage = Отображает сообщение на экране из текстового буфера.\nБудет ожидать окончание предыдущего сообщения.
|
||||
lst.flushmessage = Отображает сообщение из текстового буфера на экране игрока.\nБудет ожидать окончание предыдущего сообщения.
|
||||
lst.cutscene = Управляет камерой игрока.
|
||||
lst.setflag = Устанавливает глобальный флаг, который может быть прочитан всеми процессорами.
|
||||
lst.getflag = Проверяет, установлен ли глобальный флаг.
|
||||
|
|
|
|||
|
|
@ -983,6 +983,7 @@ bullet.splashdamage = [stat]{0}[lightgray] oblasna šteta ~[stat] {1}[lightgray]
|
|||
bullet.incendiary = [stat]zapaljiv
|
||||
bullet.homing = [stat]samonavođenje
|
||||
bullet.armorpierce = [stat]proboj oklopa
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x šrapnela:
|
||||
bullet.lightning = [stat]{0}[lightgray]x munja ~ [stat]{1}[lightgray] štete
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] šteta za strukture
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -982,6 +982,7 @@ bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[s
|
|||
bullet.incendiary = [stat]ติดไฟ
|
||||
bullet.homing = [stat]ติดตามตัว
|
||||
bullet.armorpierce = [stat]เจาะเกราะ
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x กระจาย กระสุน:
|
||||
bullet.lightning = [stat]{0}[lightgray]x สายฟ้า ~ [stat]{1}[lightgray] ดาเมจ
|
||||
bullet.buildingdamage = [lightgray]ดาเมจต่อสิ่งก่อสร้าง [stat]{0}%[lightgray]
|
||||
|
|
|
|||
|
|
@ -969,6 +969,7 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.armorpierce = [stat]armor piercing
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
||||
|
|
|
|||
|
|
@ -980,6 +980,7 @@ bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]k
|
|||
bullet.incendiary = [stat]yakıcı
|
||||
bullet.homing = [stat]güdümlü
|
||||
bullet.armorpierce = [stat]zırh delici
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x parçalı mermiler:
|
||||
bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] inşaa hasarı
|
||||
|
|
|
|||
|
|
@ -990,6 +990,7 @@ bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat
|
|||
bullet.incendiary = [stat]запальний
|
||||
bullet.homing = [stat]самонаведення
|
||||
bullet.armorpierce = [stat]бронебійність
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів:
|
||||
bullet.lightning = [stat]{0}[lightgray]x блискавки ~ [stat]{1}[lightgray] шкоди
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлям
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -992,6 +992,7 @@ bullet.splashdamage = [stat]{0}[lightgray]范围伤害~[stat] {1}[lightgray]格
|
|||
bullet.incendiary = [stat]燃烧
|
||||
bullet.homing = [stat]追踪
|
||||
bullet.armorpierce = [stat]穿甲
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x分裂子弹:
|
||||
bullet.lightning = [stat]{0}[lightgray]x闪电~[stat]{1}[lightgray]伤害
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray]对建筑伤害
|
||||
|
|
|
|||
|
|
@ -988,6 +988,7 @@ bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
|
|||
bullet.incendiary = [stat]燃燒
|
||||
bullet.homing = [stat]追蹤
|
||||
bullet.armorpierce = [stat]穿甲
|
||||
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
|
||||
bullet.frags = [stat]{0}[lightgray]x 集束子彈:
|
||||
bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害
|
||||
bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ public class Control implements ApplicationListener, Loadable{
|
|||
if(!settings.getBool("skipcoreanimation") && !state.rules.pvp){
|
||||
coreDelay = coreLandDuration;
|
||||
//delay player respawn so animation can play.
|
||||
player.deathTimer = -80f;
|
||||
player.deathTimer = Player.deathDelay - coreLandDuration;
|
||||
//TODO this sounds pretty bad due to conflict
|
||||
if(settings.getInt("musicvol") > 0){
|
||||
Musics.land.stop();
|
||||
|
|
|
|||
|
|
@ -93,13 +93,13 @@ public class ForceFieldAbility extends Ability{
|
|||
checkRadius(unit);
|
||||
|
||||
if(unit.shield > 0){
|
||||
Draw.z(Layer.shields);
|
||||
|
||||
Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha));
|
||||
|
||||
if(Vars.renderer.animateShields){
|
||||
Draw.z(Layer.shields + 0.001f * alpha);
|
||||
Fill.poly(unit.x, unit.y, sides, realRad, rotation);
|
||||
}else{
|
||||
Draw.z(Layer.shields);
|
||||
Lines.stroke(1.5f);
|
||||
Draw.alpha(0.09f);
|
||||
Fill.poly(unit.x, unit.y, sides, radius, rotation);
|
||||
|
|
|
|||
|
|
@ -177,6 +177,8 @@ public class BulletType extends Content implements Cloneable{
|
|||
public float intervalSpread = 0f;
|
||||
/** Angle offset for interval bullets. */
|
||||
public float intervalAngle = 0f;
|
||||
/** Use a negative value to disable interval bullet delay. */
|
||||
public float intervalDelay = -1f;
|
||||
|
||||
/** Color used for hit/despawn effects. */
|
||||
public Color hitColor = Color.white;
|
||||
|
|
@ -557,7 +559,7 @@ public class BulletType extends Content implements Cloneable{
|
|||
}
|
||||
|
||||
public void updateBulletInterval(Bullet b){
|
||||
if(intervalBullet != null && b.timer.get(2, bulletInterval)){
|
||||
if(intervalBullet != null && b.time >= intervalDelay && b.timer.get(2, bulletInterval)){
|
||||
float ang = b.rotation();
|
||||
for(int i = 0; i < intervalBullets; i++){
|
||||
intervalBullet.create(b, b.x, b.y, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread));
|
||||
|
|
|
|||
|
|
@ -79,7 +79,11 @@ public class ContentParser{
|
|||
put(Interp.class, (type, data) -> field(Interp.class, data));
|
||||
put(Blending.class, (type, data) -> field(Blending.class, data));
|
||||
put(CacheLayer.class, (type, data) -> field(CacheLayer.class, data));
|
||||
put(Attribute.class, (type, data) -> Attribute.get(data.asString()));
|
||||
put(Attribute.class, (type, data) -> {
|
||||
String attr = data.asString();
|
||||
if(Attribute.exists(attr)) return Attribute.get(attr);
|
||||
return Attribute.add(attr);
|
||||
});
|
||||
put(BuildVisibility.class, (type, data) -> field(BuildVisibility.class, data));
|
||||
put(Schematic.class, (type, data) -> {
|
||||
Object result = fieldOpt(Loadouts.class, data);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ public class ForceProjector extends Block{
|
|||
public float phaseRadiusBoost = 80f;
|
||||
public float phaseShieldBoost = 400f;
|
||||
public float radius = 101.7f;
|
||||
public int sides = 6;
|
||||
public float shieldRotation = 0f;
|
||||
public float shieldHealth = 700f;
|
||||
public float cooldownNormal = 1.75f;
|
||||
public float cooldownLiquid = 1.5f;
|
||||
|
|
@ -46,7 +48,7 @@ public class ForceProjector extends Block{
|
|||
protected static ForceBuild paramEntity;
|
||||
protected static Effect paramEffect;
|
||||
protected static final Cons<Bullet> shieldConsumer = bullet -> {
|
||||
if(bullet.team != paramEntity.team && bullet.type.absorbable && Intersector.isInsideHexagon(paramEntity.x, paramEntity.y, paramEntity.realRadius() * 2f, bullet.x, bullet.y)){
|
||||
if(bullet.team != paramEntity.team && bullet.type.absorbable && Intersector.isInRegularPolygon(((ForceProjector)(paramEntity.block)).sides, paramEntity.x, paramEntity.y, paramEntity.realRadius() * 2f, ((ForceProjector)(paramEntity.block)).shieldRotation, bullet.x, bullet.y)){
|
||||
bullet.absorb();
|
||||
paramEffect.at(bullet);
|
||||
paramEntity.hit = 1f;
|
||||
|
|
@ -109,10 +111,10 @@ public class ForceProjector extends Block{
|
|||
|
||||
Draw.color(Pal.gray);
|
||||
Lines.stroke(3f);
|
||||
Lines.poly(x * tilesize + offset, y * tilesize + offset, 6, radius);
|
||||
Lines.poly(x * tilesize + offset, y * tilesize + offset, sides, radius, shieldRotation);
|
||||
Draw.color(player.team().color);
|
||||
Lines.stroke(1f);
|
||||
Lines.poly(x * tilesize + offset, y * tilesize + offset, 6, radius);
|
||||
Lines.poly(x * tilesize + offset, y * tilesize + offset, sides, radius, shieldRotation);
|
||||
Draw.color();
|
||||
}
|
||||
|
||||
|
|
@ -241,18 +243,18 @@ public class ForceProjector extends Block{
|
|||
if(!broken){
|
||||
float radius = realRadius();
|
||||
|
||||
Draw.z(Layer.shields);
|
||||
|
||||
Draw.color(team.color, Color.white, Mathf.clamp(hit));
|
||||
|
||||
if(renderer.animateShields){
|
||||
Fill.poly(x, y, 6, radius);
|
||||
Draw.z(Layer.shields + 0.001f * hit);
|
||||
Fill.poly(x, y, sides, radius, shieldRotation);
|
||||
}else{
|
||||
Draw.z(Layer.shields);
|
||||
Lines.stroke(1.5f);
|
||||
Draw.alpha(0.09f + Mathf.clamp(0.08f * hit));
|
||||
Fill.poly(x, y, 6, radius);
|
||||
Fill.poly(x, y, sides, radius, shieldRotation);
|
||||
Draw.alpha(1f);
|
||||
Lines.poly(x, y, 6, radius);
|
||||
Lines.poly(x, y, sides, radius, shieldRotation);
|
||||
Draw.reset();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ public class BeamDrill extends Block{
|
|||
/** How many times faster the drill will progress when boosted by an optional consumer. */
|
||||
public float optionalBoostIntensity = 2.5f;
|
||||
|
||||
/** Multipliers of drill speed for each item. Defaults to 1. */
|
||||
public ObjectFloatMap<Item> drillMultipliers = new ObjectFloatMap<>();
|
||||
|
||||
public Color sparkColor = Color.valueOf("fd9e81"), glowColor = Color.white;
|
||||
public float glowIntensity = 0.2f, pulseIntensity = 0.07f;
|
||||
public float glowScl = 3f;
|
||||
|
|
@ -161,7 +164,7 @@ public class BeamDrill extends Block{
|
|||
}
|
||||
|
||||
if(item != null){
|
||||
float width = drawPlaceText(Core.bundle.formatFloat("bar.drillspeed", 60f / drillTime * count, 2), x, y, valid);
|
||||
float width = drawPlaceText(Core.bundle.formatFloat("bar.drillspeed", 60f / getDrillTime(item) * count, 2), x, y, valid);
|
||||
if(!multiple){
|
||||
float dx = x * tilesize + offset - width/2f - 4f, dy = y * tilesize + offset + size * tilesize / 2f + 5, s = iconSmall / 4f;
|
||||
Draw.mixcol(Color.darkGray, 1f);
|
||||
|
|
@ -194,6 +197,10 @@ public class BeamDrill extends Block{
|
|||
return false;
|
||||
}
|
||||
|
||||
public float getDrillTime(Item item){
|
||||
return drillTime / drillMultipliers.get(item, 1f);
|
||||
}
|
||||
|
||||
public class BeamDrillBuild extends Building{
|
||||
public Tile[] facing = new Tile[size];
|
||||
public Point2[] lasers = new Point2[size];
|
||||
|
|
@ -227,6 +234,7 @@ public class BeamDrill extends Block{
|
|||
updateFacing();
|
||||
|
||||
float multiplier = Mathf.lerp(1f, optionalBoostIntensity, optionalEfficiency);
|
||||
float drillTime = getDrillTime(lastItem);
|
||||
boostWarmup = Mathf.lerpDelta(boostWarmup, optionalEfficiency, 0.1f);
|
||||
lastDrillSpeed = (facingAmount * multiplier * timeScale) / drillTime;
|
||||
|
||||
|
|
|
|||
|
|
@ -31,9 +31,6 @@ public class BurstDrill extends Drill{
|
|||
public Sound drillSound = Sounds.drillImpact;
|
||||
public float drillSoundVolume = 0.6f, drillSoundPitchRand = 0.1f;
|
||||
|
||||
/** Multipliers of drill speed for each item. Defaults to 1. */
|
||||
public ObjectFloatMap<Item> drillMultipliers = new ObjectFloatMap<>();
|
||||
|
||||
public BurstDrill(String name){
|
||||
super(name);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ public class Drill extends Block{
|
|||
/** Chance the update effect will appear. */
|
||||
public float updateEffectChance = 0.02f;
|
||||
|
||||
/** Multipliers of drill speed for each item. Defaults to 1. */
|
||||
public ObjectFloatMap<Item> drillMultipliers = new ObjectFloatMap<>();
|
||||
|
||||
public boolean drawRim = false;
|
||||
public boolean drawSpinSprite = true;
|
||||
public Color heatColor = Color.valueOf("ff5512");
|
||||
|
|
@ -160,7 +163,7 @@ public class Drill extends Block{
|
|||
}
|
||||
|
||||
public float getDrillTime(Item item){
|
||||
return drillTime + hardnessDrillMultiplier * item.hardness;
|
||||
return (drillTime + hardnessDrillMultiplier * item.hardness) / drillMultipliers.get(item, 1f);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ public class CoreBlock extends StorageBlock{
|
|||
if(renderer.getLandTime() >= 1f){
|
||||
tile.getLinkedTiles(t -> {
|
||||
if(Mathf.chance(0.4f)){
|
||||
Fx.coreLandDust.at(t.worldx(), t.worldy(), angleTo(t) + Mathf.range(30f), Tmp.c1.set(t.floor().mapColor).mul(1.5f + Mathf.range(0.15f)));
|
||||
Fx.coreLandDust.at(t.worldx(), t.worldy(), angleTo(t.worldx(), t.worldy()) + Mathf.range(30f), Tmp.c1.set(t.floor().mapColor).mul(1.5f + Mathf.range(0.15f)));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@ public class Attribute{
|
|||
return map.getThrow(name, () -> new IllegalArgumentException("Unknown Attribute type: " + name));
|
||||
}
|
||||
|
||||
/** @return Whether an attribute exists. */
|
||||
public static boolean exists(String name){
|
||||
return map.containsKey(name);
|
||||
}
|
||||
|
||||
/** Automatically registers this attribute for use. Do not call after mod init. */
|
||||
public static Attribute add(String name){
|
||||
Attribute a = new Attribute(all.length, name);
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ public class StatValues{
|
|||
}
|
||||
|
||||
table.table(bt -> {
|
||||
bt.left().defaults().padRight(3).left();
|
||||
bt.left().top().defaults().padRight(3).left();
|
||||
|
||||
if(type.damage > 0 && (type.collides || type.splashDamage <= 0)){
|
||||
if(type.continuousDamage() > 0){
|
||||
|
|
@ -407,11 +407,40 @@ public class StatValues{
|
|||
sep(bt, (type.status.minfo.mod == null ? type.status.emoji() : "") + "[stat]" + type.status.localizedName + (type.status.reactive ? "" : "[lightgray] ~ [stat]" + ((int)(type.statusDuration / 60f)) + "[lightgray] " + Core.bundle.get("unit.seconds")));
|
||||
}
|
||||
|
||||
if(type.fragBullet != null){
|
||||
sep(bt, Core.bundle.format("bullet.frags", type.fragBullets));
|
||||
if(type.intervalBullet != null){
|
||||
bt.row();
|
||||
|
||||
ammo(ObjectMap.of(t, type.fragBullet), indent + 1, false).display(bt);
|
||||
Table ic = new Table();
|
||||
ammo(ObjectMap.of(t, type.intervalBullet), indent + 1, false).display(ic);
|
||||
Collapser coll = new Collapser(ic, true);
|
||||
coll.setDuration(0.1f);
|
||||
|
||||
bt.table(it -> {
|
||||
it.left().defaults().left();
|
||||
|
||||
it.add(Core.bundle.format("bullet.interval", Strings.autoFixed(type.intervalBullets / type.bulletInterval * 60, 2)));
|
||||
it.button(Icon.downOpen, Styles.emptyi, () -> coll.toggle(false)).update(i -> i.getStyle().imageUp = (!coll.isCollapsed() ? Icon.upOpen : Icon.downOpen)).size(8).padLeft(16f).expandX();
|
||||
});
|
||||
bt.row();
|
||||
bt.add(coll);
|
||||
}
|
||||
|
||||
if(type.fragBullet != null){
|
||||
bt.row();
|
||||
|
||||
Table fc = new Table();
|
||||
ammo(ObjectMap.of(t, type.fragBullet), indent + 1, false).display(fc);
|
||||
Collapser coll = new Collapser(fc, true);
|
||||
coll.setDuration(0.1f);
|
||||
|
||||
bt.table(ft -> {
|
||||
ft.left().defaults().left();
|
||||
|
||||
ft.add(Core.bundle.format("bullet.frags", type.fragBullets));
|
||||
ft.button(Icon.downOpen, Styles.emptyi, () -> coll.toggle(false)).update(i -> i.getStyle().imageUp = (!coll.isCollapsed() ? Icon.upOpen : Icon.downOpen)).size(8).padLeft(16f).expandX();
|
||||
});
|
||||
bt.row();
|
||||
bt.add(coll);
|
||||
}
|
||||
}).padTop(compact ? 0 : -9).padLeft(indent * 8).left().get().background(compact ? null : Tex.underline);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
},
|
||||
{
|
||||
"name": "XCore",
|
||||
"address": ["130.61.52.25", "130.61.52.25:6568", "130.61.52.25:6569", "130.61.52.25:6570"]
|
||||
"address": ["130.61.52.25", "130.61.52.25:6568", "130.61.52.25:6569", "130.61.52.25:6570", "130.61.52.25:6572"]
|
||||
},
|
||||
{
|
||||
"name": "Darkdustry",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue