diff options
author | ewewukek <ewewukek@gmail.com> | 2024-03-28 21:17:02 +0300 |
---|---|---|
committer | Fedja Beader <fedja@protonmail.ch> | 2024-04-24 11:53:42 +0000 |
commit | 6c93bbe03abc5ef097607e45fa36683b55808d7d (patch) | |
tree | ce7e649fc00b8251fccede16b791974555dc8c12 | |
parent | 40b605c41542baf9b10a1a2b03af10e3baaa362f (diff) | |
download | ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.gz ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.bz2 ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.xz ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.zip |
Show MP bar below HP bar
-rw-r--r-- | src/being/being.cpp | 32 | ||||
-rw-r--r-- | src/enums/gui/usercolorid.h | 2 | ||||
-rw-r--r-- | src/gui/userpalette.cpp | 14 | ||||
-rw-r--r-- | src/gui/widgets/tabs/setup_colors.cpp | 2 |
4 files changed, 46 insertions, 4 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index ed124b472..f9079cb32 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -3999,16 +3999,40 @@ void Being::drawPlayerSpriteAt(Graphics *restrict const graphics, localPlayer == this && mAction != BeingAction::DEAD) { + int barX = x - 50 + mapTileSize / 2 + mInfo->getHpBarOffsetX(); + int barY = y + mapTileSize - 6 + mInfo->getHpBarOffsetY(); + const int barW = 2 * 50; + const int barH = 4; + + const bool drawMpBar = + PlayerInfo::getStatEffective(Attributes::PLAYER_MATK) > 0; + if (drawMpBar) + barY -= 3; + drawHpBar(graphics, PlayerInfo::getAttribute(Attributes::PLAYER_MAX_HP), PlayerInfo::getAttribute(Attributes::PLAYER_HP), 0, UserColorId::PLAYER_HP_FG, UserColorId::PLAYER_HP_BG, - x - 50 + mapTileSize / 2 + mInfo->getHpBarOffsetX(), - y + mapTileSize - 6 + mInfo->getHpBarOffsetY(), - 2 * 50, - 4); + barX, + barY, + barW, + barH); + + if (drawMpBar) + { + drawHpBar(graphics, + PlayerInfo::getAttribute(Attributes::PLAYER_MAX_MP), + PlayerInfo::getAttribute(Attributes::PLAYER_MP), + 0, + UserColorId::PLAYER_MP_FG, + UserColorId::PLAYER_MP_BG, + barX, + barY + barH + 1, + barW, + barH); + } } } diff --git a/src/enums/gui/usercolorid.h b/src/enums/gui/usercolorid.h index 3a5e91203..0607173bb 100644 --- a/src/enums/gui/usercolorid.h +++ b/src/enums/gui/usercolorid.h @@ -58,6 +58,8 @@ enumStart(UserColorId) LABEL_HP, PLAYER_HP_FG, PLAYER_HP_BG, + PLAYER_MP_FG, + PLAYER_MP_BG, MONSTER_HP_FG, MONSTER_HP_BG, HOMUN_HP_FG, diff --git a/src/gui/userpalette.cpp b/src/gui/userpalette.cpp index 8ad436a60..dbed4a93e 100644 --- a/src/gui/userpalette.cpp +++ b/src/gui/userpalette.cpp @@ -64,6 +64,8 @@ const std::string ColorTypeNames[CAST_SIZE( "", "ColorPlayerHp", "ColorPlayerHp2", + "ColorPlayerMp", + "ColorPlayerMp2", "ColorMonsterHp", "ColorMonsterHp2", "ColorHomunHp", @@ -296,6 +298,18 @@ UserPalette::UserPalette() : // TRANSLATORS: palette color _("Player HP bar (background)"), 50); + addColor(UserColorId::PLAYER_MP_FG, + 0x00a0ff, + GradientType::STATIC, + // TRANSLATORS: palette color + _("Player MP bar"), + 50); + addColor(UserColorId::PLAYER_MP_BG, + 0x303030, + GradientType::STATIC, + // TRANSLATORS: palette color + _("Player MP bar (background)"), + 50); addColor(UserColorId::MONSTER_HP_FG, 0x00ff00, GradientType::STATIC, diff --git a/src/gui/widgets/tabs/setup_colors.cpp b/src/gui/widgets/tabs/setup_colors.cpp index 0fde9b1f6..71cebc71d 100644 --- a/src/gui/widgets/tabs/setup_colors.cpp +++ b/src/gui/widgets/tabs/setup_colors.cpp @@ -367,6 +367,8 @@ void Setup_Colors::valueChanged(const SelectionEvent &event A_UNUSED) case UserColorId::ELEMENTAL_HP_BG: case UserColorId::PLAYER_HP_FG: case UserColorId::PLAYER_HP_BG: + case UserColorId::PLAYER_MP_FG: + case UserColorId::PLAYER_MP_BG: case UserColorId::FLOOR_ITEM_TEXT: case UserColorId::NET: // TRANSLATORS: colors tab. label. |