mirror of
https://github.com/vcmi/vcmi.git
synced 2025-04-25 12:14:46 +02:00
Using hero's stats instead of level to determine their role.
Since there are custom maps/campaigns in which heroes have pretty high base-stats even at level 1.
This commit is contained in:
parent
60084243af
commit
2b99414793
@ -95,7 +95,7 @@ float HeroManager::evaluateSpeciality(const CGHeroInstance * hero) const
|
|||||||
|
|
||||||
float HeroManager::evaluateFightingStrength(const CGHeroInstance * hero) const
|
float HeroManager::evaluateFightingStrength(const CGHeroInstance * hero) const
|
||||||
{
|
{
|
||||||
return evaluateSpeciality(hero) + wariorSkillsScores.evaluateSecSkills(hero) + hero->level * 1.5f;
|
return evaluateSpeciality(hero) + wariorSkillsScores.evaluateSecSkills(hero) + hero->getBasePrimarySkillValue(PrimarySkill::ATTACK) + hero->getBasePrimarySkillValue(PrimarySkill::DEFENSE) + hero->getBasePrimarySkillValue(PrimarySkill::SPELL_POWER) + hero->getBasePrimarySkillValue(PrimarySkill::KNOWLEDGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HeroManager::update()
|
void HeroManager::update()
|
||||||
|
@ -1898,5 +1898,11 @@ const IOwnableObject * CGHeroInstance::asOwnable() const
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CGHeroInstance::getBasePrimarySkillValue(PrimarySkill which) const
|
||||||
|
{
|
||||||
|
std::string cachingStr = "type_PRIMARY_SKILL_base_" + std::to_string(static_cast<int>(which));
|
||||||
|
auto selector = Selector::typeSubtype(BonusType::PRIMARY_SKILL, BonusSubtypeID(which)).And(Selector::sourceType()(BonusSource::HERO_BASE_SKILL));
|
||||||
|
return valOfBonuses(selector, cachingStr);
|
||||||
|
}
|
||||||
|
|
||||||
VCMI_LIB_NAMESPACE_END
|
VCMI_LIB_NAMESPACE_END
|
||||||
|
@ -229,6 +229,7 @@ public:
|
|||||||
double getHeroStrengthForCampaign() const; // includes fighting and the for-campaign-version of magic strength
|
double getHeroStrengthForCampaign() const; // includes fighting and the for-campaign-version of magic strength
|
||||||
ui64 getTotalStrength() const; // includes fighting strength and army strength
|
ui64 getTotalStrength() const; // includes fighting strength and army strength
|
||||||
TExpType calculateXp(TExpType exp) const; //apply learning skill
|
TExpType calculateXp(TExpType exp) const; //apply learning skill
|
||||||
|
int getBasePrimarySkillValue(PrimarySkill which) const; //the value of a base-skill without items or temporary bonuses
|
||||||
|
|
||||||
CStackBasicDescriptor calculateNecromancy (const BattleResult &battleResult) const;
|
CStackBasicDescriptor calculateNecromancy (const BattleResult &battleResult) const;
|
||||||
void showNecromancyDialog(const CStackBasicDescriptor &raisedStack, vstd::RNG & rand) const;
|
void showNecromancyDialog(const CStackBasicDescriptor &raisedStack, vstd::RNG & rand) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user