From 5eb2eb9d6986bdd30c5f0cf65f7f08f96ce40d09 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Thu, 13 Mar 2025 14:04:56 +0800 Subject: feat: pokob show different appearances in each health state --- render/draws/objects.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'render/draws/objects.lua') 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 -- cgit v1.2.3