Browse Source

Fixed crash with damage calculation.

DjWarmonger 15 năm trước cách đây
mục cha
commit
8ac954a7f9
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      lib/CGameState.cpp

+ 3 - 2
lib/CGameState.cpp

@@ -3552,9 +3552,10 @@ ui32 BattleInfo::calculateSpellBonus(ui32 baseDamage, const CSpell * sp, const C
 			ret *= (100.0f + caster->valOfBonuses(Bonus::WATER_SPELL_DMG_PREMY)) / 100.0f;
 		else if(sp->earth)
 			ret *= (100.0f + caster->valOfBonuses(Bonus::EARTH_SPELL_DMG_PREMY)) / 100.0f;
+
+		if (affectedCreature) //Hero specials like Solmyr, Deemer
+			ret *= (100.f + ((caster->valOfBonuses(Bonus::SPECIAL_SPELL_LEV, sp->id) * caster->level) / affectedCreature->type->level)) / 100.0f;
 	}
-	if (caster) //Hero specials like Solmyr, Deemer
-		ret *= (100.f + ((caster->valOfBonuses(Bonus::SPECIAL_SPELL_LEV, sp->id) * caster->level) / affectedCreature->type->level)) / 100.0f;
 	return ret;
 }