mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Core: Updated to 10.0.2
This commit is contained in:
@@ -5582,6 +5582,11 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
|
||||
if (m_spellInfo->ExcludeCasterAuraSpell && unitCaster->HasAura(m_spellInfo->ExcludeCasterAuraSpell))
|
||||
return SPELL_FAILED_CASTER_AURASTATE;
|
||||
|
||||
if (m_spellInfo->CasterAuraType && !unitCaster->HasAuraType(m_spellInfo->CasterAuraType))
|
||||
return SPELL_FAILED_CASTER_AURASTATE;
|
||||
if (m_spellInfo->ExcludeCasterAuraType && unitCaster->HasAuraType(m_spellInfo->ExcludeCasterAuraType))
|
||||
return SPELL_FAILED_CASTER_AURASTATE;
|
||||
|
||||
if (reqCombat && unitCaster->IsInCombat() && !m_spellInfo->CanBeUsedInCombat())
|
||||
return SPELL_FAILED_AFFECTING_COMBAT;
|
||||
}
|
||||
@@ -6390,19 +6395,15 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
|
||||
|
||||
if (spellEffectInfo.Effect == SPELL_EFFECT_CHANGE_BATTLEPET_QUALITY)
|
||||
{
|
||||
BattlePets::BattlePetBreedQuality quality = BattlePets::BattlePetBreedQuality::Poor;
|
||||
switch (spellEffectInfo.BasePoints)
|
||||
auto qualityItr = std::lower_bound(sBattlePetBreedQualityStore.begin(), sBattlePetBreedQualityStore.end(), spellEffectInfo.BasePoints, [](BattlePetBreedQualityEntry const* a1, int32 selector)
|
||||
{
|
||||
case 85:
|
||||
quality = BattlePets::BattlePetBreedQuality::Rare;
|
||||
break;
|
||||
case 75:
|
||||
quality = BattlePets::BattlePetBreedQuality::Uncommon;
|
||||
break;
|
||||
default:
|
||||
// Ignore Epic Battle-Stones
|
||||
break;
|
||||
}
|
||||
return a1->MaxQualityRoll < selector;
|
||||
});
|
||||
|
||||
BattlePets::BattlePetBreedQuality quality = BattlePets::BattlePetBreedQuality::Poor;
|
||||
if (qualityItr != sBattlePetBreedQualityStore.end())
|
||||
quality = BattlePets::BattlePetBreedQuality(qualityItr->QualityEnum);
|
||||
|
||||
if (battlePet->PacketInfo.Quality >= AsUnderlyingType(quality))
|
||||
return SPELL_FAILED_CANT_UPGRADE_BATTLE_PET;
|
||||
}
|
||||
@@ -6668,7 +6669,7 @@ SpellCastResult Spell::CheckCasterAuras(int32* param1) const
|
||||
Unit::AuraEffectList const& auras = unitCaster->GetAuraEffectsByType(type);
|
||||
for (AuraEffect const* aurEff : auras)
|
||||
{
|
||||
uint32 const mechanicMask = aurEff->GetSpellInfo()->GetAllEffectsMechanicMask();
|
||||
uint64 const mechanicMask = aurEff->GetSpellInfo()->GetAllEffectsMechanicMask();
|
||||
if (mechanicMask && !(mechanicMask & GetSpellInfo()->GetAllowedMechanicMask()))
|
||||
{
|
||||
foundNotMechanic = true;
|
||||
@@ -7467,21 +7468,21 @@ SpellCastResult Spell::CheckItems(int32* param1 /*= nullptr*/, int32* param2 /*=
|
||||
{
|
||||
Item const* item = m_targets.GetItemTarget();
|
||||
if (!item)
|
||||
return SPELL_FAILED_CANT_BE_DISENCHANTED;
|
||||
return SPELL_FAILED_CANT_BE_SALVAGED;
|
||||
|
||||
// prevent disenchanting in trade slot
|
||||
if (item->GetOwnerGUID() != player->GetGUID())
|
||||
return SPELL_FAILED_CANT_BE_DISENCHANTED;
|
||||
return SPELL_FAILED_CANT_BE_SALVAGED;
|
||||
|
||||
ItemTemplate const* itemProto = item->GetTemplate();
|
||||
if (!itemProto)
|
||||
return SPELL_FAILED_CANT_BE_DISENCHANTED;
|
||||
return SPELL_FAILED_CANT_BE_SALVAGED;
|
||||
|
||||
ItemDisenchantLootEntry const* itemDisenchantLoot = item->GetDisenchantLoot(m_caster->ToPlayer());
|
||||
if (!itemDisenchantLoot)
|
||||
return SPELL_FAILED_CANT_BE_DISENCHANTED;
|
||||
return SPELL_FAILED_CANT_BE_SALVAGED;
|
||||
if (itemDisenchantLoot->SkillRequired > player->GetSkillValue(SKILL_ENCHANTING))
|
||||
return SPELL_FAILED_LOW_CASTLEVEL;
|
||||
return SPELL_FAILED_CANT_BE_SALVAGED_SKILL;
|
||||
break;
|
||||
}
|
||||
case SPELL_EFFECT_PROSPECTING:
|
||||
|
||||
Reference in New Issue
Block a user