forked from github/server
b53d01eb18
https://bugs.eressea.de/view.php?id=1890 fixed by creating a give order instead of calling give_item directly.
44 lines
1.1 KiB
Lua
44 lines
1.1 KiB
Lua
local function create_ents(r, number)
|
|
local f = get_faction(666)
|
|
if f~=nil and number>0 then
|
|
u = unit.create(f, r, number, "ent")
|
|
u.name = "Wütende Ents"
|
|
u:set_skill("perception", 2)
|
|
|
|
msg = message.create("entrise")
|
|
msg:set_region("region", r)
|
|
msg:send_region(r)
|
|
return u
|
|
end
|
|
return nil
|
|
end
|
|
|
|
local function repair_ents(r)
|
|
for u in r.units do
|
|
if u.faction.id==666 and u.race == "undead" and u.name == "Wütende Ents" then
|
|
eressea.log.info("ent repair: " .. tostring(u))
|
|
u.race = "ent"
|
|
end
|
|
end
|
|
end
|
|
|
|
local ents = {}
|
|
|
|
function ents.update()
|
|
local r
|
|
for r in regions() do
|
|
repair_ents(r)
|
|
if r:get_flag(0) then -- RF_CHAOTIC
|
|
if r.terrain == "plain" and r:get_resource("tree")==0 then
|
|
if math.random(3)==1 then
|
|
u = create_ents(r, math.random(30))
|
|
if u ~= nil then
|
|
r:set_resource("tree", u.number)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return ents
|