mirror of
https://github.com/vcmi/vcmi.git
synced 2025-07-15 01:24:45 +02:00
* general defence reduction support (behemoths)
This commit is contained in:
@ -2387,11 +2387,22 @@ std::pair<ui32, ui32> BattleInfo::calculateDmgRange(const CStack* attacker, cons
|
|||||||
|
|
||||||
if(attacker->hasFeatureOfType(StackFeature::GENERAL_ATTACK_REDUCTION))
|
if(attacker->hasFeatureOfType(StackFeature::GENERAL_ATTACK_REDUCTION))
|
||||||
{
|
{
|
||||||
attackDefenseBonus = attacker->Attack() * (attacker->valOfFeatures(StackFeature::GENERAL_ATTACK_REDUCTION, -1024) / 100.0f) - defender->Defense();
|
float multAttackReduction = attacker->valOfFeatures(StackFeature::GENERAL_ATTACK_REDUCTION, -1024) / 100.0f;
|
||||||
|
attackDefenseBonus = attacker->Attack() * multAttackReduction;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
attackDefenseBonus = attacker->Attack() - defender->Defense();
|
attackDefenseBonus = attacker->Attack();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(attacker->hasFeatureOfType(StackFeature::ENEMY_DEFENCE_REDUCTION))
|
||||||
|
{
|
||||||
|
float multDefenceReduction = (100.0f - attacker->valOfFeatures(StackFeature::ENEMY_DEFENCE_REDUCTION, -1024)) / 100.0f;
|
||||||
|
attackDefenseBonus -= defender->Defense() * multDefenceReduction;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
attackDefenseBonus -= defender->Defense();
|
||||||
}
|
}
|
||||||
|
|
||||||
//calculating total attack/defense skills modifier
|
//calculating total attack/defense skills modifier
|
||||||
@ -2406,7 +2417,6 @@ std::pair<ui32, ui32> BattleInfo::calculateDmgRange(const CStack* attacker, cons
|
|||||||
attackDefenseBonus += attacker->valOfFeatures(StackFeature::ATTACK_BONUS, 1);
|
attackDefenseBonus += attacker->valOfFeatures(StackFeature::ATTACK_BONUS, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(attacker->getEffect(55)) //slayer handling
|
if(attacker->getEffect(55)) //slayer handling
|
||||||
{
|
{
|
||||||
std::vector<int> affectedIds;
|
std::vector<int> affectedIds;
|
||||||
|
Reference in New Issue
Block a user