100 lines
2.9 KiB
Lua

local random = math.random
local ceil = math.ceil
local floor = math.floor
function create_stone_particles(surface, count, position,height_mp)
if not height_mp then height_mp=1 end
for x=1,count do
surface.create_particle{
position = position,
name = 'stone-particle-medium',
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
frame_speed = 1,
vertical_speed = random(12, 14) * 0.01,
height = random(9, 11) * 0.1 * height_mp,
}
end
end
function create_blood_particles(surface, count, position,height_mp)
if not height_mp then height_mp=1 end
for x=1,count do
surface.create_particle({
position = position,
name = 'blood-particle',
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
frame_speed = 1,
vertical_speed = random(10, 12) * 0.01,
height = random(5, 15) * 0.1 * height_mp,
})
end
end
function create_water_particles(surface, count, position,height_mp)
if not height_mp then height_mp=1 end
for x=1,count do
surface.create_particle({
position = position,
name = 'water-particle',
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
frame_speed = 1,
vertical_speed = random(10, 12) * 0.01,
height = random(5, 15) * 0.1 *height_mp,
})
end
end
function create_remnants_particles(surface, count, position,height_mp)
if not height_mp then height_mp=1 end
for x=1,count do
surface.create_particle({
position = position,
name = 'explosion-remnants-particle',
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
frame_speed = 1,
vertical_speed = random(10, 12) * 0.01,
height = random(5, 15) * 0.1 * height_mp,
})
end
end
--
local function create_ceiling_prototype(particle, x, y,height)
if not height then height=3 end
return {
name = particle,
position = {x = x + random(0, 1), y = y + random(0, 1)},
movement = {random(-5, 5) * 0.002, random(-5, 5) * 0.002},
frame_speed = 1,
vertical_speed = 0,
height = height
}
end
function create_ceiling_drops(surface, position,count)
local x = position.x
local y = position.y
local smoke_scale = ceil(count/2)
local stone_scale = count
for i = 1, smoke_scale do
surface.create_particle( create_ceiling_prototype('explosion-remnants-particle', x, y))
end
for i = smoke_scale + 1, smoke_scale + stone_scale do
surface.create_particle( create_ceiling_prototype('stone-particle', x, y))
end
end
function create_water_drops(surface, position,count,height)
local x = position.x
local y = position.y
for i = 1, count do
surface.create_particle( create_ceiling_prototype('water-particle', x, y,height))
end
end