64 lines
2.4 KiB
Lua
64 lines
2.4 KiB
Lua
|
-- This script will brainwash a dwarf, modifying their personality
|
||
|
-- usage is: target a unit in DF, and execute this script in dfhack
|
||
|
-- via ' lua /path/to/script '
|
||
|
-- by vjek, version 5, 20140816, for DF(hack) 40.08
|
||
|
-- Praise Armok!
|
||
|
-- for a in `awk -F= '{ print $2 }' input.txt`; do echo -n $a,; done
|
||
|
|
||
|
function brainwash_unit(profile)
|
||
|
local i,unit_name
|
||
|
|
||
|
unit=dfhack.gui.getSelectedUnit()
|
||
|
if unit==nil then
|
||
|
print ("No unit under cursor! Aborting with extreme prejudice.")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
unit_name=dfhack.TranslateName(dfhack.units.getVisibleName(unit))
|
||
|
|
||
|
print("Previous personality values for "..unit_name)
|
||
|
printall(unit.status.current_soul.personality.traits)
|
||
|
|
||
|
--now set new personality
|
||
|
for i=1, #profile do
|
||
|
unit.status.current_soul.personality.traits[i-1]=profile[i]
|
||
|
end
|
||
|
|
||
|
print("New personality values for "..unit_name)
|
||
|
printall(unit.status.current_soul.personality.traits)
|
||
|
print(unit_name.." has been brainwashed, praise Armok!")
|
||
|
end
|
||
|
|
||
|
-- main script starts here
|
||
|
-- profiles are listed here and passed to the brainwash function
|
||
|
--
|
||
|
local baseline={50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50}
|
||
|
local ideal={75,25,25,75,25,25,25,99,25,25,25,50,75,50,25,75,75,50,75,75,25,75,75,50,75,25,50,25,75,75,75,25,75,75,25,75,25,25,75,75,25,75,75,75,25,75,75,25,25,50}
|
||
|
local stepford={99,1,1,99,1,1,1,99,1,1,1,1,50,50,1,99,99,50,50,50,1,1,99,50,50,50,50,50,50,99,50,1,1,99,1,99,1,1,99,99,1,99,99,99,1,50,50,1,1,1}
|
||
|
local wrecked={1,99,99,1,99,99,99,1,99,99,99,1,1,99,99,1,1,1,1,1,99,1,1,99,1,99,99,99,1,1,1,99,1,1,99,1,99,99,1,1,99,1,1,1,99,1,1,99,99,99}
|
||
|
local opt = ...
|
||
|
|
||
|
if opt then
|
||
|
if opt=="ideal" then
|
||
|
brainwash_unit(ideal)
|
||
|
return
|
||
|
end
|
||
|
if opt=="baseline" then
|
||
|
brainwash_unit(baseline)
|
||
|
return
|
||
|
end
|
||
|
if opt=="stepford" then
|
||
|
brainwash_unit(stepford)
|
||
|
return
|
||
|
end
|
||
|
if opt=="wrecked" then
|
||
|
brainwash_unit(wrecked)
|
||
|
return
|
||
|
end
|
||
|
else
|
||
|
print ("Invalid or missing personality argument.\nValid choices are ideal , baseline , stepford, and wrecked.")
|
||
|
print ("ideal will create a reliable dwarf with generally positive personality traits.")
|
||
|
print ("baseline will reset all personality traits to a default / the average.")
|
||
|
print ("stepford amplifies all good qualities to an excessive degree.")
|
||
|
print ("wrecked amplifies all bad qualities to an excessive degree.")
|
||
|
end
|