Skip to content

Commit

Permalink
Merge remote-tracking branch 'ahlove3/master' into myk_rejuvenate
Browse files Browse the repository at this point in the history
  • Loading branch information
myk002 committed Sep 7, 2024
2 parents 64af1a4 + e608d2f commit a4cc736
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions rejuvenate.lua
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,36 @@ function rejuvenate(unit, force, dry_run, age)
unit.old_year = new_birth_year + 160
end
if unit.profession == df.profession.BABY or unit.profession == df.profession.CHILD then
if unit.profession == df.profession.BABY then
local leftoverUnits = {}
local shiftedLeftoverUnits = {}
-- create a copy
local babyUnits = df.global.world.units.other.ANY_BABY
-- create a new table with the units that aren't being removed in this iteration
for _, v in ipairs(babyUnits) do
if not v.id == unit.id then
table.insert(leftoverUnits, v)
end
end
-- create a shifted table of the leftover units to make up for lua tables starting with index 1 and the game starting with index 0
for i = 0, #leftoverUnits - 1, 1 do
local x = i+1
shiftedLeftoverUnits[i] = leftoverUnits[x]
end
-- copy the leftover units back to the game table
df.global.world.units.other.ANY_BABY = shiftedLeftoverUnits
-- set extra flags to defaults
unit.flags1.rider = false
unit.relationship_ids.RiderMount = -1
unit.mount_type = 0
unit.profession2 = df.profession.STANDARD
unit.idle_area_type = 26
unit.mood = -1

-- let the mom know she isn't carrying anyone anymore
local motherUnitId = unit.relationship_ids.Mother
df.unit.find(motherUnitId).flags1.ridden = false
end
unit.profession = df.profession.STANDARD
end
print(name .. ' is now ' .. age .. ' years old and will live to at least 160')
Expand Down

0 comments on commit a4cc736

Please sign in to comment.