wowsims/cata

Improve random suffix validation

Opened this issue · 0 comments

Is your feature request related to a problem? Please describe.
Random suffix IDs are not being validated on items.
We found out by exporting items from 60U to WoWSims.
The neck suffix should be -213, but is -186 and gives the wrong stat amount.

{
    "name": "test",
    "phase": 1,
    "character": {
        "name": "Test 2",
        "level": 85,
        "gameClass": "WARLOCK",
        "race": "ORC",
        "faction": "HORDE"
    },
    "items": [
        {
            "name": "Soul Breath Belt of the Feverflare",
            "id": 63498,
            "suffixId": -186,
            "reforge": {
                "id": 165,
                "from": 49,
                "to": 16
            },
            "gems": [
                null
            ],
            "slot": "WAIST"
        }
    ],
    "glyphs": [
        {
            "name": "Glyph of Life Tap",
            "id": 45785,
            "type": "MAJOR"
        },
        {
            "name": "Glyph of Shadow Bolt",
            "id": 42467,
            "type": "MAJOR"
        },
        {
            "name": "Glyph of Soul Swap",
            "id": 42466,
            "type": "MAJOR"
        },
        {
            "name": "Glyph of Drain Soul",
            "id": 43390,
            "type": "MINOR"
        },
        {
            "name": "Glyph of Unending Breath",
            "id": 43389,
            "type": "MINOR"
        },
        {
            "name": "Glyph of Ritual of Souls",
            "id": 43394,
            "type": "MINOR"
        }
    ],
    "points": [
        {
            "name": "Demonology",
            "stats": {
                "spellDamage": 1,
                "intellect": 1,
                "critRating": 0.6,
                "hasteRating": 0.7,
                "hitRating": 1.7,
                "masteryRating": 1,
                "metaSockets": 100,
                "redSockets": 19,
                "yellowSockets": 19,
                "blueSockets": 19,
                "prismaticSockets": 19
            }
        }
    ],
    "stats": {
        "agility": 68,
        "arcaneDamage": 635,
        "armor": 840,
        "attackPower": 226,
        "crit": 2.97,
        "dodge": 2.71,
        "fireDamage": 635,
        "frostDamage": 635,
        "haste": 1.65,
        "hasteRating": 211,
        "health": 49096,
        "hit": 1.7,
        "hitRating": 204,
        "holyDamage": 635,
        "intellect": 645,
        "mana": 29948,
        "masteryRating": 179,
        "natureDamage": 635,
        "parry": 5,
        "shadowDamage": 635,
        "spellCrit": 2.69,
        "spellDamage": 635,
        "spellHaste": 1.65,
        "spellHit": 1.99,
        "spirit": 183,
        "stamina": 798,
        "strength": 66
    },
    "exportOptions": {
        "buffs": false,
        "talents": false
    }
}

Describe the solution you'd like
Random suffixes that are the wrong ID but the correct suffix name eg. of the Feverflare should be mapped to the item's correct random suffix.

  • lookupItemSpec in database.ts should actually validate/migrate randoms suffix before getting their ID.