diff --git a/changelog.txt b/changelog.txt index 6c0b99ddd..ca414e956 100644 --- a/changelog.txt +++ b/changelog.txt @@ -44,6 +44,7 @@ Template for new versions: - `caravan`: fix doubled "total value of items marked for trade" after toggling filter options, and keep item marks when switching between filter views in the ``Bring goods to depot`` overlay - `combine`: dyes are combined again, but only when their ``dye_profile`` matches, so mixed dyes no longer revert to a component dye - `fix/loyaltycascade`: guard against citizens that are not historical figures and emit a warning. +- `full-heal`: ``--all-citizens`` still matches dead citizens (for resurrection) now that ``dfhack.units.isCitizen`` excludes the dead - `gui/settings-manager`: preserve built-in work details added after saved settings were created - `gui/siegemanager`: fix nil index if there are no siege engines on the map - `hide-tutorials`: also suppress the adventure mode start tutorial (defaults its checkbox to off and dismisses the popups) diff --git a/full-heal.lua b/full-heal.lua index a1daa0fa8..ecd288132 100644 --- a/full-heal.lua +++ b/full-heal.lua @@ -235,9 +235,12 @@ if args.all then heal(unit,args.r,args.keep_corpse) end elseif args.all_citizens then - -- can't use dfhack.units.getCitizens since we want dead ones too + -- can't use dfhack.units.getCitizens since we want dead ones too; + -- isCitizen/isResident exclude the dead, but dead citizens retain + -- their group membership link for _,unit in ipairs(df.global.world.units.active) do - if dfhack.units.isCitizen(unit, true) or dfhack.units.isResident(unit) then + if dfhack.units.isCitizen(unit, true) or dfhack.units.isResident(unit) or + (dfhack.units.isDead(unit) and dfhack.units.isOwnGroup(unit)) then heal(unit,args.r,args.keep_corpse) end end