addHook("MobjSpawn", function(mo) if mo.type == MT_SPLISH then for i = 1, 15 do local p = P_SpawnMobj(mo.x, mo.y, mo.z, MT_PARTICLE) p.colorized = true p.color = SKINCOLOR_WHITE p.scale = FRACUNIT / 2 p.renderstyle = STYLE_Translucent p.alpha = FRACUNIT / 2 p.momz = P_RandomRange(6, 8) * FRACUNIT p.momx = P_RandomRange(-2, 2) * FRACUNIT p.momy = P_RandomRange(-2, 2) * FRACUNIT p.special1 = 0 local randg = P_RandomRange(66, 100) p.gravity = (FRACUNIT * randg) / 100 end end end) addHook("MobjThinker", function(mo) if mo.type ~= MT_PARTICLE or not mo.colorized or mo.color ~= SKINCOLOR_WHITE then return end local g = mo.gravity or FRACUNIT mo.special1 = (mo.special1 or 0) + 1 mo.momz = $ - g if mo.scale > FRACUNIT / 16 then mo.scale = $ - (mo.scale / 32) else P_RemoveMobj(mo) return end if mo.z <= mo.floorz then P_RemoveMobj(mo) end end)