TNT: Limit amount of stacks ejected.

We apply a log scale to the size of the stacks ejected, so that
in larger explosions we are getting larger stacks. For normal r=3
explosions, this gives stack sizes ~6-7 or so, but for r=10 explosions
it could end up giving stacks of 25+.V
This commit is contained in:
Auke Kok 2016-03-22 21:25:44 -07:00 committed by paramat
parent 3ddff2fbea
commit 8c801529df

View File

@ -49,8 +49,9 @@ local function eject_drops(drops, pos, radius)
local drop_pos = vector.new(pos) local drop_pos = vector.new(pos)
for _, item in pairs(drops) do for _, item in pairs(drops) do
local count = item:get_count() local count = item:get_count()
local take_est = math.log(count * count) + math.random(0,4) - 2
while count > 0 do while count > 0 do
local take = math.min(math.random(2,5), local take = math.min(take_est,
item:get_count(), item:get_count(),
item:get_stack_max()) item:get_stack_max())
rand_pos(pos, drop_pos, radius) rand_pos(pos, drop_pos, radius)