Merge remote-tracking branch 'putnam/fullhealfix' into develop

Conflicts:
	NEWS
develop
expwnent 2014-11-14 18:56:21 -05:00
commit c40c4460ba
2 changed files with 119 additions and 113 deletions

@ -2,6 +2,8 @@ DFHack Future
Internals: Internals:
EventManager should handle INTERACTION triggers a little better. It still can get confused about who did what but only rarely. EventManager should handle INTERACTION triggers a little better. It still can get confused about who did what but only rarely.
devel/all-bob.lua: renames everyone Bob to help test interaction-trigger devel/all-bob.lua: renames everyone Bob to help test interaction-trigger
Fixes:
full-heal: Updated with proper argument handling.
DFHack 0.40.15-r1 DFHack 0.40.15-r1
Fixes: Fixes:

@ -3,36 +3,40 @@
--edited by expwnent --edited by expwnent
-- attempt to fully heal a selected unit, option -r to attempt to resurrect the unit -- attempt to fully heal a selected unit, option -r to attempt to resurrect the unit
local args = {...}
local resurrect = false local utils=require('utils')
local i=0
for _,arg in ipairs(args) do validArgs = validArgs or utils.invert({
if arg == '-r' or arg == '-R' then 'r',
resurrect = true 'help',
elseif tonumber(arg) then 'unit'
unit = df.unit.find(tonumber(arg)) })
elseif arg == 'help' or arg == '-help' or arg == '-h' then
local args = utils.processArgs({...}, validArgs)
if args.help then
print('full-heal: heal a unit completely from anything, optionally including death.') print('full-heal: heal a unit completely from anything, optionally including death.')
print(' full-heal [unitId]') print(' full-heal -unit [unitId]')
print(' heal the unit with the given id') print(' heal the unit with the given id')
print(' full-heal -r [unitId]') print(' full-heal -r -unit [unitId]')
print(' heal the unit with the given id and bring them back from death if they are dead') print(' heal the unit with the given id and bring them back from death if they are dead')
print(' full-heal') print(' full-heal')
print(' heal the currently selected unit') print(' heal the currently selected unit')
print(' full-heal -r') print(' full-heal -r')
print(' heal the currently selected unit and bring them back from death if they are dead') print(' heal the currently selected unit and bring them back from death if they are dead')
print(' full-heal help') print(' full-heal -help')
print(' print this help message') print(' print this help message')
return return
end end
end
unit = unit or dfhack.gui.getSelectedUnit() unit = df.unit.find(args.unit) or dfhack.gui.getSelectedUnit()
if not unit then if not unit then
qerror('Error: please select a unit or pass its id as an argument.') qerror('Error: please select a unit or pass its id as an argument.')
end end
if unit then if unit then
if resurrect then if args.r then
if unit.flags1.dead then if unit.flags1.dead then
--print("Resurrecting...") --print("Resurrecting...")
unit.flags2.slaughter = false unit.flags2.slaughter = false
@ -90,7 +94,7 @@ if unit then
unit.counters2.vomit_timeout=0 unit.counters2.vomit_timeout=0
--print("Resetting body part status...") --print("Resetting body part status...")
v=unit.body.components local v=unit.body.components
for i=0,#v.nonsolid_remaining - 1,1 do for i=0,#v.nonsolid_remaining - 1,1 do
v.nonsolid_remaining[i] = 100 -- percent remaining of fluid layers (Urist Da Vinci) v.nonsolid_remaining[i] = 100 -- percent remaining of fluid layers (Urist Da Vinci)
end end