diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index 7638fff96..14a10c237 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2228,7 +2228,8 @@ namespace Framework.Constants ReqExpOrHonor = 0x01, // requires proc target to give exp or honor for aura proc TriggeredCanProc = 0x02, // aura can proc even with triggered spells ReqPowerCost = 0x04, // requires triggering spell to have a power cost for aura proc - ReqSpellmod = 0x08 // requires triggering spell to be affected by proccing aura to drop charges + ReqSpellmod = 0x08, // requires triggering spell to be affected by proccing aura to drop charges + ReduceProc60 = 0x80 // aura should have a reduced chance to proc if level of proc Actor > 60 } // Spell aura states diff --git a/Source/Game/Spells/Auras/Aura.cs b/Source/Game/Spells/Auras/Aura.cs index c87f4a9a5..7f301fb5a 100644 --- a/Source/Game/Spells/Auras/Aura.cs +++ b/Source/Game/Spells/Auras/Aura.cs @@ -1798,6 +1798,11 @@ namespace Game.Spells if (modOwner != null) modOwner.ApplySpellMod(GetId(), SpellModOp.ChanceOfSuccess, ref chance); } + + // proc chance is reduced by an additional 3.333% per level past 60 + if (procEntry.AttributesMask.HasAnyFlag(ProcAttributes.ReduceProc60) && eventInfo.GetActor().getLevel() > 60) + chance = Math.Max(0.0f, (1.0f - ((eventInfo.GetActor().getLevel() - 60) * 1.0f / 30.0f)) * chance); + return chance; }