1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-13 01:20:34 +02:00

display attack type(melee/ranged) in popup window

This commit is contained in:
kdmcser
2024-10-02 19:08:40 +08:00
parent 7f8f09c8fa
commit 4896b51a5d
4 changed files with 26 additions and 9 deletions

View File

@ -66,6 +66,18 @@ std::string CGCreature::getHoverText(const CGHeroInstance * hero) const
}
}
std::string CGCreature::getMonsterLevelText() const
{
std::string monsterLevel = VLC->generaltexth->translate("vcmi.adventureMap.monsterLevel");
bool isRanged = VLC->creatures()->getById(getCreature())->getBonusBearer()->hasBonusOfType(BonusType::SHOOTER);
std::string attackTypeKey = isRanged ? "vcmi.adventureMap.monsterRangedType" : "vcmi.adventureMap.monsterMeleeType";
std::string attackType = VLC->generaltexth->translate(attackTypeKey);
boost::replace_first(monsterLevel, "%TOWN", (*VLC->townh)[VLC->creatures()->getById(getCreature())->getFaction()]->getNameTranslated());
boost::replace_first(monsterLevel, "%LEVEL", std::to_string(VLC->creatures()->getById(getCreature())->getLevel()));
boost::replace_first(monsterLevel, "%ATTACK_TYPE", attackType);
return monsterLevel;
}
std::string CGCreature::getPopupText(const CGHeroInstance * hero) const
{
std::string hoverName;
@ -102,11 +114,7 @@ std::string CGCreature::getPopupText(const CGHeroInstance * hero) const
if (settings["general"]["enableUiEnhancements"].Bool())
{
std::string monsterLevel = VLC->generaltexth->translate("vcmi.adventureMap.monsterLevel");
boost::replace_first(monsterLevel, "%TOWN", (*VLC->townh)[VLC->creatures()->getById(getCreature())->getFaction()]->getNameTranslated());
boost::replace_first(monsterLevel, "%LEVEL", std::to_string(VLC->creatures()->getById(getCreature())->getLevel()));
hoverName += monsterLevel;
hoverName += getMonsterLevelText();
hoverName += VLC->generaltexth->translate("vcmi.adventureMap.monsterThreat.title");
int choice;
@ -131,7 +139,12 @@ std::string CGCreature::getPopupText(const CGHeroInstance * hero) const
std::string CGCreature::getPopupText(PlayerColor player) const
{
return getHoverText(player);
std::string hoverName = getHoverText(player);
if (settings["general"]["enableUiEnhancements"].Bool())
{
hoverName += getMonsterLevelText();
}
return hoverName;
}
std::vector<Component> CGCreature::getPopupComponents(PlayerColor player) const

View File

@ -81,7 +81,7 @@ private:
int takenAction(const CGHeroInstance *h, bool allowJoin=true) const; //action on confrontation: -2 - fight, -1 - flee, >=0 - will join for given value of gold (may be 0)
void giveReward(const CGHeroInstance * h) const;
std::string getMonsterLevelText() const;
};
VCMI_LIB_NAMESPACE_END