浏览代码

Fixed crash with damage calculation.

DjWarmonger 15 年之前
父节点
当前提交
8ac954a7f9
共有 1 个文件被更改,包括 3 次插入2 次删除
  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;
 }