Core/Auras: Renamed a bunch of unknown or changed spell aura types and implemented some of them

Port From (https://github.com/TrinityCore/TrinityCore/commit/d697882dfbb16242b7aa0b915fb116a14039ac5e)
This commit is contained in:
hondacrx
2021-02-04 12:24:50 -05:00
parent 0d1bfff206
commit a6c5ac711e
7 changed files with 39 additions and 31 deletions
@@ -3939,6 +3939,10 @@ namespace Game.Entities
public bool HasItemTotemCategory(uint TotemCategory)
{
foreach (AuraEffect providedTotemCategory in GetAuraEffectsByType(AuraType.ProvideTotemCategory))
if (Global.DB2Mgr.IsTotemCategoryCompatibleWith((uint)providedTotemCategory.GetMiscValueB(), TotemCategory))
return true;
int inventoryEnd = InventorySlots.ItemStart + GetInventorySlotCount();
for (byte i = EquipmentSlot.Start; i < inventoryEnd; ++i)
{
+1 -4
View File
@@ -781,10 +781,7 @@ namespace Game.Entities
chance += victim.GetTotalAuraModifier(AuraType.ModCritChanceForCaster, aurEff =>
{
if (aurEff.GetCasterGUID() == GetGUID())
return true;
return false;
return aurEff.GetCasterGUID() == GetGUID();
});
chance += victim.GetTotalAuraModifier(AuraType.ModAttackerSpellAndWeaponCritChance);
+11 -3
View File
@@ -527,6 +527,12 @@ namespace Game.Entities
float DoneTotalMod = 1.0f;
// bonus against aurastate
DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModDamageDoneVersusAurastate, aurEff =>
{
return victim.HasAuraState((AuraStateType)aurEff.GetMiscValue());
});
// Healing done percent
DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModHealingDonePercent);
@@ -742,11 +748,13 @@ namespace Game.Entities
// for this types the bonus was already added in GetUnitCriticalChance, do not add twice
if (spellProto.DmgClass != SpellDmgClass.Melee && spellProto.DmgClass != SpellDmgClass.Ranged)
{
crit_chance += victim.GetTotalAuraModifier(AuraType.ModCritChanceForCasterWithAbilities, aurEff =>
{
return aurEff.GetCasterGUID() == GetGUID() && aurEff.IsAffectingSpell(spellProto);
});
crit_chance += victim.GetTotalAuraModifier(AuraType.ModCritChanceForCaster, aurEff =>
{
if (aurEff.GetCasterGUID() == GetGUID() && aurEff.IsAffectingSpell(spellProto))
return true;
return false;
return aurEff.GetCasterGUID() != GetGUID();
});
}
+1 -1
View File
@@ -735,7 +735,7 @@ namespace Game.Spells
{
int duration = m_spellInfo.GetMaxDuration();
// Calculate duration of periodics affected by haste.
if (caster.HasAuraTypeWithAffectMask(AuraType.PeriodicHaste, m_spellInfo) || m_spellInfo.HasAttribute(SpellAttr5.HasteAffectDuration))
if (m_spellInfo.HasAttribute(SpellAttr5.HasteAffectDuration))
duration = (int)(duration * caster.m_unitData.ModCastingSpeed);
SetMaxDuration(duration);
-4
View File
@@ -983,7 +983,6 @@ namespace Game.Spells
[AuraEffectHandler(AuraType.ModBlind)]
[AuraEffectHandler(AuraType.Unk335)]
[AuraEffectHandler(AuraType.MountRestrictions)]
[AuraEffectHandler(AuraType.IncreaseSkillGainChance)]
[AuraEffectHandler(AuraType.ModResurrectedHealthByGuildMember)]
[AuraEffectHandler(AuraType.ModAutoattackDamage)]
[AuraEffectHandler(AuraType.ModSpellCooldownByHaste)]
@@ -992,16 +991,13 @@ namespace Game.Spells
[AuraEffectHandler(AuraType.Unk352)]
[AuraEffectHandler(AuraType.ModCamouflage)]
[AuraEffectHandler(AuraType.Unk354)]
[AuraEffectHandler(AuraType.Unk356)]
[AuraEffectHandler(AuraType.EnableBoss1UnitFrame)]
[AuraEffectHandler(AuraType.WorgenAlteredForm)]
[AuraEffectHandler(AuraType.Unk359)]
[AuraEffectHandler(AuraType.ProcTriggerSpellCopy)]
[AuraEffectHandler(AuraType.OverrideAutoattackWithMeleeSpell)]
[AuraEffectHandler(AuraType.ModNextSpell)]
[AuraEffectHandler(AuraType.MaxFarClipPlane)]
[AuraEffectHandler(AuraType.EnablePowerBarTimer)]
[AuraEffectHandler(AuraType.SetFairFarClip)]
void HandleUnused(AuraApplication aurApp, AuraEffectHandleModes mode, bool apply) { }
/**************************************/
+6 -3
View File
@@ -4737,9 +4737,12 @@ namespace Game.Spells
// check spell focus object
if (m_spellInfo.RequiresSpellFocus != 0)
{
focusObject = SearchSpellFocus();
if (!focusObject)
return SpellCastResult.RequiresSpellFocus;
if (!m_caster.HasAuraTypeWithMiscvalue(AuraType.ProvideSpellFocus, (int)m_spellInfo.RequiresSpellFocus))
{
focusObject = SearchSpellFocus();
if (!focusObject)
return SpellCastResult.RequiresSpellFocus;
}
}
castResult = SpellCastResult.SpellCastOk;