aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-09-18 15:00:43 +0200
committerShauren <shauren.trinity@gmail.com>2021-09-18 15:00:43 +0200
commit0b882b2fa4305c8554d675d6c5ba46457c5188e4 (patch)
tree7370b78aa4c349a5722e8b0c79488d28d8fbb283
parentee73948a64fc3d767d37cd3cc7f44358c5274b83 (diff)
Core/Spells: Update effect value calculations
-rw-r--r--src/server/game/DataStores/DB2Structure.h2
-rw-r--r--src/server/game/Spells/SpellInfo.cpp17
2 files changed, 6 insertions, 13 deletions
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index c73daf5594f..941ecc72605 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -1116,7 +1116,7 @@ struct CriteriaEntry
// CriteriaType::CompleteQuestsInSort = 58
int32 QuestSortID;
- // CriteriaType::KilledAllUnitsInSpawnRegion = 64
+ // CriteriaType::KilledAllUnitsInSpawnRegion = 64
int32 SpawnRegionID;
// CriteriaType::PlayerTriggerGameEvent = 73
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 869797e4447..4485c2858af 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -562,22 +562,14 @@ int32 SpellEffectInfo::CalcBaseValue(WorldObject const* caster, Unit const* targ
if (ItemSparseEntry const* itemSparse = sItemSparseStore.LookupEntry(itemId))
value *= GetIlvlStatMultiplier(ratingMult, InventoryType(itemSparse->InventoryType));
- if (IsAura(SPELL_AURA_MOD_RATING) && !(MiscValue & ((1 << CR_CORRUPTION) | 1 << (CR_CORRUPTION_RESISTANCE))))
- {
- if (GtCombatRatingsMultByILvl const* ratingMult = sCombatRatingsMultByILvlGameTable.GetRow(effectiveItemLevel))
- if (ItemSparseEntry const* itemSparse = sItemSparseStore.LookupEntry(itemId))
- value *= GetIlvlStatMultiplier(ratingMult, InventoryType(itemSparse->InventoryType));
- }
- else if (IsAura(SPELL_AURA_MOD_STAT) && MiscValue == STAT_STAMINA)
- {
+ if (Scaling.Class == -6)
if (GtStaminaMultByILvl const* staminaMult = sStaminaMultByILvlGameTable.GetRow(effectiveItemLevel))
if (ItemSparseEntry const* itemSparse = sItemSparseStore.LookupEntry(itemId))
value *= GetIlvlStatMultiplier(staminaMult, InventoryType(itemSparse->InventoryType));
- }
}
value *= Scaling.Coefficient;
- if (value != 0.0f && value < 1.0f)
+ if (value > 0.0f && value < 1.0f)
value = 1.0f;
return int32(round(value));
@@ -714,7 +706,7 @@ ExpectedStatType SpellEffectInfo::GetScalingExpectedStat() const
return ExpectedStatType::PlayerHealth;
case SPELL_EFFECT_ENERGIZE:
case SPELL_EFFECT_POWER_BURN:
- if (!MiscValue)
+ if (MiscValue == POWER_MANA)
return ExpectedStatType::PlayerMana;
return ExpectedStatType::None;
case SPELL_EFFECT_POWER_DRAIN:
@@ -775,12 +767,13 @@ ExpectedStatType SpellEffectInfo::GetScalingExpectedStat() const
case SPELL_AURA_MOD_POWER_REGEN:
case SPELL_AURA_POWER_BURN:
case SPELL_AURA_MOD_MAX_POWER:
- if (!MiscValue)
+ if (MiscValue == POWER_MANA)
return ExpectedStatType::PlayerMana;
return ExpectedStatType::None;
default:
break;
}
+ break;
default:
break;
}