From 8ec232570be21702344efa1980ee23164e672196 Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 27 Nov 2015 16:12:34 -0500 Subject: [PATCH] Fix some emigration issues See #730 --- scripts/emigration.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/scripts/emigration.lua b/scripts/emigration.lua index d523177bf..aba62fa2b 100644 --- a/scripts/emigration.lua +++ b/scripts/emigration.lua @@ -26,7 +26,7 @@ end function desireToStay(unit,method,civ_id) -- on a percentage scale - value = 100 - unit.status.current_soul.personality.stress_level / 5000 + local value = 100 - unit.status.current_soul.personality.stress_level / 5000 if method == 'merchant' or method == 'diplomat' then if civ_id ~= unit.civ_id then value = value*2 end end if method == 'wild' then @@ -60,12 +60,12 @@ function canLeave(unit) if skill.rating > 14 then return false end end if unit.flags1.caged - or u.race ~= df.global.ui.race_id - or u.civ_id ~= df.global.ui.civ_id - or dfhack.units.isDead(u) - or dfhack.units.isOpposedToLife(u) - or u.flags1.merchant - or u.flags1.diplomat + or unit.race ~= df.global.ui.race_id + or unit.civ_id ~= df.global.ui.civ_id + or dfhack.units.isDead(unit) + or dfhack.units.isOpposedToLife(unit) + or unit.flags1.merchant + or unit.flags1.diplomat or unit.flags1.chained or dfhack.units.getNoblePositions(unit) ~= nil or unit.military.squad_id ~= -1 @@ -109,8 +109,10 @@ function checkmigrationnow() end local function event_loop() - checkmigrationnow() - dfhack.timeout(1, 'months', event_loop) + if enabled then + checkmigrationnow() + dfhack.timeout(1, 'months', event_loop) + end end dfhack.onStateChange.loadEmigration = function(code)