From d220dec50c6fb9218092e8caab87fcee6ef11e71 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 17 Dec 2012 13:36:17 +0300 Subject: Use actual skill level in processing skill attack. --- src/being.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/being.cpp') diff --git a/src/being.cpp b/src/being.cpp index 6f530f9e8..09ec02389 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -762,7 +762,7 @@ void Being::handleAttack(Being *const victim, const int damage, } void Being::handleSkill(Being *const victim, const int damage, - const int skillId) + const int skillId, const int skillLevel) { if (!victim || !mInfo || !skillDialog) return; @@ -770,9 +770,10 @@ void Being::handleSkill(Being *const victim, const int damage, if (this != player_node) setAction(Being::ATTACK, 1); - const SkillInfo *const skill = skillDialog->getSkill(skillId); - if (skill) - fireMissile(victim, skill->data->particle); + SkillInfo *const skill = skillDialog->getSkill(skillId); + const SkillData *const data = skill ? skill->getData1(skillLevel) : nullptr; + if (data) + fireMissile(victim, data->particle); #ifdef MANASERV_SUPPORT if (Net::getNetworkType() != ServerInfo::MANASERV) @@ -792,12 +793,12 @@ void Being::handleSkill(Being *const victim, const int damage, if (damage && victim->mType == PLAYER && victim->mAction == SIT) victim->setAction(STAND); - if (skill) + if (data) { if (damage > 0) - sound.playSfx(skill->data->soundHit, mX, mY); + sound.playSfx(data->soundHit, mX, mY); else - sound.playSfx(skill->data->soundMiss, mX, mY); + sound.playSfx(data->soundMiss, mX, mY); } else { -- cgit v1.2.3-70-g09d2