diff options
| author | Eltrac <hi@guhub.cn> | 2025-03-13 14:04:56 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-03-13 14:04:56 +0800 |
| commit | 5eb2eb9d6986bdd30c5f0cf65f7f08f96ce40d09 (patch) | |
| tree | fba255be7c2bbd97b1eabf8e5fc60d28359c715c /render | |
| parent | c6e86ae57442b665d138bdb8bdbd2f7bbd9f5520 (diff) | |
feat: pokob show different appearances in each health state
Diffstat (limited to 'render')
| -rw-r--r-- | render/draws/objects.lua | 18 |
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 |
