local types = require('openmw.types')
local core = require('openmw.core')
local I = require('openmw.interfaces')
local self = require('openmw.self')
--local nearby = require('openmw.nearby')
local util = require('openmw.util')
--local camera = require('openmw.camera')
local time = require('openmw_aux.time')

local function onActive()
  if self.cell.waterLevel and self.cell.isExterior then
    time.runRepeatedly(function()
  
        local effect = core.magic.effects.records[core.magic.EFFECT_TYPE.FireDamage].hitStatic
        local model = types.Static.records[effect].model
        
        for i= 1 , 8 do     
          
          local R = 250
          local x = R * math.cos(math.rad(45)*i)
          local y = R * math.sin(math.rad(45)*i)

          local trans = util.transform
          local rotate = trans.rotateZ(self.rotation:getYaw()) * util.vector3(x, y ,0)
          
          local z      
          local land = core.land.getHeightAt(self.position + rotate,self.cell)
            if land < self.cell.waterLevel then 
              z = self.cell.waterLevel          

              local pos = util.vector3(self.position.x,self.position.y,z) + rotate            
              core.sendGlobalEvent('SpawnVfx', {model = model, position = pos })

              -- you can do other resultng effects here
            end        

       end
    end,1*time.second)
  end
end

return { engineHandlers = { onActive = onActive } }