Skip to content

Commit c3e0ccf

Browse files
authored
Merge pull request #1 from Cheerfulbull/Cheerfulbull-patch-1
Update battle_troop.cpp
2 parents 44ec9d3 + e3bf74d commit c3e0ccf

File tree

1 file changed

+5
-21
lines changed

1 file changed

+5
-21
lines changed

src/fheroes2/battle/battle_troop.cpp

+5-21
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,7 @@ uint32_t Battle::Unit::CalculateSpellDamage( const Spell & spell, uint32_t spell
13781378
assert( spell.isDamage() );
13791379

13801380
// TODO: use fheroes2::getSpellDamage function to remove code duplication.
1381-
uint32_t dmg = spell.Damage() * spellPoints;
1381+
uint32_t dmg = fheroes2::getSpellDamage( spell, spellPoints, applyingHero );
13821382

13831383
switch ( GetID() ) {
13841384
case Monster::IRON_GOLEM:
@@ -1449,20 +1449,15 @@ uint32_t Battle::Unit::CalculateSpellDamage( const Spell & spell, uint32_t spell
14491449
switch ( spell.GetID() ) {
14501450
case Spell::COLDRAY:
14511451
case Spell::COLDRING: {
1452-
std::vector<int32_t> extraDamagePercent
1453-
= applyingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::COLD_SPELL_EXTRA_EFFECTIVENESS_PERCENT );
1454-
for ( const int32_t value : extraDamagePercent ) {
1455-
dmg = dmg * ( 100 + value ) / 100;
1456-
}
1457-
14581452
if ( useDefendingHeroArts ) {
14591453
const std::vector<int32_t> damageReductionPercent
14601454
= defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::COLD_SPELL_DAMAGE_REDUCTION_PERCENT );
14611455
for ( const int32_t value : damageReductionPercent ) {
14621456
dmg = dmg * ( 100 - value ) / 100;
14631457
}
14641458

1465-
extraDamagePercent = defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactCurseType::COLD_SPELL_EXTRA_DAMAGE_PERCENT );
1459+
const std::vector<int32_t> extraDamagePercent
1460+
= defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactCurseType::COLD_SPELL_EXTRA_DAMAGE_PERCENT );
14661461
for ( const int32_t value : extraDamagePercent ) {
14671462
dmg = dmg * ( 100 + value ) / 100;
14681463
}
@@ -1472,20 +1467,15 @@ uint32_t Battle::Unit::CalculateSpellDamage( const Spell & spell, uint32_t spell
14721467
}
14731468
case Spell::FIREBALL:
14741469
case Spell::FIREBLAST: {
1475-
std::vector<int32_t> extraDamagePercent
1476-
= applyingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::FIRE_SPELL_EXTRA_EFFECTIVENESS_PERCENT );
1477-
for ( const int32_t value : extraDamagePercent ) {
1478-
dmg = dmg * ( 100 + value ) / 100;
1479-
}
1480-
14811470
if ( useDefendingHeroArts ) {
14821471
const std::vector<int32_t> damageReductionPercent
14831472
= defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::FIRE_SPELL_DAMAGE_REDUCTION_PERCENT );
14841473
for ( const int32_t value : damageReductionPercent ) {
14851474
dmg = dmg * ( 100 - value ) / 100;
14861475
}
14871476

1488-
extraDamagePercent = defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactCurseType::FIRE_SPELL_EXTRA_DAMAGE_PERCENT );
1477+
const std::vector<int32_t> extraDamagePercent
1478+
= defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactCurseType::FIRE_SPELL_EXTRA_DAMAGE_PERCENT );
14891479
for ( const int32_t value : extraDamagePercent ) {
14901480
dmg = dmg * ( 100 + value ) / 100;
14911481
}
@@ -1495,12 +1485,6 @@ uint32_t Battle::Unit::CalculateSpellDamage( const Spell & spell, uint32_t spell
14951485
}
14961486
case Spell::LIGHTNINGBOLT:
14971487
case Spell::CHAINLIGHTNING: {
1498-
const std::vector<int32_t> extraDamagePercent
1499-
= applyingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::LIGHTNING_SPELL_EXTRA_EFFECTIVENESS_PERCENT );
1500-
for ( const int32_t value : extraDamagePercent ) {
1501-
dmg = dmg * ( 100 + value ) / 100;
1502-
}
1503-
15041488
if ( useDefendingHeroArts ) {
15051489
const std::vector<int32_t> damageReductionPercent
15061490
= defendingHero->GetBagArtifacts().getTotalArtifactMultipliedPercent( fheroes2::ArtifactBonusType::LIGHTNING_SPELL_DAMAGE_REDUCTION_PERCENT );

0 commit comments

Comments
 (0)