diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index de77a25028..98ae7dbe86 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -101,6 +101,7 @@ customgame = 自訂遊戲 newgame = 新遊戲 none = 〈沒有〉 none.found = [lightgray]〈查無結果〉 +none.inmap = [lightgray]〈地圖中無結果〉 minimap = 小地圖 position = 位置 close = 關閉 @@ -214,6 +215,7 @@ hosts.none = [lightgray]找不到區域網路伺服器! host.invalid = [scarlet]無法連線至伺服器。 servers.local = 區域伺服器 +servers.local.steam = 開放遊戲間與區域伺服器 servers.remote = 遠端伺服器 servers.global = 社群伺服器 @@ -315,7 +317,7 @@ data.invalid = 這不是有效的遊戲資料。 data.import.confirm = 導入外部資料將會覆寫您目前[scarlet]所有的[]遊戲資料,\n[accent]此動作無法復原![]\n\n匯入資料後,您的遊戲將立刻結束。 quit.confirm = 您確定要結束嗎? loading = [accent]載入中…… -reloading = [accent]模組重新載入中…… +downloading = [accent]下載中…… saving = [accent]儲存中…… respawn = [accent][[{0}][]重生 cancelbuilding = [accent][[{0}][]清除計畫 @@ -460,6 +462,7 @@ toolmode.drawteams = 繪製團隊 toolmode.drawteams.description = 繪製團隊而非方塊。 filters.empty = [lightgray]沒有過濾器!使用下面的按鈕新增一個。 + filter.distort = 扭曲 filter.noise = 雜訊 filter.enemyspawn = 敵人重生選擇 @@ -476,6 +479,7 @@ filter.clear = 清除 filter.option.ignore = 忽略 filter.scatter = 分散 filter.terrain = 地形 + filter.option.scale = 規模 filter.option.chance = 機會 filter.option.mag = 大小 @@ -490,6 +494,7 @@ filter.option.block = 方塊 filter.option.floor = 地板 filter.option.flooronto = 目標地板 filter.option.target = 目標 +filter.option.replacement = 取代 filter.option.wall = 牆 filter.option.ore = 礦石 filter.option.floor2 = 次要地板 @@ -533,7 +538,8 @@ configure = 設定 loadout = 裝載 resources = 資源 -bannedblocks = 停用方塊 +bannedblocks = 禁用方塊 +bannedunits = 禁用單位 addall = 全部加入 launch.from = 發射來源:[accent]{0} launch.destination = 目的地:{0} @@ -561,7 +567,8 @@ weather.fog.name = 霧 sectors.unexplored = [lightgray]未探索 sectors.resources = 資源: sectors.production = 生產: -sectors.export = 出口: +sectors.export = 輸出: +sectors.import = 輸入: sectors.time = 佔領時間: sectors.threat = 危險性: sectors.wave = 波次: @@ -675,6 +682,7 @@ unit.nobuild = [scarlet]單位不能建造 lastaccessed = [lightgray]最後使用:{0} block.unknown = [lightgray]??? +stat.showinmap = <加載地圖以顯示> stat.description = 用途 stat.input = 輸入 stat.output = 輸出 @@ -720,7 +728,7 @@ stat.maxconsecutive = 最大連續 stat.buildcost = 建造成本 stat.inaccuracy = 誤差 stat.shots = 射擊數 -stat.reload = 射擊次數/秒 +stat.reload = 射擊速率 stat.ammo = 彈藥 stat.shieldhealth = 護盾生命值 stat.cooldowntime = 冷確時間 @@ -789,7 +797,7 @@ bullet.damage = [stat]{0}[lightgray]傷害 bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格 bullet.incendiary = [stat]燃燒 bullet.homing = [stat]追蹤 -bullet.frag = [stat]破片彈 +bullet.frag = [stat]{0}[lightgray]x 破片彈 bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害 bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害 bullet.knockback = [stat]{0}[lightgray]擊退 @@ -802,6 +810,7 @@ bullet.reload = [stat]{0}[lightgray]×射擊速率 unit.blocks = 方塊 unit.blockssquared = 方塊² unit.powersecond = 能量單位/秒 +unit.tilessecond = 方格/秒 unit.liquidsecond = 液體單位/秒 unit.itemssecond = 物品/秒 unit.liquidunits = 液體單位 @@ -825,22 +834,21 @@ category.power = 能量 category.liquids = 液體 category.items = 物品 category.crafting = 需求 -category.function = 方法 -category.optional = 可選的強化 +category.function = 功能 +category.optional = 額外的強化效果 +setting.skipcoreanimation.name = 跳過核心發射/降落動畫 setting.landscape.name = 鎖定水平畫面 setting.shadows.name = 陰影 setting.blockreplace.name = 方塊建造建議 setting.linear.name = 線性過濾 setting.hints.name = 提示 setting.logichints.name = 邏輯提示 -setting.flow.name = 顯示資源輸送速度 -setting.backgroundpause.name = 背景執行時暫停 +setting.backgroundpause.name = 背景執行時暫停遊戲 setting.buildautopause.name = 自動暫停建築 setting.doubletapmine.name = 連續點擊以挖礦 setting.modcrashdisable.name = 閃退後停用模組 -setting.animatedwater.name = 液體動畫 -setting.animatedshields.name = 護盾動畫 -setting.antialias.name = 消除鋸齒[lightgray](需要重新啟動遊戲)[] +setting.animatedwater.name = 顯示液面動畫 +setting.animatedshields.name = 顯示護盾動畫 setting.playerindicators.name = 盟友標示 setting.indicators.name = 敵方標示 setting.autotarget.name = 自動射擊 @@ -849,7 +857,8 @@ setting.touchscreen.name = 觸控螢幕控制 setting.fpscap.name = 最大FPS setting.fpscap.none = 無 setting.fpscap.text = {0}FPS -setting.uiscale.name = 使用者介面縮放[lightgray](需要重新啟動遊戲)[] +setting.uiscale.name = 操作介面大小 +setting.uiscale.description = 需要重新啟動遊戲以更改大小 setting.swapdiagonal.name = 預設對角線放置 setting.difficulty.training = 訓練 setting.difficulty.easy = 簡單 @@ -867,7 +876,9 @@ setting.saveinterval.name = 自動存檔間隔 setting.seconds = {0}秒 setting.milliseconds = {0}毫秒 setting.fullscreen.name = 全螢幕 -setting.borderlesswindow.name = 無邊框視窗[lightgray](可能需要重新啟動遊戲) +setting.borderlesswindow.name = 無邊框視窗 +setting.borderlesswindow.name.windows = 無邊框全螢幕 +setting.borderlesswindow.description = 可能需重新啟動遊戲以變更 setting.fps.name = 顯示FPS與延遲 setting.smoothcamera.name = 平滑攝影機 setting.vsync.name = 垂直同步 @@ -990,7 +1001,9 @@ rules.wavetimer = 波次時間 rules.waves = 波次 rules.attack = 攻擊模式 rules.buildai = 電腦自動建築 +rules.cleanupdeadteams = 移除戰敗玩家的建築(對戰) rules.corecapture = 佔領摧毀的核心 +rules.polygoncoreprotection = 核心禁築區呈多邊形 rules.enemyCheat = 電腦無限資源 rules.blockhealthmultiplier = 建築物耐久度倍數 rules.blockdamagemultiplier = 建築物傷害倍數 @@ -1091,7 +1104,6 @@ unit.reign.name = 帝王 unit.vela.name = 船帆座 unit.corvus.name = 烏鴉座 -block.resupply-point.name = 補給點 block.parallax.name = 視差 block.cliff.name = 峭壁 block.sand-boulder.name = 沙礫巨岩 @@ -1161,6 +1173,7 @@ block.spore-cluster.name = 孢子簇 block.metal-floor.name = 金屬地板 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.dark-panel-1.name = 黑面板 1 @@ -1282,7 +1295,6 @@ block.meltdown.name = 熔毀砲 block.foreshadow.name = 狙擊砲 block.container.name = 容器 block.launch-pad.name = 小型發射台 -block.launch-pad-large.name = 大型發射台 block.segment.name = 片段 block.command-center.name = 指揮中心 block.ground-factory.name = 地面工廠 @@ -1294,14 +1306,20 @@ block.exponential-reconstructor.name = 四級重塑者 block.tetrative-reconstructor.name = 五級重塑者 block.payload-conveyor.name = 原料輸送帶 block.payload-router.name = 原料分配器 +block.duct.name = 類真空管 +block.duct-router.name = 真空管分配器 +block.duct-bridge.name = 真空管橋 +block.payload-propulsion-tower.name = 原料推進塔 +block.payload-void.name = 原料虛空 +block.payload-source.name = 原料源 block.disassembler.name = 還原機 block.silicon-crucible.name = 矽爐 block.overdrive-dome.name = 高速拱頂 +block.interplanetary-accelerator.name = 星際加速站 #以下為實驗性建築,未來可能移除 experimental, may be removed block.block-forge.name = 方塊鑄造坊 block.block-loader.name = 方塊裝載器 block.block-unloader.name = 方塊卸載器 -block.interplanetary-accelerator.name = 星際加速站 block.switch.name = 按鈕 block.micro-processor.name = 微處理器 @@ -1335,6 +1353,8 @@ hint.placeConveyor.mobile = [accent]輸送帶[]能夠將物品運到其他地方 hint.placeTurret = 建造 \uf861 [accent]砲塔[]抵禦進犯的敵軍。\n\n砲塔需要彈藥,現在則是需要 \uf838銅。\n用輸送帶和鑽頭供應砲塔。 hint.breaking = [accent]按住右鍵[]並拖曳以破壞方塊。 hint.breaking.mobile = 點亮右下角的 \ue817 [accent]鐵鎚[]圖案並點擊畫面可直接拆除方塊。\n\n按住畫面超過一秒後拖曳以連續摧毀多個方塊。 +hint.blockInfo = 點擊各種方塊的[accent][[?][]按鈕以檢視該方塊的資訊 +hint.derelict = [accent]Derelict[] 地圖中有先前基地留下的遺骸。\n\n可以[accent]銷毀[]這些建築獲得資源。 hint.research = 使用 \ue875 [accent]研究[] 按鈕來研究新科技。 hint.research.mobile = 使用 \ue875 [accent]研究[] 按鈕來研究新科技。 hint.unitControl = 按住[accent][[L-ctrl][]並[accent]點擊[]以控制我方的機甲和砲台。 @@ -1386,7 +1406,7 @@ liquid.slag.description = 各種不同類型的熔融金屬混合在一起的液 liquid.oil.description = 用於進階材料製造的液體。可以轉化為煤炭作為燃料或噴灑向敵方單位後點燃作為武器。 liquid.cryofluid.description = 一種安定,無腐蝕性的液體,用水及鈦混合成。具有很高的比熱。廣泛的用作冷卻劑。 -block.resupply-point.description = 補給銅礦彈藥給附近的單位。無法用於需要電池電力的單位。 +block.derelict = [lightgray]殘骸 block.armored-conveyor.description = 以與鈦輸送帶相同的速度移動物品,但擁有更高的防禦。不接受任何從側面輸入的資源。 block.illuminator.description = 小而美的光源。 block.message.description = 儲存一條訊息。用於盟友之間的溝通。 @@ -1530,6 +1550,8 @@ block.memory-bank.description = 為邏輯處理器儲存資料。大容量。 block.logic-display.description = 顯示由處理器輸出的任意圖像。 block.large-logic-display.description = 顯示由處理器輸出的任意圖像。 block.interplanetary-accelerator.description = 巨大的電磁砲塔。將核心加速至脫離速度以在其他星球部署。 +block.repair-turret.description = 持續修復最靠近的受損單位。能使用冷卻劑。 +block.payload-propulsion-tower.description = 遠程原料輸送建築。發射原料至另一個連接的推進塔。 unit.dagger.description = 發射普通子彈攻擊附近敵人。 unit.mace.description = 噴發烈焰攻擊所有附近敵人。 @@ -1564,6 +1586,11 @@ unit.omura.description = 對敵人發射遠程穿透型砲彈。建造曳光戰 unit.alpha.description = 抵禦敵軍對核心:碎片的攻擊。建造建築物。 unit.beta.description = 抵禦敵軍對核心:基地的攻擊。建造建築物。 unit.gamma.description = 抵禦敵軍對核心:核子的攻擊。建造建築物。 +unit.retusa.description = 布置水雷。修復友方單位。 +unit.oxynoe.description = 射出帶回復建築的火焰。具小型方陣炮。 +unit.cyerce.description = 發射追蹤集束飛彈。修復友方單位。 +unit.aegires.description = 電擊所有在能量場內的敵方單位、建築。修復友方單位。 +unit.navanax.description = 發射電磁脈衝砲彈。能對敵方電力建築造成大量傷害,並修復友方建築。具4座雷射自動砲台攻擊附近敵人。 lst.read = [accent]讀取[]記憶體中的一項數值 lst.write = [accent]寫入[]一項數值到記憶體中 @@ -1578,6 +1605,8 @@ lst.sensor = 獲取該建築或單位的數據 lst.set = 設一個變數 lst.operation = 加減乘除和計算機概論 lst.end = 跳到第一個重頭開始執行 +lst.wait = 等待特定秒數 +lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] lst.jump = 條件式跳到其他指令執行 lst.unitbind = 綁定下一同種單位,存入[accent]@unit[]中. lst.unitcontrol = 控制現在綁定的單位 @@ -1597,6 +1626,7 @@ laccess.controller = 單位的控制者。受處理器控制時回傳處理器 laccess.dead = 單位或建築是否已死亡或不存在。 laccess.controlled = 將回傳:\n處理器控制:[accent]@ctrlProcessor[]\n玩家控制:[accent]@ctrlPlayer[]\n在隊形中:[accent]@ctrlFormation[]\n其他:[accent]0[]。 laccess.commanded = [red]Deprecated. Will be removed![]\nUse [accent]controlled[] instead. +laccess.progress = 建造、生產進度。以 0 到 1 表示。以及砲台裝填。 graphicstype.clear = 重製版面為指定顏色 graphicstype.color = 為後續所有圖畫指令設定顏色 @@ -1628,9 +1658,15 @@ lenum.min = 兩數取小 lenum.max = 兩數取大 lenum.angle = 向量與x軸夾角 lenum.len = 向量長度 + lenum.sin = 度數Sin值 lenum.cos = 度數Cos值 lenum.tan = 度數Tan值 + +lenum.asin = Arc sin,輸出度數 +lenum.acos = Arc cos,輸出度數 +lenum.atan = Arc tan,輸出度數 + #not a typo, look up 'range notation' lenum.rand = 產生隨機數值: [0, 值). lenum.log = 自然對數(ln、log_e). diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 1e51544749..f664dc42ac 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1908,7 +1908,7 @@ public class Fx{ rand.setSeed(e.id); Tmp.v1.trns(e.rotation, e.finpow() * 90f * rand.random(0.2f, 1f)); Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 8f * rand.random(0.6f, 1f) * e.fout(0.2f)); - }).layer(Layer.block + 1f), + }).layer(Layer.groundUnit + 1f), unitShieldBreak = new Effect(35, e -> { if(!(e.data instanceof Unitc)) return; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 3178f2d671..a04625ae13 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1504,15 +1504,13 @@ public class UnitTypes implements ContentList{ trailY = -4f; trailScl = 1.9f; - abilities.add(new StatusFieldAbility(StatusEffects.overclock, 60f * 6, 60f * 6f, 60f)); - weapons.add(new Weapon("mount-weapon"){{ - reload = 15f; + reload = 10f; x = 5f; y = 3.5f; rotate = true; rotateSpeed = 5f; - inaccuracy = 10f; + inaccuracy = 8f; ejectEffect = Fx.casing1; shootSound = Sounds.shoot; bullet = Bullets.flakLead; @@ -1528,7 +1526,15 @@ public class UnitTypes implements ContentList{ shake = 1.5f; ejectEffect = Fx.casing2; shootSound = Sounds.bang; - bullet = Bullets.artilleryDense; + bullet = new ArtilleryBulletType(3f, 20, "shell"){{ + hitEffect = Fx.flakExplosion; + knockback = 0.8f; + lifetime = 80f; + width = height = 11f; + collidesTiles = false; + splashDamageRadius = 30f * 0.75f; + splashDamage = 40f; + }}; }}); }}; @@ -1863,6 +1869,8 @@ public class UnitTypes implements ContentList{ trailScl = 1.9f; ammoType = new ItemAmmoType(Items.coal); + abilities.add(new StatusFieldAbility(StatusEffects.overclock, 60f * 6, 60f * 6f, 60f)); + buildSpeed = 2f; weapons.add(new Weapon("plasma-mount-weapon"){{ diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index e83f45add2..5c5d86634e 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -410,14 +410,14 @@ public class ModsDialog extends BaseDialog{ browserTable.clear(); int i = 0; - Seq listings = rlistings; + var listings = rlistings; if(!orderDate){ listings = rlistings.copy(); listings.sortComparing(m1 -> -m1.stars); } for(ModListing mod : listings){ - if((mod.hasJava && Vars.ios) || !searchtxt.isEmpty() && !mod.repo.toLowerCase().contains(searchtxt.toLowerCase()) || (Vars.ios && mod.hasScripts)) continue; + if((mod.hasJava && Vars.ios) || (!Strings.matches(searchtxt, mod.name) && !Strings.matches(searchtxt, mod.repo)) || (Vars.ios && mod.hasScripts)) continue; float s = 64f; diff --git a/servers_v7.json b/servers_v7.json index 8b26864eb3..d563e943b9 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -29,11 +29,11 @@ }, { "name": "XCore", - "address": ["35.202.253.94" , "35.202.253.94:2000"] + "address": ["35.202.253.94", "35.202.253.94:2000"] }, { "name": "Obvilion Network", - "address": "obvilionnetwork.ru:7004" + "address": ["obvilionnetwork.ru:7004", "obvilionnetwork.ru:7005"] }, { "name": "io",