From fea0cb16f2e73ec21891ac14cdc10d9d8f518cfe Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 15 Aug 2016 00:03:38 +0200 Subject: Core/Items: Implemented artifacts --- src/server/game/Spells/Spell.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 16227861a26..14d5f27b182 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5416,6 +5416,25 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_CANT_UNTALENT; break; } + case SPELL_EFFECT_GIVE_ARTIFACT_POWER: + case SPELL_EFFECT_GIVE_ARTIFACT_POWER_NO_BONUS: + { + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return SPELL_FAILED_BAD_TARGETS; + Aura* artifactAura = m_caster->GetAura(ARTIFACTS_ALL_WEAPONS_GENERAL_WEAPON_EQUIPPED_PASSIVE); + if (!artifactAura) + return SPELL_FAILED_NO_ARTIFACT_EQUIPPED; + Item* artifact = m_caster->ToPlayer()->GetItemByGuid(artifactAura->GetCastItemGUID()); + if (!artifact) + return SPELL_FAILED_NO_ARTIFACT_EQUIPPED; + if (effect->Effect == SPELL_EFFECT_GIVE_ARTIFACT_POWER) + { + ArtifactEntry const* artifactEntry = sArtifactStore.LookupEntry(artifact->GetTemplate()->GetArtifactID()); + if (!artifactEntry || artifactEntry->ArtifactCategoryID != effect->MiscValue) + return SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED; + } + break; + } default: break; } -- cgit v1.2.3