From 378b0ffccd0d16d887598aed6ef67d7def0907a7 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 20 Jun 2023 09:39:06 -0400 Subject: [PATCH] Core/Spells: Validate known heirlooms for SPELL_EFFECT_CREATE_HEIRLOOM_ITEM Port From (https://github.com/TrinityCore/TrinityCore/commit/cd7c5eff49bc877fd39950c94b04a1cb2168e380) --- Source/Game/Entities/Player/CollectionManager.cs | 5 +++++ Source/Game/Spells/Spell.cs | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/Source/Game/Entities/Player/CollectionManager.cs b/Source/Game/Entities/Player/CollectionManager.cs index 443c5e8a8..b1955a409 100644 --- a/Source/Game/Entities/Player/CollectionManager.cs +++ b/Source/Game/Entities/Player/CollectionManager.cs @@ -229,6 +229,11 @@ namespace Game.Entities _owner.GetPlayer().AddHeirloom(itemId, (uint)flags); } + public bool HasHeirloom(uint itemId) + { + return _heirlooms.ContainsKey(itemId); + } + public void UpgradeHeirloom(uint itemId, uint castItem) { Player player = _owner.GetPlayer(); diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index 33f87ec92..f75fcd24e 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -5575,6 +5575,16 @@ namespace Game.Spells } break; } + case SpellEffectName.CreateHeirloomItem: + { + if (!m_caster.IsPlayer()) + return SpellCastResult.BadTargets; + + if (!m_caster.ToPlayer().GetSession().GetCollectionMgr().HasHeirloom(m_misc.ItemId)) + return SpellCastResult.BadTargets; + + break; + } case SpellEffectName.GiveArtifactPower: case SpellEffectName.GiveArtifactPowerNoBonus: {