Skip to content

heroespatchnotes/heroes-talents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hero Talents & Abilities

Talent? Hah. That seems generous.

--Raven Lord

Jump to Heroes

Example:

{
  "id": "68",
  "shortName": "malthael",
  "attributeId": "MALT",
  "name": "Malthael",
  "icon": "malthael.png",
  "role": "Assassin",
  "type": "Melee",
  "releaseDate": "2017-06-13",
  "abilities": {
    "Malthael": [
      {
        "name": "Soul Rip",
        "description": "Extract the souls of nearby enemies afflicted by Reaper's Mark, dealing 100 ( 4% per level) damage and healing Malthael for 25 ( 4% per level) per target hit. Heroic targets heal Malthael for an additional 4% of the Hero's maximum Health.",
        "hotkey": "Q",
        "abilityId": "Malthael|Q1",
        "cooldown": 2,
        "manaCost": 25,
        "icon": "storm_ui_icon_malthael_soulrip.png",
        "type": "basic"
      },
      ...
      {
        "name": "Tormented Souls",
        "description": "Unleash a torrent of souls, continually applying Reaper's Mark to nearby enemies for 4 seconds.",
        "hotkey": "R",
        "abilityId": "Malthael|R1",
        "cooldown": 80,
        "manaCost": 100,
        "icon": "storm_ui_icon_malthael_tormentedsoul.png",
        "type": "heroic"
      },
      ...
      {
        "name": "Reaper's Mark",
        "description": "Basic Attacks cleave in an area in front of Malthael and afflict non-Structure targets with Reaper's Mark for 4 seconds.  Marked enemies are revealed and take damage equal to 1.75% of their maximum Health every 1 second.",
        "trait": true,
        "abilityId": "Malthael|D1",
        "icon": "storm_ui_icon_malthael_reapersmark.png",
        "type": "trait"
      }
    ]
  },
  "talents": {
    "1": [
      {
        "tooltipId": "MalthaelDeathsReach",
        "talentTreeId": "MalthaelDeathsReach",
        "name": "Death's Reach",
        "description": "Increase Wraith Strike's range by 35%.",
        "icon": "storm_ui_icon_malthael_wraithstrike.png",
        "type": "W",
        "sort": 1,
        "abilityId": "Malthael|W1",
        "abilityLinks": [
          "Malthael|W1"
        ]
      },
      {
        "tooltipId": "MalthaelOnAPaleHorse",
        "talentTreeId": "MalthaelOnAPaleHorse",
        "name": "On a Pale Horse",
        "description": "Gain an additional 20% Movement Speed while mounted.",
        "icon": "storm_ui_icon_malthael_onpalehorse.png",
        "type": "Passive",
        "sort": 2,
        "abilityId": "_stormhero|Z1",
        "abilityLinks": [
          "_stormhero|Z1"
        ]
      },
      {
        "tooltipId": "MalthaelFearTheReaper",
        "talentTreeId": "MalthaelFearTheReaper",
        "name": "Fear the Reaper",
        "description": "Activate to increase Movement Speed by 25% and pass through other units for 4 seconds.",
        "icon": "storm_ui_icon_malthael_fearthereaper.png",
        "type": "Active",
        "sort": 3,
        "cooldown": 25,
        "abilityId": "Malthael|Active"
      }
    ],
    "4": [
    ...
    ]
    ...
}

Notes on key/value pairs

  • shortName is the hero's name with periods, dashes, apostrophes, spaces, and capitalization removed; it is currently used as the name of a hero's JSON file and image
  • manaCost is a string due to several Heroes (Azmodan, Arthas, etc.) having channeled abilities with per-second mana costs
  • abilityId can be used to link a talent to its related ability.
    • Talents that create a new ability will have abilityId of HeroName|Active. Ex: Fear the Reaper (seen above), Bolt of the Storm
    • Talents granting changes to Basic Attacks or other passive effects will have abilityId of HeroName|Passive. Ex: On a Pale Horse (above), Burning Rage, Executioner
  • talentTreeId is the name of the talent as used in replay files
  • sort indicates the order of talents on that level/tier
  • icon is the image name for the talent from game files

Game data

  • heroes/ and images/ contain curated versions of the game data and icons, prepared by heroes-convert
  • Unprocessed versions of the parsed game data is hosted at heroes-data
  • Uncompressed versions of the icons are hosted at heroes-images
  • Game data extractions for both of the repos above are acquired using koliva8245's HeroesDataParser

See the Contributing docs for more information on our process.

Projects using heroes-talents

Want to use this in your Node.js project?

npm install --save git https://[email protected]/heroespatchnotes/heroes-talents.git

heroes-talents includes basic support for loading hero data into your project. See dist/test.js for an example, or dist/index.js for the source.

const HeroesTalents = require('heroes-talents')

async function test() {
  try {
    const heroes = await HeroesTalents.loadHeroJSONFiles()
    const favoriteHero = heroes.alarak
    console.log(`My favorite hero is ${favoriteHero.name}. He is an ${favoriteHero.role}.`)
  } catch(err) {
    console.log(err)
  }
}

Heroes

Abathur Alarak Alexstrasza Ana Anduin Anub'arak Artanis Arthas Auriel Azmodan Blaze Brightwing The Butcher Cassia Chen Cho Chromie Deathwing Deckard Dehaka Diablo D.Va E.T.C. Falstad Fenix Gall Garrosh Gazlowe Genji Greymane Gul'dan Hanzo Hogger Illidan Imperius Jaina Johanna Junkrat Kael'thas Kel'Thuzad Kerrigan Kharazim Leoric Li Li Li-Ming The Lost Vikings Lt. Morales Lúcio Lunara Maiev Malfurion Mal'Ganis Malthael Medivh Mei Mephisto Muradin Murky Nazeebo Nova Orphea Probius Qhira Ragnaros Raynor Rehgar Rexxar Samuro Sgt. Hammer Sonya Stitches Stukov Sylvanas Tassadar Thrall Tracer Tychus Tyrael Tyrande Uther Valeera Valla Varian Whitemane Xul Yrel Zagara Zarya Zeratul Zul'jin