Core/Items: Implemented corruption and corruption resistance stats

Port From (https://github.com/TrinityCore/TrinityCore/commit/6533de31005fc9680d9f2b61a4d8ea4958fc8edc)
This commit is contained in:
hondacrx
2020-06-18 15:39:41 -04:00
parent d686aef6d3
commit 15192d6a38
12 changed files with 84 additions and 34 deletions
+36 -4
View File
@@ -1377,6 +1377,10 @@ namespace Game.Entities
if (affectStats)
UpdateSpellCritChance();
break;
case CombatRating.Corruption:
case CombatRating.CorruptionResistance:
UpdateCorruption();
break;
case CombatRating.HasteMelee:
case CombatRating.HasteRanged:
case CombatRating.HasteSpell:
@@ -1489,6 +1493,34 @@ namespace Game.Entities
SetUpdateFieldStatValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ModHealingDonePercent), value);
}
void UpdateCorruption()
{
float effectiveCorruption = GetRatingBonusValue(CombatRating.Corruption) - GetRatingBonusValue(CombatRating.CorruptionResistance);
foreach (var corruptionEffect in CliDB.CorruptionEffectsStorage.Values)
{
if (((CorruptionEffectsFlag)corruptionEffect.Flags).HasAnyFlag(CorruptionEffectsFlag.Disabled))
continue;
if (effectiveCorruption < corruptionEffect.MinCorruption)
{
RemoveAura(corruptionEffect.Aura);
continue;
}
PlayerConditionRecord playerCondition = CliDB.PlayerConditionStorage.LookupByKey(corruptionEffect.PlayerConditionID);
if (playerCondition != null)
{
if (!ConditionManager.IsPlayerMeetingCondition(this, playerCondition))
{
RemoveAura(corruptionEffect.Aura);
continue;
}
}
CastSpell(this, corruptionEffect.Aura, true);
}
}
void UpdateArmorPenetration(int amount)
{
// Store Rating Value
@@ -1702,10 +1734,10 @@ namespace Game.Entities
return row.CritRanged;
case CombatRating.CritSpell:
return row.CritSpell;
case CombatRating.Multistrike:
return row.MultiStrike;
case CombatRating.Readiness:
return row.Readiness;
case CombatRating.Corruption:
return row.Corruption;
case CombatRating.CorruptionResistance:
return row.CorruptionResistance;
case CombatRating.Speed:
return row.Speed;
case CombatRating.ResilienceCritTaken: