Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- src\server\game\Spells\SpellEffects.cpp
- case 12162: // Deep wounds
- case 12850: // (now good common check for this spells)
- case 12868:
- {
- if (!unitTarget)
- return;
- float damage;
- // DW should benefit of attack power, damage percent mods etc.
- // TODO: check if using offhand damage is correct and if it should be divided by 2
- if (m_caster->haveOffhandWeapon() && m_caster->getAttackTimer(BASE_ATTACK) > m_caster->getAttackTimer(OFF_ATTACK))
- damage = (m_caster->GetFloatValue(UNIT_FIELD_MINOFFHANDDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXOFFHANDDAMAGE))/2;
- else
- damage = (m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE))/2;
- switch (m_spellInfo->Id)
- {
- case 12162: damage *= 0.16f; break; // Rank 1
- case 12850: damage *= 0.32f; break; // Rank 2
- case 12868: damage *= 0.48f; break; // Rank 3
- default:
- sLog->outError("Spell::EffectDummy: Spell %u not handled in DW", m_spellInfo->Id);
- return;
- };
- // get remaining damage of old Deep Wound aura
- AuraEffect* deepWound = unitTarget->GetAuraEffect(12721, 0, m_caster->GetGUID());
- if (deepWound)
- {
- ++NORMAL int32 remainingTicks =deepWound->GetBase()->GetDuration() / deepWound->GetAmplitude();
- --MAXI DPS LIKE REVOL //int32 remainingTicks = ceil(float(deepWound->GetBase()->GetDuration()) / float(deepWound->GetAmplitude()));
- damage += remainingTicks * deepWound->GetAmount();
- }
- // 1 tick/sec * 6 sec = 6 ticks
- int32 deepWoundsDotBasePoints0 = int32(damage / 6);
- m_caster->CastCustomSpell(unitTarget, 12721, &deepWoundsDotBasePoints0, NULL, NULL, true, NULL);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement