aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql3
-rw-r--r--sql/updates/world/2011_05_11_02_spell_proc_event.sql1
-rw-r--r--sql/updates/world/2011_05_11_03_spell_bonus_data.sql2
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp5
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp10
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp11
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuras.cpp23
7 files changed, 51 insertions, 4 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 992a29a95ac..98d53fcf697 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -16913,6 +16913,7 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a
(48438, -1, 0.11505, -1, -1, 'Druid - Wild Growth'),
(5176, 0.5714, -1, -1, -1, 'Druid - Wrath'),
(70691,0,0,0,0, 'Druid - Rejuvenation T10 4P proc'),
+(64801,0.45,0,0,0,'Druid - T8 Restoration 4P Bonus'),
(3044, -1, -1, 0.15, -1, 'Hunter - Arcane Shot'),
(3674, -1, -1, -1, 0.02, 'Hunter - Black Arrow($RAP*0.1 / number of ticks)'),
(19306, -1, -1, 0.2, -1, 'Hunter - Counterattack'),
@@ -19416,7 +19417,7 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
( 70727, 0x00, 9, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Item - Hunter T10 2P Bonus
( 70730, 0x00, 9, 0x00004000, 0x00001000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Item - Hunter T10 4P Bonus
( 70748, 0x00, 3, 0x00000000, 0x00200000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Item - Mage T10 4P Bonus
-( 70756, 0x00, 10, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Holy 4P Bonus
+( 70756, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Holy 4P Bonus
( 70761, 0x00, 10, 0x00000000, 0x80004000, 0x00000001, 0x00000400, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Protection 4P Bonus
( 70803, 0x00, 8, 0x003E0000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 4P Bonus
( 70805, 0x00, 8, 0x00000000, 0x00020000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 2P Bonus
diff --git a/sql/updates/world/2011_05_11_02_spell_proc_event.sql b/sql/updates/world/2011_05_11_02_spell_proc_event.sql
new file mode 100644
index 00000000000..0536ddb1bb5
--- /dev/null
+++ b/sql/updates/world/2011_05_11_02_spell_proc_event.sql
@@ -0,0 +1 @@
+UPDATE `spell_proc_event` SET `SpellFamilyMask1`=65536 WHERE `entry`=70756;
diff --git a/sql/updates/world/2011_05_11_03_spell_bonus_data.sql b/sql/updates/world/2011_05_11_03_spell_bonus_data.sql
new file mode 100644
index 00000000000..be207fe8902
--- /dev/null
+++ b/sql/updates/world/2011_05_11_03_spell_bonus_data.sql
@@ -0,0 +1,2 @@
+DELETE FROM `spell_bonus_data` WHERE `entry`=64801;
+INSERT INTO `spell_bonus_data` VALUES (64801,0.45,0,0,0,'Druid - T8 Restoration 4P Bonus');
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 38669109d6e..ccfb5f0635f 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20854,8 +20854,9 @@ bool Player::CanReportAfkDueToLimit()
///This player has been blamed to be inactive in a battleground
void Player::ReportedAfkBy(Player* reporter)
{
- Battleground *bg = GetBattleground();
- if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam())
+ Battleground* bg = GetBattleground();
+ // Battleground also must be in progress!
+ if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam() || bg->GetStatus() != STATUS_IN_PROGRESS)
return;
// check if player has 'Idle' or 'Inactive' debuff
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 6a84acfa257..06de958d23a 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10836,6 +10836,16 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
break;
}
break;
+ case SPELLFAMILY_WARRIOR:
+ // Victory Rush
+ if (spellProto->SpellFamilyFlags[1] & 0x100)
+ {
+ // Glyph of Victory Rush
+ if (AuraEffect const* aurEff = GetAuraEffect(58382, 0))
+ crit_chance += aurEff->GetAmount();
+ break;
+ }
+ break;
case SPELLFAMILY_PALADIN:
// Judgement of Command proc always crits on stunned target
if (spellProto->SpellFamilyName == SPELLFAMILY_PALADIN)
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index fa37ad9daad..b65f8700ddd 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5927,6 +5927,15 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo
}
break;
}
+ case 43681: // Inactive
+ {
+ if (!target || target->GetTypeId() != TYPEID_PLAYER || aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
+ return;
+
+ if (target->GetMap()->IsBattleground())
+ target->ToPlayer()->LeaveBattleground();
+ break;
+ }
case 42783: // Wrath of the Astromancer
target->CastSpell(target, GetAmount(), true, NULL, this);
break;
@@ -5982,7 +5991,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo
break;
case SPELLFAMILY_PRIEST:
// Vampiric Touch
- if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
+ if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL && GetEffIndex() == 0)
{
if (AuraEffect const * aurEff = GetBase()->GetEffect(1))
{
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 8f1f4dd571b..894775179e1 100755
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -955,6 +955,20 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
break;
}
break;
+ case SPELLFAMILY_DRUID:
+ if (!caster)
+ break;
+ // Rejuvenation
+ if (GetSpellProto()->SpellFamilyFlags[0] & 0x10 && GetEffect(EFFECT_0))
+ {
+ // Druid T8 Restoration 4P Bonus
+ if (AuraEffect const* aurEff = caster->GetAuraEffect(64760, EFFECT_0))
+ {
+ int32 heal = GetEffect(EFFECT_0)->GetAmount();
+ caster->CastCustomSpell(target, 64801, &heal, NULL, NULL, true, NULL, GetEffect(EFFECT_0));
+ }
+ }
+ break;
case SPELLFAMILY_MAGE:
if (!caster)
break;
@@ -1488,6 +1502,15 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
else
target->RemoveAurasDueToSpell(64364, GetCasterGUID());
break;
+ case 31842:
+ if (caster->HasAura(70755))
+ {
+ if (apply)
+ caster->CastSpell(caster, 71166, true);
+ else
+ caster->RemoveAurasDueToSpell(71166);
+ }
+ break;
}
break;
case SPELLFAMILY_DEATHKNIGHT: