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: {