diff --git a/SeasonsOfLoneliness.cpp b/SeasonsOfLoneliness.cpp index a68c721..21c21a2 100644 --- a/SeasonsOfLoneliness.cpp +++ b/SeasonsOfLoneliness.cpp @@ -126,6 +126,7 @@ class Entity{ std::vector moveSet; bool turnComplete=false; bool slowed=false; + int damageFrame=0; Entity(Decal*spr,std::string name,int x,int y,int hp,int maxhp,std::vectormoveset) { this->spr=spr; this->name=name; @@ -231,6 +232,8 @@ public: WEATHER_POWER*BATTLE_CARD_SELECTION=HAILSTORM; int BATTLE_CARD_SELECTION_IND=0; int PLAYER_SELECTED_TARGET=-1; + int PLAYER_MAXHP=60; + int PLAYER_HP=PLAYER_MAXHP; std::vectorMOVESET_SPIDEY; @@ -238,7 +241,7 @@ public: Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL, *PLAYER_DECAL, *WEATHERNODE_EFFECT_DECAL,*POWER_HAILSTORM_DECAL,*POWER_HURRICANE_DECAL,*POWER_METEOR_SHOWER_DECAL,*POWER_METEOR_STORM_DECAL,*POWER_SNOWSTORM_DECAL, - *SPIDEY_DECAL,*TARGETING_CIRCLE,*TARGETING_RANGE_CIRCLE; + *SPIDEY_DECAL,*TARGETING_CIRCLE,*TARGETING_RANGE_CIRCLE,*HEALTHBAR_DECAL; std::map BASE_OBJECTS; std::vector ENCOUNTERS; Encounter ENCOUNTER_SPIDEY_1; @@ -266,6 +269,7 @@ public: SPIDEY_DECAL=new Decal(new Sprite("assets/spidey.png")); TARGETING_CIRCLE=new Decal(new Sprite("assets/targetCircle.png")); TARGETING_RANGE_CIRCLE=new Decal(new Sprite("assets/targetRange.png")); + HEALTHBAR_DECAL=new Decal(new Sprite("assets/healthbar.png")); current_playerAnim.spr=PLAYER_DECAL; playerAnim.spr=PLAYER_DECAL; @@ -952,6 +956,11 @@ public: } }break; } + if (IN_BATTLE_ENCOUNTER) { + DrawStringDecal({4+1,HEIGHT-10-GetTextSize("HP:").y+1},"HP: "+std::to_string(PLAYER_HP),BLACK); + DrawStringDecal({4,HEIGHT-10-GetTextSize("HP:").y},"HP: "+std::to_string(PLAYER_HP)); + DrawHealthbar({2,HEIGHT-10},WIDTH/2,PLAYER_HP/PLAYER_MAXHP,BLACK); + } if (messageBoxVisible) { DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180)); DrawDialogBox({0,HEIGHT-48},{WIDTH,48},Pixel(18, 0, 33,180)); @@ -1021,6 +1030,11 @@ public: } } + void DrawHealthbar(vf2d pos,float width,float pct,Pixel col) { + GradientFillRectDecal(pos,{width,8},RED,RED,GREEN,GREEN); + DrawDecal(pos,HEALTHBAR_DECAL,{width/32,1},col); + } + int getPlantId(int x, int y) { return ((int)x-8)%4+((int)y-2)*4; } diff --git a/Seasons_of_Loneliness b/Seasons_of_Loneliness index daebec0..7a6926f 100755 Binary files a/Seasons_of_Loneliness and b/Seasons_of_Loneliness differ diff --git a/assets/healthbar.png b/assets/healthbar.png new file mode 100644 index 0000000..c0de7ae Binary files /dev/null and b/assets/healthbar.png differ