Advertisement
Guest User

Untitled

a guest
Sep 17th, 2022
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. local utils = require('utils')
  2.  
  3. local validArgs = utils.invert({
  4. "q",
  5. "b",
  6. "f",
  7. })
  8.  
  9. local args = utils.processArgs({...}, validArgs)
  10.  
  11. function item_description(item)
  12. return dfhack.df2console( dfhack.items.getDescription(item, 0, true) )
  13. end
  14.  
  15. local function unit_name(unit)
  16. return dfhack.df2console(dfhack.TranslateName(dfhack.units.getVisibleName(unit)))
  17. end
  18.  
  19. function find_squad_position(unit)
  20. for i, squad in pairs( df.global.world.squads.all ) do
  21. for i, position in pairs( squad.positions ) do
  22. if position.occupant == unit.hist_figure_id then
  23. return position
  24. end
  25. end
  26. end
  27. return nil
  28. end
  29.  
  30. local unit = dfhack.gui.getSelectedUnit()
  31. if not unit then
  32. qerror('unit not selected')
  33. end
  34.  
  35. local position = find_squad_position(unit)
  36.  
  37. if not position then
  38. qerror("unit's squad position not found")
  39. end
  40.  
  41. local items = { }
  42. if args.q then table.insert(items, "quiver") end
  43. if args.b then table.insert(items, "backpack") end
  44. if args.f then table.insert(items, "flask") end
  45. if #items == 0 then items = { "quiver", "backpack", "flask" } end
  46.  
  47. for i, itemname in pairs( items ) do
  48. local item_id = position[itemname]
  49. local item = df.item.find(item_id)
  50. local item_desc
  51. if item then
  52. item_desc = item_description(item)
  53. end
  54.  
  55. print("unit", unit_name(unit), itemname, position[itemname], item_id, item, item_desc)
  56.  
  57. position[itemname] = -1
  58. end
  59.  
  60. unit.military.pickup_flags.update = true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement