[Core/Threat] SpellThreat-Calculation revamped

short:
  - Threat is now distributed blizzlike (almost)

long:
  - Percent- and AP-Modifieres got add
  - Threat is now propperly distributed through multiple enemies
  - Most spells will cause initial threat in an amount equal to their SpellLevel
  - Energize-Effects will now be treated like healing (threat-wise)
  - Tanks got their missing +43% passive threat tacked on
  - Paladins are still missing 'Salvation' and will not only cause half threat with healing (essentially 25% of the amount healed)
This commit is contained in:
sarjuuk
2011-09-03 17:42:44 +02:00
committed by QAston
parent dc01541111
commit b40bf69319
9 changed files with 245 additions and 59 deletions
+9 -2
View File
@@ -349,7 +349,14 @@ enum SpellGroupStackRule
typedef std::map<SpellGroup, SpellGroupStackRule> SpellGroupStackMap;
typedef std::map<uint32, uint16> SpellThreatMap;
struct SpellThreatEntry
{
int32 flatMod; // flat threat-value for this Spell - default: 0
float pctMod; // threat-multiplier for this Spell - default: 1.0f
float apPctMod; // Pct of AP that is added as Threat - default: 0.0f
};
typedef std::map<uint32, SpellThreatEntry> SpellThreatMap;
// Spell script target related declarations (accessed using SpellMgr functions)
enum SpellScriptTargetType
@@ -603,7 +610,7 @@ class SpellMgr
SpellBonusEntry const* GetSpellBonusData(uint32 spellId) const;
// Spell threat table
uint16 GetSpellThreat(uint32 spellid) const;
SpellThreatEntry const* GetSpellThreatEntry(uint32 spellID) const;
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const;