Spec Example - WoWAnalyzer/WoWAnalyzer GitHub Wiki

Add the Fire Mage spec

  • Copy the template caster folder to the mage folder.
  • Rename the folder to fire.

Update the template files

src\analysis\classic\mage\fire\CONFIG.tsx

exampleReport: '/report/<UPDATE_THIS>',

spec: SPECS.CLASSIC_MAGE_FIRE, // UPDATE THIS

// Update ClassicCasterSpec -> Example: ClassicFireMage
import('./CombatLogParser' /* webpackChunkName: "ClassicCasterSpec" */).then(

src\analysis\classic\mage\fire\modules\checklist\Component.tsx

{/* UPDATE THE SPELLS BELOW */}
<SpellLink id={SPELLS.FIRE_BLAST} /> or <SpellLink id={SPELLS.ICE_LANCE} />.

{/* UPDATE THE ABILITIES BELOW */}
<AbilityRequirement spell={SPELLS.ICY_VEINS.id} />

src\analysis\classic\mage\fire\modules\features\AlwaysBeCasting.tsx

{/* UPDATE THE SPELLS BELOW */}
<SpellLink id={SPELLS.FIRE_BLAST} /> or <SpellLink id={SPELLS.ICE_LANCE} />.

Add spells to the Abilities.ts file

Load several reports / boss fights and check the console for these errors:
image

src\analysis\classic\mage\fire\modules\features\Abilities.ts

class Abilities extends CoreAbilities {
  spellbook() {
    return [
      // SPELLS ADDED HERE ARE DISPLAYED ON THE STATISTICS TAB
      // LIST ALL SPELLS THAT COULD BE CAST DURING COMBAT BY THIS SPEC
      // Rotational
      {
        spell: [SPELLS.FIREBALL.id, ...SPELLS.FIREBALL.lowRanks],
        category: SPELL_CATEGORY.ROTATIONAL,
        gcd: { base: 1500 },
      },
      // Rotational AOE

      // Cooldowns
      {
        spell: [SPELLS.ICY_VEINS.id],
        category: SPELL_CATEGORY.COOLDOWNS,
        gcd: { base: 1500 },
        cooldown: 180,
      },
      // Defensive

      // Other spells (not apart of the normal rotation)

      // Utility

      // Pet Related

      // Consumable
    ];
  }
}

Add the new spec to src\parser\index.ts

src\parser\index.ts

import ClassicMageFire from 'analysis/classic/mage/fire';

const configs: Config[] = [
...
  ClassicMageFire,
...
];

Cleanup comments

src\analysis\classic\mage\fire\modules\checklist\Module.tsx

// Spells
// import SpellName from './modules/spells';

...

render() {
...
          // Spells
          // spellName: this.spellName.uptimeSuggestionThresholds,
⚠️ **GitHub.com Fallback** ⚠️