chore(i18n): Remove Ukrainian locale duplication (uk_UA)#8022
Merged
scarf005 merged 1 commit intocataclysmbn:mainfrom Feb 2, 2026
Merged
chore(i18n): Remove Ukrainian locale duplication (uk_UA)#8022scarf005 merged 1 commit intocataclysmbn:mainfrom
scarf005 merged 1 commit intocataclysmbn:mainfrom
Conversation
uk_UA)
Contributor
Author
|
Check printf format string in translations is unrelated |
scarf005
reviewed
Feb 2, 2026
Member
scarf005
left a comment
There was a problem hiding this comment.
may wanna port some strings from uk_UA.po before deletion
diff -u lang/po/uk.po lang/po/uk_UA.po
--- lang/po/uk.po 2026-02-02 22:16:32.022349797 +0900
+++ lang/po/uk_UA.po 2026-02-02 22:16:32.026349740 +0900
@@ -8,16 +8,16 @@
"Project-Id-Version: cataclysm-bn\n"
"POT-Creation-Date: 2026-01-15 19:12+0000\n"
"Last-Translator: Coolthulhu <Coolthulhu@gmail.com>, 2024\n"
-"Language-Team: Ukrainian (https://app.transifex.com/bn-team/teams/113585/uk/)\n"
+"Language-Team: Ukrainian (Ukraine) (https://app.transifex.com/bn-team/teams/113585/uk_UA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: uk\n"
+"Language: uk_UA\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#: data/help/texts.json
msgid "<a|A>: Introduction"
-msgstr "<b|B>: Вступ"
+msgstr "<a|A>: Вступ"
#: data/help/texts.json
msgid ""
@@ -247469,10 +247469,10 @@
#: src/activity_handlers.cpp
msgid "The corpse is thoroughly pulped."
msgid_plural "The corpses are thoroughly pulped."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Труп добряче розбитий."
+msgstr[1] "Трупи добряче розбиті."
+msgstr[2] "Трупи добряче розбиті."
+msgstr[3] "Труп добряче розбитий."
#: src/activity_handlers.cpp
msgid "<npcname> finished pulping the corpse."
@@ -247569,19 +247569,19 @@
#, c-format
msgid "The %s's engine starts up."
msgid_plural "The %s's engines start up."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Двигун (%s) заводиться."
+msgstr[1] "Двигуни (%s) заводяться."
+msgstr[2] "Двигуни (%s) заводяться."
+msgstr[3] "Двигуни (%s) заводяться."
#: src/activity_handlers.cpp
#, c-format
msgid "One of the %s's engines start up."
msgid_plural "Some of the %s's engines start up."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Один з двигунів (%s) заводиться."
+msgstr[1] "Деякі з двигунів (%s) заводяться."
+msgstr[2] "Деякі з двигунів (%s) заводяться."
+msgstr[3] "Деякі з двигунів (%s) заводяться."
#: src/activity_handlers.cpp
#, c-format
@@ -247592,10 +247592,10 @@
#, c-format
msgid "The %s's engine fails to start."
msgid_plural "The %s's engines fail to start."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Двигун (%s) не заводиться."
+msgstr[1] "Двигуни (%s) не заводяться."
+msgstr[2] "Двигуни (%s) не заводяться."
+msgstr[3] "Двигуни (%s) не заводяться."
#: src/activity_handlers.cpp src/vehicle_use.cpp
msgid "You let go of the controls."
@@ -248172,28 +248172,36 @@
"There's no room in your inventory for the %s, so you drop them into the %s's"
" %s."
msgstr[0] ""
+"В инвентарі нема вільного місця для %s, тож ви це викладаєте у %s "
+"транспортного засобу (%s)."
msgstr[1] ""
+"В инвентарі нема вільного місця для %s, тож ви їх викладаєте у %s "
+"транспортного засобу (%s)."
msgstr[2] ""
+"В инвентарі нема вільного місця для %s, тож ви їх викладаєте у %s "
+"транспортного засобу (%s)."
msgstr[3] ""
+"В інвентарі нема вільного місця для %s, тож ви їх викладаєте у %s "
+"транспортного засобу (%s)."
#: src/activity_item_handling.cpp
#, c-format
msgid "The %s is too heavy to carry, so you drop it into the %s's %s."
msgid_plural ""
"The %s are too heavy to carry, so you drop them into the %s's %s."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "%sнадто важкий, щоб його нести, ви викидаєте його на (%s) %s."
+msgstr[1] "%sнадто важкі, щоб їх нести, ви викидаєте їх на (%s) %s."
+msgstr[2] "%sнадто важкі, щоб їх нести, ви викидаєте їх на (%s) %s."
+msgstr[3] "%sнадто важкі, щоб їх нести, ви викидаєте їх на (%s) %s."
#: src/activity_item_handling.cpp
#, c-format
msgid "Your %s tumbles into the %s's %s."
msgid_plural "Your %s tumble into the %s's %s."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Ваш %s валиться у %s %s."
+msgstr[1] "Ваші %s валяться у %s %s."
+msgstr[2] "Ваші %s валяться у %s %s."
+msgstr[3] "Ваші %s валяться у %s %s."
#: src/activity_item_handling.cpp
#, c-format
@@ -248278,10 +248286,10 @@
#, c-format
msgid "There's no room in your inventory for the %s, so you drop it."
msgid_plural "There's no room in your inventory for the %s, so you drop them."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "В інвентарі нема вільного місця для %s, тож ви це викладаєте."
+msgstr[1] "В інвентарі нема вільного місця для %s, тож ви це викладаєте."
+msgstr[2] "В інвентарі нема вільного місця для %s, тож ви їх викладаєте."
+msgstr[3] "В інвентарі нема вільного місця для %s, тож ви їх викладаєте."
Contributor
Author
|
@scarf005, thanks for catching that! I have ported some of the strings already. Some were strangely missing from my download. All strings are now ported on the site. You might want to redownload .po's Ported strings have minor corrections, like removing extra |
scarf005
approved these changes
Feb 2, 2026
Member
ushkinaz
added a commit
to ushkinaz/cbn-guide
that referenced
this pull request
Feb 2, 2026
usagirei
added a commit
to usagirei/Cataclysm-BN
that referenced
this pull request
Feb 8, 2026
* feat: `cata::ranges::fold_left`
for some interesting reason they didn't make it pipable
* feat: calculate power gen/usage
* feat(lua): bind distributiongrid and overmapbuffer
* feat(lua): bind requirement data, inventory, make direction_from use tripoint
* refactor(lua): return boolean from query_yn
* feat(lua,UI): Lua-ify voltmeter
* feat(lua): add bindings for `known_magic` (#7725)
* lets forget spell
* call `known_magic` from character and no constructor at its own.
* update cookbook
* style: whitespace
* docs: add lua doc regen instructions for conflicts
* docs: update lua
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat: water tower sewer connection, small changes (#7734)
* add mosquitoes, connect to sewer instead of railway
* make subway connect again
* fix: can no longer put EXTENDABLE parts on occupied tiles (#7740)
fix: can no longer put EXTENDABLE parts on normal frames
* feat(i18n): routine i18n updates on 2025-12-31
* fix: remove_bionic now reduces bionic power (#7739)
* feat(balance): Mustard and Mayo are not junk food (#7754)
De-junkify mustard and mayo
* feat(balance): double the range of chemical spray ammo to 8 (#7756)
Increase range of chemical spray ammo to 8
The ranges of chemical spray ammos were too short, so I thought it would be better if the range is longer
* chore: update AGENTS.md
* chore: remove the roofs above the stairs on top of the water tower (#7758)
Update water_tower_5zl.json
* fix: Fix lockpicking crash (#7760)
* Fix lockpicking crash
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(lua): add trailing commas to lua annotation (#7755)
resolves #7746
* feat(i18n): routine i18n updates on 2026-01-01
* feat: add easier recipe for nitric acid (Birkeland-Eyde) (#7757)
* fix: prevent current power level from exceding max power level (#7761)
* fix: remove upgraded bionic from bionic slot count (#7764)
* feat(port): "NEW!" notifications for crafting and nearby items (#7763)
* initial port
ports PR https://github.com/CleverRaven/Cataclysm-DDA/pull/49819 using codex
Co-Authored-By: Jianxiang Wang (王健翔) <qrox@sina.com>
* port new! in shift + v item list
ports DDA https://github.com/CleverRaven/Cataclysm-DDA/pull/73400
Co-Authored-By: Brambor <13402666+Brambor@users.noreply.github.com>
---------
Co-authored-by: Jianxiang Wang (王健翔) <qrox@sina.com>
Co-authored-by: Brambor <13402666+Brambor@users.noreply.github.com>
* feat: prevent acetylene torch from making nitric acid (#7762)
* build: add linux-curses
an easier way to build curses. also most of object files are shared with tiles!
* chore: fix build warnings
* docs(i18n): translate mod/json/reference/creatures folder into Japanese (Part 3/9) (#7766)
* feat(UI): add spells to overview and fix profession spell display (#7769)
* feat(UI): add spells to overview and fix profession spell display
* Dont actually need that \n
* feat(i18n): routine i18n updates on 2026-01-02
* docs(i18n): translate mod/json/reference/graphics folder into Japanese (Part 4/9) (#7772)
* doc: add japanese translation of color.md
* doc: add japanese translation of external_tileset.md
* doc: add japanese translation of mod_tileset.md
* doc: add japanese translation of mutation_overlay.md
* doc: add japanese translation of tileset.md
* feat(UI): visualize zone overlay (#7768)
* feat(UI): render zone overlay
* feat(UI): black border for white text
* refactor(UI): use sdl render state utilities in zone overlay
Co-authored-by: Reisen Usagi <12700106+usagirei@users.noreply.github.com>
* fix sdl render state mis-indexing when render_target is missing
* make sdl_render_state tuple indices signed to avoid possible overflow issues when render_target is missing
---------
Co-authored-by: Reisen Usagi <12700106+usagirei@users.noreply.github.com>
Co-authored-by: Reisen Usagi <usagirei@users.noreply.github.com>
* feat: add pelletizing recipe for ammonium nitrate (#7780)
feat(recipe): add pelletizing recipe for ammonium nitrate
* feat(balance): remove junk from popcorn kernels (#7779)
fix: remove junk from popcorn kernels
Popcorn kernels are just dried corn and should not be classified as junk food. Changed material from junk to veggy and updated vitamins accordingly.
Closes #7658
* fix: allow mining upstairs from ore tiles (#7778)
* fix(UI): remove visual glitch on holes after explosion (#7782)
- remove cyan dot for open air tiles
- invalidate visibility for 1 floor below when opening a floor tile
- calculate all dirty lightmap z-levels instead of current floor only
* fix: add turn cost to furniture transform action (#7773)
Flipping tables and other furniture transformations now cost 2 seconds, matching the time cost of moving similar furniture. Previously these actions were instant.
closes #7672
* feat(balance): add minimum city size to necropolis (#7785)
* feat(lua): add hooks when effect is removed from character and monster (#7777)
* feat(lua): add hooks when effect is removed from character and monster
* style(autofix.ci): automated formatting
* run docs
* after installing en_US.UTF-8 in my computer
* refactor: fix crashing error
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-01-03
* feat(lua): add bindings for `set_armor_xxx_bonus` (#7753)
* add bindings for armor bonus
* chore: update docs
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* docs: fix minor typos and JSON syntax in item_creation.md (#7786)
* doc(en): fix minor typos and JSON syntax in item_creation.md
* Update docs/en/mod/json/reference/items/item_creation.md
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat: make explosions and smashing randomly flip tables (#7774)
When furniture survives bash, flip chance = (damage / max_hp) * 100%
* fix(UI): prevent too many worlds from hiding entire menu (#7781)
* fix(UI): prevent too many worlds from hiding entire menu
* fix(UI): remove ghosting
* fix(UI): preserve camera position when exiting vehicle interaction screen (#7750)
fix(UI): preserve camera position and zoom when exiting vehicle interaction screen
Closes #7744
* docs(i18n): translate mod/json/reference/items folder into Japanese (Part 5/9) (#7788)
* doc: add japanese translation of allergies.md
* doc: add japanese translation of clothing_mods.md
* doc: add japanese translation of item_categories.md
* doc: add japanese translation of item_creation.md
* doc: add japanese translation of item_spawn.md
* doc: add japanese translation of json_inheritance.md
* doc: add japanese translation of materials.md
* doc: add japanese translation of recipes.md
* doc: add japanese translation of relics.md
* doc: add japanese translation of vitamin.md
* fix: include reactor power in battery charge time calculation (#7775)
* feat(i18n): routine i18n updates on 2026-01-04
* feat: make flung items from explosions deal damage on impact (#7771)
* refactor: make `explosion_data ` designated initializer compatible
* feat: make flung items from explosions deal damage on impact
* chore: water tower changes (#7793)
* Update water_tower_tank.json
* Update water_tower_-1zl.json
* Update water_tower_0zl.json
* Update water_tower_3zl.json
* Update water_tower_4zl.json
* Update water_tower_5zl.json
* Update water_tower_3zl.json
* feat(UI): Always show mana if below cap or with external option (#7794)
* Always show mana if below cap or with external option
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(balance): make rotors consume less fuel if below max lift (#7795)
* feat: Rotors now decrease additional fuel consumption if below max lift
* actually allow wing lift
* style(autofix.ci): automated formatting
* Update src/vehicle.cpp
* style(autofix.ci): automated formatting
* Update src/vehicle_move.cpp
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat: add `repair_difficulty` field to items (#7796)
feat: add "repair_difficulty" field to items
* feat(UI): add option for vehicle spawn rate scaling (#7803)
* feat(i18n): routine i18n updates on 2026-01-05
* chore: update AGENTS.md and skills (#7806)
* feat: add AR-10 sprite (#7809)
sprite modified from m16a4 from undeadpeople tileset
* feat: add universal rifle automatic conversion kits (#7807)
feat: add universal rifle auto kits
* feat(i18n): routine i18n updates on 2026-01-06
* feat: Bionic fake item use actions can now be used (#7371)
* Using bionics fixes
* What have I run into...
* 2 errors down 2 to go
* New discovery
* Currently functional
* cleanup and display fixes
* Actually need the locations for universal use action compat
* more cleanup
* motivation ran out
Still need to run at that stupid game storage
* Progress but still segfaults
* I think I'm close
* IT WORKS
* fix position
* Update bionics.json
* move to TEMPORARY_ITEM and only let BIONIC_TOOLS be used in the action menu
* I am SCREM
* fix obtain cost
* fixy json
* fix bionic use thingymabob
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat: add WINDOW flag to vehicle hatches (#7814)
Add WINDOW flag to vehicle hatches
* fix(UI): disable zone overlay by default (#7813)
fixes https://github.com/cataclysmbn/Cataclysm-BN/issues/7812
* fix: Reallow Ice Labs to spawn (#7815)
* fix: Prevent choosing locked bionics through scenario switching (#7816)
fix: Prevent aquiring high level bionics through scenario switching
* docs(lua): Update catalua_bindings_creature.cpp Documentation (#7811)
* Update catalua_bindings_creature.cpp Documentation
Gave useful descriptions to the set_value, get_value, and remove_value functions.
* Fixed DOC and ran docs:gen
Strings for doc input were incorrect (my fault)
* style(autofix.ci): automated formatting
* Revert cli_options modification
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: add PR title validation job (#7805)
* ci: add PR title validation job
* style: single line goes brrrrrrr
* feat: add Saiga and sharktooth leiomano sprite (#7822)
* Add files via upload
* Add new overlays to External Tileset JSON
* fix: replace redundant leiomano sprite, use array for saiga wield sprites (#7824)
Co-authored-by: thhoney08 <55903475+thhoney08@users.noreply.github.com>
* feat(UI): Change road marking symbol to make them visible in the dark (#7823)
change yellow pavement symbol from . to :
* fix: corrected a typo in the ebook lua mod (#7825)
* Initial commit
* :greb:
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-01-07
* style: use indentation
tools hate em'
probably because of `${{ }}`
* ci: update PR validation permissions
for some reason adding PR comments require issues permission not PR
* ci: update PR validation permissions
okay, so apparently both are needed
* feat(UI,mods/pride_flags): Make pride flags modname rainbow colored (#7828)
feat(UI): Make pride flags modname rainbow colored
Co-authored-by: Alec White Valentine <doncuentacuentos@hotmail.com>
* feat(i18n): routine i18n updates on 2026-01-08
* feat(UI): append ISO date to version (#7847)
feat: append ISO date to version
* fix: check favorited items in container contents for autonotes (#7776)
* fix: check favorite items in container contents for autonotes
closes https://github.com/cataclysmbn/Cataclysm-BN/issues/7770
* fix: avoid std::views::join_with
* feat(UI): vehicles page for look at/list nearby menu (#7787)
vehicle view pt1
* feat(UI): allow specifying overmap note sprites, mx sprites (#7765)
* draw note sprites, remove note from overmap on pickup
* allow map_extras to define sprite
* add looks_like to a few map_extras
* fix a few sprites
* build(lua): make binding compile time faster (#7832)
* build(lua): reduce binding compile time
* build(lua): disable sol safeties in release
* build(lua): drop binding debuginfo
* refactor(lua): reduce sol header fanout
* Discard changes to src/sol/config.hpp
* feat(UI): add zone overlay toggle to zones manager (#7818)
* fix(lua): apply locale-independent entry sorting (#7835)
fix(lua): force C locale in doc generation
Lua string comparison is locale-dependent (uses strcoll), causing
inconsistent ordering across systems. Force C locale in generate_lua_docs()
for consistent byte-order sorting.
Ref: cbfec98c4a
* build: Add cmake presets for aarch64 cross compilation (#7820)
* feat: Add cmake presets for aarch64 cross compilation
* style: fmt
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat(lua): add boolean return value to hooks (#7830)
* feat(lua): add boolean return value to hooks
* Update src/catalua.cpp
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* fix(UI): Prevent bionics with installed upgrades from being displayed as green (#7831)
* Add has_upgraded_bionic function
* Refactor bionic upgrade checks to use has_upgraded_bionic function
* Display bionics with upgrade versions installed as c_dark_gray
* Move has_upgraded_bionic() to character_functions.cpp
* feat: wooden wing tiles (#7853)
Added tiles for wooden wings.
Co-authored-by: zjohnso <squaids.9225@gmail.com>
* feat(lua): add proper relative/absolute `require` support (#7799)
* feat(lua): add custom module loader with relative/absolute imports
Implements custom package.searcher that enables:
- Relative imports: require("./foo"), require("../bar")
- Absolute imports from data/lua: require("pl.utils")
- Dotted module notation: foo.bar → foo/bar.lua
Technical details:
- Uses thread_local loading stack to track current file context
- Searcher returns closure that manages stack push/pop automatically
- Supports .lua files and init.lua package directories
- Path traversal security via lexically_normal() validation
- Zero boilerplate for mod authors - works transparently
Files:
- src/catalua_loader.{h,cpp}: Core loader implementation
- src/catalua_impl.cpp: Register searcher and bootstrap entry scripts
* refactor(lua): move ui.lua to shared data/lua directory
* test(lua): add mod demonstrating require functionality
Test coverage:
- Relative imports from subdirectories (./lib/calculator)
- Parent directory traversal (../util/math_helper)
- Absolute imports from data/lua (ui module)
- Nested module loading with automatic context management
Test structure:
- main.lua: Entry point with auto-test
- lib/calculator.lua: Tests ../relative import
- lib/ui_wrapper.lua: Tests absolute data/lua import
- util/math_helper.lua: Shared utility module
* docs(lua): document require with relative/absolute imports
* test(lua): add unit tests for require functionality
Add C++ unit tests in catalua_test.cpp for relative and dotted notation
imports. Tests verify that modules can be loaded using both import styles.
Create helper test modules in tests/lua/ and data/lua/ to support the tests.
Update catalua_loader to allow loading from base_path for test scenarios.
* refactor(lua): namespace stdlib under lib/ with lib./bn. prefixes
Move data/lua/* to data/lua/lib/* and require lib. or bn. prefix for imports.
This prevents namespace conflicts between stdlib and mod-local modules.
- lib.* and bn.* prefixes map to data/lua/lib/
- Mod-local imports (no prefix) search mod directory only
- Update catalua_loader.cpp: auto const -> const auto
- Add namespace conflict warning in docs
* refactor(lua): split and organize mods
* fix: apply safety measures
* fix(UI): preserve zoom level when reloading tileset (#7851)
fix: preserve zoom level when reloading tileset
Fixes #7850
* docs: bump lume and wiki version (#7854)
required for https://github.com/lumeland/theme-simple-wiki/pull/29
* docs(lua): fix dead link (#7856)
fixes #7826
Co-authored-by: Alec White Valentine <doncuentacuentos@hotmail.com>
* build: fix warnings (#7855)
* feat(i18n): routine i18n updates on 2026-01-09
* feat(UI): make bullet and thrown item sprites customizable (#7789)
* feat: make thrown items rotate
* feat: `FLY_STRAIGHT`
* refactor: make `cata_tiles::find_tile_looks_like` public
* feat(UI): make bullet and thrown item sprites customizable
* feat(lua): bindings for sight, hallucination, movement hook (#7859)
* feat(lua): add bindings for sight, hallucination, hooks for moving
* ran deno
* include include
* style: single line
* chore: run docgen
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* test: mark avatar diving test as flaky (#7860)
fails too often
* feat(i18n): routine i18n updates on 2026-01-10
* feat: Add aluminium boat hulls (#7858)
* Add aluminium boat hull vehicle part details
* Add aluminium boat hull to vehicle items
Added aluminium boat hull item with properties.
* Update data/json/vehicleparts/vehicle_parts.json
* style(autofix.ci): automated formatting
* G R E B
I dunno why we use the British spelling in most item IDs but the American spelling in names and descriptions but we do so whatever I guess.
Also stat buff to be between plastic and steel
Co-Authored-By: thhoney08 <55903475+thhoney08@users.noreply.github.com>
* awawawa
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: mainline more content from MST Extra mod (#7849)
* feat: mainline more content from MST Extra mod
* style(autofix.ci): automated formatting
* Next step, more furniture and constructions
* style(autofix.ci): automated formatting
* Update construct.json
* Mo' fixin' mo' stuff
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-01-11
* feat(UI): Select Response with Arrows and Enter in NPC Talk Menu (#7857)
* Allows up/down navigation to select response in npc dialogue.
* reverted loops in srs/dialogue_win.cpp to before
index based loops.
* style(autofix.ci): automated formatting
* Coverted new loop added from index based to range
based over collections
* removed unnecessary ranges include.
* Add wrapping when navigating with up and down arrows.
Also allow page navigation using page up and down.
* style(autofix.ci): automated formatting
---------
Co-authored-by: zjohnso <squaids.9225@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* chore: fix misplaced nested mapgen on the mapgen `pawn_pf_roof` (#7872)
Update pawn_shop.json
* feat: Add cargoship & nonsquare nested mapgen support (#7873)
* feat: permit non-square nested mapgen
* allow custom river overmap locations
* add the cargoship
Co-authored-by: Fentanylreactor <hasagi77@tutamail.com>
* actually include the cargoship
Co-authored-by: Fentanylreactor <hasagi77@tutamail.com>
* style(autofix.ci): automated formatting
---------
Co-authored-by: Fentanylreactor <hasagi77@tutamail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(i18n): use untranslated mod names in game report (#7863)
* fix(i18n): use untranslated mod names in game report
* fix: remove color tags from untranslated mod names in game report
* feat(UI): mark v2 save format as current and v1 as legacy (#7862)
* feat: mark v2 save format as current and v1 as legacy
V2 format is now stable and should be the default for new worlds.
* feat(UI): disable convert to V2 option for worlds already using V2
* feat(balance): add aluminum panels/boat hulls to some vehicles, sheets to relevant itemgroups (#7875)
* ci: fix PR validation not working (#7874)
ci: extract PR title validation to separate workflow
* feat(lua): add weapon bonus for items and bindings for them in lua (#7866)
* feat(lua): add damage/range bonus for items and bindings of them
* missed header
* melee_hit_bonus
* ran deno
* feat(lua): add bindings for time point of Sun and Moon, and for sheltered state (#7852)
* feat(lua): add bindings for `time_point` about sun and moon
* I missed `return`
* run docs and a lil tweaks
* build: add clang-format config for subdirectory C++ formatting
Resolves #7865
* build: format using clang-tidy and astyle
* style: apply clang-format
* feat(i18n): routine i18n updates on 2026-01-12
* fix: make flying robots hackable again (#7876)
* fix flying robots
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: temp item obtain cost causing divide by zero error (#7884)
* revert: "style: use clang-format on subdirectories" (#7887)
* Revert "style: apply clang-format"
This reverts commit 54a62fa422a3f738f5d5a81b67fc8918f8eacf76.
* Revert "build: format using clang-tidy and astyle"
This reverts commit e0057faa156bfd8c11e66da1a817b69a2f333b83.
* Revert "build: add clang-format config for subdirectory C++ formatting"
This reverts commit b4d9193f4c4ad5966347e9898b45d348560613b8.
* feat(mods/MagicalNights): add BELT_CLIP flag to Earthshaper cestus (#7889)
add BELT_CLIP flag to Earthshaper cestus
* chore: Change tool quality Classing Pressing name to Ammunition Reloading (#7890)
Update tool_qualities.json
* fix: add some tilesets to veggy sausage and wrist computers (#7891)
* Add 'looks_like' property to veggy sausage item
* Add 'looks_like' property to wrist computer item
* feat: add json defined item_vars (#7797)
* feat: add json defined item_vars
* how did that sneak through
* Update src/itype.h
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat(balance): buff mininuke damage by 10x (300 -> 3000) (#7893)
applied to both physical and heat wave damage, cause mininukes were comically weak; they dealt a puny 300 damage, whereas C4 deals 200.
* feat(i18n): routine i18n updates on 2026-01-14
* feat: re-add some obsoleted gun mods in game (#7894)
* Remove obsolete gun modifications from items.json
Removed obsolete gun modification entries from items.json.
* Add new gun modifications to mechanism.json
* Add new gun mods to gunmod.json
Added new gun mods: autofire, beltfeed, and tuned mechanism.
* Add 'shot' to acceptable ammo and magazine adaptor
* Update data/json/items/gunmod/mechanism.json
* I might be stupid :D
* I grisp the recipe firmly
Yoinked from https://github.com/CleverRaven/Cataclysm-DDA/commit/3874aede1364fe82d487d90b7e0cc68986a01779
* style(autofix.ci): automated formatting
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(port): relentless hulk, NEMESIS enemies, and scenario (#7702)
* port nemesis PR
used codex btw
Co-Authored-By: eric limer <3385772+ericlimer@users.noreply.github.com>
* fix name >:(
Co-Authored-By: eric limer <3385772+ericlimer@users.noreply.github.com>
---------
Co-authored-by: eric limer <3385772+ericlimer@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(UI): colorized and facelifted NPC dialogue UI (#7883)
* dialogue response letter hotkeys highlighted light
green
* Added header to dialogue UI. Header contains NPC
name and keybind info. Simplified keybind labels
to "X" instead of "Shift+X" for better readability.
Highlighted NPC name pink in header.
* Highlight names in chat history.
* style(autofix.ci): automated formatting
* Slid the divider over to a 60/40 position rather than 50/50 to give chat history a little more room than response list.
---------
Co-authored-by: zjohnso <squaids.9225@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* ci: fix PR validation not working for forks
* feat(balance): change materials of some jackets/pants (plastic -> nylon) (#7895)
* feat: changed plastic to synthetic fabric in materials of certain clothing
Army jackets, pants and its variants should be made of a blend of cotton and synthetic fabrics, as the Army Combat Uniforms worn by US soldiers are made of such materials. Plastic in this case is not the correct material. I've also changed plastic to synthetic fabric on a few other clothing based on a quick Google search, but I might be wrong.
* Lil consistency tweaks
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* chore: fix nested mapgen that overlaps each other on the roof of the tire shop (#7898)
Update cs_tire_shop.json
* feat(i18n): routine i18n updates on 2026-01-15
* ci: generate lua docs on-demand (#7888)
- Remove lua_annotations.lua and docs/en/mod/lua/reference/lua.md from git
- Add both files to .gitignore
- Add optional LUA_DOCS_ON_BUILD CMake option to generate docs post-build
- Generate and upload lua-docs artifact in experimental release workflow
- Download lua-docs artifact in docs workflow from latest experimental release
- Add step summaries showing artifact upload/download status
- Update documentation for lua autocompletion setup
resolves #7877
* feat(balance): add althetics skill to relevant professions, first aid skill to military professions (#7900)
* feat(balance): add althetics skill to relevant professions, first aid skill to military professions
* Brain be smooth
* ci(lua): restore Lua reference on docs site (#7906)
fix(ci): publish downloaded Lua docs
* chore: fix accidental deletion of one of the palettes of `bungalow30_basement` (#7909)
Update bungalow30.json
* feat(i18n): routine i18n updates on 2026-01-16
* feat: change some fursuit to faux fur, and add recipies for them (#7913)
* Change material from cotton to faux_fur
* Add new armor suit recipes for wolfsuit and dinosuit
* docs: split code style guide into subsections (#7908)
* feat(i18n): routine i18n updates on 2026-01-17
* fix(mods/crt_expansion): dhp_pellet migration typo (#7917)
* fix dhp_pellet typo
* actually both needed
* feat(balance): add `SHORT_SWORDS` category to bionic blade and katars, `FIST_WEAPONS` category to bio-blade, `KNIVES` category to sai (#7915)
* feat(balance): add `FIST_WEAPONS` category to
* Woe, stabby boi upon thee
* 200% more punching
* feat(lua,port): nyctophobia trait (#7864)
* feat(lua,mods): nyctophobia
* split nyctophobia, credit original PR
based on https://github.com/CleverRaven/Cataclysm-DDA/pull/59061 by Night-Pryanik, completely rewritten in lua but worth attributing anyways
Co-Authored-By: Anton Burmistrov <11132525+Night-Pryanik@users.noreply.github.com>
* style(autofix.ci): automated formatting
* uhhh... woops?
* automatically load prof item substitutions with batteries
* add reading light, remove paralyzing
* replace took_xanax effect with general depressants
* decrease hallucinations, adverse side effects. add light alert, fix darkness alert
* style(autofix.ci): automated formatting
---------
Co-authored-by: Anton Burmistrov <11132525+Night-Pryanik@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correct json flags for some open door terrains (#7922)
fix json flags
* fix: prevent crash in training activity (#7924)
* feat(i18n): routine i18n updates on 2026-01-18
* feat(balance, mods/MagicalNights): Double length of haste spell, nerf cost (#7926)
Adjust haste spell stats
* chore: fix nested mapgen that overlaps each other on the roof of the homeless shelter (#7925)
Update homeless_shelter.json
* feat(lua): add NPC spawn/erase hooks (#7901)
* Bindings
Implemented erase function for npc
Added lua hooks for it, and for place_npc
* style(autofix.ci): automated formatting
* docs: update cookbook
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat(lua): Add bindings for character trap recognition (#7879)
* feat(lua): Add bindings for allowing the character to know a trap on the location
* trap_id.obj
* docs(lua): update cookbook
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat(UI): NPC trade menu revamp (#7912)
* init: add highlighted navigation and arrow key selection to trade UI
Consistent with pickup menu.
* Added info and headers to inventory panes. More in line with AIM
* Added weight and volume indicators to NPC trade window. Removed old indicator.
* Highlight trades red/green based on value above/below market.
>= +-5% market value triggers highlight
* Examine with E: show item info on opposite panel
* Move NPC/You labels inside panel borders.
* style(autofix.ci): automated formatting
* Updates to header cosmetics. Add divider lines and bring style closer to new dialogue UI.
* style(autofix.ci): automated formatting
* Cosmetic changes, item filtering, and item description window
* style(autofix.ci): automated formatting
* Added keybind handling, category select toggle, and improved look and feel.
* style(autofix.ci): automated formatting
* Refactoring pass to separate UI code into trade_win.cpp/h from npctrade.cpp/h
* style(autofix.ci): automated formatting
* Autobalance, tooltip toggle, and cleanup.
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* fix: prevent fake tool errors in activity (#7931)
fix: skip PSEUDO tools in activity
* feat: battery compartment mod buff (#7932)
Update description for battery compartment mod
* feat(UI): small NPC dialogue UI adjustments (#7930)
* Dialogue UI touchups to unify design with trade UI
page indicator
hotkey hints color
response list inactive entries color
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-01-19
* chore: Correct weight descriptions for airjack and motokickstand (#7933)
Correct weight descriptions for airjack and kickstand
* feat(balance): updates to salvaged power armor, military exo-suit, and industrial exo-suit (#7927)
* feat(balance): grant salvaged power armor 100% coverage, reduce material thickness and encumbrance
* Update power_armor.json
* feat(balance): assorted fixes for mech behavior, rework plutonium cells to be self-charging (#7934)
* feat(balance): assorted fixes for mech behavior, rework plutonium cells to be self-charging
* feat(balance): assorted fixes for mech behavior, rework plutonium cells to be self-charging
Co-Authored-By: KheirFerrum <102964889+KheirFerrum@users.noreply.github.com>
Co-Authored-By: Reisen Usagi <usagirei@users.noreply.github.com>
---------
Co-authored-by: KheirFerrum <102964889+KheirFerrum@users.noreply.github.com>
Co-authored-by: Reisen Usagi <usagirei@users.noreply.github.com>
* fix: trade menu fixes (#7935)
* Fix a few bugs in the trade menu.
filter help text correctly overlays an inventory pane
autobalance with category properly optimizes items to achieve closest to 0 trade
item highlight when switching panes and category select clamps to ensure weird stuff doesn't happen
* astyle
* fix: make crafted software be contained by default (#7936)
Added contained: true
* feat(balance): bump coat rack allowed volume to 100L (#7937)
bump coat rack allowed volume to 100L
30L is just absolutely pitiful when people are using it as flavor for storing more clothes than just hats
* chore: Rename airship balloon to C.R.I.T. airship balloon (#7938)
Rename airship balloon to C.R.I.T. airship balloon
* feat(i18n): routine i18n updates on 2026-01-20
* fix(UI): Make advanced inventory AIM_ALL to respect CLOSE_ADV_INV option (#7940)
* Add files via upload
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(balance): atomic batteries default to empty when crafted, recipe reversible and gains `decomp_learn` (#7944)
* feat(balance): add hydraulic press to steel mill (#7942)
* fix: add uncrafts for urban explorer's map and satellite map (#7945)
* fix: make turret autoloader reload internal mags (#7947)
* feat(balance): reduce autoloader power draw from 50 kJ to 5 kJ (#7948)
* feat(i18n): routine i18n updates on 2026-01-21
* fix: `PHYSICAL` spells should not deny two-handed weapons (#7951)
* fix physical spells denying two-handed weapons
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* chore: update HH:BN guide url (#7949)
chore: update guide url
* chore: remove some skylights on the mapgen `fire_station_roof` (#7952)
Update fire_station.json
* feat: add tin can recipes (#7955)
* feat(i18n): routine i18n updates on 2026-01-22
* feat!: User Accessible Android Mod Directory (#7928)
* test1
* HAH VICTORY
* why dont android builds invoke the tree
* weh
* Eepy brain copied something wrong
* style(autofix.ci): automated formatting
* add some online docs
* add docs
* it snuck in again
* style(autofix.ci): automated formatting
* if only this worked
* Stupid java stuff
Yall can screm if you want, but it works
* why does this not stay & docs
* format
* Remove no longer needed docs
* Safeguard android 10 and lower (hopefully)
* really safeguard it
* actually wanted that
* no longer needed
* SAVES WORK
* style(autofix.ci): automated formatting
* fix empty files issue
* format
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(UI): add compare item option in crafting UI (#7946)
Add compare button to crafting UI.
* chore: fix misplaced nested mapgen on the mapgen `music_venue_1_roof` (#7958)
Update music_venue.json
* fix(UI): change colors for skeletal brute and skeletal juggernaut (#7960)
change colors for skeletal brute and skeletal juggernaut
* feat(i18n): routine i18n updates on 2026-01-23
* feat: NOCOLLIDE & NOSMASH Vehicle Part Flags (#7413)
* feat: NOCOLLIDE & NOSMASH Vehicle Part Flags
* Make it work for decending and veh to veh
* It works a lot better now
Probably still imperfect though
* More attempts
* One must get distracted from time to time
* the burst fades
* nearly done
* cant let that sneak in
* more urgent things
* collided vehs attempt
doesnt work due to the fact that it wont register it leaving if it goes straight, no improvments
* add nocollideabove
* add NOCOLLIDEBELOW
* fix typo
* Prevent removing parts from NOCOLLIDE parts while they are colliding
* please be right
* yet another safety net
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* fix(UI): shroud weaver location revealed by looking up a Z-level (#7892)
fix(UI): correct visibility calculation when looking at different z-levels
- on looking around: update visibility cache based on player's z-level not camera's
- prevent underlying game UI from drawing during the loading popup
- force map cache rebuild on game load to prevent uninitialized lighting/visibility artifacts. (shroud weaver is shown for split second then disappears on load)
fixes #7882
* feat: Add `GUNSHY` trait, refactor will_fire_turret (#7964)
* Add GUNSHY trait, refactor will_fire_turret
* style(autofix.ci): automated formatting
* Make GUNSHY cancel BRAWLER
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* Fix the missing comma
* Also other way around
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(lua): add ability to place artifacts with JSON & LUA (#7920)
* add ability to place artifacts with JSON & LUA
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* fix: init mods/ on game load (#7967)
* fix: init mods/ on game load
* why did this not change
* oh why do I mess things up
* fix: Add missing shield technique to large spiked shield, change descriptions of banded shields to mention iron instead of steel (#7970)
Update shields.json
* feat(i18n): routine i18n updates on 2026-01-24
* feat(balance): greatly increase animal eating time (#7971)
* feat(balance): greatly increase animal eating time
* add dinosaurs
* feat(balance): Change materials of medieval armors to increase their protection (#7969)
* Update medieval armors
* Smol tweak
* Update superalloy gauntlets and boots
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(lua): add `date_time` bindings (#7961)
* Init
* style(autofix.ci): automated formatting
* Functional
Added weekday handling + tostring
Added to main register function
Made function calls more explicit
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(lua): Name Functions (#7963)
* Init
Exposed flag fields
Added overloaded functions
Full generation support
* style(autofix.ci): automated formatting
* Fixed
Made name include work
Renamed library to ch_names because name is too likely to be a var in lua
Removed overload; I didn't understand what it was for
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(lua): Lua NPC bindings (#7897)
* Lua NPC bindings
Added bindings for getting and setting an npcs' first topic.
Added a lot of docs because I couldn't help myself.
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(balance,port): remove difficulty in disarming directed traps (#7950)
Remove difficulty in disarming directed traps
It makes no sense for someone deliberately disarming a tripwire, shotgun, crossbow or bear trap to be damaged by failing the disarm. Simply do not stare down the barrel of the shotgun as you disarm it, please.
* feat(lua): make `run_hooks` table-based (#7903)
feat(lua): add priority hooks and results chaining
Co-authored-by: AzmodiusX <AzmodiusX@users.noreply.github.com>
* fix: unboard vehicle on using phase door (#7973)
* feat(balance): obsolete extended toolset, move repair/cauterize functions to integrated toolset (#7972)
* feat(balance): obsolete extended toolset, move repair/cauterize functions to integrated toolset
* feex
* chore: change the flagpoles near the industrial center warehouse into columns (#7974)
* Update industrial_center_palette.json
* Update industrial_center.json
* feat(i18n): routine i18n updates on 2026-01-25
* fix: use a different character for hydraulic press in steel mill (#7976)
* fix: Mycus eating fruit crash, more reliable Mycus mutation progression, fungal hedgerows no longer block marloss progression (#7975)
* Add mutation category to avoid crash
* Increase fatigue minimum to fix not getting mutations
* feex
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* fix: advanced butcher rack fixes (#7978)
* fix(mods): CRIT gas mask fix (#7982)
Battery ammo fix
* feat(i18n): routine i18n updates on 2026-01-26
* fix: fix delayed effect from failing to disarm traps, revamp EXP for disarming (#7987)
* fix: Vehicle Tile Fallback (#7988)
* Fallback
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat(UI): display vehicle ladders on ground (#7986)
* feat: display vehicle ladders on ground
* apply derg's suggestion
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* add looks like now that it works
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat: add recreational furniture construction (#7989)
* Add files via upload
Makes all iuse furniture deconstruct the same way ovens and fridges currently are - into an item you can then move around to wherever you need it, then place directly without additional materials.
This allows you to finally fully loot basement gyms, basement arcades, private resort stripper poles, and roulette tables.
* fix locations
* style(autofix.ci): automated formatting
* fix2
* lint
* stray file
* more stray stuff
* Update generic.json
* Add uncrafts, lil furniture tweaks
* style(autofix.ci): automated formatting
* Update furniture.json
* aaaaaaaahhhhhhhh
---------
Co-authored-by: WishDuck <github@johnrosshiggins.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* fix(UI): NPC ally tutorial cleanup (#7943)
* Init
Removed control swap from dialogue (already in npc menu)
Moved the talk tutorial to a set of windows in the npc menu.
Text redone to be non-conversational.
Improved clarity of TALK_LEAVE topic.
* style(autofix.ci): automated formatting
* Lua Type Docs
* Revert "Lua Type Docs"
This reverts commit 67029d86f22d7c9a04a4697ed877042a329fa256.
* Removed errent whitespace
Co-authored-by: WishDuck <WishDuck@users.noreply.github.com>
Co-authored-by: WishDuck <github@johnrosshiggins.com>
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WishDuck <github@johnrosshiggins.com>
* fix(lua): Updated on_character_try_move and expanded (#7983)
* On character try move update
* Docs
* feat(i18n): routine i18n updates on 2026-01-27
* feat(balance): rebalance bomber control recipe, fixes for related recipes (#7991)
* feat(balance): rebalance bomber control recipe, fixes for related recipes
* I forgot that makes it visible, uwahhh
* fix: prevent trade menu when missions give free items to player in debt (#7980)
When a player is in debt with an NPC and the NPC tries to give the player
a free item (cost = 0) through mission rewards or mission start items,
the trade menu would incorrectly open instead of directly giving the item.
The issue was in npc_trading::pay_npc() which would fall through to
npc_trading::trade() when the player's debt was negative and cost was 0,
because the condition (negative_debt >= 0) would be false.
Fix by checking if cost <= 0 first and returning true immediately for
free items, preventing the trade menu from opening.
Fixes #7979
* chore: update AGENTS.md to be less strict with headers
* feat(i18n): routine i18n updates on 2026-01-28
* feat: add world option for initial trait purification & cancellation (#7904)
* feat: add world option that allows starting traits to be purified & cancled
* uwaaa
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat: Dialogue Talk Tags Upgrade (#7896)
* Update catalua_bindings_creature.cpp Documentation
Gave useful descriptions to the set_value, get_value, and remove_value functions.
* Fixed DOC and ran docs:gen
Strings for doc input were incorrect (my fault)
* style(autofix.ci): automated formatting
* Revert cli_options modification
* Talk tags
Added tags that allow retrieving arbitrary tags from npctalk_var
Improved talk tag documentation
Added new documentation for new feature alongside
* style(autofix.ci): automated formatting
* Update lua.md
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* chore: change nested chunk coordinates on the mapgen `industrial_center_pump_station_roof` (#7997)
Update industrial_center.json
* feat(i18n): routine i18n updates on 2026-01-29
* fix: ensure Mycus characters can't be softlocked by fungal infection (#7996)
* fix: clear vehicle rope cache everywhere (#8000)
* fix(UI): droppers now properly display themselves again (#8001)
fix: droppers now properly display themselves again
* chore: make vehicle_part has_flag actually use the right flags (#8002)
* chore: make vehicle_part has_flag actually use the right flags
* thetodoisdone
* ci: use `ubuntu-slim` for short workflows (#8003)
ci: use ubuntu-slim for lightweight workflows
* feat(i18n): routine i18n updates on 2026-01-30
* chore: re-add removed nested mapgen from two military surplus roofs (#8004)
Update mil_surplus.json
* ci: revert to `ubuntu-latest` for jobs using containers
partially revert https://github.com/cataclysmbn/Cataclysm-BN/pull/8003
turns out ubuntu-slim does not support containers: https://github.com/actions/runner-images/issues/13583
* feat(balance): reduce Burdock wine weight (#8008)
Update Burdock wine weight
* fix(UI): trade menu fixes (#8005)
* Fixed bugs with trade window
fixed page navigation issues
removed vol and weight fields when trading with merchant to reduce confusion
* Ignore primary weapon weight and vol for limit calcs
prevents negative weight/vol on trade window
* add condition check to skip drop invalid inventory for merchants
* style(autofix.ci): automated formatting
* reverse condition to check for merchant before dropping invalid inventory
this seems to be the intended behavior in the past
will look at this in a separate PR if needed
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: ladders no longer need to be the last installed part to function (#8013)
* feat(balance): add more recipes for converting casings into other types, adjustments to existing recipes (#8006)
* perf: Add debug perf option to use old save location on android (#8018)
* fix: permit saves to be stored in old android directory to improve performance on save
* fix dir
* feat: add soy sauce recipe (#8017)
* feat: add soy sauce recipe
* Update data/json/recipes/food/other.json
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* Update data/json/recipes/food/other.json
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* Add NUTRIENT_OVERRIDE flag to spice.json
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-02-01
* feat(balance): updates to professions, overhaul skyfarer professions and vehicles (#8011)
* feat(balance): updates to professions
* Duplicate item fix
Noct pointed this out when I showed him in discord. :3
* Airshippery
* Update aircraft_other.json
* Expand Dong
* labbers...scrungle... :<
* feat(mods/MagicalNights): Add slow, force push/pull spell to magus (#7965)
* Add slow spell
* Tweak haste effect and add slow effect.
* Add slow spell to magus_spellbook_move
* Adds Force Push and Force Pull spells.
* Added scrolls for new spells.
* Fix description for scrolls
* Added new scrolls to itemgroups.
* Bugfixes. Every single one mentioned in PR thread.
* Added AoE effect to force push.
* Update data/mods/MagicalNights/Spells/magus.json
* Removed AoE effect from Force Push.
---------
Co-authored-by: RobbieNeko <30732426+RobbieNeko@users.noreply.github.com>
* fix: fix switching tileset not working due to vehicle fallback (#8019)
* Vehicle Fallback Fix
* style(autofix.ci): automated formatting
* Update src/cata_tiles.cpp
MONADS
Co-authored-by: scarf <greenscarf005@gmail.com>
* style(autofix.ci): automated formatting
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat: Idle lift reduces drag on vehicles & floating at groundlevel (#8014)
* feat: lift now reduces drag
* the landblimp
* Actually cap drag
* drag blimpy
* we are going to ignore that
* nocollide fixes and make them not have wheels again
* chore(i18n): Remove Ukrainian locale duplication (uk_UA) (#8022)
feat: Ukrainian language deduplication
* fix: permit climbing up into blimps from below (#8021)
* fix: permit climbing up into blimps from below
* Astyle seems to be content with me if I remove this unnecessary linebreak
* refactor: make ASCII trees harvested for bark brown (#8023)
refactor: update tree visual appearance
- Change harvested blackjack oak color to brown
- Change regular blackjack oak color to yellow
- Change harvested birch color to brown
Fixes #7956
* feat: add enchantments for gun (#8015)
* Enchanted gun
* style(autofix.ci): automated formatting
* more clear comment
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: battery compartment mod can use military plut fuel cells (#8025)
Add huge atomic battery cell to toolmod.json
* fix json item vars & autoloader
- issues with long long
- issues with dict vs var storage
* feat(lua): Dialogue Hooks (#7899)
* Dialogue Bindings
* Removal
Removed talk_topics list param from on_dialogue_start because I can't justify it
* Fixed bindings
Param names made appropriate
Fixed template implementation
Added and ran hook testing mod
* Revert "Merge branch 'cataclysmbn:main' into NPC-Lua"
This reverts commit e1d896bd828c7813da1be0f18a5cd3413924acee, reversing
changes made to 802f089e898f18a43e1e8eb25ac8ad5ced719db3.
* Reapply "Merge branch 'cataclysmbn:main' into NPC-Lua"
This reverts commit 890c25525d4c948797734a13efa91d9274950355.
* style(autofix.ci): automated formatting
* Updated to new hooks system
Also re-ran the tests in the pr notes
* style(autofix.ci): automated formatting
* Whitespace
* Lua Type Docs
* Interaction Hooks & New Functions
* style(autofix.ci): automated formatting
* Apply suggestions from code review
Co-authored-by: scarf <greenscarf005@gmail.com>
* style: newlines
* refactor: simplify
* fix: prams -> params
* feat: add type hint
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: scarf <greenscarf005@gmail.com>
* feat: genome_drive flag, predefined drives, cloning snippets (#8028)
* swap to flag, add predefined drives
* style(autofix.ci): automated formatting
* fix dire wolf
* scrungle
Removed an extra closing brace from the JSON structure.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(balance): climbing trees can call `slip_down` like fences do, heavy impacts can knock survivors out of trees and off other `UNSTABLE` terrain, take `GROUP_BASH` into account properly when deciding when to bash (#7993)
* feat(balance): heavy impacts can knock survivors out of trees and off other `UNSTABLE` terrain
* Update map.cpp
* Two lil tweaks
* I am unscrungled
* fix: Mark seeds as HIDDEN_ITEM when planted by seed drill (#8029)
When the seed drill plants seeds, mark them with the HIDDEN_ITEM flag,
matching the behavior of manual planting via plant_seed_finish(). This
prevents seeds from being accessible via advanced inventory when a CARGO
vehicle part hovers over the plant tile, which was causing the
'Missing seed for plant' error when seeds were moved.
Fixes issue #5799.
* feat(balance, mods/MagicalNights): Adjust odds of magic_shop_books, change light healing scroll to Tier 1 (#8031)
* Adjust odds of magic_shop_books
* Change light healing scroll to t1
* Move rare books to separate item group
* Easy fix
* fix: remove the bathtub in the living room of `house_duplex5` (#8033)
Update house_duplex5.json
* fix: Spelunker's map no longer showing minefields (#8032)
* fix: Mark seeds as HIDDEN_ITEM when planted by seed drill
When the seed drill plants seeds, mark them with the HIDDEN_ITEM flag,
matching the behavior of manual planting via plant_seed_finish(). This
prevents seeds from being accessible via advanced inventory when a CARGO
vehicle part hovers over the plant tile, which was causing the
'Missing seed for plant' error when seeds were moved.
Fixes issue #5799.
* fix: prevent spelunker's map from revealing minefields
Use PREFIX matching for 'mine' terrain instead of CONTAINS to avoid
matching 'mil_base_minefield_*' overmap terrains.
Fixes #7792
* Rollback some unrelated changes
* feat: give old magus a few magical items to sell (#8024)
* give old magus a few magical items to sell
* switch mage currency to crystallized mana
---------
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
* feat(i18n): routine i18n updates on 2026-02-03
* feat(balance): CBM body part slot cost rebalance, adjust microreactor into atomic battery (#7954)
* Rebalancing
Reduced body part cost of low-impact and less-used CBMs. Changed the microreactor into an atomic battery from Cata++, since that's all anyone used it for anyways.
* style(autofix.ci): automated formatting
* more balancing
Reduced the cost of ethanol burner to 8, and the metabolic interchange and battery system to 10
* Things
* Remove some hardcoded fuckery involving the microreactor CBMs
* Fix an oops
* Removed hand slot cost from arm alloy plating, carbon fiber CBM
* Revert "Remove some hardcoded fuckery involving the microreactor CBMs"
This reverts commit fceaee6a0e1fb4056de65791b313d9dcb73c595d.
* Do the thing
* Update bionics.json
* Description fix
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
---------
Co-authored-by: scarf <greenscarf005@gmail.com>
Co-authored-by: NappingOcean <129575271+NappingOcean@users.noreply.github.com>
Co-authored-by: shmakota <47482311+shmakota@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: RobbieNeko <30732426+RobbieNeko@users.noreply.github.com>
Co-authored-by: thhoney08 <55903475+thhoney08@users.noreply.github.com>
Co-authored-by: 0Monet <146018959+0Monet@users.noreply.github.com>
Co-authored-by: joveeater <joveasarus@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jianxiang Wang (王健翔) <qrox@sina.com>
Co-authored-by: Brambor <13402666+Brambor@users.noreply.github.com>
Co-authored-by: Neko Sippo <223284621+shippo-neko@users.noreply.github.com>
Co-authored-by: Reisen Usagi <12700106+usagirei@users.noreply.github.com>
Co-authored-by: Reisen Usagi <usagirei@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Co-authored-by: qrrk <19731636+qrrk@users.noreply.github.com>
Co-authored-by: Jarreth Weiler <94997385+AzmodiusX@users.noreply.github.com>
Co-authored-by: Soadreqm <antti.virkkunen@gmail.com>
Co-authored-by: Alec White Valentine <doncuentacuentos@hotmail.com>
Co-authored-by: Jo <apidemobot0@gmail.com>
Co-authored-by: George Kightly <kightlygeorge@users.noreply.github.com>
Co-authored-by: Shtacks <zjohnson9225@gmail.com>
Co-authored-by: zjohnso <squaids.9225@gmail.com>
Co-authored-by: Fentanylreactor <hasagi77@tutamail.com>
Co-authored-by: nocontribute <>
Co-authored-by: Vsevolod-Shustov <Vsevolod-Shustov@users.noreply.github.com>
Co-authored-by: eric limer <3385772+ericlimer@users.noreply.github.com>
Co-authored-by: WarriorKingBob <billwang35@gmail.com>
Co-authored-by: Anton Burmistrov <11132525+Night-Pryanik@users.noreply.github.com>
Co-authored-by: florged <99572005+florged@users.noreply.github.com>
Co-authored-by: Vorpal Void <60776130+vorpal-void@users.noreply.github.com>
Co-authored-by: KheirFerrum <102964889+KheirFerrum@users.noreply.github.com>
Co-authored-by: Chorus System <ohinchy@gmail.com>
Co-authored-by: ushkinaz <398781+ushkinaz@users.noreply.github.com>
Co-authored-by: Jarewill <98614648+Jarewill@users.noreply.github.com>
Co-authored-by: SYPIAC <dskriplov@gmail.com>
Co-authored-by: AzmodiusX <AzmodiusX@users.noreply.github.com>
Co-authored-by: ChrisLR <chrislr666@proton.me>
Co-authored-by: DeinonychusDiscord <145498429+DeinonychusDiscord@users.noreply.github.com>
Co-authored-by: Reclusive-reptile <zabicw@yahoo.com>
Co-authored-by: Fruitybite <67253801+Fruitybite@users.noreply.github.com>
Co-authored-by: arijust <54635208+arijust@users.noreply.github.com>
Co-authored-by: David Silva <45382844+David-Silva-Jr@users.noreply.github.com>
Shtacks
pushed a commit
to Shtacks/Cataclysm-BN
that referenced
this pull request
Feb 10, 2026
…#8022) feat: Ukrainian language deduplication
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Eliminate the redundant
uk_UAlocale. Retain onlyuk.Rationale
There is no meaningful distinction between
ukanduk_UA. Ukrainian does not have widely codified regional variants that justify a "language_territory" locale format. Maintaining both adds unnecessary duplication.Details
uk_UAcontained only 3 additional strings. These were merged intoukin Transifex.Next Steps
uk_UAfrom Transifex.uk_UAis deleted from Transifex.Source: 🇺🇦 me, native speaker.
Mandatory
closes #1234in Summary of the PR so it can be closed automatically.mainso it won't cause conflict when updatingmainbranch later.