pete-wn / exiletools-indexer

This project has been shut down
https://www.reddit.com/r/pathofexiledev/comments/4xviyw/psa_exiletools_shutting_down_after_prophecy/
45 stars 16 forks source link

Ladder Analysis: Add totals of skill point mods #91

Closed pete-wn closed 8 years ago

pete-wn commented 8 years ago

Add a pseudo total similar to the way pseudo mods are handled by the indexer.

For each skill node, we already detect the "mod" and the "value" - simply create a hash during indexing that adds the value for each node to the mode.

For example, if there are five mods with "+% to maximum Life" that have a value of 4,4,5,5,5 then the total node hash should contain "+% to maximumum Life" : 23

This will be rudimentary and won't create an accurate picture if someone has "+6% to Armour and Evasion" as well as "+24% Armour" but it's a start. It may be worth looking into the offline skilltree project or other projects to see if anyone has created a lookup table to bring these mods together (and if not, maybe create one).

pete-wn commented 8 years ago

I have added three new total sections:

  1. nodeBonusesTotal - contains the total of every node bonus based on rudimentary extraction of bonus (searching for numbers) and booleans
  2. jewelModsTotal - contains the total of every jewel mod based on rudimentary extraction
  3. allBonusesTotal - contains the total of every node AND jewel mod

I'd like to go through and add some pseudo bonuses, at least basic ones. I'll create a new case for this.

pete-wn commented 8 years ago

Ugh. Turns out GGG is making sloppy JSON for some of the nodes. Nodes SHOULD have their bonuses on separate lines, but not all of them do. Great.

pete-wn commented 8 years ago

Okay, it's not terrible other than Acrobatics.

For most skills, we can just replace a . with a , to clean it up, for example:

Original:

"10808" : {
      "icon" : "https://p7p4m6s5.ssl.hwcdn.net/imageArt/2DArt/SkillIcons/passives/vaalpact.png",
      "isKeystone" : true,
      "bonuses" : [
         "Life Leech applies instantly. Life Regeneration has no effect."
      ],
      "isNoteable" : false,
      "name" : "Vaal Pact"
   }
      "bonuses" : [
         "Life Leech applies instantly, Life Regeneration has no effect"
      ],

Original:

   "10661" : {
      "icon" : "https://p7p4m6s5.ssl.hwcdn.net/imageArt/2DArt/SkillIcons/passives/KeystoneIronReflexes.png",
      "isKeystone" : true,
      "bonuses" : [
         "Converts all Evasion Rating to Armour. Dexterity provides no bonus to Evasion Rating"
      ],
      "isNoteable" : false,
      "name" : "Iron Reflexes"
   },
      "bonuses" : [
         "Converts all Evasion Rating to Armour, Dexterity provides no bonus to Evasion Rating"
      ],

Original:

   "54307" : {
      "icon" : "https://p7p4m6s5.ssl.hwcdn.net/imageArt/2DArt/SkillIcons/passives/KeystoneAcrobatics.png",
      "isKeystone" : true,
      "bonuses" : [
         "30% Chance to Dodge Attacks. 50% less Armour and Energy Shield, 30% less Chance to Block Spells and Attacks"
      ],
      "isNoteable" : false,
      "name" : "Acrobatics"
   },

Acrobatics should be given custom parsing:

      "bonuses" : [
         "30% Chance to Dodge Attacks",
         "50% less Armour and Energy Shield",
         "30% less Chance to Block Spells and Attacks"
      ],

Original:

   "57279" : {
      "icon" : "https://p7p4m6s5.ssl.hwcdn.net/imageArt/2DArt/SkillIcons/passives/KeystoneBloodMagic.png",
      "isKeystone" : true,
      "bonuses" : [
         "Removes all mana. Spend Life instead of Mana for Skills"
      ],
      "isNoteable" : false,
      "name" : "Blood Magic"
   },
      "bonuses" : [
         "Removes all mana, Spend Life instead of Mana for Skills"
      ],
pete-wn commented 8 years ago

I've fixed this by doing the following:

  1. Look for a period not followed by a number and replace it with a comma
  2. Manually parse out Acrobatics with its own bonuses