1-- Explosion enemy. Just an explosion.
2
3local enemy = ...
4local game = enemy:get_game()
5local map = enemy:get_map()
6local sound = "explosion" -- Default explosion sound.
7
8-- Event called when the enemy is initialized.
9function enemy:on_created()
10
11  -- Initialize the properties of your enemy here,
12  -- like the sprite, the life and the damage.
13  enemy:prepare_explosion_sprite()
14  enemy:set_invincible() -- Invincible!!!
15  enemy:set_life(1)
16  enemy:set_damage(12) -- Damage: 3 full hearts!!!
17  enemy:set_layer_independent_collisions(true) -- Detect collisions from any layer.
18  -- Play explosion sound!!!
19  sol.audio.play_sound(sound)
20end
21
22-- Prepare sprite. Parameters are optional.
23function enemy:prepare_explosion_sprite(sprite_id, sprite_animation, direction)
24  -- Remove previous sprite.
25  local explosion_sprite = self:get_sprite()
26  if explosion_sprite then self:remove_sprite(explosion_sprite) end
27  -- Create new sprite.
28  local id = sprite_id or "destructibles/vase_purple"
29  local animation = sprite_animation or "destroy"
30  local dir = direction or 0
31  explosion_sprite = self:create_sprite(id)
32  explosion_sprite:set_animation(animation)
33  explosion_sprite:set_direction(dir)
34  -- Remove explosion after explosion animation.
35  function explosion_sprite:on_animation_finished()
36    enemy:remove()
37  end
38end
39