Skip to content

Commit

Permalink
Fix damage mod from config after CLS fields change
Browse files Browse the repository at this point in the history
Damage modifier from mangosd.conf was only applied when reading old
damage fields from the DB and not used in the new CLS system
  • Loading branch information
cala committed Dec 16, 2017
1 parent 33a65ae commit 69f0176
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions src/game/Entities/Creature.cpp
Expand Up @@ -1286,17 +1286,16 @@ void Creature::SelectLevel(uint32 forcedLevel /*= USE_DEFAULT_DATABASE_LEVEL*/)
// damage
if (!usedDamageMulti)
{
float damagemod = _GetDamageMod(rank);
mainMinDmg = cinfo->MinMeleeDmg * damagemod;
mainMaxDmg = cinfo->MaxMeleeDmg * damagemod;
offMinDmg = cinfo->MinMeleeDmg * damagemod;
offMaxDmg = cinfo->MaxMeleeDmg * damagemod;
minRangedDmg = cinfo->MinRangedDmg * damagemod;
maxRangedDmg = cinfo->MaxRangedDmg * damagemod;
mainMinDmg = cinfo->MinMeleeDmg;
mainMaxDmg = cinfo->MaxMeleeDmg;
offMinDmg = cinfo->MinMeleeDmg;
offMaxDmg = cinfo->MaxMeleeDmg;
minRangedDmg = cinfo->MinRangedDmg;
maxRangedDmg = cinfo->MaxRangedDmg;

// attack power
meleeAttackPwr = cinfo->MeleeAttackPower * damagemod;
rangedAttackPwr = cinfo->RangedAttackPower * damagemod;
meleeAttackPwr = cinfo->MeleeAttackPower;
rangedAttackPwr = cinfo->RangedAttackPower;
}
}
else
Expand Down Expand Up @@ -1359,16 +1358,18 @@ void Creature::SelectLevel(uint32 forcedLevel /*= USE_DEFAULT_DATABASE_LEVEL*/)
SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, armor);

// damage
SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, mainMinDmg);
SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, mainMaxDmg);
SetBaseWeaponDamage(OFF_ATTACK, MINDAMAGE, offMinDmg);
SetBaseWeaponDamage(OFF_ATTACK, MAXDAMAGE, offMaxDmg);
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, minRangedDmg);
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, maxRangedDmg);
float damagemod = _GetDamageMod(rank);

SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, mainMinDmg * damagemod);
SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, mainMaxDmg * damagemod);
SetBaseWeaponDamage(OFF_ATTACK, MINDAMAGE, offMinDmg * damagemod);
SetBaseWeaponDamage(OFF_ATTACK, MAXDAMAGE, offMaxDmg * damagemod);
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, minRangedDmg * damagemod);
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, maxRangedDmg * damagemod);

// attack power
SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, meleeAttackPwr);
SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, rangedAttackPwr);
SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, meleeAttackPwr * damagemod);
SetModifierValue(UNIT_MOD_ATTACK_POWER_RANGED, BASE_VALUE, rangedAttackPwr * damagemod);
}

float Creature::_GetHealthMod(int32 Rank)
Expand Down

0 comments on commit 69f0176

Please sign in to comment.