aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/pets/animations.lua5
-rw-r--r--lua/pets/pets/slime.lua7
-rw-r--r--media/slime/green/split_die/0.pngbin0 -> 465 bytes
-rw-r--r--media/slime/green/split_die/1.pngbin0 -> 458 bytes
-rw-r--r--media/slime/green/split_die/2.pngbin0 -> 453 bytes
-rw-r--r--media/slime/green/split_die/3.pngbin0 -> 455 bytes
-rw-r--r--media/slime/green/split_die/4.pngbin0 -> 439 bytes
-rw-r--r--media/slime/green/split_die/5.pngbin0 -> 411 bytes
-rw-r--r--media/slime/green/split_die/6.pngbin0 -> 366 bytes
-rw-r--r--media/slime/green/split_die/7.pngbin0 -> 318 bytes
10 files changed, 10 insertions, 2 deletions
diff --git a/lua/pets/animations.lua b/lua/pets/animations.lua
index e4462a2..1b685d9 100644
--- a/lua/pets/animations.lua
+++ b/lua/pets/animations.lua
@@ -54,6 +54,7 @@ function M.Animation.new(sourcedir, type, style, popup, user_opts, state)
instance.idle_actions = pet.idle_actions
instance.movements = pet.movements
instance.first_action = pet.first_action
+ instance.get_death_animation = pet.get_death_animation
return instance
end
@@ -158,12 +159,12 @@ end
-- @function decide which action comes after the current_action
function M.Animation:set_next_action()
if self.dying then
- if self.current_action == "die" then
+ if vim.startswith(self.current_action, "die") or vim.endswith(self.current_action, "die") then
self.dead = true
M.Animation.stop(self)
self.popup:unmount()
end
- self.current_action = "die"
+ self.current_action = self.get_death_animation(self.current_action)
return
end
if self.state.idle then
diff --git a/lua/pets/pets/slime.lua b/lua/pets/pets/slime.lua
index da86c0d..ccdca88 100644
--- a/lua/pets/pets/slime.lua
+++ b/lua/pets/pets/slime.lua
@@ -26,4 +26,11 @@ return {
normal = { "walk_left" },
},
},
+ get_death_animation = function(current_action)
+ local split_animations = { "split_idle", "divide", "split_walk", "split_swap" }
+ if vim.tbl_contains(split_animations, current_action) then
+ return "split_die"
+ end
+ return "die"
+ end,
}
diff --git a/media/slime/green/split_die/0.png b/media/slime/green/split_die/0.png
new file mode 100644
index 0000000..a46d1fb
--- /dev/null
+++ b/media/slime/green/split_die/0.png
Binary files differ
diff --git a/media/slime/green/split_die/1.png b/media/slime/green/split_die/1.png
new file mode 100644
index 0000000..643fa5b
--- /dev/null
+++ b/media/slime/green/split_die/1.png
Binary files differ
diff --git a/media/slime/green/split_die/2.png b/media/slime/green/split_die/2.png
new file mode 100644
index 0000000..44b14d1
--- /dev/null
+++ b/media/slime/green/split_die/2.png
Binary files differ
diff --git a/media/slime/green/split_die/3.png b/media/slime/green/split_die/3.png
new file mode 100644
index 0000000..29a4115
--- /dev/null
+++ b/media/slime/green/split_die/3.png
Binary files differ
diff --git a/media/slime/green/split_die/4.png b/media/slime/green/split_die/4.png
new file mode 100644
index 0000000..d4f929d
--- /dev/null
+++ b/media/slime/green/split_die/4.png
Binary files differ
diff --git a/media/slime/green/split_die/5.png b/media/slime/green/split_die/5.png
new file mode 100644
index 0000000..9fb0540
--- /dev/null
+++ b/media/slime/green/split_die/5.png
Binary files differ
diff --git a/media/slime/green/split_die/6.png b/media/slime/green/split_die/6.png
new file mode 100644
index 0000000..ec60765
--- /dev/null
+++ b/media/slime/green/split_die/6.png
Binary files differ
diff --git a/media/slime/green/split_die/7.png b/media/slime/green/split_die/7.png
new file mode 100644
index 0000000..faa5274
--- /dev/null
+++ b/media/slime/green/split_die/7.png
Binary files differ