1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00

vcmi: magicResistance is IFactionMember property

It is no reason to keep it inside IBonusBearer
This commit is contained in:
Konstantin
2023-04-26 23:40:21 +03:00
parent 4f7035d3ff
commit f4f0fd5945
7 changed files with 14 additions and 16 deletions

View File

@ -38,6 +38,10 @@ public:
Returns native terrain considering some terrain bonuses.
*/
virtual Identifier<ETerrainId> getNativeTerrain() const;
/**
Returns magic resistance considering some bonuses.
*/
virtual int32_t magicResistance() const;
};
class DLL_LINKAGE Entity

View File

@ -38,4 +38,11 @@ TerrainId IFactionMember::getNativeTerrain() const
? any : VLC->factions()->getById(getFaction())->getNativeTerrain();
}
int32_t IFactionMember::magicResistance() const
{
si32 val = getBonusBearer()->valOfBonuses(Selector::type()(Bonus::MAGIC_RESISTANCE));
vstd::amin (val, 100);
return val;
}
VCMI_LIB_NAMESPACE_END

View File

@ -736,13 +736,6 @@ int CStackInstance::getLevel() const
return std::max(1, static_cast<int>(type->getLevel()));
}
si32 CStackInstance::magicResistance() const
{
si32 val = valOfBonuses(Selector::type()(Bonus::MAGIC_RESISTANCE));
vstd::amin (val, 100);
return val;
}
void CStackInstance::giveStackExp(TExpType exp)
{
int level = type->getLevel();

View File

@ -106,7 +106,6 @@ public:
std::string getQuantityTXT(bool capitalized = true) const;
virtual int getExpRank() const;
virtual int getLevel() const; //different for regular stack and commander
si32 magicResistance() const override;
CreatureID getCreatureID() const; //-1 if not available
std::string getName() const; //plural or singular
virtual void init();

View File

@ -12,6 +12,7 @@
#include <vstd/RNG.h>
#include <vcmi/Entity.h>
#include <vcmi/ServerCallback.h>
#include "CGeneralTextHandler.h"
@ -88,7 +89,7 @@ ui32 CStack::level() const
si32 CStack::magicResistance() const
{
auto magicResistance = IBonusBearer::magicResistance();
auto magicResistance = IFactionMember::magicResistance();
si32 auraBonus = 0;

View File

@ -795,11 +795,6 @@ int IBonusBearer::getPrimSkillLevel(PrimarySkill::PrimarySkill id) const
return ret; //sp=0 works in old saves
}
si32 IBonusBearer::magicResistance() const
{
return valOfBonuses(Bonus::MAGIC_RESISTANCE);
}
ui32 IBonusBearer::Speed(int turn, bool useBind) const
{
//war machines cannot move

View File

@ -760,7 +760,6 @@ public:
ui32 MaxHealth() const; //get max HP of stack with all modifiers
bool isLiving() const; //non-undead, non-non living or alive
virtual si32 magicResistance() const;
ui32 Speed(int turn = 0, bool useBind = false) const; //get speed of creature with all modificators
int getPrimSkillLevel(PrimarySkill::PrimarySkill id) const;