CombatExtended-Continued / CombatExtended

Combat Extended mod for RimWorld
371 stars 250 forks source link

[Bug] Royalty Patch broke the ProblemCausers Quest Generation in Non-English Game #3338

Open tinygrox opened 1 month ago

tinygrox commented 1 month ago

https://github.com/CombatExtended-Continued/CombatExtended/blob/093e38d7737f96f32f58a5a839e8e57267441e11/Royalty/Patches/QuestScriptDefs/Scripts_ProblemCausers.xml

Rimworld version: 1.5.4104 Combat Extended version: 15.6.0.0 Combat Extended source: Steam Language: Chinese Simplified Operating system: Win11 and Win10 (two PC) Mod list: Harmony + All 4 DLCs + CE Only

Description

There is an issue that causes quest generation to fail in non-English versions of RimWorld. Specifically, the quest name generation fails, resulting in quest names appearing as ERR: 海盗与[problemCauserLabel] in Chinese Simplified.

1

Steps to Reproduce:

Expected Result:

The quest name should be correctly generated and displayed according to the localization rules for the selected language.

Actual Result:

The quest name appears as ERR:海盗与[problemCauserLabel]

Logs:

The Logs ```bash Grammar unresolvable. Root 'questName' GRAMMAR RESOLUTION TRACE questName → UNRESOLVABLE CONSTANTS sitePart PsychicSuppressor sitePart1_sitePart MechClusterForceNoConditionCauser siteFaction Mechanoid CUSTOM RULES ■questName → 海盗与[problemCauserLabel] ■questName → 机械集群与[problemCauserLabel] ■sitePart0_description → 一台仅对女性起效的(*Threat)心灵抑制器(/Threat) ■label → 心灵抑制器 ■labelPlural → 心灵抑制器 ■description → 一台心灵抑制器。\n\nRoyalty ■definite → 心灵抑制器 ■indefinite → 心灵抑制器 ■possessive → 它的 ■problemCauserLabel → 心灵抑制器 ■affectedGender → 女性 ■sitePart1_description → 有个机械集群 ■sitePart1_label → 机械集群 ■sitePart1_labelPlural → 机械集群 ■sitePart1_description → 一支机械体战斗集群。\n\nRoyalty ■sitePart1_definite → 机械集群 ■sitePart1_indefinite → 机械集群 ■sitePart1_possessive → 它的 ■allSitePartsDescriptions → 一台仅对女性起效的心灵抑制器 和 有个机械集群。 ■allSitePartsDescriptionsExceptFirst → 有个机械集群. ■site_label → 心灵抑制器 ■siteFaction → Mechanoid (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) Failed to resolve text. Trying again with English. (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) Grammar unresolvable. Root 'questDescription' GRAMMAR RESOLUTION TRACE questDescription → UNRESOLVABLE CONSTANTS PsychicSuppressor_exists True MechClusterForceNoConditionCauser_exists True sitePart PsychicSuppressor sitePart1_sitePart MechClusterForceNoConditionCauser siteFaction Mechanoid CUSTOM RULES ■questDescription → 海盗在[map_definite]附近建立了一个哨站以骚扰你。[allSitePartsDescriptions]\n\n哨站将一直保留,直到你派一个远行队在那里攻击和摧毁它。 ■questDescription → 一个机械集群已经降落在[map_definite]不远处。[allSitePartsDescriptions]\n\n机械集群将保留,直到你派遣一个远行队在那里攻击和摧毁它。 ■sitePart0_description → 一台仅对女性起效的(*Threat)心灵抑制器(/Threat) ■label → 心灵抑制器 ■labelPlural → 心灵抑制器 ■description → 一台心灵抑制器。\n\nRoyalty ■definite → 心灵抑制器 ■indefinite → 心灵抑制器 ■possessive → 它的 ■problemCauserLabel → 心灵抑制器 ■affectedGender → 女性 ■sitePart1_description → 有个机械集群 ■sitePart1_label → 机械集群 ■sitePart1_labelPlural → 机械集群 ■sitePart1_description → 一支机械体战斗集群。\n\nRoyalty ■sitePart1_definite → 机械集群 ■sitePart1_indefinite → 机械集群 ■sitePart1_possessive → 它的 ■allSitePartsDescriptions → 一台仅对女性起效的心灵抑制器 和 有个机械集群。 ■allSitePartsDescriptionsExceptFirst → 有个机械集群. ■map_label → 殖民地 ■map_definite → 殖民地 ■map_indefinite → 殖民地 ■siteFaction → Mechanoid ```

Additional Information:

N7Huntsman commented 1 month ago

From my testing, our patch does appear to cause the issue--though I'm not entirely certain how. Unfortunately, we can't currently remove this patch.

This patch fixes a typo in the base game. In Scripts_ProblemCausers.xml, the Mechanoid faction is incorrectly referred to as Mechanoids, which causes issues with our artillery system because there isn't actually a faction called Mechanoids.

I've submitted a bug report to the developers, which has been marked as "Resolved," so hopefully the typo will be corrected in a future update and we can remove the patch. For now, I'm going to leave this PR open as a reminder to check on it in the future.