1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-12-01 23:12:49 +02:00

Add configurable damage and defense parameters

This commit is contained in:
Dydzio
2022-12-31 16:25:40 +01:00
committed by Ivan Savenko
parent e8845244f7
commit a83c7eb00f
4 changed files with 30 additions and 3 deletions

View File

@@ -18,6 +18,7 @@
#include "../spells/CSpellHandler.h"
#include "../mapObjects/CGTownInstance.h"
#include "../BattleFieldHandler.h"
#include "../CModHandler.h"
VCMI_LIB_NAMESPACE_BEGIN
@@ -802,12 +803,18 @@ TDmgRange CBattleInfoCallback::calculateDmgRange(const BattleAttackInfo & info)
//bonus from attack/defense skills
if(attackDefenceDifference < 0) //decreasing dmg
{
const double dec = std::min(0.025 * (-attackDefenceDifference), 0.7);
double defenseMultiplier = VLC->modh->settings.DEFENSE_POINT_DMG_MULTIPLIER;
double defenseMultiplierCap = VLC->modh->settings.DEFENSE_POINTS_DMG_MULTIPLIER_CAP;
const double dec = std::min(defenseMultiplier * (-attackDefenceDifference), defenseMultiplierCap);
multBonus *= 1.0 - dec;
}
else //increasing dmg
{
const double inc = std::min(0.05 * attackDefenceDifference, 4.0);
double attackMultiplier = VLC->modh->settings.ATTACK_POINT_DMG_MULTIPLIER;
double attackMultiplierCap = VLC->modh->settings.ATTACK_POINTS_DMG_MULTIPLIER_CAP;
const double inc = std::min(attackMultiplier * attackDefenceDifference, attackMultiplierCap);
additiveBonus += inc;
}