diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index 4c24525455..4543c9cd9c 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -408,7 +408,7 @@ AllowBeaconHotKeyInSinglePlayer=false ; boolean ### Allow deploy controlled MCV -In vanilla, you cannot deploy a controlled vehicle to `ConstructionYard=true` building. Now you can customize it. +- In vanilla, you cannot deploy a controlled vehicle to `ConstructionYard=true` building. Now you can customize it. In `rulesmd.ini`: ```ini @@ -458,12 +458,12 @@ ChronoSparkleBuildingDisplayPositions=occupantslots ; List of chrono sparkle po ### Crate improvements -There are some improvements on goodie crate logic: -- The statistic distribution of the randomly generated crates is now more uniform within the visible map region by using an optimized sampling procedure. -- You can now limit the crates' spawn region to land only by setting `[CrateRules] -> CreateOnlyOnLand` to true. -- The limit of vehicles a player can own before unit crates start giving money instead can now be customized by setting `UnitCrateVehicleCap`. Negative numbers disable the cap entirely. -- `FreeMCV` setting is now actually respected and can be used to disable the forced unit selected from `[General] -> BaseUnit` that is given if player picks a crate and has enough credits but no existing buildings or `BaseUnit` vehicles. - - The previously hardcoded credits threshold that must be passed can also now be customized via `FreeMCV.CreditsThreshold`. +- There are some improvements on goodie crate logic: + - The statistic distribution of the randomly generated crates is now more uniform within the visible map region by using an optimized sampling procedure. + - You can now limit the crates' spawn region to land only by setting `[CrateRules] -> CreateOnlyOnLand` to true. + - The limit of vehicles a player can own before unit crates start giving money instead can now be customized by setting `UnitCrateVehicleCap`. Negative numbers disable the cap entirely. + - `FreeMCV` setting is now actually respected and can be used to disable the forced unit selected from `[General] -> BaseUnit` that is given if player picks a crate and has enough credits but no existing buildings or `BaseUnit` vehicles. + - The previously hardcoded credits threshold that must be passed can also now be customized via `FreeMCV.CreditsThreshold`. In `rulesmd.ini`: ```ini @@ -592,27 +592,9 @@ IronCurtain.ExtraTintIntensity=0.0 ; floating point value ForceShield.ExtraTintIntensity=0.0 ; floating point value ``` -### Jumpjet climbing logic enhancement - -- You can now let the jumpjets increase their height earlier by set `JumpjetClimbPredictHeight` to true. The jumpjet will raise its height 5 cells in advance, instead of only raising its height when encountering cliffs or buildings in front of it. -- You can also let them simply skip the stop check by set `JumpjetClimbWithoutCutOut` to true. The jumpjet will not stop moving horizontally when encountering cliffs or buildings in front of it, but will continue to move forward while raising its altitude. - - When `JumpjetClimbPredictHeight` is enabled, if the height raised five grids in advance is still not enough to cross cliffs or buildings, it will stop and move horizontally as before, unless `JumpjetClimbWithoutCutOut` is also enabled. -- You can set `JumpjetClimbIgnoreBuilding` to true to make the jumpjet treat the building height as 0 when climbing. - -In `rulesmd.ini`: -```ini -[General] -JumpjetClimbPredictHeight=false ; boolean -JumpjetClimbWithoutCutOut=false ; boolean -JumpjetClimbIgnoreBuilding=false ; boolean - -[SOMETECHNO] ; TechnoType -JumpjetClimbIgnoreBuilding= ; boolean, default to [General] -> JumpjetClimbIgnoreBuilding -``` - ### Move IvanBomb Position -In vanilla, IvanBomb images display and the bombs detonate at the top-leftmost cell of the building foundation instead of at the center of buildings. This can now be changed. +- In vanilla, IvanBomb images display and the bombs detonate at the top-leftmost cell of the building foundation instead of at the center of buildings. This can now be changed. In `rulesmd.ini`: ```ini @@ -626,8 +608,8 @@ Due to technical constraints this cannot be customized per WeaponType. ### RadialIndicator visibility -In vanilla game, a structure's radial indicator can be drawn only when it belongs to the player. Now it can also be visible to observer. -On top of that, you can specify its visibility from other houses. +- In vanilla game, a structure's radial indicator can be drawn only when it belongs to the player. Now it can also be visible to observer. +- On top of that, you can specify its visibility from other houses. In `rulesmd.ini`: ```ini @@ -2241,6 +2223,24 @@ ForceShield.Effect= ; IronCurtain effect Enumeration (kill | invu ForceShield.KillWarhead= ; WarheadType, default to [CombatDamage] -> ForceShield.KillOrganicsWarhead ``` +### Jumpjet climbing logic enhancement + +- You can now let the jumpjets increase their height earlier by set `JumpjetClimbPredictHeight` to true. The jumpjet will raise its height 5 cells in advance, instead of only raising its height when encountering cliffs or buildings in front of it. +- You can also let them simply skip the stop check by set `JumpjetClimbWithoutCutOut` to true. The jumpjet will not stop moving horizontally when encountering cliffs or buildings in front of it, but will continue to move forward while raising its altitude. + - When `JumpjetClimbPredictHeight` is enabled, if the height raised five grids in advance is still not enough to cross cliffs or buildings, it will stop and move horizontally as before, unless `JumpjetClimbWithoutCutOut` is also enabled. +- You can set `JumpjetClimbIgnoreBuilding` to true to make the jumpjet treat the building height as 0 when climbing. + +In `rulesmd.ini`: +```ini +[General] +JumpjetClimbPredictHeight=false ; boolean +JumpjetClimbWithoutCutOut=false ; boolean +JumpjetClimbIgnoreBuilding=false ; boolean + +[SOMETECHNO] ; TechnoType +JumpjetClimbIgnoreBuilding= ; boolean, default to [General] -> JumpjetClimbIgnoreBuilding +``` + ### Jumpjet rotating on crashing toggle - Jumpjet that is going to crash starts to change its facing uncontrollably, this can now be turned off. @@ -2635,11 +2635,11 @@ HarvesterLoadRate= ; integer, default to [General] -> Harvest ### Customize type selection for IFV -In vanilla game, when using type selection command on IFVs, all of them will be selected regardless of their current modes, which is allowed to customize now. -- `WeaponGroupAsN` determines which group the IFV is in when enabling `WeaponN`, where N stands for 1-based weapon mode index. IFVs in the same group will be selected together during type a selection, while not included those in different groups. -- `TypeSelectUseIFVMode` determines whether all IFV modes will be considered as its own group by default during a type selection. - - If it's set to true, `WeaponGroupAsN` will be default to N for each `WeaponN`, which makes each of them become a standalone type during a type selection. - - If it's set to false, `WeaponGroupAsN` will be default to 0 for all weapons, which makes type selection on IFVs work the same as before. +- In vanilla game, when using type selection command on IFVs, all of them will be selected regardless of their current modes, which is allowed to customize now. + - `WeaponGroupAsN` determines which group the IFV is in when enabling `WeaponN`, where N stands for 1-based weapon mode index. IFVs in the same group will be selected together during type a selection, while not included those in different groups. + - `TypeSelectUseIFVMode` determines whether all IFV modes will be considered as its own group by default during a type selection. + - If it's set to true, `WeaponGroupAsN` will be default to N for each `WeaponN`, which makes each of them become a standalone type during a type selection. + - If it's set to false, `WeaponGroupAsN` will be default to 0 for all weapons, which makes type selection on IFVs work the same as before. In `rulesmd.ini`: ```ini diff --git a/docs/Miscellanous.md b/docs/Miscellanous.md index adac6b47ba..4d289083d6 100644 --- a/docs/Miscellanous.md +++ b/docs/Miscellanous.md @@ -269,17 +269,17 @@ This feature may noticeably increase game loading time, depending on the size of ### Turning off/on in-game exception handling -You can turn on/off the exception handler of the game's main loop using the following command line arg: `-ExceptionHandler=boolean` where `boolean` is `(true|false|yes|no|1|0)`. +- You can turn on/off the exception handler of the game's main loop using the following command line arg: `-ExceptionHandler=boolean` where `boolean` is `(true|false|yes|no|1|0)`. -When the exception handler is enabled, Phobos replaces the game's own crash handling (and Ares', if present) with its own exception handler, ported from [Vinifera](https://github.com/Vinifera-Developers/Vinifera). When the game crashes, it will: -- create a per-crash folder `debug\snapshot-\` and write into it a detailed crash report (`except.txt`) with registers, call stacks, a stack dump and the list of loaded modules, a minidump (`crashdump.dmp`) and a copy of the debug log (if one is found). This is the same folder layout Ares uses, so the CnCNet client will also fold `debug.log` and `syringe.log` into it; -- show a dialog displaying the crash report, with buttons to quit, break into an attached debugger, or additionally save a full memory dump (`fulldump.dmp`, into the same folder) - large, but the most useful to developers. +- When the exception handler is enabled, Phobos replaces the game's own crash handling (and Ares', if present) with its own exception handler, ported from [Vinifera](https://github.com/Vinifera-Developers/Vinifera). When the game crashes, it will: + - create a per-crash folder `debug\snapshot-\` and write into it a detailed crash report (`except.txt`) with registers, call stacks, a stack dump and the list of loaded modules, a minidump (`crashdump.dmp`) and a copy of the debug log (if one is found). This is the same folder layout Ares uses, so the CnCNet client will also fold `debug.log` and `syringe.log` into it; + - show a dialog displaying the crash report, with buttons to quit, break into an attached debugger, or additionally save a full memory dump (`fulldump.dmp`, into the same folder) - large, but the most useful to developers. -Crash folders older than 5 days are cleaned up automatically. The `-FullCrashDump` command line arg makes the automatically written minidump a full memory dump (useful for unattended setups). +- Crash folders older than 5 days are cleaned up automatically. The `-FullCrashDump` command line arg makes the automatically written minidump a full memory dump (useful for unattended setups). -Crash reports can be enriched with extra information: -- If a `gamemd.pdb` file is present in the game directory, it is used to resolve game addresses to symbol names in the call stacks. `Phobos.pdb` (shipped with devbuilds and nightlies) is picked up automatically for Phobos's own addresses. -- If a `gamemd.edb` exception database file is present in the game directory, its description for the faulting address (if any) is included in the report under "Additional information". The format is shared with Vinifera: one entry per line, `;` starts a comment. +- Crash reports can be enriched with extra information: + - If a `gamemd.pdb` file is present in the game directory, it is used to resolve game addresses to symbol names in the call stacks. `Phobos.pdb` (shipped with devbuilds and nightlies) is picked up automatically for Phobos's own addresses. + - If a `gamemd.edb` exception database file is present in the game directory, its description for the faulting address (if any) is included in the report under "Additional information". The format is shared with Vinifera: one entry per line, `;` starts a comment. ```text ; address,can-continue,ignore,description (the two flags are parsed but not used) @@ -297,7 +297,7 @@ The CnCNet 5 spawner uses the main loop exception handler for fixes. If you get ### Visual styles -gamemd.exe ships without an application manifest, so its windows bind the old Common Controls v5 and render in the Windows 9x style. Phobos now activates its embedded Common Controls v6 manifest for the lifetime of the process, so windows created by the game and Phobos - dialogs, message boxes and the crash dialog - render with modern visual styles. +- gamemd.exe ships without an application manifest, so its windows bind the old Common Controls v5 and render in the Windows 9x style. Phobos now activates its embedded Common Controls v6 manifest for the lifetime of the process, so windows created by the game and Phobos - dialogs, message boxes and the crash dialog - render with modern visual styles. ## Player colors diff --git a/docs/New-or-Enhanced-Logics.md b/docs/New-or-Enhanced-Logics.md index 161c1e238a..4e02e08ed7 100644 --- a/docs/New-or-Enhanced-Logics.md +++ b/docs/New-or-Enhanced-Logics.md @@ -1749,6 +1749,7 @@ Due to technical issues, the behaviors of `OpenTopped/OpenTransport.FireWhileMov ``` ### Customizable spawns queue + - It is now possible to spawn multiple types of spawnees from a spawner with `Spawns.Queue`. The order of spawnees in this queue is the order of their respawn. - `Spawns` still needs to be set to enable the spawner logic and act as a default spawnee. - `SpawnsNumber` still needs to be set to determine the amount of spawnee slots. @@ -2037,6 +2038,7 @@ If `NoQueueUpToEnter.BoardDistance` is set to a too small value, the passenger u ``` ### Initial spawns number + - It is now possible to set the initial amount of spawnees for a spawner, instead of always being filled. Won't work if it's larger than `SpawnsNumber`. In `rulesmd.ini`: @@ -2870,6 +2872,7 @@ This feature requires Ares 3.0 or higher to function! When Ares 3.0+ is not dete ``` ### Custom Mind Control Animation + - Allows Warheads to play custom `MindControl.Anim`. In `rulesmd.ini`: diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 31fed8798a..1feb98e774 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -651,7 +651,7 @@ DisableEmptySpawnPositions=false ; boolean ### Skip saving game on starting a new campaign -When starting a new campaign, the game automatically saves the game. Now you can decide whether you want that to happen or not. +- When starting a new campaign, the game automatically saves the game. Now you can decide whether you want that to happen or not. In `RA2MD.INI`: ```ini @@ -661,7 +661,6 @@ SaveGameOnScenarioStart=true ; boolean ## Sidebar / Battle UI - ### Allow replacing vanilla repairing with togglable auto repairing - Now you can replace the vanilla repair method with a togglable auto-repair. diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 1244b7256d..6f762c6326 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -665,7 +665,6 @@ HideShakeEffects=false ; boolean - [Customize whether warhead can prevent crew escape from techno](New-or-Enhanced-Logics.md#customize-whether-warhead-can-prevent-crew-escape-from-techno) (by NetsuNegi) - [Disable AlphaImage during Buildup](Fixed-or-Improved-Logics.md#disable-alphaimage-during-buildup) (by Noble_Fish) - [Reload speed adjustment on promotion](New-or-Enhanced-Logics.md#reload-speed-adjustment-on-promotion) (by Nuke) -- Allowed customizing the default value of `[Warhead] -> PreventScatter` via `[CombatDamage] -> Warhead.PreventScatter` (by Noble_Fish) #### Vanilla fixes: - Fixed sidebar not updating queued unit numbers when adding or removing units when the production is on hold (by CrimRecya) @@ -829,6 +828,7 @@ HideShakeEffects=false ; boolean - Fixed the issue of Ares' EMP not suspending the production of AI factories (by CrimRecya) - Removed the restriction that prohibits InfantryTypes from using the InitialPayload logic (by Noble_Fish) - `ProjectileRange` now has weapon range modifiers applied to it if greater than 0 and unless `ProjectileRange.ApplyModifiers` is set to false on the WeaponType (by Starkku) +- Allowed customizing the default value of `[Warhead] -> PreventScatter` via `[CombatDamage] -> Warhead.PreventScatter` (by Noble_Fish) ``` ### 0.4.0.3 diff --git a/docs/locale/zh_CN/LC_MESSAGES/CREDITS.po b/docs/locale/zh_CN/LC_MESSAGES/CREDITS.po index cfb4aeaf71..a7abb4634c 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/CREDITS.po +++ b/docs/locale/zh_CN/LC_MESSAGES/CREDITS.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: Phobos \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-09 20:48+0800\n" +"POT-Creation-Date: 2026-08-14 18:44+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.18.0\n" msgid "Credits" msgstr "鸣谢" @@ -2518,6 +2518,15 @@ msgid "" "`DiscardOn`" msgstr "为 `DiscardOn` 添加 `ammo`、`health`、`mission`、`landtype` 和 `sequence` 条件" +msgid "Disable AlphaImage during Buildup" +msgstr "" +"建筑拔起期间关闭 AlphaImage" + +msgid "" +"Allow customizing the default value of `[Warhead] -> PreventScatter` via " +"`[CombatDamage] -> Warhead.PreventScatter`" +msgstr "" + msgid "**Ollerus**:" msgstr "**Ollerus**:" @@ -2968,12 +2977,10 @@ msgstr "自定义飞机是否是cargo plane" msgid "" "Allow the unit to stop immediately if the target enters the range during " "ApproachTarget" -msgstr "" -"允许单位在接近目标期间若目标进入射程则立即停止" +msgstr "允许单位在接近目标期间若目标进入射程则立即停止" msgid "Allow the unit to keep pursuing the target during ApproachTarget" -msgstr "" -"允许单位在接近目标期间持续追踪目标" +msgstr "允许单位在接近目标期间持续追踪目标" msgid "**solar-III (凤九歌)**" msgstr "**solar-III(凤九歌)**" @@ -3185,3 +3192,4 @@ msgstr "**obsidianus** - 自动根据血量变形" msgid "**Nuke** - Reload speed adjustment on promotion" msgstr "**Nuke** - 升级时调整装填速率" + diff --git a/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po b/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po index 1acc98e0ae..c05e9d0c84 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po +++ b/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: Phobos \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-09 20:54+0800\n" +"POT-Creation-Date: 2026-08-14 18:44+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.18.0\n" msgid "Fixed / Improved Logics" msgstr "修复或改进的逻辑" @@ -633,8 +633,12 @@ msgid "" "buildings cease to update when being captured by enemies." msgstr "修复了 `Powered`/`PoweredSpecial` 的建筑在被敌人占领时其受电力影响的动画不再更新的问题。" -msgid "Fixed a glitch related to incorrect target setting for missiles." -msgstr "修复了有关于导弹目标设置不正确的问题。" +msgid "" +"Fixed a glitch related to incorrect target setting for spawned missiles. " +"Notice that this will affect the center of missile explosion, set " +"`[CombatDamage] -> MissileSpawnAttackCell` to false to disable the fix." +msgstr "" +"修复了导弹子机目标设置不正确的问题。注意这会影响导弹爆炸中心,可通过将 `[CombatDamage] -> MissileSpawnAttackCell` 设为 false 以禁用修复。" msgid "" "Fixed [EIP " @@ -1496,9 +1500,11 @@ msgid "" msgstr "修复了 AI 常规索敌也会瞄准可驻军建筑的问题。" msgid "" -"Fixed the issue that the move mission of the jumpjet does not end " -"correctly." -msgstr "修复了 Jumpjet 单位无法正确结束移动任务的问题。" +"Fixed the issue that the move mission doesn't end when the techno is " +"moving, which is mostly problematic for jumpjet and hover techno. Set " +"`[General] -> ReadyToNextMission.MovingCheck` to true to disable the fix." +msgstr "" +"修复了移动任务无法在单位正在移动时结束的问题,它在 Jumpjet 和 Hover 单位上尤其突出。可通过将 `[General] -> ReadyToNextMission.MovingCheck` 设为 true 以禁用修复。" msgid "" "AI team garrison scripts now re-evaluate destination immediately instead " @@ -1680,8 +1686,9 @@ msgid "" msgstr "修复了设置一个生产建筑为 `主要` 时可能导致其进入卸载状态的问题。" msgid "" -"Fixed the issue of significant lagging caused by frequent lighting updates " -"due to the accumulation of a large amount of radsite in a short time." +"Fixed the issue of significant lagging caused by frequent lighting " +"updates due to the accumulation of a large amount of radsite in a short " +"time." msgstr "修复了短时间内叠加大量辐射场会因为频繁的光照更新导致显著卡顿的问题。" msgid "Fixes / interactions with other extensions" @@ -1947,6 +1954,12 @@ msgstr "" "`ProjectileRange` 大于 0 时现在会应用武器射程修正,除非在武器上设置 " "`ProjectileRange.ApplyModifiers` 为 false。" +msgid "" +"Allowed customizing the default value of `[Warhead] -> PreventScatter` " +"via `[CombatDamage] -> Warhead.PreventScatter`." +msgstr "" +"允许了通过 `[CombatDamage] -> Warhead.PreventScatter` 自定义 `[Warhead] -> PreventScatter` 的默认值。" + msgid "Newly added global settings" msgstr "新增的全局设定" @@ -2177,8 +2190,9 @@ msgid "" msgstr "以下语句为原版/Ares 中没有全局默认值的语句补充了默认值定义。" msgid "" -"Unless otherwise specified, after removing the last dot and everything before it, the definition is the same as the name of the" -" micro-level definition flag." +"Unless otherwise specified, after removing the last dot and everything " +"before it, the definition is the same as the name of the micro-level " +"definition flag." msgstr "除非特别说明,去掉最后一个 `.` 及之前的内容后,默认与微观定义语句名称相同。" msgid "Customizing effect of level lighting on air units" @@ -2239,41 +2253,6 @@ msgid "" "Curtained and Force Shielded units." msgstr "现在可以指定应用于处于铁幕和力场护盾中的单位的额外染色强度。" -msgid "Jumpjet climbing logic enhancement" -msgstr "Jumpjet 爬升逻辑增强" - -msgid "" -"You can now let the jumpjets increase their height earlier by set " -"`JumpjetClimbPredictHeight` to true. The jumpjet will raise its height 5 " -"cells in advance, instead of only raising its height when encountering " -"cliffs or buildings in front of it." -msgstr "" -"现在你可以通过将 `JumpjetClimbPredictHeight` 设为 true 来使 Jumpjet " -"单位提前增加飞行高度。Jumpjet 将会提前 5 个单元格开始抬升而非仅在悬崖和建筑马上贴脸了才抬升高度。" - -msgid "" -"You can also let them simply skip the stop check by set " -"`JumpjetClimbWithoutCutOut` to true. The jumpjet will not stop moving " -"horizontally when encountering cliffs or buildings in front of it, but " -"will continue to move forward while raising its altitude." -msgstr "" -"你还可以通过将 `JumpjetClimbWithoutCutOut` 设为 true 来跳过停止移动检查。Jumpjet " -"在已经抵近悬崖或建筑时将不会停止水平方向上的移动,而是在抬升高度的同时继续前行。" - -msgid "" -"When `JumpjetClimbPredictHeight` is enabled, if the height raised five " -"grids in advance is still not enough to cross cliffs or buildings, it " -"will stop and move horizontally as before, unless " -"`JumpjetClimbWithoutCutOut` is also enabled." -msgstr "" -"当启用 `JumpjetClimbPredictHeight` 时,若提前 5 个单元格后的高度仍然不足以越过悬崖或建筑,Jumpjet " -"将会像原先那样停止水平方向上的移动,除非还启用了 `JumpjetClimbWithoutCutOut`。" - -msgid "" -"You can set `JumpjetClimbIgnoreBuilding` to true to make the jumpjet " -"treat the building height as 0 when climbing." -msgstr "你可以将 `JumpjetClimbIgnoreBuilding` 设为 true 以使 Jumpjet 爬升时将建筑视为 0 高度地形处理。" - msgid "Move IvanBomb Position" msgstr "移动伊文炸弹位置" @@ -2291,9 +2270,12 @@ msgstr "范围指示环可见性" msgid "" "In vanilla game, a structure's radial indicator can be drawn only when it" -" belongs to the player. Now it can also be visible to observer. On top of" -" that, you can specify its visibility from other houses." -msgstr "在原本的游戏中,建筑的范围指示环只有在玩家拥有时才绘制。现在它也对观察者可见。此外,你还可以指定其他所属方的可见性。" +" belongs to the player. Now it can also be visible to observer." +msgstr "在原本的游戏中,建筑的范围指示环只有在玩家拥有时才绘制。现在它也对观察者可见。" + +msgid "" +"On top of that, you can specify its visibility from other houses." +msgstr "此外,你还可以指定其他所属方的可见性。" msgid "Re-enable obsolete `[JumpjetControls]`" msgstr "重启废弃的 `[JumpjetControls]`" @@ -3229,7 +3211,7 @@ msgid "" msgstr "在原版中矿场会根据其矿石存储量的不同播放不同的 `ActiveAnim`。现在你可以让它像其他建筑一样同时播放多个 `ActiveAnim`。" msgid "Apply ZShapePointMove during buildups" -msgstr "在拔起期间应用 ZShapePointMove" +msgstr "建筑拔起期间应用 ZShapePointMove" msgid "" "By default buildings do not apply `ZShapePointMove` (which offsets the 'z" @@ -3512,6 +3494,14 @@ msgstr "" "`DeployFireDelay` 指定部署武器尝试开火的帧间隔。如果由于 `ROF`、`CanTarget` " "或其他原因导致武器不可用,部署武器同样不会开火。" +msgid "Disable AlphaImage during Buildup" +msgstr "" +"建筑拔起期间关闭 AlphaImage" + +msgid "Now you can disable AlphaImage before the building is completed." +msgstr "" +"现在你可以在建筑建造完成前关闭 AlphaImage。" + msgid "Disable `DamageSound`" msgstr "禁用 `DamageSound`" @@ -4829,6 +4819,41 @@ msgstr "`ignore`:铁幕不会对有机体造成任何影响。" msgid "Identical controls are available for Force Shield as well." msgstr "力场护盾也有相同的控制选项。" +msgid "Jumpjet climbing logic enhancement" +msgstr "Jumpjet 爬升逻辑增强" + +msgid "" +"You can now let the jumpjets increase their height earlier by set " +"`JumpjetClimbPredictHeight` to true. The jumpjet will raise its height 5 " +"cells in advance, instead of only raising its height when encountering " +"cliffs or buildings in front of it." +msgstr "" +"现在你可以通过将 `JumpjetClimbPredictHeight` 设为 true 来使 Jumpjet " +"单位提前增加飞行高度。Jumpjet 将会提前 5 个单元格开始抬升而非仅在悬崖和建筑马上贴脸了才抬升高度。" + +msgid "" +"You can also let them simply skip the stop check by set " +"`JumpjetClimbWithoutCutOut` to true. The jumpjet will not stop moving " +"horizontally when encountering cliffs or buildings in front of it, but " +"will continue to move forward while raising its altitude." +msgstr "" +"你还可以通过将 `JumpjetClimbWithoutCutOut` 设为 true 来跳过停止移动检查。Jumpjet " +"在已经抵近悬崖或建筑时将不会停止水平方向上的移动,而是在抬升高度的同时继续前行。" + +msgid "" +"When `JumpjetClimbPredictHeight` is enabled, if the height raised five " +"grids in advance is still not enough to cross cliffs or buildings, it " +"will stop and move horizontally as before, unless " +"`JumpjetClimbWithoutCutOut` is also enabled." +msgstr "" +"当启用 `JumpjetClimbPredictHeight` 时,若提前 5 个单元格后的高度仍然不足以越过悬崖或建筑,Jumpjet " +"将会像原先那样停止水平方向上的移动,除非还启用了 `JumpjetClimbWithoutCutOut`。" + +msgid "" +"You can set `JumpjetClimbIgnoreBuilding` to true to make the jumpjet " +"treat the building height as 0 when climbing." +msgstr "你可以将 `JumpjetClimbIgnoreBuilding` 设为 true 以使 Jumpjet 爬升时将建筑视为 0 高度地形处理。" + msgid "Jumpjet rotating on crashing toggle" msgstr "Jumpjet 旋转着坠毁的开关" @@ -4841,27 +4866,23 @@ msgid "This may subject to further changes." msgstr "这可能会在未来进一步更改。" msgid "Keep pursuing the target during ApproachTarget" -msgstr "" -"在接近目标期间持续追踪目标" +msgstr "在接近目标期间持续追踪目标" msgid "" "Now you can make a unit approach its target with the target itself as the" " destination, just like ZEP, instead of a point on the arc around the " "target whose radius is the unit's own weapon range." -msgstr "" -"现在你可以让一个单位以目标自身而不再是以目标为中心半径为自身武器射程的弧线上一点为目的地来接近目标,就像 `[ZEP]` 那样。" +msgstr "现在你可以让一个单位以目标自身而不再是以目标为中心半径为自身武器射程的弧线上一点为目的地来接近目标,就像 `[ZEP]` 那样。" msgid "" "If `ApproachTarget.StopWhenInRange` is set to `true`, the unit will stop " "as soon as the target enters its range and will not chase it further." -msgstr "" -"如果 `ApproachTarget.StopWhenInRange` 设为 `true`,单位会在目标进入其射程后立即停止而不会继续追击。" +msgstr "如果 `ApproachTarget.StopWhenInRange` 设为 `true`,单位会在目标进入其射程后立即停止而不会继续追击。" msgid "" "`AttackMove.PursuitTarget` is read as a compatibility alias for " "`ApproachTarget.PursuitTarget`." -msgstr "" -"`AttackMove.PursuitTarget` 被读取为一个 `ApproachTarget.PursuitTarget` 的兼容别名。" +msgstr "`AttackMove.PursuitTarget` 被读取为一个 `ApproachTarget.PursuitTarget` 的兼容别名。" msgid "Kill spawns on low power" msgstr "断电时击杀子机" @@ -5005,22 +5026,21 @@ msgid "" msgstr "在原版游戏中 `RadarInvisible` 仅对当前非友军的玩家有效,现在你可以更改这一行为。" msgid "Stop immediately if the target enters the range during ApproachTarget" -msgstr "" -"接近目标期间若目标进入射程则立即停止" +msgstr "接近目标期间若目标进入射程则立即停止" msgid "" "In vanilla, the ApproachTarget will simply exit and do nothing if the " "target is in range. This will cause your units to approach the target " "unnecessarily. Now you can change this behavior by the following flag." -msgstr "" -"在原版中,目标处于射程内时接近目标的处理会直接退出且什么也不做。这会导致你的单位不必要地接近目标。现在你可以使用下面的标签更改这一行为。" +msgstr "在原版中,目标处于射程内时接近目标的处理会直接退出且什么也不做。这会导致你的单位不必要地接近目标。现在你可以使用下面的标签更改这一行为。" msgid "" "`AttackMove.StopWhenTargetAcquired` is read as a compatibility alias for " "`ApproachTarget.StopWhenInRange` (in both `[General]` and techno type " "sections)." msgstr "" -"`AttackMove.StopWhenTargetAcquired` 被读取为一个 `ApproachTarget.StopWhenInRange` 的兼容别名(`[General]` 和单位微观部分都是如此)。" +"`AttackMove.StopWhenTargetAcquired` 被读取为一个 " +"`ApproachTarget.StopWhenInRange` 的兼容别名(`[General]` 和单位微观部分都是如此)。" msgid "Subterranean unit travel height and speed" msgstr "潜地单位移动高度和速度" diff --git a/docs/locale/zh_CN/LC_MESSAGES/Whats-New.po b/docs/locale/zh_CN/LC_MESSAGES/Whats-New.po index a520782bf1..f056ed90c4 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/Whats-New.po +++ b/docs/locale/zh_CN/LC_MESSAGES/Whats-New.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: Phobos \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-09 20:48+0800\n" +"POT-Creation-Date: 2026-08-14 18:44+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.18.0\n" msgid "What's New" msgstr "版本更新说明" @@ -2442,14 +2442,16 @@ msgid "" " ApproachTarget](Fixed-or-Improved-Logics.md#stop-immediately-if-the-" "target-enters-the-range-during-approachtarget) (by TaranDahl)" msgstr "" -"[允许单位在接近目标期间若目标进入射程则立即停止](Fixed-or-Improved-Logics.md#stop-immediately-if-the-target-enters-the-range-during-approachtarget)(by TaranDahl)" +"[允许单位在接近目标期间若目标进入射程则立即停止](Fixed-or-Improved-Logics.md#stop-immediately-" +"if-the-target-enters-the-range-during-approachtarget)(by TaranDahl)" msgid "" "[Allow the unit to keep pursuing the target during ApproachTarget](Fixed-" "or-Improved-Logics.md#keep-pursuing-the-target-during-approachtarget) (by" " TaranDahl)" msgstr "" -"[允许单位在接近目标期间持续追踪目标](Fixed-or-Improved-Logics.md#keep-pursuing-the-target-during-approachtarget) (by TaranDahl)" +"[允许单位在接近目标期间持续追踪目标](Fixed-or-Improved-Logics.md#keep-pursuing-the-target-" +"during-approachtarget) (by TaranDahl)" msgid "" "[Customize whether warhead can prevent crew escape from techno](New-or-" @@ -2460,9 +2462,17 @@ msgstr "" "prevent-crew-escape-from-techno)(by NetsuNegi)" msgid "" -"[Reload speed adjustment on promotion](New-or-Enhanced-Logics.md#reload-speed-adjustment-on-promotion) (by Nuke)" +"[Disable AlphaImage during Buildup](Fixed-or-Improved-Logics.md#disable-" +"alphaimage-during-buildup) (by Noble_Fish)" msgstr "" -"[升级时调整装填速率](New-or-Enhanced-Logics.md#reload-speed-adjustment-on-promotion)(by Nuke)" +"[建筑拔起期间关闭 AlphaImage](Fixed-or-Improved-Logics.md#disable-alphaimage-during-buildup)(by Noble_Fish)" + +msgid "" +"[Reload speed adjustment on promotion](New-or-Enhanced-Logics.md#reload-" +"speed-adjustment-on-promotion) (by Nuke)" +msgstr "" +"[升级时调整装填速率](New-or-Enhanced-Logics.md#reload-speed-adjustment-on-" +"promotion)(by Nuke)" msgid "Vanilla fixes:" msgstr "原版问题修复:" @@ -2945,8 +2955,9 @@ msgid "" msgstr "修复了设置一个生产建筑为 `主要` 时可能导致其进入卸载状态的问题(by FlyStar)" msgid "" -"Fixed the issue of significant lagging caused by frequent lighting updates " -"due to the accumulation of a large amount of radsite in a short time (by NetsuNegi)" +"Fixed the issue of significant lagging caused by frequent lighting " +"updates due to the accumulation of a large amount of radsite in a short " +"time (by NetsuNegi)" msgstr "修复了短时间内叠加大量辐射场会因为频繁的光照更新导致显著卡顿的问题(by NetsuNegi)" msgid "Phobos fixes:" @@ -3331,6 +3342,12 @@ msgstr "" "`ProjectileRange` 大于 0 时现在会应用武器射程修正,除非在武器上设置 " "`ProjectileRange.ApplyModifiers` 为 false(by Starkku)" +msgid "" +"Allowed customizing the default value of `[Warhead] -> PreventScatter` " +"via `[CombatDamage] -> Warhead.PreventScatter` (by Noble_Fish)" +msgstr "" +"允许了通过 `[CombatDamage] -> Warhead.PreventScatter` 自定义 `[Warhead] -> PreventScatter` 的默认值(by Noble_Fish)" + msgid "0.4.0.3" msgstr "0.4.0.3"