diff options
| author | Subv <s.v.h21@hotmail.com> | 2012-08-18 18:38:02 -0500 | 
|---|---|---|
| committer | Subv <s.v.h21@hotmail.com> | 2012-08-18 18:40:22 -0500 | 
| commit | 68a130dc925970432558418e710cef44cb999eb5 (patch) | |
| tree | 3a5566e12f2b8a60aefb41840f270a06439a79aa | |
| parent | 8ca6538f6d13f1d7f7b9c1765191a203d09d5851 (diff) | |
Core/Spells: Removed more spell obsolete code
| -rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 83 | ||||
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 127 | 
2 files changed, 14 insertions, 196 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 2118b4cf42c..30b6de3fc4d 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2935,89 +2935,6 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()      }      while (result->NextRow()); -    // post loading checks -    for (uint32 entryId = 0; entryId < sAchievementCriteriaStore.GetNumRows(); ++entryId) -    { -        AchievementCriteriaEntry const* criteria = sAchievementCriteriaStore.LookupEntry(entryId); -        if (!criteria) -            continue; - -        switch (criteria->requiredType) -        { -            case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:          // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST: -            { -                AchievementEntry const* achievement = sAchievementStore.LookupEntry(criteria->referredAchievement); -                if (!achievement) -                    continue; - -                // exist many achievements with this criteria, use at this moment hardcoded check to skil simple case -                if (achievement->ID == 1282) -                    break; - -                continue; -            } -            case ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET: // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL:      // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA: // need skip generic cases -                if (criteria->additionalRequirements[0].additionalRequirement_type != ACHIEVEMENT_CRITERIA_CONDITION_NO_LOSE) -                    continue; -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM: // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE:        // need skip generic cases -                if (criteria->do_emote.count == 0) -                    continue; -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL:        // skip statistics -                if (criteria->win_duel.duelCount == 0) -                    continue; -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2:     // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE:       // need skip generic cases -                if (criteria->loot_type.lootTypeCount != 1) -                    continue; -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL: -                break;                                      // any cases -            case ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL:  // any cases -                break; -            case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST: -            case ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM:        // only Children's Week achievements -            { -                AchievementEntry const* achievement = sAchievementStore.LookupEntry(criteria->referredAchievement); -                if (!achievement) -                    continue; -                if (achievement->categoryId != CATEGORY_CHILDRENS_WEEK) -                    continue; -                break; -            } -            case ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS: -                break; -            default:                                        // type not use DB data, ignore -                continue; -        } - -        if (!GetCriteriaDataSet(criteria) && !DisableMgr::IsDisabledFor(DISABLE_TYPE_ACHIEVEMENT_CRITERIA, entryId, NULL)) -            sLog->outError(LOG_FILTER_SQL, "Table `achievement_criteria_data` does not have expected data for criteria (Entry: %u Type: %u) for achievement %u.", criteria->ID, criteria->requiredType, criteria->referredAchievement); -    } -      sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u additional achievement criteria data in %u ms", count, GetMSTimeDiffToNow(oldMSTime));  } diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index d0f4a93e35d..027ab164ad8 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -523,7 +523,7 @@ int32 AuraEffect::CalculateAmount(Unit* caster)                  {                      if ((*itr)->IsAffectingSpell(m_spellInfo))                      { -                        // Glyph of Fear, Glyph of Frost nova and similar auras +                        // Glyph of Frost nova and similar auras                          if ((*itr)->GetMiscValue() == 7801)                          {                              AddPctN(amount, (*itr)->GetAmount()); @@ -543,28 +543,19 @@ int32 AuraEffect::CalculateAmount(Unit* caster)                      // Ice Barrier                      if (GetSpellInfo()->SpellFamilyFlags[1] & 0x1 && GetSpellInfo()->SpellFamilyFlags[2] & 0x8)                      { -                        // +80.68% from sp bonus -                        DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.8068f; -                        // Glyph of Ice Barrier: its weird having a SPELLMOD_ALL_EFFECTS here but its blizzards doing :) -                        // Glyph of Ice Barrier is only applied at the spell damage bonus because it was already applied to the base value in CalculateSpellDamage -                        DoneActualBenefit = caster->ApplyEffectModifiers(GetSpellInfo(), m_effIndex, DoneActualBenefit); +                        // +87% from sp bonus +                        DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.87f;                      } -                    // Fire Ward +                    // Mage Ward                      else if (GetSpellInfo()->SpellFamilyFlags[0] & 0x8 && GetSpellInfo()->SpellFamilyFlags[2] & 0x8)                      {                          // +80.68% from sp bonus                          DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.8068f;                      } -                    // Frost Ward -                    else if (GetSpellInfo()->SpellFamilyFlags[0] & 0x100 && GetSpellInfo()->SpellFamilyFlags[2] & 0x8) -                    { -                        // +80.68% from sp bonus -                        DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.8068f; -                    }                      break;                  case SPELLFAMILY_WARLOCK:                      // Shadow Ward -                    if (m_spellInfo->SpellFamilyFlags[2] & 0x40) +                    if (m_spellInfo->SpellFamilyFlags[2] & 0x80000000)                      {                          // +80.68% from sp bonus                          DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.8068f; @@ -572,28 +563,18 @@ int32 AuraEffect::CalculateAmount(Unit* caster)                      break;                  case SPELLFAMILY_PRIEST:                      // Power Word: Shield -                    if (GetSpellInfo()->SpellFamilyFlags[0] & 0x1 && GetSpellInfo()->SpellFamilyFlags[2] & 0x400) +                    if (GetSpellInfo()->SpellFamilyFlags[0] & 0x1)                      {                          // +80.68% from sp bonus -                        float bonus = 0.8068f; - -                        // Borrowed Time -                        if (AuraEffect const* pAurEff = caster->GetDummyAuraEffect(SPELLFAMILY_PRIEST, 2899, 1)) -                            bonus += CalculatePctN(1.0f, pAurEff->GetAmount()); - -                        DoneActualBenefit += caster->SpellBaseHealingBonusDone(m_spellInfo->GetSchoolMask()) * bonus; -                        // Improved PW: Shield: its weird having a SPELLMOD_ALL_EFFECTS here but its blizzards doing :) -                        // Improved PW: Shield is only applied at the spell healing bonus because it was already applied to the base value in CalculateSpellDamage -                        DoneActualBenefit = caster->ApplyEffectModifiers(GetSpellInfo(), m_effIndex, DoneActualBenefit); +                        DoneActualBenefit += caster->SpellBaseHealingBonusDone(m_spellInfo->GetSchoolMask()) * 0.8068f;                          DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellInfo());                          amount += int32(DoneActualBenefit);                          // Twin Disciplines -                        if (AuraEffect const* pAurEff = caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PRIEST, 0x400000, 0, 0, caster->GetGUID())) +                        if (AuraEffect const* pAurEff = caster->GetAuraEffect(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, SPELLFAMILY_PRIEST, 2292, 0))                              AddPctN(amount, pAurEff->GetAmount()); -                        // Focused Power                          // Reuse variable, not sure if this code below can be moved before Twin Disciplines                          DoneActualBenefit = float(amount);                          DoneActualBenefit *= caster->GetTotalAuraMultiplier(SPELL_AURA_MOD_HEALING_DONE_PERCENT); @@ -602,30 +583,6 @@ int32 AuraEffect::CalculateAmount(Unit* caster)                          return amount;                      }                      break; -                case SPELLFAMILY_PALADIN: -                    // Sacred Shield -                    if (m_spellInfo->SpellFamilyFlags[1] & 0x80000) -                    { -                        //+75.00% from sp bonus -                        float bonus = 0.75f; - -                        DoneActualBenefit += caster->SpellBaseHealingBonusDone(m_spellInfo->GetSchoolMask()) * bonus; -                        // Divine Guardian is only applied at the spell healing bonus because it was already applied to the base value in CalculateSpellDamage -                        DoneActualBenefit = caster->ApplyEffectModifiers(GetSpellInfo(), m_effIndex, DoneActualBenefit); -                        DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellInfo()); - -                        amount += (int32)DoneActualBenefit; - -                        // Arena - Dampening -                        AuraEffect const* pAurEff = caster->GetAuraEffect(74410, 0); -                        if (!pAurEff) -                            pAurEff = caster->GetAuraEffect(74411, 0);  // Battleground - Dampening -                        if (pAurEff) -                            AddPctN(amount, pAurEff->GetAmount()); - -                        return amount; -                    } -                    break;                  default:                      break;              } @@ -637,8 +594,8 @@ int32 AuraEffect::CalculateAmount(Unit* caster)              // Mana Shield              if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_MAGE && GetSpellInfo()->SpellFamilyFlags[0] & 0x8000 && m_spellInfo->SpellFamilyFlags[2] & 0x8)              { -                // +80.53% from +spd bonus -                DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.8053f; +                // +80.7% from +spd bonus +                DoneActualBenefit += caster->SpellBaseDamageBonusDone(m_spellInfo->GetSchoolMask()) * 0.807f;              }              break;          case SPELL_AURA_DUMMY: @@ -654,24 +611,8 @@ int32 AuraEffect::CalculateAmount(Unit* caster)          case SPELL_AURA_PERIODIC_DAMAGE:              if (!caster)                  break; -            // Rupture -            if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_ROGUE && m_spellInfo->SpellFamilyFlags[0] & 0x100000) -            { -                m_canBeRecalculated = false; -                if (caster->GetTypeId() != TYPEID_PLAYER) -                    break; -                //1 point : ${($m1+$b1*1+0.015*$AP)*4} damage over 8 secs -                //2 points: ${($m1+$b1*2+0.024*$AP)*5} damage over 10 secs -                //3 points: ${($m1+$b1*3+0.03*$AP)*6} damage over 12 secs -                //4 points: ${($m1+$b1*4+0.03428571*$AP)*7} damage over 14 secs -                //5 points: ${($m1+$b1*5+0.0375*$AP)*8} damage over 16 secs -                float AP_per_combo[6] = {0.0f, 0.015f, 0.024f, 0.03f, 0.03428571f, 0.0375f}; -                uint8 cp = caster->ToPlayer()->GetComboPoints(); -                if (cp > 5) cp = 5; -                amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * AP_per_combo[cp]); -            }              // Rip -            else if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_DRUID && m_spellInfo->SpellFamilyFlags[0] & 0x00800000 && GetAuraType() == SPELL_AURA_PERIODIC_DAMAGE) +            if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_DRUID && m_spellInfo->SpellFamilyFlags[0] & 0x00800000)              {                  m_canBeRecalculated = false;                  // 0.01*$AP*cp @@ -693,20 +634,13 @@ int32 AuraEffect::CalculateAmount(Unit* caster)              else if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_WARRIOR && GetSpellInfo()->SpellFamilyFlags[0] & 0x20)              {                  m_canBeRecalculated = false; -                // $0.2 * (($MWB + $mwb) / 2 + $AP / 14 * $MWS) bonus per tick +                // ${0.25 * 6 * (($MWB + $mwb) / 2 + $AP / 14 * $MWS)}  bonus per tick                  float ap = caster->GetTotalAttackPowerValue(BASE_ATTACK);                  int32 mws = caster->GetAttackTime(BASE_ATTACK);                  float mwb_min = caster->GetWeaponDamageRange(BASE_ATTACK, MINDAMAGE);                  float mwb_max = caster->GetWeaponDamageRange(BASE_ATTACK, MAXDAMAGE); -                float mwb = ((mwb_min + mwb_max) / 2 + ap * mws / 14000) * 0.2f; +                float mwb = ((mwb_min + mwb_max) / 2 + ap * mws / 14000) * 0.25f * 6.0f;                  amount += int32(caster->ApplyEffectModifiers(m_spellInfo, m_effIndex, mwb)); -                // "If used while your target is above 75% health, Rend does 35% more damage." -                // as for 3.1.3 only ranks above 9 (wrong tooltip?) -                if (m_spellInfo->GetRank() >= 9) -                { -                    if (GetBase()->GetUnitOwner()->HasAuraState(AURA_STATE_HEALTH_ABOVE_75_PERCENT, m_spellInfo, caster)) -                        AddPctN(amount, m_spellInfo->Effects[EFFECT_2].CalcValue(caster)); -                }              }              // Unholy Blight damage over time effect              else if (GetId() == 50536) @@ -720,7 +654,7 @@ int32 AuraEffect::CalculateAmount(Unit* caster)              switch (m_spellInfo->Id)              {              case 57669: // Replenishment (0.2% from max) -                amount = GetBase()->GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.002f; +                amount = CalculatePctN(GetBase()->GetUnitOwner()->GetMaxPower(POWER_MANA), amount);                  break;              case 61782: // Infinite Replenishment                  amount = GetBase()->GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.0025f; @@ -747,39 +681,6 @@ int32 AuraEffect::CalculateAmount(Unit* caster)                      AddPctN(amount, modHealing->GetAmount());              }              break; -        case SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN: -            if (!caster) -                break; -            // Icebound Fortitude -            if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && m_spellInfo->SpellFamilyFlags[0] & 0x00100000) -            { -                if (caster->GetTypeId() == TYPEID_PLAYER) -                { -                    int32 value = (-1 * amount) - 10; -                    uint32 defva = uint32(caster->ToPlayer()->GetSkillValue(SKILL_DEFENSE) + caster->ToPlayer()->GetRatingBonusValue(CR_DEFENSE_SKILL)); - -                    if (defva > 400) -                        value += int32((defva - 400) * 0.15); - -                    // Glyph of Icebound Fortitude -                    if (AuraEffect const* aurEff = caster->GetAuraEffect(58625, 0)) -                    { -                        int32 valMax = aurEff->GetAmount(); -                        if (value < valMax) -                            value = valMax; -                    } -                    amount = -value; -                } -            } -            // Hand of Salvation -            else if (GetSpellInfo()->SpellFamilyName == SPELLFAMILY_PALADIN && GetSpellInfo()->SpellFamilyFlags[0] & 0x00000100) -            { -                //Glyph of Salvation -                if (caster->GetGUID() == GetBase()->GetUnitOwner()->GetGUID()) -                    if (AuraEffect const* aurEff = caster->GetAuraEffect(63225, 0)) -                        amount = -aurEff->GetAmount(); -            } -            break;          case SPELL_AURA_MOD_THREAT:          {              uint8 level_diff = 0;  | 
