function powermaul.init()

 local powermaul_spark = load_particle("powermaul_spark.obj")
 local powermaul_shaft = load_particle("powermaul_shaft.obj")

 function powermaul.spark(worm)
  if worm:health() > 0 then

   local x2 = worm:data().powermaul_x
   local y2 = worm:data().powermaul_y

   local powermaul = worm:data().powermaul
   local powermaul_d = worm:data().powermaul_d

   if powermaul then
    if powermaul_d then
     powermaul = powermaul + powermaul_d
     if powermaul == 45 then
      powermaul_d = -2.5
     end
     if powermaul == -80 then
      powermaul_d = 0
     end
    end
   else
    powermaul = -80
   end

   worm:data().powermaul_d = powermaul_d
   worm:data().powermaul = powermaul

   local spark = worm:shoot(powermaul_spark, 1, 0, 0, 0, 0, 10, powermaul, 7+math.random(-2,2) + powermaul * 0.02)
   worm:shoot(powermaul_shaft, 1, 7 + powermaul * 0.02, 0, 0, 0, 0, powermaul, 0, 0)
   local x1,y1 = spark:pos()
   if x2 then
    spark:set_pos(x2, y2)
   end
   worm:data().powermaul_x = x1
   worm:data().powermaul_y = y1
  end
 end

 function powermaul.shoot(worm)
  worm:data().powermaul_d = 5
 end

end