Healthbars work

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 27d30a5da9
commit 7f260ee954
  1. 6
      SeasonsOfLoneliness.cpp

@ -1135,6 +1135,7 @@ public:
} else { } else {
DrawDecal({(enc.x+ent.x-PLAYER_COORDS[0])*32+WIDTH/2,(enc.y+ent.y-PLAYER_COORDS[1])*32+HEIGHT/2},ent.spr); 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) { 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}); 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) { 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); DrawDecal(pos,HEALTHBAR_DECAL,{width/32,1},col);
} }
@ -1375,6 +1376,7 @@ public:
ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp); ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp);
DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount); DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount);
BATTLE_DISPLAY_NUMBERS.push_back(numb); BATTLE_DISPLAY_NUMBERS.push_back(numb);
ent->damageFrame=frameCount;
} }
} }
} }
@ -1387,10 +1389,12 @@ public:
ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp); ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp);
DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount); DisplayNumber numb(finalDamage,ent->x,ent->y,frameCount);
BATTLE_DISPLAY_NUMBERS.push_back(numb); BATTLE_DISPLAY_NUMBERS.push_back(numb);
ent->damageFrame=frameCount;
} }
} }
} else { } else {
PLAYER_HP=std::clamp(PLAYER_HP-finalDamage,0,PLAYER_MAXHP); 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); BATTLE_DISPLAY_NUMBERS.push_back(numb);
} }
} }

Loading…
Cancel
Save