Skip to content

Commit daccfaa

Browse files
committed
Fixed a number of checks
1 parent ecfb94a commit daccfaa

1 file changed

Lines changed: 19 additions & 17 deletions

File tree

emigration.lua

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,27 @@ function desert(u,method,civ)
5656
end
5757

5858
function canLeave(unit)
59+
if not unit.status.current_soul then
60+
return false
61+
end
62+
5963
for _, skill in pairs(unit.status.current_soul.skills) do
6064
if skill.rating > 14 then return false end
6165
end
62-
if unit.flags1.caged
63-
or unit.race ~= df.global.ui.race_id
64-
or unit.civ_id ~= df.global.ui.civ_id
65-
or dfhack.units.isDead(unit)
66-
or dfhack.units.isOpposedToLife(unit)
67-
or unit.flags1.merchant
68-
or unit.flags1.diplomat
69-
or unit.flags1.chained
70-
or dfhack.units.getNoblePositions(unit) ~= nil
71-
or unit.military.squad_id ~= -1
72-
or dfhack.units.isCitizen(unit)
73-
or dfhack.units.isSane(unit)
74-
or unit.profession ~= 103
75-
or not dfhack.units.isDead(unit)
76-
then return false end
77-
return true
66+
67+
return dfhack.units.isOwnRace(unit) and -- Doubtful check. naturalized citizens
68+
dfhack.units.isOwnCiv(unit) and -- might also want to leave.
69+
not dfhack.units.isActive(unit) and
70+
not dfhack.units.isOpposedToLife(unit) and
71+
not unit.flags1.merchant and
72+
not unit.flags1.diplomat and
73+
not unit.flags1.chained and
74+
dfhack.units.getNoblePositions(unit) == nil and
75+
unit.military.squad_id == -1 and
76+
dfhack.units.isCitizen(unit) and
77+
dfhack.units.isSane(unit) and
78+
not dfhack.units.isBaby(unit) and
79+
not dfhack.units.isChild(unit)
7880
end
7981

8082
function checkForDeserters(method,civ_id)
@@ -94,7 +96,7 @@ function checkmigrationnow()
9496
for i=0, #allUnits-1 do
9597
local unit = allUnits[i]
9698
if dfhack.units.isSane(unit)
97-
and not dfhack.units.isDead(unit)
99+
and dfhack.units.isActive(unit)
98100
and not dfhack.units.isOpposedToLife(unit)
99101
and not unit.flags1.tame
100102
then

0 commit comments

Comments
 (0)