Guest User

Untitled

a guest
Feb 19th, 2018
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 11.36 KB | None | 0 0
  1. # HG changeset patch
  2. # User rualex <drobyshev83@gmail.com>
  3. # Date 1319572595 -14400
  4. # Node ID 0e64729663345f0239d04784b2f1d5ac304f07c4
  5. # Parent  b809bf98113a818d8e33f66dc2a3a11e3158d67f
  6. Core/Spell: Holy Power
  7.  
  8. diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/Auras/SpellAuraEffects.cpp
  9. --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp Tue Oct 25 21:49:47 2011 +0300
  10. +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp Tue Oct 25 23:56:35 2011 +0400
  11. @@ -5972,16 +5972,8 @@
  12.      if (GetSpellProto()->Id == 84963)
  13.      {
  14.          // Divine Purpose
  15. -        if (target->HasAura(90174))
  16. -            GetBase()->SetDuration(GetBase()->GetDuration()*3);
  17. -        else
  18. -            GetBase()->SetDuration(GetBase()->GetDuration()*(GetBase()->GetUnitOwner()->GetPower(POWER_HOLY_POWER)+1));
  19. -
  20. -        // Eternal Glory
  21. -        if (AuraEffect * aur = target->GetDummyAuraEffect(SPELLFAMILY_PALADIN, 2944, 0))
  22. -            if (roll_chance_i(aur->GetAmount()))
  23. -                return;
  24. -        target->SetPower(POWER_HOLY_POWER,0);
  25. +        if (Unit* caster = GetCaster())
  26. +            GetBase()->SetDuration(GetBase()->GetDuration() * caster->GetCurrentSpell(CURRENT_GENERIC_SPELL)->GetPowerCost());
  27.      }
  28.  }
  29.  
  30. diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/Spell.cpp
  31. --- a/src/server/game/Spells/Spell.cpp  Tue Oct 25 21:49:47 2011 +0300
  32. +++ b/src/server/game/Spells/Spell.cpp  Tue Oct 25 23:56:35 2011 +0400
  33. @@ -3996,29 +3996,6 @@
  34.                  if (m_caster->HasAura(88688)) // Surge of Light
  35.                      m_caster->RemoveAura(88688);
  36.                  break;
  37. -            case 85673: // Word of Glory
  38. -            case 53600: // Shield of the Righteous
  39. -            case 85256: // Templar's Verdict
  40. -            case 84963: // Inquisition
  41. -            case 85222: // Light of Dawn
  42. -                for (std::list<TargetInfo>::const_iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
  43. -                {
  44. -                    if ((*ihit).missCondition == SPELL_MISS_NONE)
  45. -                        if (!m_caster->HasAura(90174) && !m_caster->HasAura(85696))
  46. -                            m_caster->SetPower(POWER_HOLY_POWER, 0);
  47. -                        else
  48. -                            m_caster->RemoveAurasDueToSpell(90174);
  49. -                }
  50. -                break;
  51. -            case 85696: // Zealotry
  52. -                if (m_caster->HasAura(90174))
  53. -                {
  54. -                    m_caster->RemoveAurasDueToSpell(90174);
  55. -                    m_caster->SetPower(POWER_HOLY_POWER, 3);
  56. -                }
  57. -                else
  58. -                    m_caster->SetPower(POWER_HOLY_POWER, 3);
  59. -                break;
  60.          }
  61.  }
  62.  
  63. @@ -4654,13 +4631,10 @@
  64.      if (m_CastItem || m_triggeredByAuraSpell)
  65.          return;
  66.  
  67. -    if (m_spellInfo->powerType == POWER_HOLY_POWER)
  68. -        return;
  69. -
  70.      bool hit = true;
  71.      if (m_caster->GetTypeId() == TYPEID_PLAYER)
  72.      {
  73. -        if (m_spellInfo->powerType == POWER_RAGE || m_spellInfo->powerType == POWER_ENERGY ||
  74. +        if (m_spellInfo->powerType == POWER_RAGE || m_spellInfo->powerType == POWER_ENERGY || m_spellInfo->powerType == POWER_HOLY_POWER ||
  75.              m_spellInfo->powerType == POWER_RUNE || m_spellInfo->powerType == POWER_RUNIC_POWER)
  76.              if (uint64 targetGUID = m_targets.getUnitTargetGUID())
  77.                  for (std::list<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
  78. @@ -4685,6 +4659,29 @@
  79.          return;
  80.      }
  81.  
  82. +    if (m_spellInfo->powerType == POWER_HOLY_POWER)
  83. +    {
  84. +        if (m_caster->HasAura(90174))
  85. +        {
  86. +            m_caster->RemoveAurasDueToSpell(90174);
  87. +            m_powerCost = 3;
  88. +            return;
  89. +        }
  90. +        else if (hit)
  91. +            m_powerCost = m_caster->GetPower(POWER_HOLY_POWER);
  92. +        else
  93. +            m_powerCost = 0;
  94. +
  95. +        if (m_spellInfo->Id == 85696)
  96. +            return;
  97. +
  98. +        // Eternal Glory
  99. +        if (m_spellInfo->Id == 84963)
  100. +            if (AuraEffect * aur = m_caster->GetDummyAuraEffect(SPELLFAMILY_PALADIN, 2944, 0))
  101. +                if (roll_chance_i(aur->GetAmount()))
  102. +                    return;
  103. +    }
  104. +
  105.      if (!m_powerCost)
  106.          return;
  107.  
  108. diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/SpellEffects.cpp
  109. --- a/src/server/game/Spells/SpellEffects.cpp   Tue Oct 25 21:49:47 2011 +0300
  110. +++ b/src/server/game/Spells/SpellEffects.cpp   Tue Oct 25 23:56:35 2011 +0400
  111. @@ -910,48 +910,45 @@
  112.                      damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK);
  113.                      break;
  114.                  }
  115. -                // Shield of  Righteous
  116. -                if (m_spellInfo->Id == 53600)
  117. -                {
  118. -                    switch(m_caster->GetPower(POWER_HOLY_POWER))
  119. +                switch (m_spellInfo->Id)
  120. +                {
  121. +                    //Shield of  Righteous
  122. +                    case 53600:
  123.                      {
  124. -                        case 1:
  125. -                            damage = int32(damage * 1.16f);
  126. -                            break;
  127. -                        case 2:
  128. -                            damage = int32((damage * 1.16f) * 3);
  129. -                            break;
  130. -                        case 3:
  131. -                            damage = int32((damage * 1.16f) * 6);
  132. -                            break;
  133. +                        int32 mod = (GetPowerCost() - 1) * 3;
  134. +                        if (mod)
  135. +                            damage *= mod;
  136. +                        damage = m_caster->SpellDamageBonus(unitTarget, m_spellInfo, effIndex, (uint32)damage, SPELL_DIRECT_DAMAGE);
  137. +                        break;
  138.                      }
  139. -                }
  140. -                // Hammer of Wrath
  141. -                if (m_spellInfo->Id == 24275)
  142. -                {
  143. -                    float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
  144. -                    int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
  145. -                    damage += int32(0.15f * spd + 0.15f * ap);
  146. -                }
  147. -                // Holy Wrath damage part
  148. -                if (m_spellInfo->Id == 2812)
  149. -                {
  150. -                   uint32 power = m_caster->GetPower(POWER_HOLY_POWER);
  151. -
  152. -                   if (power < 1)
  153. -                       power = 1;
  154. -
  155. -                   damage += int32(0.61f * power);
  156. -                }
  157. -                // Exorcism damage part
  158. -                if (m_spellInfo->Id == 879)
  159. -                {
  160. -                    float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
  161. -                    int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
  162. -                    uint32 maxdmg = ap > spd ? (ap*0.344f) : (spd*0.344f);
  163. -                    damage += int32(maxdmg);
  164. -                }
  165. -             break;
  166. +                    // Hammer of Wrath
  167. +                    case 24275:
  168. +                    {
  169. +                        float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
  170. +                        int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
  171. +                        damage += int32(0.15f * spd + 0.15f * ap);
  172. +                        break;
  173. +                    }
  174. +                    // Holy Wrath damage part
  175. +                    case 2812:
  176. +                    {
  177. +                        uint32 power = GetPowerCost();
  178. +                        if (power < 1)
  179. +                            power = 1;
  180. +                        damage += int32(0.61f * power);
  181. +                        break;
  182. +                    }
  183. +                    // Exorcism damage part
  184. +                    case 879:
  185. +                    {
  186. +                        float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
  187. +                        int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
  188. +                        uint32 maxdmg = ap > spd ? (ap*0.344f) : (spd*0.344f);
  189. +                        damage += int32(maxdmg);
  190. +                        break;
  191. +                    }
  192. +                }
  193. +                break;
  194.              }
  195.              case SPELLFAMILY_DEATHKNIGHT:
  196.              {
  197. @@ -2917,10 +2914,7 @@
  198.              addhealth += 0.198f*m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
  199.              
  200.              // Divine Purpose
  201. -            if (m_caster->HasAura(90174))
  202. -                addhealth *= 3;
  203. -            else
  204. -                addhealth *= (m_caster->GetPower(POWER_HOLY_POWER));
  205. +            addhealth *= GetPowerCost();
  206.                
  207.              // Selfless Healer              
  208.              if (m_caster != unitTarget)
  209. @@ -2958,14 +2952,10 @@
  210.              m_caster->CastSpell(m_caster, 79437, true);
  211.              m_caster->RemoveAura(74434);
  212.          }
  213. +        // Divine Purpose
  214.          if (m_spellInfo->Id == 85222)
  215. -        {
  216. -            // Divine Purpose
  217. -            if (m_caster->HasAura(90174))
  218. -                addhealth *= 3;
  219. -            else
  220. -                addhealth *= (m_caster->GetPower(POWER_HOLY_POWER));
  221. -        }
  222. +            addhealth *= GetPowerCost();
  223. +
  224.          // Echo of Light
  225.          if (m_caster->getClass() == CLASS_PRIEST)
  226.          {
  227. @@ -4786,33 +4776,21 @@
  228.              {
  229.                  totalDamagePercentMod *= 1.36f;            //136% damage
  230.              }
  231. -            // Templar's Verdict
  232. -            else if (m_spellInfo->Id == 85256)
  233. +            else if (m_spellInfo->Id == 85256)   // Templar's Verdict
  234.              {
  235. -                uint32 holy_power = m_caster->HasAura(90174) ? 3: m_caster->GetPower(POWER_HOLY_POWER);
  236. -                float bonus_damage = 1;
  237. -
  238. -                switch (holy_power)
  239. -                {
  240. -                    case 1:
  241. -                        totalDamagePercentMod *= 1.0f;
  242. -                        break;
  243. -                    case 2:
  244. -                        totalDamagePercentMod += 2.0f;
  245. -                        break;
  246. -                    case 3:
  247. -                        totalDamagePercentMod += 6.5f;
  248. -                        break;
  249. -                }
  250. -                // Crusade
  251. -                if (AuraEffect const * aurEff = m_caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PALADIN, 2171, 1))
  252. -                    bonus_damage = (aurEff->GetAmount()+100.0f)/100.0f;
  253. -
  254. -                totalDamagePercentMod *= bonus_damage;
  255. -                
  256. -                // Glyph of Templar's Verdict
  257. -                if (m_caster->HasAura(63220))
  258. -                    totalDamagePercentMod *= 1.15f;
  259. +                switch (GetPowerCost())
  260. +                {
  261. +                    case 1: totalDamagePercentMod = 0.3f; break;
  262. +                    case 2: totalDamagePercentMod = 0.9f; break;
  263. +                    case 3: totalDamagePercentMod = 2.25f; break;
  264. +                }
  265. +                
  266. +                if (AuraEffect const * aurEff = m_caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PALADIN, 2171, 1))
  267. +                    totalDamagePercentMod *= (aurEff->GetAmount()+100.0f)/100.0f;
  268. +
  269. +                // Glyphe of Templar's Verdict
  270. +                if (AuraEffect* aur = m_caster->GetAuraEffect(63220, EFFECT_0))
  271. +                    totalDamagePercentMod += float(aur->GetAmount()) / 100.0f;
  272.              }
  273.              // Seal of Command Unleashed
  274.              else if (m_spellInfo->Id == 20467)
Add Comment
Please, Sign In to add comment