From 7f260ee95430ad6098da04154bc54c04716866c7 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 28 Aug 2022 20:55:07 -0500 Subject: [PATCH] Healthbars work Co-authored-by: sigonasr2 --- SeasonsOfLoneliness.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/SeasonsOfLoneliness.cpp b/SeasonsOfLoneliness.cpp index e300066..0b61442 100644 --- a/SeasonsOfLoneliness.cpp +++ b/SeasonsOfLoneliness.cpp @@ -1135,6 +1135,7 @@ public: } else { DrawDecal({(enc.x+ent.x-PLAYER_COORDS[0])*32+WIDTH/2,(enc.y+ent.y-PLAYER_COORDS[1])*32+HEIGHT/2},ent.spr); } + DrawHealthbar({(enc.x+ent.x-PLAYER_COORDS[0])*32+WIDTH/2,(enc.y+ent.y-PLAYER_COORDS[1])*32+HEIGHT/2+ent.spr->sprite->height+2},ent.spr->sprite->width,ent.hp/ent.maxhp,BLACK); } if (targetX!=-1&&targetY!=-1) { DrawDecal({(enc.x+targetX-PLAYER_COORDS[0])*32+WIDTH/2-BATTLE_CARD_SELECTION->range+16,(enc.y+targetY-PLAYER_COORDS[1])*32+HEIGHT/2-BATTLE_CARD_SELECTION->range+16},TARGETING_RANGE_CIRCLE,{BATTLE_CARD_SELECTION->range*2/32.0,BATTLE_CARD_SELECTION->range*2/32.0},{255,60,0,(0.5*(float)sin(frameCount*4/60.0)+0.5)*100}); @@ -1143,7 +1144,7 @@ public: } void DrawHealthbar(vf2d pos,float width,float pct,Pixel col) { - GradientFillRectDecal(pos,{width,8},RED,RED,GREEN,GREEN); + GradientFillRectDecal(pos,{width*pct,8},RED,RED,Pixel((1/pct)*255,255*pct,0,255)); DrawDecal(pos,HEALTHBAR_DECAL,{width/32,1},col); } @@ -1375,6 +1376,7 @@ public: ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp); DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount); BATTLE_DISPLAY_NUMBERS.push_back(numb); + ent->damageFrame=frameCount; } } } @@ -1387,10 +1389,12 @@ public: ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp); DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount); BATTLE_DISPLAY_NUMBERS.push_back(numb); + ent->damageFrame=frameCount; } } } else { PLAYER_HP=std::clamp(PLAYER_HP-finalDamage,0,PLAYER_MAXHP); + DisplayNumber numb(finalDamage,PLAYER_COORDS[0],PLAYER_COORDS[1],frameCount); BATTLE_DISPLAY_NUMBERS.push_back(numb); } }