Skip to content
Snippets Groups Projects
Commit ffede599 authored by dg's avatar dg
Browse files

better

git-svn-id: http://svn.net-core.org/repos/t-engine4@5476 51575b47-30f0-44d4-a5cc-537603b46e54
parent ebd045bf
No related branches found
No related tags found
No related merge requests found
......@@ -1897,14 +1897,22 @@ function _M:startEvents()
-- If we allow it, try to find a level to host it
if (e.always or rng.percent(e.percent)) and (not e.unique or not self:doneEvent(e.name)) then
local lev = nil
local forbid = e.forbid or {}
forbid = table.reverse(forbid)
if game.zone.events.one_per_level then
local list = {}
for i = 1, #levels do if #levels[i] == 0 then list[#list+1] = i end end
for i = 1, #levels do if #levels[i] == 0 and not forbid[i] then list[#list+1] = i end end
if #list > 0 then
lev = rng.table(list)
end
else
lev = rng.range(1, game.zone.max_level)
if forbid then
local t = table.genrange(1, game.zone.max_level, true)
t = table.minus_keys(t, forbid)
lev = rng.table(table.keys(t))
else
lev = rng.range(1, game.zone.max_level)
end
end
if lev then
......@@ -1914,8 +1922,10 @@ function _M:startEvents()
end
end
for i, e in ipairs(mevts) do
local forbid = e.forbid or {}
forbid = table.reverse(forbid)
for lev = 1, game.zone.max_level do
if rng.percent(e.percent) then
if rng.percent(e.percent) and not forbid[lev] then
local lev = levels[lev]
lev[#lev+1] = e.name
......
......@@ -19,5 +19,5 @@
return { one_per_level=true,
{group="fareast-generic", percent_factor=1.5},
{name="antimagic-bush", minor=true, percent=80, max_repeat=3},
{name="antimagic-bush", minor=true, percent=80, max_repeat=3, forbid={1,3,5}},
}
......@@ -20,4 +20,5 @@
return { one_per_level=true,
{group="fareast-generic", percent_factor=1.5},
{name="whistling-vortex", minor=true, percent=50},
{name="necrotic-air", minor=true, percent=100, max_repeat=3},
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment