Core/Spells: Rename SpellAttr2 to use official attribute names

* Corrected implementation of SPELL_ATTR1_ALLOW_WHILE_STEALTHED
* Implemented SPELL_ATTR2_RETAIN_ITEM_CAST
* Implemented SPELL_ATTR2_ALLOW_WHILE_INVISIBLE
* Implemented SPELL_ATTR0_PROC_FAILURE_BURNS_CHARGE
* Implemented SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE
* Implemented SPELL_ATTR2_NO_TARGET_PER_SECOND_COSTS
* Implemented SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE
* Implemented SPELL_ATTR1_REQUIRE_ALL_TARGETS
* Implemented SPELL_ATTR2_CHAIN_FROM_CASTER
* Implemented SPELL_ATTR2_NO_ACTIVE_PETS
* Implemented SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY
This commit is contained in:
Shauren authored and Ovahlord committed 2022-09-13 14:36:32 +02:00
1 parent 6224558c8c
commit ea4bc6c02a
15 files changed
+282 -175

No files matched your search

+10 -3
View File
@@ -567,14 +567,21 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
}
}
CastSpellExtraArgs args(m_originalCasterGUID);
// original caster guid only for GO cast
CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
args.SetOriginalCaster(m_originalCasterGUID);
if (!m_castItemGUID.IsEmpty() && sSpellMgr->AssertSpellInfo(m_spellInfo->Effects[effIndex].TriggerSpell)->HasAttribute(SPELL_ATTR2_RETAIN_ITEM_CAST))
if (Unit const* unitAuraCaster = args.TriggeringAura->GetCaster())
if (Player const* triggeringAuraCaster = unitAuraCaster->ToPlayer())
args.CastItem = triggeringAuraCaster->GetItemByGuid(m_castItemGUID);
// set basepoints for trigger with value effect
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE)
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
args.AddSpellMod(SpellValueMod(SPELLVALUE_BASE_POINT0 + i), damage);
// original caster guid only for GO cast
m_caster->CastSpell(targets, spellInfo->Id, args);
m_caster->CastSpell(std::move(targets), spellInfo->Id, args);
}
void Spell::EffectTriggerMissileSpell(SpellEffIndex effIndex)