esi-issues icon indicating copy to clipboard operation
esi-issues copied to clipboard

Dogma effect endpoint filters

Open Crypta-Eve opened this issue 5 years ago • 2 comments

Feature Request

For dogma engines to be built we need to be able parse the modifierInfo for dogma effects. ESI provides the the modifierInfo under the effect. eg here

However using the above link as an example, the func OwnerRequiredSkillModifier also requires a field called skillTypeID which is not present in the ESI response. Here is the matching effect dumped from the res files using Phobos. (clipped for clarity)

"2010": {
    "effectID": 2010, 
    "effectName": "propulsionDroneJammingStrength", 
    "modifierInfo": [
      {
        "domain": "charID", 
        "func": "OwnerRequiredSkillModifier", 
        "modifiedAttributeID": 20, 
        "modifyingAttributeID": 829, 
        "operation": 6, 
        "skillTypeID": 23599
      }
    ], 
  }

The other fields I know of that are missing the 'filter' fields are as follows.

  • ItemModifier
  • LocationModifier
  • LocationGroupModifier
    • groupID /universe/groups/{id}/
  • LocationRequiredSkillModifier
    • skillTypeID /universe/types/{id}/
  • OwnerRequiredSkillModifier
    • skillTypeID /universe/types/{id}/

This may come under #1103....

Use case

Without this information in ESI, a dogma engine either has to hand code all of the values using a phobos dump as a guide, or use the phobos dump to generate the required modifierInfo fields.

Authentication

A public route, no auth required.

Example return

I propose that the dogma endpoint should have two optional fields added to the modifiers array. These would be:

  • groupID
  • skillTypeID

For effect 2010 this would change the response to be as follows:

 {
  "description": "",
  "display_name": "",
  "effect_category": 0,
  "effect_id": 2010,
  "icon_id": 0,
  "modifiers": [
    {
      "domain": "charID",
      "func": "OwnerRequiredSkillModifier",
      "modified_attribute_id": 20,
      "modifying_attribute_id": 829,
      "operator": 6,
      "skillTypeID": 23599
    }
  ],
  "name": "propulsionDroneJammingStrength"
}

Checklist

Check all boxes that apply to this issue:

  • [x] Feature request description is provided
  • [x] Use case exists
  • [ ] Feature requires a new route
  • [x] Feature adds data to existing route
  • [ ] Feature requires new auth scope
  • [ ] Feature can reuse existing scope
  • [x] Feature does not require auth
  • [ ] Meta feature, applies to all routes

Crypta-Eve avatar Feb 14 '20 00:02 Crypta-Eve

Adding clarification as I missed it at the time of posting the feature request. This information is present with the SDE. The fsd/dogmaEffects.yaml file contains it. For comparison to the above the effect id 2010 from that file looks like (at time of posting)

2010:
  disallowAutoRepeat: false
  effectCategory: passive
  effectID: 2010
  effectName: propulsionDroneJammingStrength
  electronicChance: false
  guid: ''
  iconID: 0
  isAssistance: false
  isOffensive: false
  isWarpSafe: false
  modifierInfo:
  - domain: charID
    func: OwnerRequiredSkillModifier
    modifiedAttributeID: 20
    modifyingAttributeID: 829
    operation: postPercent
    skillTypeID: 23599
  propulsionChance: false
  published: false
  rangeChance: false

However in finding this information, my request to have the data included in ESI still stands, as for the most part the dogma effects endpoint is incomplete without it.

Crypta-Eve avatar Apr 16 '20 17:04 Crypta-Eve

that's actually a quiet important bug as it makes the dogma endpoints nearly useless as of right now, both for dogma engines and also only for showing which stats and effects a ship or item has, as in the info screen.

recursivetree avatar Jul 01 '21 13:07 recursivetree