From 48bfe264d9dcc5f3dbfaa957146363029e4eae4a Mon Sep 17 00:00:00 2001 From: John Holiver Date: Mon, 23 Aug 2010 20:41:54 -0300 Subject: Fix Shaman Tier Bonus * T9 Ele 4P * T10 Res 4P * T10 Enh 2P * Partially, T10 Ele 2P (need some way to send ¨decrease CD¨ msg to client) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : trunk --- src/server/game/Entities/Unit/Unit.cpp | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'src/server') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index bb91a4852bb..ab2ca3fff8c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7327,6 +7327,52 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger triggered_spell_id = 64930; // Electrified break; } + // Shaman T9 Elemental 4P Bonus + case 67228: + { + // Lava Burst + if (procSpell->SpellFamilyFlags[1] & 0x1000) + { + triggered_spell_id = 71824; + SpellEntry const* triggeredSpell = sSpellStore.LookupEntry(triggered_spell_id); + if (!triggeredSpell) + return false; + basepoints0 = int32(triggerAmount * damage / 100 / (GetSpellMaxDuration(triggeredSpell) / triggeredSpell->EffectAmplitude[0])); + } + break; + } + // Item - Shaman T10 Restoration 4P Bonus + case 70808: + { + // Chain Heal + if((procSpell->SpellFamilyFlags[0] & 0x100) && (procEx & PROC_EX_CRITICAL_HIT)) + { + triggered_spell_id = 70809; + SpellEntry const* triggeredSpell = sSpellStore.LookupEntry(triggered_spell_id); + if (!triggeredSpell) + return false; + basepoints0 = int32(triggerAmount * damage / 100 / (GetSpellMaxDuration(triggeredSpell) / triggeredSpell->EffectAmplitude[0])); + } + break; + } + // Item - Shaman T10 Elemental 2P Bonus + case 70811: + { + // Lightning Bolt & Chain Lightning + if(procSpell->SpellFamilyFlags[0] & 0x3) + { + if (ToPlayer()->HasSpellCooldown(16166)) + { + uint32 newCooldownDelay = ToPlayer()->GetSpellCooldownDelay(16166) - 2; + if (newCooldownDelay < 0) newCooldownDelay = 0; + ToPlayer()->AddSpellCooldown(16166,0, uint32(time(NULL) + newCooldownDelay)); + + //TODO: need to send CD decrease to client + return true; + } + } + return false; + } } // Frozen Power if (dummySpell->SpellIconID == 3780) -- cgit v1.2.3