summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-03-13 14:04:56 +0800
committerEltrac <hi@guhub.cn>2025-03-13 14:04:56 +0800
commit5eb2eb9d6986bdd30c5f0cf65f7f08f96ce40d09 (patch)
treefba255be7c2bbd97b1eabf8e5fc60d28359c715c /render
parentc6e86ae57442b665d138bdb8bdbd2f7bbd9f5520 (diff)
feat: pokob show different appearances in each health state
Diffstat (limited to 'render')
-rw-r--r--render/draws/objects.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/render/draws/objects.lua b/render/draws/objects.lua
index 1699077..fea8e63 100644
--- a/render/draws/objects.lua
+++ b/render/draws/objects.lua
@@ -38,9 +38,6 @@ function draws.enemies()
for _, enemy in pairs(G.currentRoom.objects.enemies) do
local data = enemyData[enemy.type]
if data.sprite then
- -- show enemy size
-
-
-- add filter to indicate enemy status
if enemy.stunned then
love.graphics.setColor({1,0.7,0.5})
@@ -48,8 +45,21 @@ function draws.enemies()
love.graphics.setColor({0.5,0.5,0.5})
end
- -- draw sprite
+ -- handle quad index
local index = data.sprite.frames[enemy:facing()][enemy.frameTimer.currentFrame]
+ if enemy.type == "pokob" then
+ -- pokob has different appearances in different health states
+ local healthRatio = enemy.health / enemy.maxHealth
+ local breakpoints = { 0.75, 0.5, 0.25, 0 }
+ for i, breakpoint in ipairs(breakpoints) do
+ if healthRatio >= breakpoint then
+ index = index + (i-1) * 12
+ break
+ end
+ end
+ end
+
+ -- draw sprite
local r = enemy.r
local graphicR = r * enemy.zoom
local x, y = enemy.x - r, enemy.y - r