RaphaelDDL/e7db-api

Non-Attack damage scaling isn't available for skills in the hero/ api

Opened this issue · 4 comments

Skills that have damage scaling off of stats other than the caster's attack don't seem to have that information in the new api. Examples of this are Alencia's skills scaling off of her HP, Vildred's scaling off of his speed, Sol's scaling off of the target's HP, or Fighter Maya's scaling off of her defense. This information is available in the v1 api.

For example, Alencia's S3 Genesis has the following damage multiplier info from v1 at https://api.epicsevendb.com/api/hero/alencia
"damageModifiers":[ { "name":"pow", "value":1, "soulburn":1 }, { "name":"atk_rate", "value":0.5, "soulburn":0.5 }, { "name":"hp_rate", "value":0.15, "soulburn":0.15 } ]
I can see that there is an 'hp_rate' of 15% for this skill.

However, if I view alencia in v2 at https://api.epicsevendb.com/hero/alencia, the only values pertaining to the damage multipliers are these:
"pow":1, "att_rate":0.5,
(Note: this skill doesn't have a soulburn, so that information isn't missing here, only the hp scaling)

v1 was manually typed and Kromagg did a wonderful job in adding that and the modifiers to the jsons, but v2 is pulled from game data to avoid manual labor in jsons, so we gotta find it.

@Dimbreath did we have any luck into finding these multiplier data (like from where buttreynolds was pulling from?) so we add to v2?

Finding them is not the issue, the is parsing them and finding a way to format that into our data. Looking at the skill description is easy to find out manually what you have to look for because it's explicit such as "healing increases proportional to caster health." but as far as I'm concerned some other skills might use these skill functions that aren't hidden modifiers. So I was planning on writing a skill "action" parser that would explain detailed how the skill works but that's a lot of work and in most cases provides a lot of useless information that we already know about the skill.

I'm unsure how we can approach this.

I remember that Cidd and Baal had some weird quirks since it was based on enemies deaths or such, the python script krom did had quite a few ifs for those special cases.

Maybe just add all flags you see and we'll ask him to help us parse the new way xD?

I'll try to find a way to implement these as we discussed on Discord.

ETA: Not sure. Soon probably. :(