mobs:register_mob('epic:ocean_guardian', {
   type = 'monster',
   passive = false,
   attack_type = 'dogfight',
   group_attack = true,
   reach = 3,
   damage = 16,
   hp_min = 200,
   hp_max = 300,
   armor = 20,
   view_range = 7,
   stepheight = 0.2,
   collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
   visual = 'mesh',
   mesh = 'epic_guardians.b3d',
   textures = {
      {'epic_guardians.png'},
   },
   visual_size = {x=9, y=9},
   walk_velocity = 1,
   run_velocity = 3,
   fly = true,
   stand_chance = 0,
   fly_in = 'default:water_source',
   stay_near = {'ocean:sea_lantern', 10},
   drops = {
      {name = 'ocean:prismarine_crystals', chance = 10, min = 0, max = 3,},
      {name = 'ocean:prismarine_shard', chance = 10, min = 0, max = 4,},
      {name = 'epic:trident', chance = 200, min = 1, max = 1,}
   },
   immune_to = {{'epic:trident', 20},},
   lava_damage = 15,
   light_damage = 0,
   fall_damage = 0,
   fear_height = 5,
   animation = {
      speed_normal = 15,
      speed_fly = 10,
      stand_start = 0,
      stand_end = 60,
      fly_start = 0,
      fly_end = 60,
      punch_start = 65,
      punch_end = 105,
   },
   do_custom = function(self, dtime)
      self.dtime = (self.dtime or 0) + dtime
      if self.dtime < 5 then
         return
      end
      if self.standing_in ~= 'default:water_source' then
         self.health = self.health - 10
      end
      self.dtime = 0
   end,
})

mobs:spawn({
   name = 'epic:ocean_guardian',
   nodes = {'default:water_source', 'default:water_flowing'},
   neighbors = {'ocean:sea_lantern', 'ocean:prismarine'},
   min_height = -50,
   max_height = 0,
   interval = 10,
   chance = 100,
})
