diff --git a/.github/skills/wowsims-bulk-sim-handoff/SKILL.md b/.github/skills/wowsims-bulk-sim-handoff/SKILL.md new file mode 100644 index 0000000000..40beba3535 --- /dev/null +++ b/.github/skills/wowsims-bulk-sim-handoff/SKILL.md @@ -0,0 +1,84 @@ +--- +name: wowsims-bulk-sim-handoff +description: 'Use when continuing, debugging, validating, or modifying WoWSims MoP Bulk Sim, local/server bulk sim, browser WASM concurrent bulk sim, BulkSimRequest/BulkSimResult protos, candidate generation, IndexedDB reforge caching, progress, abort behavior, or backend reforge integration for bulk candidates.' +argument-hint: 'Describe the Bulk Sim bug, candidate flow, reforge/cache behavior, or validation task to continue.' +--- + +# WoWSims Bulk Sim Handoff + +## Scope +- Bulk candidate generation and staged simulation flow. +- Bulk reforge pre-pass integration and cache behavior. +- Progress, abort semantics, and local vs WASM orchestration. + +## Architecture +- Shared messages: proto/api.proto (BulkSimRequest, BulkSimResult, ReforgeOptimizeRequest). +- Core staged runner: sim/core/bulk/bulk_sim.go. +- Local/server reforge pre-pass wrapper: sim/web/bulk.go. +- Web endpoint registration: sim/web/main.go (/bulkSimAsync uses sim/web.BulkSimAsync wrapper). +- Frontend orchestration and cache partitioning: ui/core/sim.ts. +- Bulk utilities and cache helpers: ui/core/components/individual_sim_ui/bulk/utils.ts. +- Generic cache storage: ui/core/reforge_cache.ts. +- Browser WASM Bulk Sim path: ui/core/wasm/bulk_sim.ts. + +## Core Invariants +- Baseline gear source is base_request.raid.parties[0].players[0].equipment. +- Candidate identity is stable via BulkGearCandidate.index. +- With reforge_request enabled: + - Cache hits go to optimized_candidates. + - Work to optimize goes to candidates. +- Before staged sim: + - Reforge pre-pass merges cache hits + newly optimized candidates. + - request.ReforgeRequest is cleared. +- Dedup rules for sim input: + - Exclude baseline-equivalent gear. + - Exclude duplicate gear across optimized candidates. +- For cache writes: + - Keep full optimized_candidates (including duplicates/baseline-equivalent results) so every input key can be written. + +## Local/Server Reforge Flow +- Candidate generation runs unless request is fully cache-restored (candidates empty, optimized_candidates populated). +- Reforge optimization emits BulkSimStageReforge progress before low/medium/high stages. +- Reforge failures for an individual candidate fall back to original candidate gear instead of failing the entire request. +- Abort returns partial optimized candidates that already completed. + +## Frontend/WASM Flow +- WASM reforge path is frontend-orchestrated and uses per-gear optimizer calls. +- IndexedDB cache values store optimized output gear, not just metadata. +- Cache key is input-identity hash; output is restored from cache value. + +## Candidate Counting and Filtering +- rawCombinations is the raw mixed-radix index space. +- combinations is the filtered runnable count. +- Required set-bonus matching scans raw index space, then filters. +- Progress/reporting should reflect filtered candidate counts for user-visible totals. + +## Performance Guardrails +- Avoid per-candidate allocations in hot loops. +- Prefer preallocated imperative loops in candidate/cache helpers. +- For backend reforge optimizer cache: + - Use read-friendly locking for hit-heavy paths. + - Reuse computed gear hash across includeGems fallback attempts. +- Throttle progress emission frequency to avoid contention. + +## Logging Expectations +- Candidate generation stage should log started and completed with duration. +- Reforge stage should log a single started event (no duplicates) and completed summary. + +## Validation Commands +```bash +make proto +npm run type-check +go test -count=1 ./sim/core/bulk ./sim/web +``` + +For reforge-integration changes: +```bash +go test -count=1 ./sim/core/reforge_optimizer ./sim/web +``` + +## Fast Search Aids +```bash +rg -n "BulkSimReforge|reforge_request|optimized_candidates|BulkSimStageReforge" proto sim ui +rg -n "bulkSimAsync|/bulkSimAsync" sim/web +``` diff --git a/.github/skills/wowsims-reforge-optimizer-handoff/SKILL.md b/.github/skills/wowsims-reforge-optimizer-handoff/SKILL.md new file mode 100644 index 0000000000..9815302a92 --- /dev/null +++ b/.github/skills/wowsims-reforge-optimizer-handoff/SKILL.md @@ -0,0 +1,89 @@ +--- +name: wowsims-reforge-optimizer-handoff +description: 'Use when continuing, debugging, validating, or modifying the WoWSims MoP reforge optimizer, /reforgeOptimizeAsync endpoint, HiGHS solver integration, gem/socket/cap logic, softcap breakpoints, or Rune of Re-Origination relative stat caps.' +argument-hint: 'Describe the reforge optimizer bug, fixture, or behavior to continue.' +--- + +# WoWSims Reforge Optimizer Handoff + +## Scope +- Core optimizer behavior in sim/core/reforge_optimizer. +- Endpoint path /reforgeOptimizeAsync and worker integration. +- HiGHS-backed MIP solving for reforge + gem + socket-bonus choices. +- Relative stat cap logic (including Rune of Re-Origination behavior). + +## Architecture +Files (all under sim/core/reforge_optimizer/): +- Main flow + optimizer state (EP internalization, stat rules, amp/bearform multipliers): optimizer.go. +- LP model build — decision variables, gem options, applyReforgeStat (objective coeffs) + resolveCapCoeffs (cap coeffs): model.go. +- Byte-exact deterministic CPLEX LP text serialization for HiGHS: lp.go. +- Solve + cap-refinement loop (solveModel, checkCaps): solver.go. +- Soft caps / gap-to-cap conversion + cap-detection helpers: caps.go. +- Stat/UnitStat math (resolveStatDelta, EP-internalization inputs): reforge_stats.go. +- Gear/gem/reforge sim wrappers, applyLPSolution, minimizeRegems, Amplification-trinket helpers: gear.go. +- Relative cap modeling (Rune of Re-Origination): relative_stat_cap.go. +- Spec/profession predicates: utils.go. +- HiGHS bridge: + - Go non-browser (embedded, pooled wazero): highswasm.go. (Do NOT rename to highs_wasm.go — the `_wasm.go` suffix is an implicit GOARCH=wasm constraint that breaks the native build.) + - Browser wasm: highs_js.go. +- Frontend caller: ui/core/components/suggest_reforges_action.tsx. + +## Key Backend Concepts (rewrite) +- Objective/cap coefficient split: the objective uses EP-calibrated applyReforgeStat (objByName); cap-constraint rows use full-SDM resolveStatDelta (byName), so Int->crit%, Agi->crit%/AP, the haste speed multiplier, etc. all count toward caps. +- EP internalization: incoming raw EP weights are divided by epDivisor (Amplification on Haste/Mastery/Spirit; Guardian Bear Form on crit) so applyReforgeStat's re-multiply cancels in the objective while caps still see the amplified contribution. Applied to pre-cap weights (internalizeEPOffsets) AND soft-cap post-cap EPs (internalizeSoftCapEPOffsets). Exception: a crit-target soft cap on a non-Guardian is not amp-internalized (crit isn't amp-scaled). +- Prefer-Hit-over-Expertise pruning for true casters (drops the dominated Expertise->spell-hit reforge). +- Relative-cap solve precision: settings.relative_stat_cap_mip_gap (FE "Precision") loosens the HiGHS MIP gap for RoRo specs; 0 = HiGHS default ("Precise"). +- Deterministic LP text: modelToLPFormat is byte-exact and stable, so HiGHS tie-breaking among equal-objective solutions stays reproducible. + +## Core Invariants +- Final correctness is based on exact stats from core.ComputeStats, not only MIP deltas. +- Optimizer must include reforge + gems + socket bonus decisions when enabled. +- Socket bonus feasibility must be modeled with explicit link constraints. +- On HiGHS failure, return error; do not silently downgrade to weaker fallback behavior. +- Debug-heavy logs stay behind ReforgeOptimizeRequest.debug. + +## Cap and Breakpoint Rules +- Validate and normalize cap settings before solve. +- Enforce hard caps and breakpoint-derived rows directly in the MIP. +- For exact-stat post-check failures, tighten relevant existing cap rows and re-solve. +- Soft-cap scoring remains piecewise (pre-cap EP / post-cap EP). + +## Relative Stat Cap Rules +- Use explicit linear constraints for forced-vs-constrained stat deltas. +- Preserve raw Crit/Haste/Mastery deltas in the relative-cap model for feasibility checks. +- Validate relative-cap outcome with exact final stats and tighten rows if needed. +- The forced (highest) stat is constrained against the other two of Crit/Haste/Mastery — e.g. forced Mastery constrains Mastery vs Crit and Mastery vs Haste. Avoid adding unnecessary cross constraints unless fixture semantics require it. + +## Gem and Meta Rules +- Meta gems are not normal swap targets. +- Meta socket state must be preserved/restored during regem minimization. +- Keep gem order stable in EquipmentSpec output. +- Preserve class-specific stat dependency semantics used by scoring. + +## Bulk Sim Integration Contract +- Bulk Sim uses ReforgeOptimizeRequest mode for bulk operations. +- Bulk pre-pass may call optimizer twice per candidate when includeGems fallback is enabled. +- Cache keys should represent input identity; cached values are optimized output gear. + +## Performance Guardrails +- Keep solver model/build overhead low and allocation-aware. +- Keep selected-choice validation and hot helpers allocation-light. +- Avoid adding debug timers/alloc-heavy tracing outside debug mode. + +## Validation Commands +```bash +go test -tags with_db -count=1 ./sim/core/reforge_optimizer +npm run type-check +``` +Fixtures require the `with_db` tag. They live in sim/core/reforge_optimizer/test-fixtures/ and run for the REGISTERED coverage specs only (registerSpecFixtures — abstract names: soft-caps-multi, stat-conversions, hybrid-caster, relative-stat-cap, haste-thresholds, tank-caps). Non-coverage specs keep their fixture funcs but are deregistered (manual-only); re-register + `GENERATE_FIXTURES=1` to regenerate one. `UPDATE_FIXTURES=1` bakes the optimizer's own output instead of the master-gear reference. + +For bulk integration changes: +```bash +go test -tags with_db -count=1 ./sim/core/reforge_optimizer ./sim/web +``` + +## Fast Search Aids +```bash +rg -n "ReforgeOptimizeRequest|relativeStatCap|softCap|breakpoint|HiGHS" proto sim ui +rg -n "reforgeOptimizeAsync|ReforgeOptimize" sim ui +``` diff --git a/.gitignore b/.gitignore index 66936d905f..a0a689a86c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules ui/core/index.ts +ui/core/**/*_auto_gen.ts ui/*/*/index.html .dirstamp diff --git a/.oxlintrc.json b/.oxlintrc.json index b799af72ed..2982eff2ce 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -9,7 +9,6 @@ }, "ignorePatterns": [ "ui/core/proto/**", - "ui/worker/highs.js", "dist/**", "binary_dist/**", "node_modules/**" diff --git a/assets/database/db.bin b/assets/database/db.bin index e70c67092c..e8037531db 100644 Binary files a/assets/database/db.bin and b/assets/database/db.bin differ diff --git a/assets/database/db.json b/assets/database/db.json index 8227cff522..1e5babcfc8 100644 --- a/assets/database/db.json +++ b/assets/database/db.json @@ -5050,8 +5050,8 @@ {"id":86223,"name":"Agile Sprite Cloak","icon":"inv_cape_pandaria_c_01","type":4,"armorType":1,"phase":1,"quality":3,"scalingOptions":{"0":{"randPropPoints":727,"stats":{"1":382,"2":573,"7":248,"11":259,"17":911},"ilvl":434}}}, {"id":86224,"name":"Steadfast Sprite Cape","icon":"inv_cape_pandaria_c_04","type":4,"armorType":1,"phase":1,"quality":3,"scalingOptions":{"0":{"randPropPoints":727,"stats":{"0":382,"2":573,"10":270,"11":230,"17":911},"ilvl":434}}}, {"id":86225,"name":"Strong Sprite Cloak","icon":"inv_cape_pandaria_c_01","type":4,"armorType":1,"phase":1,"quality":3,"scalingOptions":{"0":{"randPropPoints":727,"stats":{"0":382,"2":573,"6":255,"11":255,"17":911},"ilvl":434}}}, -{"id":86226,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":6031,"weaponDamageMax":11201,"stats":{"1":524,"2":786,"6":394,"8":274},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":6260,"weaponDamageMax":11626,"stats":{"1":544,"2":816,"6":409,"8":284},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":6497,"weaponDamageMax":12068,"stats":{"1":565,"2":847,"6":424,"8":295},"ilvl":504}}}, -{"id":86227,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.4,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":2783,"weaponDamageMax":5170,"stats":{"2":787,"3":524,"4":360,"6":332,"14":7007},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":2889,"weaponDamageMax":5366,"stats":{"2":817,"3":544,"4":374,"6":345,"14":7274},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":2999,"weaponDamageMax":5570,"stats":{"2":847,"3":565,"4":388,"6":358,"14":7548},"ilvl":504}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":86226,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":6031,"weaponDamageMax":11201,"stats":{"1":524,"2":786,"6":394,"8":274},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":6260,"weaponDamageMax":11626,"stats":{"1":544,"2":816,"6":409,"8":284},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":6497,"weaponDamageMax":12068,"stats":{"1":565,"2":847,"6":424,"8":295},"ilvl":504}}}, +{"id":86227,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":2783,"weaponDamageMax":5170,"stats":{"2":787,"3":524,"4":360,"6":332,"14":7007},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":2889,"weaponDamageMax":5366,"stats":{"2":817,"3":544,"4":374,"6":345,"14":7274},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":2999,"weaponDamageMax":5570,"stats":{"2":847,"3":565,"4":388,"6":358,"14":7548},"ilvl":504}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":86228,"name":"Crown of the Doomed Empress","icon":"inv_helm_mail_raidhunter_l_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"1":983,"2":1835,"6":675,"7":715,"17":3282},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"1":1030,"2":1904,"6":706,"7":746,"17":3325},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"1":1078,"2":1977,"6":739,"7":779,"17":3367},"ilvl":504}}}, {"id":86229,"name":"Leggings of Shadow Infestation","icon":"inv_pants_cloth_raidwarlock_l_01","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":603,"11":376,"17":1782},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"2":1835,"3":1063,"6":850,"11":540,"17":1996},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"2":1904,"3":1110,"6":885,"11":563,"17":2022},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"2":1977,"3":1158,"6":922,"11":588,"17":2048},"ilvl":504}}}, {"id":86230,"name":"Bracers of Defiled Earth","icon":"inv_bracer_plate_raiddeathknight_l_01","type":6,"armorType":4,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"5":254,"11":381,"17":2155},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"0":682,"2":1022,"5":345,"11":518,"17":2414},"ilvl":496},"1":{"randPropPoints":1345,"stats":{"0":707,"2":1061,"5":358,"11":538,"17":2445},"ilvl":500},"2":{"randPropPoints":1396,"stats":{"0":734,"2":1101,"5":372,"11":558,"17":2476},"ilvl":504}}}, @@ -5069,21 +5069,21 @@ {"id":86318,"name":"Casque of Expelled Corruption","icon":"inv_helmet_plate_raidpaladin_l_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":415,"7":526,"17":4002},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"2":1835,"3":983,"4":615,"7":752,"17":4482},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"2":1904,"3":1030,"4":644,"7":784,"17":4540},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"2":1977,"3":1078,"4":673,"7":817,"17":4599},"ilvl":504}}}, {"id":86319,"name":"Lightning Prisoner's Boots","icon":"inv_boots_mail_raidshaman_l_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":290,"7":476,"17":2480},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"4":412,"7":659,"17":2777},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"4":430,"7":685,"17":2813},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"4":448,"7":712,"17":2849},"ilvl":504}}}, {"id":86320,"name":"Asani's Uncleansed Sandals","icon":"inv_boots_leather_raiddruid_l_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":375,"7":426,"17":1782},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"4":528,"7":592,"17":1996},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"4":549,"7":615,"17":2022},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"4":572,"7":640,"17":2048},"ilvl":504}}}, -{"id":86321,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":11795,"weaponDamageMax":17694,"stats":{"1":1223,"2":1835,"8":828,"11":795},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":12243,"weaponDamageMax":18366,"stats":{"1":1270,"2":1904,"8":859,"11":825},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":12708,"weaponDamageMax":19063,"stats":{"1":1318,"2":1977,"8":892,"11":857},"ilvl":504}}}, +{"id":86321,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":11795,"weaponDamageMax":17694,"stats":{"1":1223,"2":1835,"8":828,"11":795},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":12243,"weaponDamageMax":18366,"stats":{"1":1270,"2":1904,"8":859,"11":825},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":12708,"weaponDamageMax":19063,"stats":{"1":1318,"2":1977,"8":892,"11":857},"ilvl":504}}}, {"id":86322,"name":"Dread Shadow Ring","icon":"inv_misc_epicring_b2","type":11,"phase":1,"quality":4,"limitCategory":225,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"5":285,"6":363},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"0":682,"2":1022,"5":388,"6":494},"ilvl":496},"1":{"randPropPoints":1345,"stats":{"0":707,"2":1061,"5":402,"6":512},"ilvl":500},"2":{"randPropPoints":1396,"stats":{"0":734,"2":1101,"5":418,"6":532},"ilvl":504}}}, {"id":86323,"name":"Stuff of Nightmares","icon":"inv_misc_trinketpanda_13","type":12,"phase":1,"quality":4,"limitCategory":220,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"11":1152},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"11":1195},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"11":1241},"ilvl":504}},"itemEffects":[{"buffId":126646,"buffName":"Untouchable","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"9":5079}},"0":{"stats":{"9":6908}},"1":{"stats":{"9":7170}},"2":{"stats":{"9":7443}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86324,"name":"Sunwrought Mail Hauberk","icon":"inv_chest_mail_raidhunter_l_01","type":5,"armorType":3,"gemSockets":[2,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":417,"7":580,"17":3607},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"1":1063,"2":1835,"5":597,"7":817,"17":4039},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"1":1110,"2":1904,"5":622,"7":851,"17":4092},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"1":1158,"2":1977,"5":649,"7":887,"17":4144},"ilvl":504}}}, {"id":86325,"name":"Daybreak Drape","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":326,"10":339,"17":1018},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"0":682,"2":1022,"9":443,"10":461,"17":1140},"ilvl":496},"1":{"randPropPoints":1345,"stats":{"0":707,"2":1061,"9":460,"10":479,"17":1155},"ilvl":500},"2":{"randPropPoints":1396,"stats":{"0":734,"2":1101,"9":477,"10":497,"17":1170},"ilvl":504}}}, {"id":86326,"name":"Belt of Embodied Terror","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[4,3,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":410,"11":289,"17":1146},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":749,"4":587,"11":423,"17":1283},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":783,"4":612,"11":442,"17":1300},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":819,"4":638,"11":462,"17":1316},"ilvl":504}}}, {"id":86327,"name":"Spirits of the Sun","icon":"inv_drink_29_sunkissedwine","type":12,"phase":1,"quality":4,"limitCategory":219,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"3":1152},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"3":1195},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"3":1241},"ilvl":504}},"itemEffects":[{"buffId":126640,"buffName":"Radiance","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"4":5079}},"0":{"stats":{"4":6908}},"1":{"stats":{"4":7170}},"2":{"stats":{"4":7443}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":86328,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.2,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":2551,"weaponDamageMax":4739,"stats":{"2":786,"3":524,"6":355,"7":341,"14":7007},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":2648,"weaponDamageMax":4919,"stats":{"2":816,"3":544,"6":368,"7":354,"14":7274},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":2749,"weaponDamageMax":5106,"stats":{"2":847,"3":565,"6":382,"7":367,"14":7548},"ilvl":504}}}, +{"id":86328,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":2551,"weaponDamageMax":4739,"stats":{"2":786,"3":524,"6":355,"7":341,"14":7007},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":2648,"weaponDamageMax":4919,"stats":{"2":816,"3":544,"6":368,"7":354,"14":7274},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":2749,"weaponDamageMax":5106,"stats":{"2":847,"3":565,"6":382,"7":367,"14":7548},"ilvl":504}}}, {"id":86329,"name":"Sollerets of Instability","icon":"inv_boot_plate_raidpaladin_l_01","type":10,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":417,"11":380,"17":3386},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"4":585,"11":529,"17":3793},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"4":608,"11":550,"17":3842},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"4":634,"11":572,"17":3891},"ilvl":504}}}, {"id":86330,"name":"Sandals of the Blackest Night","icon":"inv_boot_cloth_raidwarlock_l_01","type":10,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":452,"11":332,"17":1400},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"7":626,"11":469,"17":1568},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"7":651,"11":488,"17":1588},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"7":677,"11":509,"17":1609},"ilvl":504}}}, -{"id":86331,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"weaponSpeed":3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1349,"7":570,"11":617},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":9383,"weaponDamageMax":17426,"stats":{"1":1223,"2":1835,"7":775,"11":840},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":9739,"weaponDamageMax":18088,"stats":{"1":1270,"2":1904,"7":804,"11":871},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":10109,"weaponDamageMax":18774,"stats":{"1":1318,"2":1977,"7":835,"11":905},"ilvl":504}}}, +{"id":86331,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1349,"7":570,"11":617},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":9383,"weaponDamageMax":17426,"stats":{"1":1223,"2":1835,"7":775,"11":840},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":9739,"weaponDamageMax":18088,"stats":{"1":1270,"2":1904,"7":804,"11":871},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":10109,"weaponDamageMax":18774,"stats":{"1":1318,"2":1977,"7":835,"11":905},"ilvl":504}}}, {"id":86332,"name":"Terror in the Mists","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":221,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"1":1152},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"1":1195},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"1":1241},"ilvl":504}},"itemEffects":[{"buffId":126649,"buffName":"Unrelenting Attacks","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"6":5079}},"0":{"stats":{"6":6908}},"1":{"stats":{"6":7170}},"2":{"stats":{"6":7443}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86333,"name":"Cuirass of the Animated Protector","icon":"inv_chest_plate_raidwarrior_l_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"9":529,"11":504,"17":4926},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"0":1063,"2":1835,"9":748,"11":715,"17":5517},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"0":1110,"2":1904,"9":779,"11":745,"17":5588},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"0":1158,"2":1977,"9":812,"11":777,"17":5660},"ilvl":504}}}, {"id":86334,"name":"Robes of the Unknown Fear","icon":"inv_robe_raidmage_l_01","type":5,"armorType":1,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"2":1835,"3":1063,"5":616,"11":806,"17":2281},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"2":1904,"3":1110,"5":642,"11":840,"17":2311},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"2":1977,"3":1158,"5":670,"11":875,"17":2340},"ilvl":504}}}, -{"id":86335,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":5897,"weaponDamageMax":8847,"stats":{"2":1835,"3":1223,"6":755,"7":852,"14":7006},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":6121,"weaponDamageMax":9183,"stats":{"2":1904,"3":1270,"6":784,"7":884,"14":7271},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":6354,"weaponDamageMax":9532,"stats":{"2":1977,"3":1318,"6":813,"7":917,"14":7548},"ilvl":504}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":86335,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":5897,"weaponDamageMax":8847,"stats":{"2":1835,"3":1223,"6":755,"7":852,"14":7006},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":6121,"weaponDamageMax":9183,"stats":{"2":1904,"3":1270,"6":784,"7":884,"14":7271},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":6354,"weaponDamageMax":9532,"stats":{"2":1977,"3":1318,"6":813,"7":917,"14":7548},"ilvl":504}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":86336,"name":"Darkmist Vortex","icon":"creatureportrait_cyclone_nodebris","type":12,"phase":1,"quality":4,"limitCategory":209,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":847},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"0":1152},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"0":1195},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"0":1241},"ilvl":504}},"itemEffects":[{"buffId":126657,"buffName":"Alacrity","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":6908}},"1":{"stats":{"7":7170}},"2":{"stats":{"7":7443}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86337,"name":"Healer's Belt of Final Winter","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":412,"7":394,"17":1146},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"4":575,"7":551,"17":1283},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"4":598,"7":573,"17":1300},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"4":623,"7":596,"17":1316},"ilvl":504}}}, {"id":86338,"name":"Invoker's Belt of Final Winter","icon":"inv_belt_raidmage_l_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":351,"11":438,"17":1146},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"5":492,"11":610,"17":1283},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"5":512,"11":634,"17":1300},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"5":533,"11":660,"17":1316},"ilvl":504}}}, @@ -5095,12 +5095,12 @@ {"id":86383,"name":"Mender's Girdle of Endless Spring","icon":"inv_belt_plate_raidpaladin_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"11":298,"17":2771},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"4":651,"11":420,"17":3103},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"4":677,"11":438,"17":3143},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"4":704,"11":456,"17":3184},"ilvl":504}}}, {"id":86384,"name":"Protector's Girdle of Endless Spring","icon":"inv_belt_plate_raidwarrior_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":428,"2":1002,"8":298,"9":628,"17":2771},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"0":611,"2":1363,"8":420,"9":869,"17":3103},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"0":637,"2":1414,"8":438,"9":903,"17":3143},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"0":664,"2":1469,"8":456,"9":939,"17":3184},"ilvl":504}}}, {"id":86385,"name":"Patroller's Girdle of Endless Spring","icon":"inv_belt_plate_raiddeathknight_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"5":319,"6":456,"17":2771},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"0":829,"2":1363,"5":449,"6":635,"17":3103},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"0":863,"2":1414,"5":467,"6":660,"17":3143},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"0":899,"2":1469,"5":486,"6":687,"17":3184},"ilvl":504}}}, -{"id":86386,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":12868,"weaponDamageMax":19302,"stats":{"0":1223,"2":1835,"6":815,"11":815},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":13356,"weaponDamageMax":20035,"stats":{"0":1270,"2":1904,"6":846,"11":846},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":13864,"weaponDamageMax":20796,"stats":{"0":1318,"2":1977,"6":879,"11":879},"ilvl":504}}}, -{"id":86387,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":6031,"weaponDamageMax":11201,"stats":{"0":524,"2":786,"5":355,"11":341},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":6260,"weaponDamageMax":11626,"stats":{"0":544,"2":816,"5":368,"11":354},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":6497,"weaponDamageMax":12068,"stats":{"0":565,"2":847,"5":382,"11":367},"ilvl":504}}}, +{"id":86386,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2326,"weaponDamageMin":12868,"weaponDamageMax":19302,"stats":{"0":1223,"2":1835,"6":815,"11":815},"ilvl":496},"1":{"randPropPoints":2414,"weaponDamageMin":13356,"weaponDamageMax":20035,"stats":{"0":1270,"2":1904,"6":846,"11":846},"ilvl":500},"2":{"randPropPoints":2506,"weaponDamageMin":13864,"weaponDamageMax":20796,"stats":{"0":1318,"2":1977,"6":879,"11":879},"ilvl":504}}}, +{"id":86387,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":6031,"weaponDamageMax":11201,"stats":{"0":524,"2":786,"5":355,"11":341},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":6260,"weaponDamageMax":11626,"stats":{"0":544,"2":816,"5":368,"11":354},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":6497,"weaponDamageMax":12068,"stats":{"0":565,"2":847,"5":382,"11":367},"ilvl":504}}}, {"id":86388,"name":"Essence of Terror","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":210,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"3":1152},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"3":1195},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"3":1241},"ilvl":504}},"itemEffects":[{"buffId":126659,"buffName":"Quickened Tongues","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":6908}},"1":{"stats":{"7":7170}},"2":{"stats":{"7":7443}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86389,"name":"Dreadwoven Leggings of Failure","icon":"inv_pant_raidmage_l_01","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"7":546,"17":1782},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"2":1835,"3":1063,"5":675,"7":772,"17":1996},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"2":1904,"3":1110,"5":704,"7":804,"17":2022},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"2":1977,"3":1158,"5":733,"7":837,"17":2048},"ilvl":504}}}, {"id":86390,"name":"Regail's Crackling Dagger","icon":"inv_knife_1h_pandaraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"6":185,"11":236,"14":5152},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":2087,"weaponDamageMax":3877,"stats":{"2":787,"3":444,"6":267,"11":335,"14":7007},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":2167,"weaponDamageMax":4024,"stats":{"2":817,"3":464,"6":278,"11":349,"14":7274},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":2249,"weaponDamageMax":4177,"stats":{"2":847,"3":485,"6":290,"11":364,"14":7548},"ilvl":504}}}, -{"id":86391,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"weaponSpeed":1.8,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":4175,"weaponDamageMax":7754,"stats":{"1":524,"2":787,"8":298,"11":380},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":4334,"weaponDamageMax":8049,"stats":{"1":544,"2":817,"8":310,"11":394},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":4498,"weaponDamageMax":8355,"stats":{"1":565,"2":847,"8":321,"11":409},"ilvl":504}}}, +{"id":86391,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":997,"weaponDamageMin":4175,"weaponDamageMax":7754,"stats":{"1":524,"2":787,"8":298,"11":380},"ilvl":496},"1":{"randPropPoints":1035,"weaponDamageMin":4334,"weaponDamageMax":8049,"stats":{"1":544,"2":817,"8":310,"11":394},"ilvl":500},"2":{"randPropPoints":1074,"weaponDamageMin":4498,"weaponDamageMax":8355,"stats":{"1":565,"2":847,"8":321,"11":409},"ilvl":504}}}, {"id":86394,"name":"Hozen Warrior Spear","icon":"inv_spear_05","type":13,"weaponType":6,"handType":4,"weaponSpeed":3.3,"phase":1,"quality":3,"scalingOptions":{"0":{"randPropPoints":1305,"weaponDamageMin":6619,"weaponDamageMax":9930,"stats":{"1":686,"2":1029,"7":401,"11":491},"ilvl":434}}}, {"id":86513,"name":"Robes of Torn Nightmares","icon":"inv_chest_cloth_challengepriest_d_01","type":5,"armorType":1,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":741,"zoneId":6297,"otherName":"Wind Lord Mel'jarak"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":2037},"ilvl":463},"0":{"randPropPoints":2326,"stats":{"2":1835,"3":1063,"4":735,"6":735,"17":2281},"ilvl":496},"1":{"randPropPoints":2414,"stats":{"2":1904,"3":1110,"4":766,"6":766,"17":2311},"ilvl":500},"2":{"randPropPoints":2506,"stats":{"2":1977,"3":1158,"4":799,"6":799,"17":2340},"ilvl":504}}}, {"id":86514,"name":"Clutches of Dying Hope","icon":"inv_glove_leather_raiddruid_l_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":741,"zoneId":6297,"otherName":"Wind Lord Mel'jarak"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":438,"7":351,"17":1620},"ilvl":463},"0":{"randPropPoints":1728,"stats":{"2":1363,"3":829,"6":610,"7":492,"17":1814},"ilvl":496},"1":{"randPropPoints":1793,"stats":{"2":1414,"3":863,"6":634,"7":512,"17":1838},"ilvl":500},"2":{"randPropPoints":1862,"stats":{"2":1469,"3":899,"6":660,"7":533,"17":1862},"ilvl":504}}}, @@ -5362,8 +5362,8 @@ {"id":86861,"name":"Monstrous Stompers","icon":"inv_boots_chain_07","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":402,"7":404,"17":2480},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"1":725,"2":1208,"6":491,"7":497,"17":2660},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"1":756,"2":1254,"6":511,"7":518,"17":2696},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"1":787,"2":1301,"6":532,"7":539,"17":2732},"ilvl":491}}}, {"id":86862,"name":"Un'sok's Amber Scalpel","icon":"inv_knife_1h_pandaraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":198,"7":228,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":1849,"weaponDamageMax":3435,"stats":{"2":697,"3":384,"4":247,"7":283,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":1919,"weaponDamageMax":3565,"stats":{"2":723,"3":402,"4":258,"7":296,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":1992,"weaponDamageMax":3701,"stats":{"2":750,"3":420,"4":269,"7":308,"14":6684},"ilvl":491}}}, {"id":86863,"name":"Scimitar of Seven Stars","icon":"inv_sword_1h_pandaraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":221,"11":211},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":5343,"weaponDamageMax":9923,"stats":{"0":384,"2":697,"5":274,"11":262},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":5546,"weaponDamageMax":10300,"stats":{"0":402,"2":723,"5":286,"11":273},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":5756,"weaponDamageMax":10691,"stats":{"0":420,"2":750,"5":298,"11":285},"ilvl":491}}}, -{"id":86864,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":5343,"weaponDamageMax":9923,"stats":{"1":464,"2":697,"6":349,"8":242},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":5546,"weaponDamageMax":10300,"stats":{"1":482,"2":723,"6":362,"8":252},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":5756,"weaponDamageMax":10691,"stats":{"1":500,"2":750,"6":376,"8":261},"ilvl":491}}}, -{"id":86865,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.4,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":2466,"weaponDamageMax":4580,"stats":{"2":697,"3":464,"4":319,"6":294,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":2559,"weaponDamageMax":4754,"stats":{"2":723,"3":482,"4":331,"6":306,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":2656,"weaponDamageMax":4934,"stats":{"2":750,"3":500,"4":343,"6":317,"14":6684},"ilvl":491}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":86864,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":5343,"weaponDamageMax":9923,"stats":{"1":464,"2":697,"6":349,"8":242},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":5546,"weaponDamageMax":10300,"stats":{"1":482,"2":723,"6":362,"8":252},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":5756,"weaponDamageMax":10691,"stats":{"1":500,"2":750,"6":376,"8":261},"ilvl":491}}}, +{"id":86865,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":2466,"weaponDamageMax":4580,"stats":{"2":697,"3":464,"4":319,"6":294,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":2559,"weaponDamageMax":4754,"stats":{"2":723,"3":482,"4":331,"6":306,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":2656,"weaponDamageMax":4934,"stats":{"2":750,"3":500,"4":343,"6":317,"14":6684},"ilvl":491}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":86866,"name":"Crown of the Doomed Empress","icon":"inv_helmet_mail_dungeonmail_c_05","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"1":844,"2":1626,"6":583,"7":623,"17":3144},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"1":885,"2":1687,"6":610,"7":650,"17":3186},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"1":927,"2":1751,"6":638,"7":678,"17":3229},"ilvl":491}}}, {"id":86867,"name":"Leggings of Shadow Infestation","icon":"inv_pants_robe_dungeonrobe_c_05","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":603,"11":376,"17":1782},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"2":1626,"3":924,"6":744,"11":469,"17":1912},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"2":1687,"3":965,"6":775,"11":490,"17":1938},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"2":1751,"3":1007,"6":807,"11":511,"17":1963},"ilvl":491}}}, {"id":86868,"name":"Bracers of Defiled Earth","icon":"inv_bracer_plate_raiddeathknight_l_01","type":6,"armorType":4,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"5":254,"11":381,"17":2155},"ilvl":463},"0":{"randPropPoints":1148,"stats":{"0":604,"2":906,"5":306,"11":459,"17":2312},"ilvl":483},"1":{"randPropPoints":1192,"stats":{"0":627,"2":940,"5":318,"11":476,"17":2343},"ilvl":487},"2":{"randPropPoints":1237,"stats":{"0":651,"2":976,"5":330,"11":494,"17":2374},"ilvl":491}}}, @@ -5377,21 +5377,21 @@ {"id":86876,"name":"Casque of Expelled Corruption","icon":"inv_helmet_plate_raidpaladin_l_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":415,"7":526,"17":4002},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"2":1626,"3":844,"4":529,"7":655,"17":4293},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"2":1687,"3":885,"4":554,"7":683,"17":4351},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"2":1751,"3":927,"4":581,"7":713,"17":4410},"ilvl":491}}}, {"id":86877,"name":"Lightning Prisoner's Boots","icon":"inv_boots_mail_raidshaman_l_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":290,"7":476,"17":2480},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"4":360,"7":580,"17":2660},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"4":375,"7":603,"17":2696},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"4":391,"7":627,"17":2732},"ilvl":491}}}, {"id":86878,"name":"Asani's Uncleansed Sandals","icon":"inv_boots_leather_raiddruid_l_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":375,"7":426,"17":1782},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"4":462,"7":521,"17":1912},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"4":481,"7":542,"17":1938},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"4":501,"7":563,"17":1964},"ilvl":491}}}, -{"id":86879,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":10450,"weaponDamageMax":15675,"stats":{"1":1084,"2":1626,"8":734,"11":704},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":10847,"weaponDamageMax":16271,"stats":{"1":1125,"2":1687,"8":761,"11":731},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":11259,"weaponDamageMax":16889,"stats":{"1":1167,"2":1751,"8":790,"11":759},"ilvl":491}}}, +{"id":86879,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":10450,"weaponDamageMax":15675,"stats":{"1":1084,"2":1626,"8":734,"11":704},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":10847,"weaponDamageMax":16271,"stats":{"1":1125,"2":1687,"8":761,"11":731},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":11259,"weaponDamageMax":16889,"stats":{"1":1167,"2":1751,"8":790,"11":759},"ilvl":491}}}, {"id":86880,"name":"Dread Shadow Ring","icon":"inv_misc_epicring_b2","type":11,"phase":1,"quality":4,"limitCategory":225,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"5":285,"6":363},"ilvl":463},"0":{"randPropPoints":1148,"stats":{"0":604,"2":906,"5":343,"6":437},"ilvl":483},"1":{"randPropPoints":1192,"stats":{"0":627,"2":940,"5":357,"6":454},"ilvl":487},"2":{"randPropPoints":1237,"stats":{"0":651,"2":976,"5":370,"6":471},"ilvl":491}}}, {"id":86881,"name":"Stuff of Nightmares","icon":"inv_misc_trinketpanda_13","type":12,"phase":1,"quality":4,"limitCategory":220,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"11":1021},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"11":1059},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"11":1099},"ilvl":491}},"itemEffects":[{"buffId":126646,"buffName":"Untouchable","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"9":5079}},"0":{"stats":{"9":6121}},"1":{"stats":{"9":6353}},"2":{"stats":{"9":6593}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86882,"name":"Sunwrought Mail Hauberk","icon":"inv_chest_mail_raidhunter_j_01","type":5,"armorType":3,"gemSockets":[2,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":417,"7":580,"17":3607},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"1":924,"2":1626,"5":520,"7":715,"17":3869},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"1":965,"2":1687,"5":542,"7":745,"17":3921},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"1":1007,"2":1751,"5":566,"7":776,"17":3974},"ilvl":491}}}, {"id":86883,"name":"Daybreak Drape","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":326,"10":339,"17":1018},"ilvl":463},"0":{"randPropPoints":1148,"stats":{"0":604,"2":906,"9":392,"10":409,"17":1092},"ilvl":483},"1":{"randPropPoints":1192,"stats":{"0":627,"2":940,"9":407,"10":424,"17":1107},"ilvl":487},"2":{"randPropPoints":1237,"stats":{"0":651,"2":976,"9":423,"10":440,"17":1122},"ilvl":491}}}, {"id":86884,"name":"Belt of Embodied Terror","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[4,3,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":410,"11":289,"17":1146},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":645,"4":511,"11":365,"17":1229},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":676,"4":533,"11":382,"17":1246},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":707,"4":556,"11":400,"17":1262},"ilvl":491}}}, {"id":86885,"name":"Spirits of the Sun","icon":"inv_drink_29_sunkissedwine","type":12,"phase":1,"quality":4,"limitCategory":219,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"3":1021},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"3":1059},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"3":1099},"ilvl":491}},"itemEffects":[{"buffId":126640,"buffName":"Radiance","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"4":5079}},"0":{"stats":{"4":6121}},"1":{"stats":{"4":6353}},"2":{"stats":{"4":6593}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":86886,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.2,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":2260,"weaponDamageMax":4198,"stats":{"2":697,"3":464,"6":314,"7":302,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":2346,"weaponDamageMax":4358,"stats":{"2":723,"3":482,"6":326,"7":313,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":2435,"weaponDamageMax":4523,"stats":{"2":750,"3":500,"6":338,"7":325,"14":6684},"ilvl":491}}}, +{"id":86886,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":2260,"weaponDamageMax":4198,"stats":{"2":697,"3":464,"6":314,"7":302,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":2346,"weaponDamageMax":4358,"stats":{"2":723,"3":482,"6":326,"7":313,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":2435,"weaponDamageMax":4523,"stats":{"2":750,"3":500,"6":338,"7":325,"14":6684},"ilvl":491}}}, {"id":86887,"name":"Sollerets of Instability","icon":"inv_boot_plate_raidpaladin_l_01","type":10,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":417,"11":380,"17":3386},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"4":512,"11":465,"17":3633},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1253,"3":756,"4":534,"11":484,"17":3682},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"4":556,"11":503,"17":3731},"ilvl":491}}}, {"id":86888,"name":"Sandals of the Blackest Night","icon":"inv_boots_robe_raidwarlock_j_01","type":10,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":452,"11":332,"17":1400},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"7":551,"11":410,"17":1502},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"7":573,"11":427,"17":1522},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"7":596,"11":445,"17":1543},"ilvl":491}}}, -{"id":86889,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"weaponSpeed":3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":530,"11":577},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":8312,"weaponDamageMax":15438,"stats":{"1":1004,"2":1626,"7":647,"11":704},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":8628,"weaponDamageMax":16024,"stats":{"1":1045,"2":1687,"7":673,"11":732},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":8956,"weaponDamageMax":16633,"stats":{"1":1087,"2":1751,"7":700,"11":761},"ilvl":491}}}, +{"id":86889,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":530,"11":577},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":8312,"weaponDamageMax":15438,"stats":{"1":1004,"2":1626,"7":647,"11":704},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":8628,"weaponDamageMax":16024,"stats":{"1":1045,"2":1687,"7":673,"11":732},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":8956,"weaponDamageMax":16633,"stats":{"1":1087,"2":1751,"7":700,"11":761},"ilvl":491}}}, {"id":86890,"name":"Terror in the Mists","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":221,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"1":1021},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"1":1059},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"1":1099},"ilvl":491}},"itemEffects":[{"buffId":126649,"buffName":"Unrelenting Attacks","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"6":5079}},"0":{"stats":{"6":6121}},"1":{"stats":{"6":6353}},"2":{"stats":{"6":6593}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86891,"name":"Cuirass of the Animated Protector","icon":"inv_chest_plate_raidwarrior_l_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"9":529,"11":504,"17":4926},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"0":924,"2":1626,"9":654,"11":624,"17":5284},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"0":965,"2":1687,"9":681,"11":651,"17":5356},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"0":1007,"2":1751,"9":710,"11":679,"17":5427},"ilvl":491}}}, {"id":86892,"name":"Robes of the Unknown Fear","icon":"inv_robe_raidmage_l_01","type":5,"armorType":1,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"2":1626,"3":924,"5":537,"11":705,"17":2185},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"2":1687,"3":965,"5":560,"11":735,"17":2214},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"2":1751,"3":1007,"5":584,"11":766,"17":2244},"ilvl":491}}}, -{"id":86893,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":5225,"weaponDamageMax":7838,"stats":{"2":1626,"3":1084,"6":669,"7":755,"14":6208},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":5423,"weaponDamageMax":8135,"stats":{"2":1687,"3":1125,"6":694,"7":783,"14":6443},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":5629,"weaponDamageMax":8444,"stats":{"2":1751,"3":1167,"6":721,"7":813,"14":6687},"ilvl":491}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":86893,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":5225,"weaponDamageMax":7838,"stats":{"2":1626,"3":1084,"6":669,"7":755,"14":6208},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":5423,"weaponDamageMax":8135,"stats":{"2":1687,"3":1125,"6":694,"7":783,"14":6443},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":5629,"weaponDamageMax":8444,"stats":{"2":1751,"3":1167,"6":721,"7":813,"14":6687},"ilvl":491}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":86894,"name":"Darkmist Vortex","icon":"creatureportrait_cyclone_nodebris","type":12,"phase":1,"quality":4,"limitCategory":209,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":847},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"0":1021},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"0":1059},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"0":1099},"ilvl":491}},"itemEffects":[{"buffId":126657,"buffName":"Alacrity","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":6121}},"1":{"stats":{"7":6353}},"2":{"stats":{"7":6593}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86895,"name":"Healer's Belt of Final Winter","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":412,"7":394,"17":1146},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"4":505,"7":483,"17":1229},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"4":526,"7":503,"17":1246},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"4":547,"7":524,"17":1262},"ilvl":491}}}, {"id":86896,"name":"Invoker's Belt of Final Winter","icon":"inv_belt_raidmage_l_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":351,"11":438,"17":1146},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"5":431,"11":536,"17":1229},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"5":449,"11":558,"17":1246},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"5":467,"11":580,"17":1262},"ilvl":491}}}, @@ -5403,12 +5403,12 @@ {"id":86902,"name":"Mender's Girdle of Endless Spring","icon":"inv_belt_plate_raidpaladin_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"11":298,"17":2771},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"4":572,"11":368,"17":2972},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"4":595,"11":383,"17":3012},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"4":619,"11":399,"17":3053},"ilvl":491}}}, {"id":86903,"name":"Protector's Girdle of Endless Spring","icon":"inv_belt_plate_raidwarrior_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":428,"2":1002,"8":298,"9":628,"17":2771},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"0":532,"2":1208,"8":368,"9":765,"17":2972},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"0":555,"2":1254,"8":383,"9":796,"17":3012},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"0":579,"2":1301,"8":399,"9":827,"17":3053},"ilvl":491}}}, {"id":86904,"name":"Patroller's Girdle of Endless Spring","icon":"inv_belt_plate_raiddeathknight_l_01","type":8,"armorType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"5":319,"6":456,"17":2771},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"0":725,"2":1208,"5":393,"6":558,"17":2972},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"0":756,"2":1254,"5":409,"6":581,"17":3012},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"0":787,"2":1301,"5":426,"6":604,"17":3053},"ilvl":491}}}, -{"id":86905,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":11400,"weaponDamageMax":17100,"stats":{"0":1084,"2":1626,"6":723,"11":723},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":11833,"weaponDamageMax":17750,"stats":{"0":1125,"2":1687,"6":750,"11":750},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":12282,"weaponDamageMax":18424,"stats":{"0":1167,"2":1751,"6":778,"11":778},"ilvl":491}}}, -{"id":86906,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":5343,"weaponDamageMax":9923,"stats":{"0":464,"2":697,"5":314,"11":302},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":5546,"weaponDamageMax":10300,"stats":{"0":482,"2":723,"5":326,"11":313},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":5756,"weaponDamageMax":10691,"stats":{"0":500,"2":750,"5":338,"11":325},"ilvl":491}}}, +{"id":86905,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2061,"weaponDamageMin":11400,"weaponDamageMax":17100,"stats":{"0":1084,"2":1626,"6":723,"11":723},"ilvl":483},"1":{"randPropPoints":2139,"weaponDamageMin":11833,"weaponDamageMax":17750,"stats":{"0":1125,"2":1687,"6":750,"11":750},"ilvl":487},"2":{"randPropPoints":2220,"weaponDamageMin":12282,"weaponDamageMax":18424,"stats":{"0":1167,"2":1751,"6":778,"11":778},"ilvl":491}}}, +{"id":86906,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":5343,"weaponDamageMax":9923,"stats":{"0":464,"2":697,"5":314,"11":302},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":5546,"weaponDamageMax":10300,"stats":{"0":482,"2":723,"5":326,"11":313},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":5756,"weaponDamageMax":10691,"stats":{"0":500,"2":750,"5":338,"11":325},"ilvl":491}}}, {"id":86907,"name":"Essence of Terror","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":210,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"3":1021},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"3":1059},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"3":1099},"ilvl":491}},"itemEffects":[{"buffId":126659,"buffName":"Quickened Tongues","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":6121}},"1":{"stats":{"7":6353}},"2":{"stats":{"7":6593}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, {"id":86908,"name":"Dreadwoven Leggings of Failure","icon":"inv_pant_raidmage_l_01","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"7":546,"17":1782},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"2":1626,"3":924,"5":589,"7":675,"17":1912},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"2":1687,"3":965,"5":614,"7":703,"17":1938},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"2":1751,"3":1007,"5":641,"7":733,"17":1963},"ilvl":491}}}, {"id":86909,"name":"Regail's Crackling Dagger","icon":"inv_knife_1h_pandaraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"6":185,"11":236,"14":5152},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":1849,"weaponDamageMax":3435,"stats":{"2":697,"3":384,"6":232,"11":292,"14":6206},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":1919,"weaponDamageMax":3565,"stats":{"2":723,"3":402,"6":242,"11":305,"14":6445},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":1992,"weaponDamageMax":3701,"stats":{"2":750,"3":420,"6":253,"11":318,"14":6684},"ilvl":491}}}, -{"id":86910,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":3699,"weaponDamageMax":6870,"stats":{"1":464,"2":697,"8":264,"11":336},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":3839,"weaponDamageMax":7131,"stats":{"1":482,"2":723,"8":274,"11":349},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":3985,"weaponDamageMax":7401,"stats":{"1":500,"2":750,"8":285,"11":362},"ilvl":491}}}, +{"id":86910,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":883,"weaponDamageMin":3699,"weaponDamageMax":6870,"stats":{"1":464,"2":697,"8":264,"11":336},"ilvl":483},"1":{"randPropPoints":917,"weaponDamageMin":3839,"weaponDamageMax":7131,"stats":{"1":482,"2":723,"8":274,"11":349},"ilvl":487},"2":{"randPropPoints":951,"weaponDamageMin":3985,"weaponDamageMax":7401,"stats":{"1":500,"2":750,"8":285,"11":362},"ilvl":491}}}, {"id":86911,"name":"Robes of Torn Nightmares","icon":"inv_chest_cloth_challengepriest_d_01","type":5,"armorType":1,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":741,"zoneId":6297,"otherName":"Wind Lord Mel'jarak"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":2037},"ilvl":463},"0":{"randPropPoints":2061,"stats":{"2":1626,"3":924,"4":643,"6":643,"17":2185},"ilvl":483},"1":{"randPropPoints":2139,"stats":{"2":1687,"3":965,"4":670,"6":670,"17":2214},"ilvl":487},"2":{"randPropPoints":2220,"stats":{"2":1751,"3":1007,"4":698,"6":698,"17":2244},"ilvl":491}}}, {"id":86912,"name":"Clutches of Dying Hope","icon":"inv_glove_leather_raiddruid_l_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":741,"zoneId":6297,"otherName":"Wind Lord Mel'jarak"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":438,"7":351,"17":1620},"ilvl":463},"0":{"randPropPoints":1531,"stats":{"2":1208,"3":725,"6":536,"7":431,"17":1738},"ilvl":483},"1":{"randPropPoints":1589,"stats":{"2":1254,"3":756,"6":558,"7":449,"17":1761},"ilvl":487},"2":{"randPropPoints":1649,"stats":{"2":1301,"3":787,"6":580,"7":467,"17":1785},"ilvl":491}}}, {"id":86913,"name":"Breastplate of the Lost Catacomb","icon":"inv_chest_plate_raiddeathknight_l_01","type":5,"armorType":4,"gemSockets":[4,4],"socketBonus":[0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":4,"nameDescription":"Heroic","classAllowlist":[6],"setName":"Battlegear of the Lost Catacomb","setId":1123,"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"6":563,"7":446,"17":4926},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"0":1220,"2":2071,"6":907,"7":727,"17":5749},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"0":1273,"2":2150,"6":945,"7":758,"17":5821},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"0":1328,"2":2232,"6":984,"7":790,"17":5893},"ilvl":517}}}, @@ -5486,9 +5486,9 @@ {"id":86985,"name":"Monstrous Stompers","icon":"inv_boot_mail_raidhunter_l_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":402,"7":404,"17":2480},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"1":946,"2":1538,"6":635,"7":646,"17":2894},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"1":984,"2":1597,"6":660,"7":672,"17":2930},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"1":1025,"2":1657,"6":686,"7":700,"17":2966},"ilvl":517}}}, {"id":86986,"name":"Shoulderpads of Misshapen Life","icon":"inv_shoulder_plate_raiddeathknight_l_01","type":3,"armorType":4,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":431,"11":361,"17":3694},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"0":946,"2":1538,"6":684,"11":576,"17":4312},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"0":984,"2":1597,"6":711,"11":600,"17":4366},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"0":1025,"2":1657,"6":740,"11":624,"17":4419},"ilvl":517}}}, {"id":86987,"name":"Scimitar of Seven Stars","icon":"inv_sword_1h_pandaraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":737,"zoneId":6297,"otherName":"Amber-Shaper Un'sok"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":221,"11":211},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":6807,"weaponDamageMax":12643,"stats":{"0":512,"2":887,"5":360,"11":345},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":7066,"weaponDamageMax":13123,"stats":{"0":534,"2":921,"5":376,"11":359},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":7334,"weaponDamageMax":13622,"stats":{"0":557,"2":956,"5":391,"11":374},"ilvl":517}}}, -{"id":86988,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":6807,"weaponDamageMax":12643,"stats":{"1":592,"2":887,"6":444,"8":309},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":7066,"weaponDamageMax":13123,"stats":{"1":614,"2":921,"6":461,"8":321},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":7334,"weaponDamageMax":13622,"stats":{"1":637,"2":956,"6":479,"8":333},"ilvl":517}}}, +{"id":86988,"name":"Claws of Shek'zeer","icon":"inv_hand_1h_pandaraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"6":290,"8":201},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":6807,"weaponDamageMax":12643,"stats":{"1":592,"2":887,"6":444,"8":309},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":7066,"weaponDamageMax":13123,"stats":{"1":614,"2":921,"6":461,"8":321},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":7334,"weaponDamageMax":13622,"stats":{"1":637,"2":956,"6":479,"8":333},"ilvl":517}}}, {"id":86989,"name":"Leggings of Shadow Infestation","icon":"inv_pants_cloth_raidwarlock_l_01","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":603,"11":376,"17":1782},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"2":2071,"3":1220,"6":969,"11":619,"17":2080},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"2":2150,"3":1273,"6":1009,"11":646,"17":2106},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"2":2232,"3":1328,"6":1051,"11":674,"17":2132},"ilvl":517}}}, -{"id":86990,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.4,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":3142,"weaponDamageMax":5835,"stats":{"2":888,"3":592,"4":406,"6":375,"14":7907},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":3261,"weaponDamageMax":6057,"stats":{"2":921,"3":614,"4":422,"6":389,"14":8209},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":3385,"weaponDamageMax":6287,"stats":{"2":956,"3":637,"4":438,"6":404,"14":8518},"ilvl":517}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":86990,"name":"Kri'tak, Imperial Scepter of the Swarm","icon":"inv_mace_1h_pandaraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":385,"4":265,"6":244,"14":5152},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":3142,"weaponDamageMax":5835,"stats":{"2":888,"3":592,"4":406,"6":375,"14":7907},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":3261,"weaponDamageMax":6057,"stats":{"2":921,"3":614,"4":422,"6":389,"14":8209},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":3385,"weaponDamageMax":6287,"stats":{"2":956,"3":637,"4":438,"6":404,"14":8518},"ilvl":517}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":86991,"name":"Crown of the Doomed Empress","icon":"inv_helm_mail_raidhunter_l_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":743,"zoneId":6297,"otherName":"Grand Empress Shek'zeer"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"1":1140,"2":2071,"6":780,"7":820,"17":3421},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"1":1193,"2":2150,"6":815,"7":855,"17":3463},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"1":1248,"2":2232,"6":852,"7":892,"17":3506},"ilvl":517}}}, {"id":86992,"name":"Shining Cicada Bracers","icon":"inv_bracer_raidmage_l_01","type":6,"armorType":1,"quality":4,"nameDescription":"Heroic","scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":293,"6":358,"17":891},"ilvl":463},"0":{"randPropPoints":1463,"stats":{"2":1154,"3":769,"5":450,"6":550,"17":1040},"ilvl":509},"1":{"randPropPoints":1518,"stats":{"2":1198,"3":798,"5":467,"6":571,"17":1053},"ilvl":513},"2":{"randPropPoints":1576,"stats":{"2":1243,"3":829,"5":485,"6":593,"17":1066},"ilvl":517}}}, {"id":86993,"name":"Darting Damselfly Cuffs","icon":"inv_bracer_cloth_challengepriest_d_01","type":6,"armorType":1,"quality":4,"nameDescription":"Heroic","scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":363,"7":285,"17":891},"ilvl":463},"0":{"randPropPoints":1463,"stats":{"2":1154,"3":769,"4":557,"7":438,"17":1040},"ilvl":509},"1":{"randPropPoints":1518,"stats":{"2":1198,"3":798,"4":578,"7":454,"17":1053},"ilvl":513},"2":{"randPropPoints":1576,"stats":{"2":1243,"3":829,"4":600,"7":472,"17":1066},"ilvl":517}}}, @@ -5649,7 +5649,7 @@ {"id":87153,"name":"Asani's Uncleansed Sandals","icon":"inv_boots_leather_raiddruid_l_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":375,"7":426,"17":1782},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"4":602,"7":672,"17":2080},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"4":626,"7":699,"17":2106},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"4":652,"7":726,"17":2132},"ilvl":517}}}, {"id":87154,"name":"Lightning Prisoner's Boots","icon":"inv_boots_mail_raidshaman_l_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":290,"7":476,"17":2480},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"4":471,"7":747,"17":2894},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"4":491,"7":777,"17":2930},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"4":512,"7":808,"17":2966},"ilvl":517}}}, {"id":87155,"name":"Casque of Expelled Corruption","icon":"inv_helmet_plate_raidpaladin_l_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":683,"zoneId":6067,"otherName":"Protectors of the Endless"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":415,"7":526,"17":4002},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"2":2071,"3":1140,"4":712,"7":861,"17":4671},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"2":2149,"3":1193,"4":745,"7":898,"17":4730},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"2":2232,"3":1248,"4":778,"7":936,"17":4788},"ilvl":517}}}, -{"id":87156,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":13314,"weaponDamageMax":19972,"stats":{"1":1380,"2":2071,"8":934,"11":897},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":13820,"weaponDamageMax":20731,"stats":{"1":1433,"2":2150,"8":970,"11":931},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":14345,"weaponDamageMax":21518,"stats":{"1":1488,"2":2232,"8":1007,"11":967},"ilvl":517}}}, +{"id":87156,"name":"Gao-Rei, Staff of the Legendary Protector","icon":"inv_staff_2h_pandaraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"8":609,"11":584},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":13314,"weaponDamageMax":19972,"stats":{"1":1380,"2":2071,"8":934,"11":897},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":13820,"weaponDamageMax":20731,"stats":{"1":1433,"2":2150,"8":970,"11":931},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":14345,"weaponDamageMax":21518,"stats":{"1":1488,"2":2232,"8":1007,"11":967},"ilvl":517}}}, {"id":87157,"name":"Sunwrought Mail Hauberk","icon":"inv_chest_mail_raidhunter_l_01","type":5,"armorType":3,"gemSockets":[2,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":417,"7":580,"17":3607},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"1":1220,"2":2071,"5":684,"7":933,"17":4210},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"1":1273,"2":2150,"5":713,"7":971,"17":4262},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"1":1328,"2":2232,"5":743,"7":1011,"17":4315},"ilvl":517}}}, {"id":87158,"name":"Dread Shadow Ring","icon":"inv_misc_epicring_b2","type":11,"phase":1,"quality":4,"limitCategory":225,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"5":285,"6":363},"ilvl":463},"0":{"randPropPoints":1463,"stats":{"0":769,"2":1154,"5":438,"6":557},"ilvl":509},"1":{"randPropPoints":1518,"stats":{"0":798,"2":1198,"5":454,"6":578},"ilvl":513},"2":{"randPropPoints":1576,"stats":{"0":829,"2":1243,"5":472,"6":600},"ilvl":517}}}, {"id":87159,"name":"Daybreak Drape","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":326,"10":339,"17":1018},"ilvl":463},"0":{"randPropPoints":1463,"stats":{"0":769,"2":1154,"9":500,"10":521,"17":1189},"ilvl":509},"1":{"randPropPoints":1518,"stats":{"0":798,"2":1198,"9":519,"10":540,"17":1203},"ilvl":513},"2":{"randPropPoints":1576,"stats":{"0":829,"2":1243,"9":539,"10":561,"17":1218},"ilvl":517}}}, @@ -5657,19 +5657,19 @@ {"id":87161,"name":"Belt of Embodied Terror","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[4,3,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":410,"11":289,"17":1146},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":866,"4":672,"11":487,"17":1337},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":904,"4":701,"11":509,"17":1354},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":945,"4":731,"11":531,"17":1370},"ilvl":517}}}, {"id":87162,"name":"Sandals of the Blackest Night","icon":"inv_boot_cloth_raidwarlock_l_01","type":10,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":452,"11":332,"17":1400},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"7":711,"11":535,"17":1634},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"7":739,"11":558,"17":1655},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"7":768,"11":581,"17":1675},"ilvl":517}}}, {"id":87163,"name":"Spirits of the Sun","icon":"inv_drink_29_sunkissedwine","type":12,"phase":1,"quality":4,"limitCategory":219,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"3":1300},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"3":1349},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"3":1401},"ilvl":517}},"itemEffects":[{"buffId":126640,"buffName":"Radiance","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"4":5079}},"0":{"stats":{"4":7796}},"1":{"stats":{"4":8093}},"2":{"stats":{"4":8402}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":87164,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.2,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":2880,"weaponDamageMax":5349,"stats":{"2":887,"3":592,"6":400,"7":385,"14":7907},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":2989,"weaponDamageMax":5552,"stats":{"2":921,"3":614,"6":416,"7":399,"14":8209},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":3103,"weaponDamageMax":5763,"stats":{"2":956,"3":637,"6":431,"7":414,"14":8518},"ilvl":517}}}, +{"id":87164,"name":"Loshan, Terror Incarnate","icon":"inv_sword_1h_pandaraid_d_03","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":385,"6":261,"7":251,"14":5152},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":2880,"weaponDamageMax":5349,"stats":{"2":887,"3":592,"6":400,"7":385,"14":7907},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":2989,"weaponDamageMax":5552,"stats":{"2":921,"3":614,"6":416,"7":399,"14":8209},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":3103,"weaponDamageMax":5763,"stats":{"2":956,"3":637,"6":431,"7":414,"14":8518},"ilvl":517}}}, {"id":87165,"name":"Sollerets of Instability","icon":"inv_boot_plate_raidpaladin_l_01","type":10,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":417,"11":380,"17":3386},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"4":666,"11":601,"17":3953},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"4":693,"11":625,"17":4002},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"4":721,"11":650,"17":4051},"ilvl":517}}}, -{"id":87166,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":4713,"weaponDamageMax":8753,"stats":{"1":592,"2":888,"8":337,"11":429},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":4892,"weaponDamageMax":9085,"stats":{"1":614,"2":921,"8":349,"11":445},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":5077,"weaponDamageMax":9430,"stats":{"1":637,"2":956,"8":363,"11":462},"ilvl":517}}}, +{"id":87166,"name":"Spiritsever","icon":"inv_knife_1h_pandaraidsha_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"8":219,"11":279},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":4713,"weaponDamageMax":8753,"stats":{"1":592,"2":888,"8":337,"11":429},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":4892,"weaponDamageMax":9085,"stats":{"1":614,"2":921,"8":349,"11":445},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":5077,"weaponDamageMax":9430,"stats":{"1":637,"2":956,"8":363,"11":462},"ilvl":517}}}, {"id":87167,"name":"Terror in the Mists","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":221,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"1":1300},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"1":1349},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"1":1401},"ilvl":517}},"itemEffects":[{"buffId":126649,"buffName":"Unrelenting Attacks","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"6":5079}},"0":{"stats":{"6":7796}},"1":{"stats":{"6":8093}},"2":{"stats":{"6":8402}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":87168,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"weaponSpeed":3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1349,"7":570,"11":617},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":10591,"weaponDamageMax":19670,"stats":{"1":1380,"2":2071,"7":875,"11":948},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":10993,"weaponDamageMax":20417,"stats":{"1":1433,"2":2150,"7":908,"11":984},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":11411,"weaponDamageMax":21192,"stats":{"1":1488,"2":2232,"7":943,"11":1021},"ilvl":517}}}, +{"id":87168,"name":"Taoren, the Soul Burner","icon":"inv_firearm_2h_rifle_pandaraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1349,"7":570,"11":617},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":10591,"weaponDamageMax":19670,"stats":{"1":1380,"2":2071,"7":875,"11":948},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":10993,"weaponDamageMax":20417,"stats":{"1":1433,"2":2150,"7":908,"11":984},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":11411,"weaponDamageMax":21192,"stats":{"1":1488,"2":2232,"7":943,"11":1021},"ilvl":517}}}, {"id":87169,"name":"Robes of the Unknown Fear","icon":"inv_chest_cloth_raidwarlock_l_01","type":5,"armorType":1,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"2":2071,"3":1220,"5":705,"11":920,"17":2377},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"2":2149,"3":1273,"5":735,"11":958,"17":2407},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"2":2232,"3":1328,"5":766,"11":998,"17":2436},"ilvl":517}}}, -{"id":87170,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":6657,"weaponDamageMax":9986,"stats":{"2":2071,"3":1380,"6":852,"7":961,"14":7907},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":6910,"weaponDamageMax":10365,"stats":{"2":2150,"3":1433,"6":885,"7":998,"14":8208},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":7172,"weaponDamageMax":10759,"stats":{"2":2232,"3":1488,"6":918,"7":1036,"14":8521},"ilvl":517}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, +{"id":87170,"name":"Jin'ya, Orb of the Waterspeaker","icon":"inv_staff_2h_pandaraidsha_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":899,"6":555,"7":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":6657,"weaponDamageMax":9986,"stats":{"2":2071,"3":1380,"6":852,"7":961,"14":7907},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":6910,"weaponDamageMax":10365,"stats":{"2":2150,"3":1433,"6":885,"7":998,"14":8208},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":7172,"weaponDamageMax":10759,"stats":{"2":2232,"3":1488,"6":918,"7":1036,"14":8521},"ilvl":517}},"itemEffects":[{"buffId":132602,"buffName":"Sha-dowfiend","effectDurationMs":-1,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":87171,"name":"Cuirass of the Animated Protector","icon":"inv_chest_plate_raidwarrior_l_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"9":529,"11":504,"17":4926},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"0":1220,"2":2071,"9":854,"11":817,"17":5749},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"0":1273,"2":2150,"9":890,"11":851,"17":5821},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"0":1328,"2":2232,"9":927,"11":887,"17":5893},"ilvl":517}}}, {"id":87172,"name":"Darkmist Vortex","icon":"creatureportrait_cyclone_nodebris","type":12,"phase":1,"quality":4,"limitCategory":209,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":729,"zoneId":6067,"otherName":"Lei Shi"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":847},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"0":1300},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"0":1349},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"0":1401},"ilvl":517}},"itemEffects":[{"buffId":126657,"buffName":"Alacrity","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":7796}},"1":{"stats":{"7":8093}},"2":{"stats":{"7":8402}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":87173,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":6807,"weaponDamageMax":12643,"stats":{"0":592,"2":887,"5":400,"11":385},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":7066,"weaponDamageMax":13123,"stats":{"0":614,"2":921,"5":416,"11":399},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":7334,"weaponDamageMax":13622,"stats":{"0":637,"2":956,"5":431,"11":414},"ilvl":517}}}, +{"id":87173,"name":"Kilrak, Jaws of Terror","icon":"inv_sword_1h_pandaraid_d_02","type":13,"weaponType":9,"handType":2,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":261,"11":251},"ilvl":463},"0":{"randPropPoints":1125,"weaponDamageMin":6807,"weaponDamageMax":12643,"stats":{"0":592,"2":887,"5":400,"11":385},"ilvl":509},"1":{"randPropPoints":1168,"weaponDamageMin":7066,"weaponDamageMax":13123,"stats":{"0":614,"2":921,"5":416,"11":399},"ilvl":513},"2":{"randPropPoints":1212,"weaponDamageMin":7334,"weaponDamageMax":13622,"stats":{"0":637,"2":956,"5":431,"11":414},"ilvl":517}}}, {"id":87174,"name":"Dreadwoven Leggings of Failure","icon":"inv_pant_raidmage_l_01","type":9,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"7":546,"17":1782},"ilvl":463},"0":{"randPropPoints":2625,"stats":{"2":2071,"3":1220,"5":772,"7":881,"17":2080},"ilvl":509},"1":{"randPropPoints":2725,"stats":{"2":2150,"3":1273,"5":805,"7":918,"17":2106},"ilvl":513},"2":{"randPropPoints":2829,"stats":{"2":2232,"3":1328,"5":838,"7":956,"17":2132},"ilvl":517}}}, {"id":87175,"name":"Essence of Terror","icon":"inv_misc_pvp_trinket","type":12,"phase":1,"quality":4,"limitCategory":210,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"3":1300},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"3":1349},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"3":1401},"ilvl":517}},"itemEffects":[{"buffId":126659,"buffName":"Quickened Tongues","effectDurationMs":20000,"scalingOptions":{"-1":{"stats":{"7":5079}},"0":{"stats":{"7":7796}},"1":{"stats":{"7":8093}},"2":{"stats":{"7":8402}}},"proc":{"icdMs":115000,"procChance":0.15}}]}, -{"id":87176,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"weaponSpeed":3.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":14525,"weaponDamageMax":21788,"stats":{"0":1380,"2":2071,"6":920,"11":920},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":15076,"weaponDamageMax":22615,"stats":{"0":1433,"2":2150,"6":955,"11":955},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":15649,"weaponDamageMax":23474,"stats":{"0":1488,"2":2232,"6":992,"11":992},"ilvl":517}}}, +{"id":87176,"name":"Shin'ka, Execution of Dominion","icon":"inv_axe_2h_pandaraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[10,8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":709,"zoneId":6067,"otherName":"Sha of Fear"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"6":600,"11":600},"ilvl":463},"0":{"randPropPoints":2625,"weaponDamageMin":14525,"weaponDamageMax":21788,"stats":{"0":1380,"2":2071,"6":920,"11":920},"ilvl":509},"1":{"randPropPoints":2725,"weaponDamageMin":15076,"weaponDamageMax":22615,"stats":{"0":1433,"2":2150,"6":955,"11":955},"ilvl":513},"2":{"randPropPoints":2829,"weaponDamageMin":15649,"weaponDamageMax":23474,"stats":{"0":1488,"2":2232,"6":992,"11":992},"ilvl":517}}}, {"id":87177,"name":"Invoker's Belt of Final Winter","icon":"inv_belt_raidmage_l_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":351,"11":438,"17":1146},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"5":560,"11":693,"17":1337},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"5":583,"11":721,"17":1354},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"5":606,"11":750,"17":1370},"ilvl":517}}}, {"id":87178,"name":"Healer's Belt of Final Winter","icon":"inv_belt_cloth_challengepriest_d_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":412,"7":394,"17":1146},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"4":654,"7":627,"17":1337},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"4":680,"7":652,"17":1354},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"4":708,"7":678,"17":1370},"ilvl":517}}}, {"id":87179,"name":"Sorcerer's Belt of Final Winter","icon":"inv_belt_raidmage_l_01","type":8,"armorType":1,"gemSockets":[3,8],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":1,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":742,"zoneId":6067,"otherName":"Tsulong"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":418,"7":383,"17":1146},"ilvl":463},"0":{"randPropPoints":1950,"stats":{"2":1538,"3":946,"6":664,"7":610,"17":1337},"ilvl":509},"1":{"randPropPoints":2024,"stats":{"2":1597,"3":984,"6":691,"7":634,"17":1354},"ilvl":513},"2":{"randPropPoints":2101,"stats":{"2":1657,"3":1025,"6":718,"7":660,"17":1370},"ilvl":517}}}, @@ -8169,26 +8169,26 @@ {"id":94576,"name":"Lunar Crescent, Reborn","icon":"inv_axe_50","type":13,"weaponType":1,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":3,"sources":[{"crafted":{"profession":2,"spellId":138877}}],"scalingOptions":{"0":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"7":600,"11":600},"ilvl":463}}}, {"id":94577,"name":"Black Planar Edge, Reborn","icon":"inv_axe_1h_blacksmithing_02","type":13,"weaponType":1,"handType":2,"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138878}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":5005,"weaponDamageMax":9297,"stats":{"0":435,"2":652,"5":290,"8":290},"ilvl":476}}}, {"id":94578,"name":"Mooncleaver, Reborn","icon":"inv_axe_51","type":13,"weaponType":1,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138879}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"7":600,"11":600},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":10680,"weaponDamageMax":16021,"stats":{"0":1015,"2":1522,"7":677,"11":677},"ilvl":476}}}, -{"id":94579,"name":"Wicked Edge of the Planes, Reborn","icon":"inv_axe_1h_blacksmithing_03","type":13,"weaponType":1,"handType":2,"gemSockets":[8],"weaponSpeed":2.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138880}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":554,"2":831,"5":370,"8":370},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":6620,"weaponDamageMax":12295,"stats":{"0":575,"2":863,"5":384,"8":384},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":6871,"weaponDamageMax":12762,"stats":{"0":597,"2":896,"5":398,"8":398},"ilvl":510}}}, -{"id":94580,"name":"Bloodmoon, Reborn","icon":"inv_axe_52","type":13,"weaponType":1,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138881}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"7":600,"11":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1294,"2":1940,"7":862,"11":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"0":1343,"2":2014,"7":895,"11":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"0":1394,"2":2090,"7":929,"11":929},"ilvl":510}}}, +{"id":94579,"name":"Wicked Edge of the Planes, Reborn","icon":"inv_axe_1h_blacksmithing_03","type":13,"weaponType":1,"handType":2,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138880}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":554,"2":831,"5":370,"8":370},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":6620,"weaponDamageMax":12295,"stats":{"0":575,"2":863,"5":384,"8":384},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":6871,"weaponDamageMax":12762,"stats":{"0":597,"2":896,"5":398,"8":398},"ilvl":510}}}, +{"id":94580,"name":"Bloodmoon, Reborn","icon":"inv_axe_52","type":13,"weaponType":1,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138881}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"7":600,"11":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1294,"2":1940,"7":862,"11":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"0":1343,"2":2014,"7":895,"11":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"0":1394,"2":2090,"7":929,"11":929},"ilvl":510}}}, {"id":94581,"name":"Drakefist Hammer, Reborn","icon":"inv_mace_37","type":13,"weaponType":4,"handType":2,"weaponSpeed":1.6,"phase":1,"quality":3,"sources":[{"crafted":{"profession":2,"spellId":138882}}],"scalingOptions":{"0":{"randPropPoints":733,"weaponDamageMin":1364,"weaponDamageMax":2534,"stats":{"2":578,"3":385,"4":257,"7":257,"14":5152},"ilvl":463}}}, {"id":94582,"name":"Thunder, Reborn","icon":"inv_mace_2h_blacksmithing_01","type":13,"weaponType":4,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":3,"sources":[{"crafted":{"profession":2,"spellId":138883}}],"scalingOptions":{"0":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":899,"2":1349,"5":600,"8":600},"ilvl":463}}}, {"id":94583,"name":"Deep Thunder, Reborn","icon":"inv_mace_2h_blacksmithing_02","type":13,"weaponType":4,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138884}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":10680,"weaponDamageMax":16021,"stats":{"1":1015,"2":1522,"5":677,"8":677},"ilvl":476}}}, {"id":94584,"name":"Dragonmaw, Reborn","icon":"inv_mace_38","type":13,"weaponType":4,"handType":2,"weaponSpeed":1.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138885}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1364,"weaponDamageMax":2534,"stats":{"2":578,"3":385,"4":257,"7":257,"14":5152},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":1540,"weaponDamageMax":2860,"stats":{"2":652,"3":435,"4":290,"7":290,"14":5812},"ilvl":476}}}, -{"id":94585,"name":"Dragonstrike, Reborn","icon":"inv_mace_39","type":13,"weaponType":4,"handType":2,"gemSockets":[8],"weaponSpeed":1.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138886}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1364,"weaponDamageMax":2534,"stats":{"2":578,"3":385,"4":257,"7":257,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":1962,"weaponDamageMax":3645,"stats":{"2":831,"3":554,"4":370,"7":370,"14":7408},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":2036,"weaponDamageMax":3783,"stats":{"2":863,"3":575,"4":384,"7":384,"14":7689},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":2114,"weaponDamageMax":3927,"stats":{"2":896,"3":597,"4":398,"7":398,"14":7984},"ilvl":510}}}, -{"id":94586,"name":"Stormherald, Reborn","icon":"inv_mace_2h_blacksmithing_03","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138887}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"1":1294,"2":1940,"5":862,"8":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"1":1343,"2":2014,"5":895,"8":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"1":1394,"2":2090,"5":929,"8":929},"ilvl":510}}}, +{"id":94585,"name":"Dragonstrike, Reborn","icon":"inv_mace_39","type":13,"weaponType":4,"handType":2,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":1.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138886}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1364,"weaponDamageMax":2534,"stats":{"2":578,"3":385,"4":257,"7":257,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":1962,"weaponDamageMax":3645,"stats":{"2":831,"3":554,"4":370,"7":370,"14":7408},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":2036,"weaponDamageMax":3783,"stats":{"2":863,"3":575,"4":384,"7":384,"14":7689},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":2114,"weaponDamageMax":3927,"stats":{"2":896,"3":597,"4":398,"7":398,"14":7984},"ilvl":510}}}, +{"id":94586,"name":"Stormherald, Reborn","icon":"inv_mace_2h_blacksmithing_03","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138887}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"1":1294,"2":1940,"5":862,"8":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"1":1343,"2":2014,"5":895,"8":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"1":1394,"2":2090,"5":929,"8":929},"ilvl":510}}}, {"id":94587,"name":"Fireguard, Reborn","icon":"inv_sword_1h_blacksmithing_01","type":13,"weaponType":9,"handType":2,"weaponSpeed":2.6,"phase":1,"quality":3,"sources":[{"crafted":{"profession":2,"spellId":138888}}],"scalingOptions":{"0":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"5":257,"8":257},"ilvl":463}}}, {"id":94588,"name":"Lionheart Blade, Reborn","icon":"inv_sword_2h_blacksmithing_01","type":13,"weaponType":9,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":3,"sources":[{"crafted":{"profession":2,"spellId":138889}}],"scalingOptions":{"0":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"5":600,"8":600},"ilvl":463}}}, {"id":94589,"name":"Blazeguard, Reborn","icon":"inv_sword_1h_blacksmithing_02","type":13,"weaponType":9,"handType":2,"weaponSpeed":2.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138890}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":5005,"weaponDamageMax":9297,"stats":{"1":435,"2":652,"5":290,"8":290},"ilvl":476}}}, {"id":94590,"name":"Lionheart Champion, Reborn","icon":"inv_sword_2h_blacksmithing_02","type":13,"weaponType":9,"handType":4,"weaponSpeed":3.6,"phase":1,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138891}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":10680,"weaponDamageMax":16021,"stats":{"0":1015,"2":1522,"5":677,"8":677},"ilvl":476}}}, -{"id":94591,"name":"Blazefury, Reborn","icon":"inv_sword_1h_blacksmithing_03","type":13,"weaponType":9,"handType":2,"gemSockets":[8],"weaponSpeed":2.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138892}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":554,"2":831,"5":370,"8":370},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":6620,"weaponDamageMax":12295,"stats":{"1":575,"2":863,"5":384,"8":384},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":6871,"weaponDamageMax":12762,"stats":{"1":597,"2":896,"5":398,"8":398},"ilvl":510}}}, -{"id":94592,"name":"Lionheart Executioner, Reborn","icon":"inv_sword_2h_blacksmithing_03","type":13,"weaponType":9,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138893}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1294,"2":1940,"5":862,"8":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"0":1343,"2":2014,"5":895,"8":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"0":1394,"2":2090,"5":929,"8":929},"ilvl":510}}}, +{"id":94591,"name":"Blazefury, Reborn","icon":"inv_sword_1h_blacksmithing_03","type":13,"weaponType":9,"handType":2,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138892}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":385,"2":578,"5":257,"8":257},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":554,"2":831,"5":370,"8":370},"ilvl":502},"1":{"randPropPoints":1094,"weaponDamageMin":6620,"weaponDamageMax":12295,"stats":{"1":575,"2":863,"5":384,"8":384},"ilvl":506},"2":{"randPropPoints":1136,"weaponDamageMin":6871,"weaponDamageMax":12762,"stats":{"1":597,"2":896,"5":398,"8":398},"ilvl":510}}}, +{"id":94592,"name":"Lionheart Executioner, Reborn","icon":"inv_sword_2h_blacksmithing_03","type":13,"weaponType":9,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":4,"quality":4,"sources":[{"crafted":{"profession":2,"spellId":138893}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":899,"2":1349,"5":600,"8":600},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1294,"2":1940,"5":862,"8":862},"ilvl":502},"1":{"randPropPoints":2553,"weaponDamageMin":14124,"weaponDamageMax":21187,"stats":{"0":1343,"2":2014,"5":895,"8":895},"ilvl":506},"2":{"randPropPoints":2650,"weaponDamageMin":14661,"weaponDamageMax":21992,"stats":{"0":1394,"2":2090,"5":929,"8":929},"ilvl":510}}}, {"id":94706,"name":"Cera's Impalers","icon":"inv_weapon_shortblade_60","type":13,"weaponType":2,"handType":2,"weaponSpeed":1.8,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3508,"weaponDamageMax":5263,"stats":{"1":385,"2":578,"7":268,"11":238},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":3960,"weaponDamageMax":5941,"stats":{"1":435,"2":652,"7":303,"11":268},"ilvl":476}}}, {"id":94707,"name":"Teng's Reach","icon":"inv_polearm_2h_pandaguard_b_01","type":13,"weaponType":6,"handType":4,"weaponSpeed":3.3,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":899,"2":1349,"6":668,"7":483},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":9790,"weaponDamageMax":14686,"stats":{"1":1015,"2":1523,"6":754,"7":546},"ilvl":476}}}, {"id":94708,"name":"Saurok Ritualist's Sacrificial Dagger","icon":"inv_weapon_shortblade_30","type":13,"weaponType":2,"handType":2,"weaponSpeed":1.9,"phase":1,"quality":4,"unique":true,"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3240,"weaponDamageMax":6019,"stats":{"2":578,"3":385,"6":286,"11":207,"14":5152},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":3658,"weaponDamageMax":6794,"stats":{"2":652,"3":435,"6":323,"11":234,"14":5812},"ilvl":476}}}, {"id":94709,"name":"Talonblade of Akil'amon","icon":"inv_sword_108","type":13,"weaponType":9,"handType":2,"weaponSpeed":1.8,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":578,"7":272,"8":232},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":3465,"weaponDamageMax":6436,"stats":{"1":435,"2":652,"7":307,"8":261},"ilvl":476}}}, {"id":94720,"name":"Vengeance of Kor'dok","icon":"inv_sword_1h_pandung_c_01","type":13,"weaponType":9,"handType":2,"weaponSpeed":2.6,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":385,"2":578,"6":219,"7":279},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":5005,"weaponDamageMax":9297,"stats":{"0":435,"2":652,"6":247,"7":315},"ilvl":476}}}, -{"id":94722,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":462,"8":309},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":496,"8":332},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":532,"8":357},"ilvl":536}}}, +{"id":94722,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":462,"8":309},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":496,"8":332},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":532,"8":357},"ilvl":536}}}, {"id":94723,"name":"Chestplate of Violent Detonation","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":537,"11":490,"17":4926},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1398,"2":2338,"5":990,"11":907,"17":5982},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1503,"2":2495,"5":1062,"11":974,"17":6107},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"5":1139,"11":1045,"17":6233},"ilvl":536}}}, {"id":94724,"name":"Lightning-Eye Hood","icon":"inv_helm_leather_raidrogue_m_01","type":1,"armorType":2,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"7":475,"11":466,"17":2106},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1318,"2":2338,"7":882,"11":925,"17":2558},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1423,"2":2495,"7":947,"11":998,"17":2611},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1535,"2":2663,"7":1016,"11":1076,"17":2665},"ilvl":536}}}, {"id":94725,"name":"Static-Shot Shoulderguards","icon":"inv_shoulder_mail_raidhunter_m_01","type":3,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":450,"8":329,"17":2705},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":1078,"2":1736,"7":809,"8":600,"17":3285},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1156,"2":1854,"7":867,"8":644,"17":3354},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":928,"8":690,"17":3423},"ilvl":536}}}, @@ -8196,7 +8196,7 @@ {"id":94727,"name":"Bracers of Constant Implosion","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-337,-338,-339,-341],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"17":2155},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":788,"2":1302,"17":2617},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":847,"2":1390,"17":2672},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"17":2727},"ilvl":536}}}, {"id":94728,"name":"Spearman's Jingling Leggings","icon":"inv_pant_mail_raidhunter_m_01","type":9,"armorType":3,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":546,"8":475,"17":3156},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"7":1005,"8":882,"17":3833},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"7":1078,"8":947,"17":3913},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"7":1156,"8":1016,"17":3993},"ilvl":536}}}, {"id":94729,"name":"Jin'rokh's Soulcrystal","icon":"inv_jewelry_ring_172","type":11,"phase":3,"quality":4,"limitCategory":251,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"8":301,"9":354},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":868,"2":1302,"8":522,"9":613},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":927,"2":1390,"8":557,"9":654},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"8":595,"9":698},"ilvl":536}}}, -{"id":94730,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02blue","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3251,"weaponDamageMax":6038,"stats":{"2":1002,"3":588,"4":361,"6":431,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3470,"weaponDamageMax":6445,"stats":{"2":1070,"3":633,"4":389,"6":463,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3704,"weaponDamageMax":6879,"stats":{"2":1142,"3":681,"4":417,"6":497,"14":10170},"ilvl":536}}}, +{"id":94730,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02blue","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3251,"weaponDamageMax":6038,"stats":{"2":1002,"3":588,"4":361,"6":431,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3470,"weaponDamageMax":6445,"stats":{"2":1070,"3":633,"4":389,"6":463,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3704,"weaponDamageMax":6879,"stats":{"2":1142,"3":681,"4":417,"6":497,"14":10170},"ilvl":536}}}, {"id":94731,"name":"Robes of Static Bursts","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":807,"11":1049,"17":2473},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":866,"11":1125,"17":2525},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":930,"11":1206,"17":2577},"ilvl":536}}}, {"id":94732,"name":"Infinitely Conducting Bracers","icon":"inv_bracer_leather_raidmonk_m_01","type":6,"armorType":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":293,"6":358,"17":1134},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"4":508,"6":621,"17":1377},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"4":542,"6":663,"17":1406},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":579,"6":707,"17":1435},"ilvl":536}}}, {"id":94733,"name":"Fissure-Split Shoulderwraps","icon":"inv_shoulder_cloth_raidwarlock_m_01","type":3,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":391,"6":410,"17":1527},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"5":701,"6":747,"17":1855},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"5":751,"6":800,"17":1894},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":804,"6":857,"17":1933},"ilvl":536}}}, @@ -8206,7 +8206,7 @@ {"id":94737,"name":"Lightningweaver Gauntlets","icon":"inv_glove_cloth_raidmage_m_01","type":7,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":418,"11":383,"17":1273},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"5":755,"11":693,"17":1546},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"5":808,"11":743,"17":1578},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":865,"11":796,"17":1611},"ilvl":536}}}, {"id":94738,"name":"Jin'rokh's Dreamshard","icon":"inv_jewelry_ring_169","type":11,"phase":3,"quality":4,"limitCategory":253,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":309,"6":349},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"5":536,"6":604},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"5":572,"6":645},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"5":611,"6":689},"ilvl":536}}}, {"id":94739,"name":"Al'set's Tormented Leggings","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":389,"11":596,"17":1782},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"5":733,"11":1091,"17":2164},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"5":788,"11":1170,"17":2210},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"5":847,"11":1254,"17":2255},"ilvl":536}}}, -{"id":94740,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":15029,"weaponDamageMax":22544,"stats":{"1":1478,"2":2338,"5":1054,"11":923},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":16042,"weaponDamageMax":24064,"stats":{"1":1583,"2":2495,"5":1126,"11":990},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"5":1203,"11":1061},"ilvl":536}}}, +{"id":94740,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":15029,"weaponDamageMax":22544,"stats":{"1":1478,"2":2338,"5":1054,"11":923},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":16042,"weaponDamageMax":24064,"stats":{"1":1583,"2":2495,"5":1126,"11":990},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"5":1203,"11":1061},"ilvl":536}}}, {"id":94741,"name":"Sul'lithuz Sandmail","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":572,"11":432,"17":3607},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"7":1049,"11":807,"17":4380},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"7":1125,"11":866,"17":4472},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"7":1206,"11":930,"17":4564},"ilvl":536}}}, {"id":94742,"name":"Frozen Warlord's Bracers","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"7":358,"8":293,"17":2155},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":868,"2":1302,"7":621,"8":508,"17":2617},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":927,"2":1390,"7":663,"8":542,"17":2672},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"7":707,"8":579,"17":2727},"ilvl":536}}}, {"id":94743,"name":"Bindings of Multiplicative Strikes","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"6":339,"7":326,"17":1134},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":868,"2":1302,"6":588,"7":564,"17":1377},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":927,"2":1390,"6":627,"7":602,"17":1406},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"6":669,"7":643,"17":1435},"ilvl":536}}}, @@ -8215,18 +8215,18 @@ {"id":94746,"name":"Talisman of Living Poison","icon":"inv_jewelry_necklace_119","type":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":349,"8":309},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":868,"2":1302,"7":604,"8":536},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":927,"2":1390,"7":645,"8":572},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"7":689,"8":611},"ilvl":536}}}, {"id":94747,"name":"Bloodlord's Bloodsoaked Legplates","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"7":432,"11":572,"17":4310},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1398,"2":2338,"7":807,"11":1049,"17":5234},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1503,"2":2495,"7":866,"11":1125,"17":5344},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"7":930,"11":1206,"17":5454},"ilvl":536}}}, {"id":94748,"name":"Wastewalker's Sandblasted Drape","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"5":368,"7":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":868,"2":1302,"5":637,"7":480,"17":1237},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":927,"2":1390,"5":680,"7":513,"17":1263},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"5":726,"7":547,"17":1289},"ilvl":536}}}, -{"id":94749,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"5":921,"7":1036,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"5":984,"7":1110,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"5":1051,"7":1189,"14":10169},"ilvl":536}}}, +{"id":94749,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"5":921,"7":1036,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"5":984,"7":1110,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"5":1051,"7":1189,"14":10169},"ilvl":536}}}, {"id":94750,"name":"Vaccinator's Armwraps","icon":"inv_cloth_raidpriest_m_01bracer","type":6,"armorType":1,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":334,"7":334,"17":891},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"4":579,"7":579,"17":1082},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"4":618,"7":618,"17":1105},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":659,"7":659,"17":1127},"ilvl":536}}}, {"id":94751,"name":"Armplates of the Vanquished Abomination","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"17":2155},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"17":2617},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"17":2672},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"17":2727},"ilvl":536}}}, {"id":94752,"name":"Flamecaster's Burning Crown","icon":"inv_helm_cloth_raidmage_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"6":562,"7":379,"17":1655},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1318,"6":1021,"7":786,"17":2010},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1423,"6":1094,"7":851,"17":2052},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"6":1172,"7":920,"17":2094},"ilvl":536}}}, {"id":94753,"name":"Spaulders of Dinomancy","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"7":319,"17":1944},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"4":819,"7":582,"17":2361},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"4":878,"7":624,"17":2411},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":939,"7":669,"17":2460},"ilvl":536}}}, {"id":94754,"name":"Horridon's Tusk Fragment","icon":"inv_jewelry_necklace_141","type":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":285,"11":363},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"4":494,"11":629},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"4":527,"11":671},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":563,"11":717},"ilvl":536}}}, -{"id":94755,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.9,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2807,"weaponDamageMax":5214,"stats":{"2":1002,"3":588,"6":412,"7":394,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2997,"weaponDamageMax":5566,"stats":{"2":1070,"3":633,"6":443,"7":423,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3199,"weaponDamageMax":5941,"stats":{"2":1142,"3":681,"6":475,"7":455,"14":10170},"ilvl":536}}}, +{"id":94755,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.9,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2807,"weaponDamageMax":5214,"stats":{"2":1002,"3":588,"6":412,"7":394,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2997,"weaponDamageMax":5566,"stats":{"2":1070,"3":633,"6":443,"7":423,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3199,"weaponDamageMax":5941,"stats":{"2":1142,"3":681,"6":475,"7":455,"14":10170},"ilvl":536}}}, {"id":94756,"name":"Roots of Rampaging Earth","icon":"inv_pant_leather_raidmonk_m_01","type":9,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"11":490,"17":2268},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"6":990,"11":907,"17":2755},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"6":1062,"11":974,"17":2812},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1139,"11":1045,"17":2870},"ilvl":536}}}, {"id":94757,"name":"Fingers of the Night","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"6":319,"17":2254},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"4":819,"6":582,"17":2738},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"4":878,"6":624,"17":2795},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":939,"6":669,"17":2852},"ilvl":536}}}, -{"id":94758,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"5":1107,"6":797},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"5":1186,"6":852},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"5":1270,"6":911},"ilvl":536}}}, -{"id":94759,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"6":405,"11":405},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"6":435,"11":435},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":467,"11":467},"ilvl":536}}}, -{"id":94760,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3842,"weaponDamageMax":7136,"stats":{"2":1002,"3":588,"4":444,"11":340,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":4101,"weaponDamageMax":7617,"stats":{"2":1070,"3":633,"4":477,"11":366,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4377,"weaponDamageMax":8130,"stats":{"2":1142,"3":681,"4":511,"11":393,"14":10170},"ilvl":536}}}, +{"id":94758,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"5":1107,"6":797},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"5":1186,"6":852},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"5":1270,"6":911},"ilvl":536}}}, +{"id":94759,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"6":405,"11":405},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"6":435,"11":435},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":467,"11":467},"ilvl":536}}}, +{"id":94760,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3842,"weaponDamageMax":7136,"stats":{"2":1002,"3":588,"4":444,"11":340,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":4101,"weaponDamageMax":7617,"stats":{"2":1070,"3":633,"4":477,"11":366,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4377,"weaponDamageMax":8130,"stats":{"2":1142,"3":681,"4":511,"11":393,"14":10170},"ilvl":536}}}, {"id":94761,"name":"Zandalari Robes of the Final Rite","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"6":546,"17":2037},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"5":882,"6":1005,"17":2473},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"5":947,"6":1078,"17":2525},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"5":1016,"6":1156,"17":2577},"ilvl":536}}}, {"id":94762,"name":"Mar'li's Bloodstained Sandals","icon":"inv_cloth_raidpriest_m_01boot","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":436,"6":348,"17":1400},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"4":791,"6":627,"17":1700},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"4":847,"6":671,"17":1736},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":908,"6":718,"17":1772},"ilvl":536}}}, {"id":94763,"name":"Gaze of Gara'jal","icon":"inv_helm_mail_raidhunter_m_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1318,"2":2338,"6":899,"7":939,"17":3559},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1423,"2":2495,"6":969,"7":1009,"17":3634},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1535,"2":2663,"6":1044,"7":1084,"17":3708},"ilvl":536}}}, @@ -8234,8 +8234,8 @@ {"id":94765,"name":"Robes of Treacherous Ground","icon":"inv_leather_raiddruid_m_01robe","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":389,"11":596,"17":2592},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":733,"11":1091,"17":3148},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":788,"11":1170,"17":3214},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":847,"11":1254,"17":3280},"ilvl":536}}}, {"id":94766,"name":"Talisman of Angry Spirits","icon":"inv_jewelry_necklace_139","type":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"6":344,"11":318},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":868,"2":1302,"6":596,"11":550},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":927,"2":1390,"6":636,"11":587},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"6":679,"11":627},"ilvl":536}}}, {"id":94767,"name":"Loa-Ridden Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":1578},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"17":1916},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"17":1957},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"17":1997},"ilvl":536}}}, -{"id":94768,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":438,"6":351},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":470,"6":377},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":504,"6":405},"ilvl":536}}}, -{"id":94769,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1478,"2":2338,"5":947,"8":1030},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1583,"2":2495,"5":1014,"8":1102},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"5":1085,"8":1179},"ilvl":536}}}, +{"id":94768,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":438,"6":351},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":470,"6":377},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":504,"6":405},"ilvl":536}}}, +{"id":94769,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1478,"2":2338,"5":947,"8":1030},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1583,"2":2495,"5":1014,"8":1102},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"5":1085,"8":1179},"ilvl":536}}}, {"id":94770,"name":"Rockfall Ribwraps","icon":"inv_chest_leather_raidmonk_m_01","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":461,"6":555,"17":2592},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"5":857,"6":1020,"17":3148},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"5":920,"6":1094,"17":3214},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"5":987,"6":1173,"17":3280},"ilvl":536}}}, {"id":94771,"name":"Shell-Coated Wristplates","icon":"inv_bracer_plate_deathknight_m_01","type":6,"armorType":4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":372,"10":269,"17":2155},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":868,"2":1302,"9":645,"10":467,"17":2617},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":927,"2":1390,"9":688,"10":498,"17":2672},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"9":735,"10":532,"17":2727},"ilvl":536}}}, {"id":94772,"name":"Quakestompers","icon":"inv_boot_mail_raidhunter_m_01","type":10,"armorType":3,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":402,"7":404,"17":2480},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":1078,"2":1736,"6":720,"7":735,"17":3011},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1156,"2":1854,"6":771,"7":788,"17":3075},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"6":825,"7":845,"17":3138},"ilvl":536}}}, @@ -8254,7 +8254,7 @@ {"id":94785,"name":"Shimmershell Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"6":309,"11":349,"17":1018},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"6":536,"11":604,"17":1237},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"6":572,"11":645,"17":1263},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"6":611,"11":689,"17":1289},"ilvl":536}}}, {"id":94786,"name":"Vampire Bat-Hide Bracers","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":354,"7":301,"17":1134},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"4":613,"7":522,"17":1377},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"4":654,"7":557,"17":1406},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":698,"7":595,"17":1435},"ilvl":536}}}, {"id":94787,"name":"Tortos' Shellseizers","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":351,"6":438,"17":3079},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"4":637,"6":788,"17":3739},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"4":683,"6":844,"17":3817},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":731,"6":903,"17":3896},"ilvl":536}}}, -{"id":94788,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":588,"2":1002,"5":340,"11":444},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":633,"2":1070,"5":366,"11":477},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":393,"11":511},"ilvl":536}}}, +{"id":94788,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":588,"2":1002,"5":340,"11":444},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":633,"2":1070,"5":366,"11":477},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":393,"11":511},"ilvl":536}}}, {"id":94789,"name":"Rot-Proof Greatplate","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"9":520,"11":520,"17":4926},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1398,"2":2338,"9":959,"11":959,"17":5982},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1503,"2":2495,"9":1029,"11":1029,"17":6107},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"9":1104,"11":1104,"17":6233},"ilvl":536}}}, {"id":94790,"name":"Grips of Cinderflesh","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":372,"11":425,"17":2254},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":1078,"2":1736,"7":674,"11":766,"17":2738},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1156,"2":1854,"7":723,"11":820,"17":2795},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":774,"11":878,"17":2852},"ilvl":536}}}, {"id":94791,"name":"Poisonblood Bladeshoulders","icon":"inv_shoulder_leather_raidrogue_m_01","type":3,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":405,"11":405,"17":1944},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":1078,"2":1736,"7":732,"11":732,"17":2361},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1156,"2":1854,"7":784,"11":784,"17":2411},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":839,"11":839,"17":2460},"ilvl":536}}}, @@ -8271,7 +8271,7 @@ {"id":94802,"name":"Links of the Bifurcated Tongue","icon":"inv_belt_mail_raidshaman_m_01","type":8,"armorType":3,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":372,"11":354,"17":2029},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"4":703,"11":672,"17":2464},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"4":756,"11":723,"17":2516},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":813,"11":777,"17":2567},"ilvl":536}}}, {"id":94803,"name":"Megaera's Shining Eye","icon":"inv_jewelry_necklace_126","type":2,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":334,"6":334},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"5":579,"6":579},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"5":618,"6":618},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"5":659,"6":659},"ilvl":536}}}, {"id":94804,"name":"Frostborn Wristwraps","icon":"inv_bracer_cloth_raidwarlock_m_01","type":6,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":891},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"17":1082},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"17":1105},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"17":1127},"ilvl":536}}}, -{"id":94805,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"4":1079,"7":846,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"4":1156,"7":904,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"4":1238,"7":966,"14":10169},"ilvl":536}}}, +{"id":94805,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"4":1079,"7":846,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"4":1156,"7":904,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"4":1238,"7":966,"14":10169},"ilvl":536}}}, {"id":94806,"name":"Robe of Midnight Down","icon":"inv_chest_cloth_raidmage_m_01","type":5,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"7":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"7":807,"11":1049,"17":2473},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"7":866,"11":1125,"17":2525},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"7":930,"11":1206,"17":2577},"ilvl":536}}}, {"id":94807,"name":"Egg-Shard Grips","icon":"inv_gloves_plate_raidwarrior_m_01","type":7,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3079},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"0":1078,"2":1736,"8":546,"10":840,"17":3739},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"0":1156,"2":1854,"8":586,"10":899,"17":3817},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"8":628,"10":962,"17":3896},"ilvl":536}}}, {"id":94808,"name":"Grasp of the Ruthless Mother","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":668,"4":401,"11":471,"17":2254},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1158,"4":696,"11":817,"17":2738},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1236,"4":743,"11":872,"17":2795},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1319,"4":793,"11":931,"17":2852},"ilvl":536}}}, @@ -8280,7 +8280,7 @@ {"id":94811,"name":"Featherflight Belt","icon":"inv_belt_leather_raidrogue_m_01","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"7":416,"8":279,"17":1458},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":998,"2":1736,"7":779,"8":542,"17":1771},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1076,"2":1854,"7":838,"8":584,"17":1808},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1159,"2":1979,"7":899,"8":629,"17":1845},"ilvl":536}}}, {"id":94812,"name":"Pinionfeather Greatcloak","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":286,"11":299,"17":1018},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":788,"2":1302,"6":524,"11":548,"17":1237},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":847,"2":1390,"6":562,"11":587,"17":1263},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"6":603,"11":629,"17":1289},"ilvl":536}}}, {"id":94813,"name":"Cord of Cacophonous Cawing","icon":"inv_belt_cloth_raidwarlock_m_01","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":398,"7":311,"17":1146},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"5":748,"7":597,"17":1391},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"5":804,"7":643,"17":1420},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"5":863,"7":691,"17":1450},"ilvl":536}}}, -{"id":94814,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":13663,"weaponDamageMax":20495,"stats":{"1":1478,"2":2338,"6":1060,"7":897},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":14583,"weaponDamageMax":21876,"stats":{"1":1583,"2":2495,"6":1134,"7":960},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":15566,"weaponDamageMax":23350,"stats":{"1":1695,"2":2663,"6":1213,"7":1027},"ilvl":536}}}, +{"id":94814,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":13663,"weaponDamageMax":20495,"stats":{"1":1478,"2":2338,"6":1060,"7":897},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":14583,"weaponDamageMax":21876,"stats":{"1":1583,"2":2495,"6":1134,"7":960},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":15566,"weaponDamageMax":23350,"stats":{"1":1695,"2":2663,"6":1213,"7":1027},"ilvl":536}}}, {"id":94815,"name":"Legplates of the Dark Parasite","icon":"inv_pants_plate_raidwarrior_m_01","type":9,"armorType":4,"gemSockets":[4,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"7":563,"8":446,"17":4310},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1398,"2":2338,"7":1034,"8":831,"17":5234},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1503,"2":2495,"7":1110,"8":893,"17":5344},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"7":1190,"8":958,"17":5454},"ilvl":536}}}, {"id":94816,"name":"Crimson Bloom Legguards","icon":"inv_pant_leather_raidrogue_m_01","type":9,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":588,"6":403,"17":2268},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"5":1077,"6":758,"17":2755},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"5":1155,"6":814,"17":2812},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"5":1238,"6":874,"17":2870},"ilvl":536}}}, {"id":94817,"name":"Treads of the Blind Eye","icon":"inv_boots_plate_raidwarrior_m_01","type":10,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"9":380,"10":417,"17":3386},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"0":1078,"2":1736,"9":682,"10":758,"17":4113},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"0":1156,"2":1854,"9":731,"10":812,"17":4199},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"9":782,"10":870,"17":4285},"ilvl":536}}}, @@ -8293,7 +8293,7 @@ {"id":94824,"name":"Gaze of Qi'nor","icon":"inv_staff_2h_pandung_c_02","type":13,"weaponType":8,"handType":4,"weaponSpeed":3.2,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4205,"weaponDamageMax":6308,"stats":{"2":1349,"3":899,"5":652,"7":512,"14":5151},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":4746,"weaponDamageMax":7120,"stats":{"2":1523,"3":1015,"5":735,"7":577,"14":5813},"ilvl":476}}}, {"id":94825,"name":"Lightning Snare","icon":"inv_mace_1h_pandariatradeskill_c_01","type":13,"weaponType":4,"handType":2,"weaponSpeed":2.6,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":385,"4":279,"11":219,"14":5152},"ilvl":463},"0":{"randPropPoints":827,"weaponDamageMin":2502,"weaponDamageMax":4648,"stats":{"2":652,"3":435,"4":315,"11":247,"14":5812},"ilvl":476}}}, {"id":94826,"name":"Mogu Sportsman's Bow","icon":"inv_bow_1h_pandariaquest_b_01","type":14,"rangedWeaponType":1,"weaponSpeed":2.9,"phase":1,"quality":4,"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9527,"weaponDamageMax":9528,"stats":{"1":899,"2":1349,"6":652,"7":512},"ilvl":463},"0":{"randPropPoints":1930,"weaponDamageMin":10754,"weaponDamageMax":10755,"stats":{"1":1015,"2":1522,"6":735,"7":577},"ilvl":476}}}, -{"id":94922,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"4":438,"6":351,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"4":470,"6":377,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"4":504,"6":405,"14":10170},"ilvl":536}}}, +{"id":94922,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"4":438,"6":351,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"4":470,"6":377,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"4":504,"6":405,"14":10170},"ilvl":536}}}, {"id":94923,"name":"Leggings of Pulsing Blood","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":603,"11":376,"17":1782},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"6":1104,"11":709,"17":2164},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"6":1184,"11":763,"17":2210},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1269,"11":819,"17":2255},"ilvl":536}}}, {"id":94924,"name":"Iceshatter Gauntlets","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":3079},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"4":753,"11":576,"17":3739},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"4":811,"11":620,"17":3817},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":872,"11":666,"17":3896},"ilvl":536}}}, {"id":94925,"name":"Lifedrainer's Sordid Grip","icon":"inv_glove_cloth_raidwarlock_m_01","type":7,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":295,"7":414,"17":1273},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"5":581,"7":764,"17":1546},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"5":627,"7":820,"17":1578},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"5":675,"7":879,"17":1611},"ilvl":536}}}, @@ -8303,7 +8303,7 @@ {"id":94929,"name":"Deadly Glare Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":278,"7":304,"17":1018},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"6":510,"7":556,"17":1237},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"6":547,"7":596,"17":1263},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"6":587,"7":639,"17":1289},"ilvl":536}}}, {"id":94930,"name":"Legplates of Re-Emergence","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":475,"7":546,"17":4310},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"6":882,"7":1005,"17":5234},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"6":947,"7":1078,"17":5344},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1016,"7":1156,"17":5454},"ilvl":536}}}, {"id":94931,"name":"Durumu's Captive Eyeball","icon":"inv_jewelry_ring_ahnqiraj_02","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":254,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":313,"6":246},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"4":588,"6":437},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"4":632,"6":468},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":679,"6":500},"ilvl":536}}}, -{"id":94937,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7093,"weaponDamageMax":13173,"stats":{"0":588,"2":1002,"9":444,"10":340},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":7571,"weaponDamageMax":14061,"stats":{"0":633,"2":1070,"9":477,"10":366},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"0":681,"2":1142,"9":511,"10":393},"ilvl":536}}}, +{"id":94937,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7093,"weaponDamageMax":13173,"stats":{"0":588,"2":1002,"9":444,"10":340},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":7571,"weaponDamageMax":14061,"stats":{"0":633,"2":1070,"9":477,"10":366},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"0":681,"2":1142,"9":511,"10":393},"ilvl":536}}}, {"id":94938,"name":"Pathogenic Gauntlets","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"5":284,"7":420,"17":3079},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"0":998,"2":1736,"5":563,"7":775,"17":3739},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"0":1076,"2":1854,"5":607,"7":831,"17":3817},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"0":1159,"2":1979,"5":654,"7":892,"17":3896},"ilvl":536}}}, {"id":94939,"name":"Gloves of Cushioned Air","icon":"inv_glove_leather_raidmonk_m_01","type":7,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"6":284,"11":420,"17":1620},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":998,"2":1736,"6":563,"11":775,"17":1968},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1076,"2":1854,"6":607,"11":831,"17":2009},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1159,"2":1979,"6":654,"11":892,"17":2050},"ilvl":536}}}, {"id":94940,"name":"Bracers of Mutagenic Fervor","icon":"inv_bracer_mail_raidhunter_m_01","type":6,"armorType":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":277,"11":368,"17":1578},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":868,"2":1302,"7":480,"11":637,"17":1916},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":927,"2":1390,"7":513,"11":680,"17":1957},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"7":547,"11":726,"17":1997},"ilvl":536}}}, @@ -8320,8 +8320,8 @@ {"id":94951,"name":"Robes of Mutagenic Blood","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"7":490,"17":2037},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"6":990,"7":907,"17":2473},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"6":1062,"7":974,"17":2525},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1139,"7":1045,"17":2577},"ilvl":536}}}, {"id":94952,"name":"Bonemender Bracers","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":326,"7":339,"17":2155},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":868,"4":564,"7":588,"17":2617},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":927,"4":602,"7":627,"17":2672},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":643,"7":669,"17":2727},"ilvl":536}}}, {"id":94953,"name":"Leggings of Ebon Veins","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":1782},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":959,"6":959,"17":2164},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1029,"6":1029,"17":2210},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"6":1104,"17":2255},"ilvl":536}}}, -{"id":94954,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"7":444,"8":340},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"7":477,"8":366},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"7":511,"8":393},"ilvl":536}}}, -{"id":94955,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"7":405,"11":405,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"7":435,"11":435,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"7":467,"11":467,"14":10170},"ilvl":536}}}, +{"id":94954,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"7":444,"8":340},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"7":477,"8":366},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"7":511,"8":393},"ilvl":536}}}, +{"id":94955,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"7":405,"11":405,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"7":435,"11":435,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"7":467,"11":467,"14":10170},"ilvl":536}}}, {"id":94956,"name":"Matter-Swapped Legplates","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":537,"11":490,"17":4310},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":990,"11":907,"17":5234},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1062,"11":974,"17":5344},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1139,"11":1045,"17":5454},"ilvl":536}}}, {"id":94957,"name":"Anima-Ringed Fingers","icon":"inv_leather_raiddruid_m_01glove","type":7,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":362,"6":359,"17":1620},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"4":699,"6":669,"17":1968},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"4":752,"6":719,"17":2009},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":809,"6":772,"17":2050},"ilvl":536}}}, {"id":94958,"name":"Crown of the Golden Golem","icon":"inv_helmet_plate_deathknight_m_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":503,"7":426,"17":4002},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1318,"2":2338,"6":974,"7":811,"17":4861},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1423,"2":2495,"6":1050,"7":873,"17":4962},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"6":1130,"7":938,"17":5064},"ilvl":536}}}, @@ -8329,18 +8329,18 @@ {"id":94960,"name":"Constantly Accelerating Cloak","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":261,"7":314,"17":1018},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"4":482,"7":573,"17":1237},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"4":517,"7":614,"17":1263},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":555,"7":658,"17":1289},"ilvl":536}}}, {"id":94961,"name":"Gore-Soaked Gear","icon":"inv_jewelry_ring_180","type":11,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":249,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":294,"7":277},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":788,"2":1302,"6":557,"7":492},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":847,"2":1390,"6":599,"7":526},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"6":643,"7":563},"ilvl":536}}}, {"id":94962,"name":"Worldbinder Leggings","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":403,"11":588,"17":2268},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"6":758,"11":1077,"17":2755},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"6":814,"11":1155,"17":2812},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"6":874,"11":1238,"17":2870},"ilvl":536}}}, -{"id":94963,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1558,"2":2258,"5":973,"7":1015},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1663,"2":2415,"5":1041,"7":1086},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1775,"2":2583,"5":1114,"7":1162},"ilvl":536}}}, -{"id":94964,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"8":405,"11":405},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"8":435,"11":435},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"8":467,"11":467},"ilvl":536}}}, +{"id":94963,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1558,"2":2258,"5":973,"7":1015},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1663,"2":2415,"5":1041,"7":1086},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1775,"2":2583,"5":1114,"7":1162},"ilvl":536}}}, +{"id":94964,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"8":405,"11":405},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"8":435,"11":435},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"8":467,"11":467},"ilvl":536}}}, {"id":94965,"name":"Orb of Arcing Lightning","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":337,"7":222},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"4":612,"7":413},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"4":656,"7":444},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":703,"7":476},"ilvl":536}}}, {"id":94966,"name":"Saddle-Scarred Leggings","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":563,"11":446,"17":1782},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":1034,"11":831,"17":2164},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1110,"11":893,"17":2210},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1190,"11":958,"17":2255},"ilvl":536}}}, {"id":94967,"name":"Spurs of the Storm Cavalry","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":397,"11":413,"17":1782},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"1":1078,"2":1736,"6":724,"11":740,"17":2164},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"1":1156,"2":1854,"6":776,"11":792,"17":2210},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"6":831,"11":847,"17":2255},"ilvl":536}}}, {"id":94968,"name":"Dam'ren's Frozen Footguards","icon":"inv_boot_cloth_raidmage_m_01","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":343,"7":446,"17":1400},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":1078,"5":629,"7":796,"17":1700},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1156,"5":675,"7":852,"17":1736},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":723,"7":911,"17":1772},"ilvl":536}}}, {"id":94969,"name":"Ro'shak's Molten Chain","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":3607},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":959,"7":959,"17":4380},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1029,"7":1029,"17":4472},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":4564},"ilvl":536}}}, {"id":94970,"name":"Quet'zal's Crackling Cord","icon":"inv_cloth_raidpriest_m_01belt","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":343,"6":378,"17":1146},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"4":653,"6":715,"17":1391},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"4":703,"6":768,"17":1420},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":756,"6":825,"17":1450},"ilvl":536}}}, -{"id":94971,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":588,"2":1002,"5":298,"7":468},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":633,"2":1070,"5":321,"7":502},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":345,"7":538},"ilvl":536}}}, +{"id":94971,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":588,"2":1002,"5":298,"7":468},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":633,"2":1070,"5":321,"7":502},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":345,"7":538},"ilvl":536}}}, {"id":94972,"name":"Rein-Binder's Fists","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"6":400,"7":295,"17":3079},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"0":998,"2":1736,"6":763,"7":558,"17":3739},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"0":1076,"2":1854,"6":822,"7":600,"17":3817},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"0":1159,"2":1979,"6":883,"7":645,"17":3896},"ilvl":536}}}, -{"id":94973,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"6":372,"7":425},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"6":400,"7":456},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":430,"7":490},"ilvl":536}}}, -{"id":94974,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"7":1098,"11":847,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"7":1174,"11":909,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"7":1254,"11":974,"14":10169},"ilvl":536}}}, +{"id":94973,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"6":372,"7":425},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"6":400,"7":456},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":430,"7":490},"ilvl":536}}}, +{"id":94974,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":7514,"weaponDamageMax":11272,"stats":{"2":2338,"3":1478,"7":1098,"11":847,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8021,"weaponDamageMax":12032,"stats":{"2":2495,"3":1583,"7":1174,"11":909,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"7":1254,"11":974,"14":10169},"ilvl":536}}}, {"id":94975,"name":"Legguards of Scintillating Scales","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":520,"11":520,"17":3156},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"6":959,"11":959,"17":3833},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"6":1029,"11":1029,"17":3913},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1104,"11":1104,"17":3993},"ilvl":536}}}, {"id":94976,"name":"Tidal Force Treads","icon":"inv_boots_plate_deathknight_m_01","type":10,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":448,"7":327,"17":3386},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"0":1078,"2":1736,"6":811,"7":590,"17":4113},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"0":1156,"2":1854,"6":870,"7":632,"17":4199},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"6":931,"7":677,"17":4285},"ilvl":536}}}, {"id":94977,"name":"Robes of the Moon Lotus","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":2037},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":959,"7":959,"17":2473},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1029,"7":1029,"17":2525},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":2577},"ilvl":536}}}, @@ -8348,13 +8348,13 @@ {"id":94979,"name":"Bracers of the Midnight Comet","icon":"inv_bracer_leather_raidrogue_m_01","type":6,"armorType":2,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1134},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":788,"2":1302,"17":1377},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":847,"2":1390,"17":1406},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"17":1435},"ilvl":536}}}, {"id":94980,"name":"Passionfire Choker","icon":"inv_jewelry_necklace_123","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":278,"6":304},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"4":510,"6":556},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"4":547,"6":596},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":587,"6":639},"ilvl":536}}}, {"id":94981,"name":"Moonjade Necklace","icon":"inv_jewelry_necklace_120","type":2,"gemSockets":[2],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"8":294,"9":294},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":788,"2":1302,"8":539,"9":539},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":847,"2":1390,"8":578,"9":578},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"8":619,"9":619},"ilvl":536}}}, -{"id":94982,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"6":1120,"11":773},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"6":1200,"11":827},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1285,"11":883},"ilvl":536}}}, -{"id":94983,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"1":1478,"2":2338,"7":975,"8":1023},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"1":1583,"2":2495,"7":1045,"8":1093},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"1":1695,"2":2663,"7":1120,"8":1168},"ilvl":536}}}, +{"id":94982,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"6":1120,"11":773},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"6":1200,"11":827},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1285,"11":883},"ilvl":536}}}, +{"id":94983,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"1":1478,"2":2338,"7":975,"8":1023},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"1":1583,"2":2495,"7":1045,"8":1093},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"1":1695,"2":2663,"7":1120,"8":1168},"ilvl":536}}}, {"id":94984,"name":"Doomed Crown of Lei Shen","icon":"achievement_boss_leishen","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"5":356,"11":543,"17":4002},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1318,"2":2338,"5":689,"11":1044,"17":4861},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1423,"2":2495,"5":743,"11":1124,"17":4962},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"5":799,"11":1209,"17":5064},"ilvl":536}}}, {"id":94985,"name":"Legplates of Whipping Ionization","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,2,2],"socketBonus":[0,0,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"9":531,"11":398,"17":4310},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"0":1318,"2":2338,"9":1002,"11":783,"17":5234},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"0":1423,"2":2495,"9":1078,"11":845,"17":5344},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"9":1158,"11":910,"17":5454},"ilvl":536}}}, {"id":94986,"name":"Conduit-Breaker Chain Leggings","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":488,"7":472,"17":3156},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1318,"2":2338,"6":927,"7":911,"17":3833},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1423,"2":2495,"6":997,"7":981,"17":3913},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1535,"2":2663,"6":1072,"7":1056,"17":3993},"ilvl":536}}}, {"id":94987,"name":"Fusion Slasher Chestguard","icon":"inv_chest_leather_raidrogue_m_01","type":5,"armorType":2,"gemSockets":[4,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":490,"11":537,"17":2592},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"1":1398,"2":2338,"6":907,"11":990,"17":3148},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"1":1503,"2":2495,"6":974,"11":1062,"17":3214},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"6":1045,"11":1139,"17":3280},"ilvl":536}}}, -{"id":94988,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3546,"weaponDamageMax":6587,"stats":{"2":922,"3":668,"4":468,"7":298,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3785,"weaponDamageMax":7031,"stats":{"2":990,"3":713,"4":502,"7":321,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1062,"3":761,"4":538,"7":345,"14":10170},"ilvl":536}}}, +{"id":94988,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3546,"weaponDamageMax":6587,"stats":{"2":922,"3":668,"4":468,"7":298,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3785,"weaponDamageMax":7031,"stats":{"2":990,"3":713,"4":502,"7":321,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1062,"3":761,"4":538,"7":345,"14":10170},"ilvl":536}}}, {"id":94989,"name":"Lei Shen's Grounded Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":4926},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1398,"4":959,"7":959,"17":5982},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1503,"4":1029,"7":1029,"17":6107},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":6233},"ilvl":536}}}, {"id":94990,"name":"Legwraps of Cardinality","icon":"inv_pant_cloth_raidmage_m_01","type":9,"armorType":1,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"5":344,"6":555,"17":1782},"ilvl":463},"0":{"randPropPoints":2963,"stats":{"2":2338,"3":1318,"5":677,"6":1056,"17":2164},"ilvl":522},"1":{"randPropPoints":3163,"stats":{"2":2495,"3":1423,"5":731,"6":1136,"17":2210},"ilvl":529},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"5":787,"6":1221,"17":2255},"ilvl":536}}}, {"id":94991,"name":"Grips of Slicing Electricity","icon":"inv_glove_leather_raidmonk_m_01","type":7,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":1620},"ilvl":463},"0":{"randPropPoints":2201,"stats":{"2":1736,"3":998,"4":753,"11":576,"17":1968},"ilvl":522},"1":{"randPropPoints":2350,"stats":{"2":1854,"3":1076,"4":811,"11":620,"17":2009},"ilvl":529},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":872,"11":666,"17":2050},"ilvl":536}}}, @@ -8668,16 +8668,16 @@ {"id":95392,"name":"Sonic Pulse Generator","icon":"inv_firearm_2h_rifle_archaeology_d_01","type":14,"rangedWeaponType":3,"weaponSpeed":2.9,"phase":1,"quality":3,"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6669,"weaponDamageMax":12386,"stats":{"1":899,"2":1349,"7":600,"11":600},"ilvl":463},"0":{"randPropPoints":1710,"weaponDamageMin":6669,"weaponDamageMax":12386,"stats":{"1":899,"2":1349,"7":600,"11":600},"ilvl":463},"1":{"randPropPoints":1843,"weaponDamageMin":7185,"weaponDamageMax":13345,"stats":{"1":969,"2":1454,"7":646,"11":646},"ilvl":471}}}, {"id":95472,"name":"Ultimate Protection of the Emperor","icon":"inv_shield_mogu_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"10":294,"11":277,"17":15800},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":788,"2":1302,"10":557,"11":492,"17":19188},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":847,"2":1390,"10":599,"11":526,"17":19590},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"10":643,"11":563,"17":19992},"ilvl":536}}}, {"id":95473,"name":"Lei Shen's Orb of Command","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":323,"7":245},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"6":589,"7":454},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"6":631,"7":487},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"6":677,"7":523},"ilvl":536}}}, -{"id":95498,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"8":873,"11":1084},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"8":936,"11":1158},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"8":1003,"11":1237},"ilvl":536}}}, -{"id":95499,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":8197,"weaponDamageMax":12297,"stats":{"2":2338,"3":1558,"6":962,"11":1085,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8750,"weaponDamageMax":13126,"stats":{"2":2495,"3":1663,"6":1027,"11":1158,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":9340,"weaponDamageMax":14010,"stats":{"2":2663,"3":1775,"6":1096,"11":1236,"14":10169},"ilvl":536}}}, -{"id":95500,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3546,"weaponDamageMax":6587,"stats":{"2":1002,"3":588,"4":309,"11":462,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3785,"weaponDamageMax":7031,"stats":{"2":1070,"3":633,"4":332,"11":496,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1142,"3":681,"4":357,"11":532,"14":10170},"ilvl":536}}}, -{"id":95501,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":668,"2":922,"7":438,"8":351},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":713,"2":990,"7":470,"8":377},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":761,"2":1062,"7":504,"8":405},"ilvl":536}}}, -{"id":95502,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":319,"11":456},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":343,"11":490},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":369,"11":525},"ilvl":536}}}, -{"id":95503,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1478,"2":2338,"7":798,"11":1117},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1583,"2":2495,"7":854,"11":1195},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"7":914,"11":1278},"ilvl":536}}}, -{"id":95504,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7093,"weaponDamageMax":13173,"stats":{"1":588,"2":1002,"8":456,"11":319},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":7571,"weaponDamageMax":14061,"stats":{"1":633,"2":1070,"8":490,"11":343},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"1":681,"2":1142,"8":525,"11":369},"ilvl":536}}}, -{"id":95505,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"6":946,"7":1021},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"6":1011,"7":1094},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1080,"7":1172},"ilvl":536}}}, -{"id":95506,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"5":412,"6":394,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"5":443,"6":423,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"5":475,"6":455,"14":10170},"ilvl":536}}}, -{"id":95507,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":15029,"weaponDamageMax":22544,"stats":{"1":1478,"2":2338,"6":895,"11":1050},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":16042,"weaponDamageMax":24064,"stats":{"1":1583,"2":2495,"6":957,"11":1126},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"6":1022,"11":1206},"ilvl":536}}}, +{"id":95498,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"8":873,"11":1084},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"8":936,"11":1158},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"8":1003,"11":1237},"ilvl":536}}}, +{"id":95499,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":8197,"weaponDamageMax":12297,"stats":{"2":2338,"3":1558,"6":962,"11":1085,"14":8925},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":8750,"weaponDamageMax":13126,"stats":{"2":2495,"3":1663,"6":1027,"11":1158,"14":9527},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":9340,"weaponDamageMax":14010,"stats":{"2":2663,"3":1775,"6":1096,"11":1236,"14":10169},"ilvl":536}}}, +{"id":95500,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":3546,"weaponDamageMax":6587,"stats":{"2":1002,"3":588,"4":309,"11":462,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":3785,"weaponDamageMax":7031,"stats":{"2":1070,"3":633,"4":332,"11":496,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1142,"3":681,"4":357,"11":532,"14":10170},"ilvl":536}}}, +{"id":95501,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":5320,"weaponDamageMax":9880,"stats":{"1":668,"2":922,"7":438,"8":351},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":5678,"weaponDamageMax":10546,"stats":{"1":713,"2":990,"7":470,"8":377},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":761,"2":1062,"7":504,"8":405},"ilvl":536}}}, +{"id":95502,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"0":588,"2":1002,"5":319,"11":456},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"0":633,"2":1070,"5":343,"11":490},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":369,"11":525},"ilvl":536}}}, +{"id":95503,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":11955,"weaponDamageMax":22203,"stats":{"1":1478,"2":2338,"7":798,"11":1117},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":12760,"weaponDamageMax":23699,"stats":{"1":1583,"2":2495,"7":854,"11":1195},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"7":914,"11":1278},"ilvl":536}}}, +{"id":95504,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7093,"weaponDamageMax":13173,"stats":{"1":588,"2":1002,"8":456,"11":319},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":7571,"weaponDamageMax":14061,"stats":{"1":633,"2":1070,"8":490,"11":343},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"1":681,"2":1142,"8":525,"11":369},"ilvl":536}}}, +{"id":95505,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":16395,"weaponDamageMax":24594,"stats":{"0":1478,"2":2338,"6":946,"7":1021},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":17500,"weaponDamageMax":26251,"stats":{"0":1583,"2":2495,"6":1011,"7":1094},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1080,"7":1172},"ilvl":536}}}, +{"id":95506,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":2660,"weaponDamageMax":4940,"stats":{"2":1002,"3":588,"5":412,"6":394,"14":8926},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":2839,"weaponDamageMax":5273,"stats":{"2":1070,"3":633,"5":443,"6":423,"14":9530},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"5":475,"6":455,"14":10170},"ilvl":536}}}, +{"id":95507,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":2963,"weaponDamageMin":15029,"weaponDamageMax":22544,"stats":{"1":1478,"2":2338,"6":895,"11":1050},"ilvl":522},"1":{"randPropPoints":3163,"weaponDamageMin":16042,"weaponDamageMax":24064,"stats":{"1":1583,"2":2495,"6":957,"11":1126},"ilvl":529},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"6":1022,"11":1206},"ilvl":536}}}, {"id":95510,"name":"Sign of the Bloodied God","icon":"inv_jewelry_ring_163","type":11,"phase":3,"quality":4,"limitCategory":256,"sources":[{"drop":{"difficulty":5,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":334,"11":334},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"1":868,"2":1302,"7":579,"11":579},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"1":927,"2":1390,"7":618,"11":618},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"7":659,"11":659},"ilvl":536}}}, {"id":95511,"name":"Durumu's Severed Tentacle","icon":"inv_jewelry_ring_ahnqiraj_05","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":257,"sources":[{"drop":{"difficulty":5,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":280,"9":302},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"0":788,"2":1302,"5":532,"9":534},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"0":847,"2":1390,"5":572,"9":571},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"5":615,"9":611},"ilvl":536}}}, {"id":95512,"name":"Ro'shak's Remembrance","icon":"inv_jewelry_ring_168","type":11,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":258,"sources":[{"drop":{"difficulty":5,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":352,"11":213},"ilvl":463},"0":{"randPropPoints":1651,"stats":{"2":1302,"3":788,"6":621,"11":416},"ilvl":522},"1":{"randPropPoints":1762,"stats":{"2":1390,"3":847,"6":664,"11":449},"ilvl":529},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"6":710,"11":483},"ilvl":536}}}, @@ -8712,7 +8712,7 @@ {"id":95629,"name":"Cloudbreaker Greatbelt","icon":"inv_belt_plate_raidwarrior_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"7":354,"11":372,"17":2771},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":801,"2":1441,"7":544,"11":570,"17":3164},"ilvl":502}}}, {"id":95630,"name":"Chestplate of Violent Detonation","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":537,"11":490,"17":4926},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1134,"2":1941,"5":808,"11":740,"17":5624},"ilvl":502}}}, {"id":95631,"name":"Bracers of Constant Implosion","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-337,-338,-339,-341],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"17":2155},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"17":2461},"ilvl":502}}}, -{"id":95632,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":376,"8":249},"ilvl":502}}}, +{"id":95632,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":376,"8":249},"ilvl":502}}}, {"id":95633,"name":"Jin'rokh's Soulcrystal","icon":"inv_jewelry_ring_172","type":11,"phase":3,"quality":4,"limitCategory":251,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"8":301,"9":354},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":720,"2":1081,"8":433,"9":508},"ilvl":502}}}, {"id":95634,"name":"Lightningweaver Gauntlets","icon":"inv_glove_cloth_raidmage_m_01","type":7,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":418,"11":383,"17":1273},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"5":620,"11":569,"17":1453},"ilvl":502}}}, {"id":95635,"name":"Al'set's Tormented Leggings","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":389,"11":596,"17":1782},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"5":595,"11":892,"17":2035},"ilvl":502}}}, @@ -8720,14 +8720,14 @@ {"id":95637,"name":"Robes of Static Bursts","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":656,"11":857,"17":2325},"ilvl":502}}}, {"id":95638,"name":"Jin'rokh's Dreamshard","icon":"inv_jewelry_ring_169","type":11,"phase":3,"quality":4,"limitCategory":253,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":309,"6":349},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"5":445,"6":502},"ilvl":502}}}, {"id":95639,"name":"Drape of Booming Nights","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":368,"6":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":529,"6":399,"17":1163},"ilvl":502}}}, -{"id":95640,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02purple","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2698,"weaponDamageMax":5011,"stats":{"2":832,"3":474,"4":293,"6":351,"14":7408},"ilvl":502}}}, +{"id":95640,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02purple","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2698,"weaponDamageMax":5011,"stats":{"2":832,"3":474,"4":293,"6":351,"14":7408},"ilvl":502}}}, {"id":95641,"name":"Horridon's Last Gasp","icon":"spell_nature_eyeofthestorm","type":12,"phase":3,"quality":4,"limitCategory":268,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"3":1218},"ilvl":502}},"itemEffects":[{"buffId":138856,"buffName":"Cloudburst","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{},"0":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.9599999785423279,"mods":[{"coefficient":1,"haste":false}]}}}]}, {"id":95642,"name":"Infinitely Conducting Bracers","icon":"inv_bracer_leather_raidmonk_m_01","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":293,"6":358,"17":1134},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":421,"6":515,"17":1295},"ilvl":502}}}, {"id":95643,"name":"Ghostbinder Greatboots","icon":"inv_boot_mail_raidshaman_m_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":442,"7":337,"17":2480},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":657,"7":499,"17":2831},"ilvl":502}}}, {"id":95644,"name":"Ionized Yojamban Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":389,"11":596,"17":4926},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"6":595,"11":892,"17":5624},"ilvl":502}}}, {"id":95645,"name":"Wastewalker's Sandblasted Drape","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"5":368,"7":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":720,"2":1081,"5":529,"7":399,"17":1163},"ilvl":502}}}, {"id":95646,"name":"Talisman of Living Poison","icon":"inv_jewelry_necklace_119","type":2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":349,"8":309},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":720,"2":1081,"7":502,"8":445},"ilvl":502}}}, -{"id":95647,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":12474,"weaponDamageMax":18711,"stats":{"1":1214,"2":1941,"5":872,"11":756},"ilvl":502}}}, +{"id":95647,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":12474,"weaponDamageMax":18711,"stats":{"1":1214,"2":1941,"5":872,"11":756},"ilvl":502}}}, {"id":95648,"name":"Bindings of Multiplicative Strikes","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"6":339,"7":326,"17":1134},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":720,"2":1081,"6":488,"7":468,"17":1295},"ilvl":502}}}, {"id":95649,"name":"Sul'lithuz Sandmail","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":572,"11":432,"17":3607},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"7":857,"11":656,"17":4118},"ilvl":502}}}, {"id":95650,"name":"Frozen Warlord's Bracers","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"7":358,"8":293,"17":2155},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":720,"2":1081,"7":515,"8":421,"17":2461},"ilvl":502}}}, @@ -8737,28 +8737,28 @@ {"id":95654,"name":"Spark of Zandalar","icon":"spell_nature_lightningshield","type":12,"phase":3,"quality":4,"limitCategory":276,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"7":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"7":1218},"ilvl":502}},"itemEffects":[{"buffId":138957,"buffName":"Item - Proc Charges For Strength Transform","scalingOptions":{"-1":{},"0":{}}}]}, {"id":95655,"name":"Flamecaster's Burning Crown","icon":"inv_helm_cloth_raidmage_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"6":562,"7":379,"17":1655},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1054,"6":837,"7":623,"17":1889},"ilvl":502}}}, {"id":95656,"name":"Vaccinator's Armwraps","icon":"inv_cloth_raidpriest_m_01bracer","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":334,"7":334,"17":891},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":480,"7":480,"17":1017},"ilvl":502}}}, -{"id":95657,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"5":762,"7":849,"14":7410},"ilvl":502}}}, +{"id":95657,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"5":762,"7":849,"14":7410},"ilvl":502}}}, {"id":95658,"name":"Horridon's Tusk Fragment","icon":"inv_jewelry_necklace_141","type":2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":285,"11":363},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":410,"11":522},"ilvl":502}}}, {"id":95659,"name":"Petrified Eye of the Basilisk","icon":"inv_jewelry_ring_178","type":11,"phase":3,"quality":4,"limitCategory":260,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":381,"11":254},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":548,"11":365},"ilvl":502}}}, -{"id":95660,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2330,"weaponDamageMax":4328,"stats":{"2":832,"3":474,"6":335,"7":320,"14":7408},"ilvl":502}}}, +{"id":95660,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2330,"weaponDamageMax":4328,"stats":{"2":832,"3":474,"6":335,"7":320,"14":7408},"ilvl":502}}}, {"id":95661,"name":"Roots of Rampaging Earth","icon":"inv_pant_leather_raidmonk_m_01","type":9,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"11":490,"17":2268},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"6":808,"11":740,"17":2590},"ilvl":502}}}, {"id":95662,"name":"Spaulders of Dinomancy","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"7":319,"17":1944},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":673,"7":476,"17":2220},"ilvl":502}}}, {"id":95663,"name":"Legguards of Scintillating Scales","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":520,"11":520,"17":3156},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"6":782,"11":782,"17":3603},"ilvl":502}}}, {"id":95664,"name":"Armplates of the Vanquished Abomination","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"17":2155},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"17":2461},"ilvl":502}}}, {"id":95665,"name":"Bad Juju","icon":"trade_archaeology_troll_voodoodoll","type":12,"phase":3,"quality":4,"limitCategory":261,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"11":1218},"ilvl":502}},"itemEffects":[{"buffId":138938,"buffName":"Juju Madness","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"1":4232}},"0":{"stats":{"1":6088}}},"proc":{"icdMs":10000,"rppm":{"rate":1.100000023841858}}}]}, -{"id":95666,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"6":330,"11":330},"ilvl":502}}}, +{"id":95666,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"6":330,"11":330},"ilvl":502}}}, {"id":95667,"name":"Mar'li's Bloodstained Sandals","icon":"inv_cloth_raidpriest_m_01boot","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":436,"6":348,"17":1400},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":648,"6":515,"17":1599},"ilvl":502}}}, {"id":95668,"name":"Zandalari Robes of the Final Rite","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"6":546,"17":2037},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"5":719,"6":821,"17":2325},"ilvl":502}}}, {"id":95669,"name":"Wushoolay's Final Choice","icon":"spell_nature_chainlightning","type":12,"phase":3,"quality":4,"limitCategory":280,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"5":1218},"ilvl":502}},"itemEffects":[{"buffId":138786,"buffName":"Wushoolay's Lightning","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138788,"buffName":"Electrified","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"3":769}},"0":{"stats":{"3":1107}}}},"stackPeriodMs":1000}]}, -{"id":95670,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":3189,"weaponDamageMax":5922,"stats":{"2":832,"3":474,"4":362,"11":275,"14":7408},"ilvl":502}}}, +{"id":95670,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":3189,"weaponDamageMax":5922,"stats":{"2":832,"3":474,"4":362,"11":275,"14":7408},"ilvl":502}}}, {"id":95671,"name":"Robes of Treacherous Ground","icon":"inv_leather_raiddruid_m_01robe","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":389,"11":596,"17":2592},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":595,"11":892,"17":2960},"ilvl":502}}}, {"id":95672,"name":"Gaze of Gara'jal","icon":"inv_helm_mail_raidhunter_m_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1054,"2":1941,"6":722,"7":762,"17":3346},"ilvl":502}}}, {"id":95673,"name":"Loa-Ridden Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":1578},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"17":1802},"ilvl":502}}}, {"id":95674,"name":"Overloaded Bladebreaker Cuirass","icon":"inv_chest_plate_raidwarrior_m_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":376,"10":603,"17":4926},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1134,"2":1941,"5":575,"10":903,"17":5624},"ilvl":502}}}, -{"id":95675,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"5":908,"6":659},"ilvl":502}}}, +{"id":95675,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"5":908,"6":659},"ilvl":502}}}, {"id":95676,"name":"Talisman of Angry Spirits","icon":"inv_jewelry_necklace_139","type":2,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"6":344,"11":318},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":720,"2":1081,"6":495,"11":456},"ilvl":502}}}, {"id":95677,"name":"Fortitude of the Zandalari","icon":"spell_holy_mindvision","type":12,"phase":3,"quality":4,"limitCategory":266,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"11":1218},"ilvl":502}},"itemEffects":[{"buffId":126697,"buffName":"Tremendous Fortitude","effectDurationMs":15000,"scalingOptions":{"-1":{"stats":{"19":42617}},"0":{"stats":{"19":61308}}},"onUse":{"cooldownMs":120000,"categoryId":1190,"categoryCooldownMs":120000}}]}, -{"id":95678,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1214,"2":1941,"5":780,"8":848},"ilvl":502}}}, +{"id":95678,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1214,"2":1941,"5":780,"8":848},"ilvl":502}}}, {"id":95679,"name":"Rockfall Ribwraps","icon":"inv_chest_leather_raidmonk_m_01","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":461,"6":555,"17":2592},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"5":698,"6":833,"17":2960},"ilvl":502}}}, {"id":95680,"name":"Grips of Vampiric Cruelty","icon":"inv_glove_leather_raidrogue_m_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"5":394,"7":412,"17":1620},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"5":584,"7":610,"17":1850},"ilvl":502}}}, {"id":95681,"name":"Beady-Eye Bracers","icon":"inv_bracer_mail_raidhunter_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1578},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":640,"2":1081,"17":1802},"ilvl":502}}}, @@ -8766,7 +8766,7 @@ {"id":95683,"name":"Shoulderguards of Centripetal Destruction","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":881,"2":1441,"6":690,"7":447,"17":4218},"ilvl":502}}}, {"id":95684,"name":"Shell-Coated Wristplates","icon":"inv_bracer_plate_deathknight_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":372,"10":269,"17":2155},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":720,"2":1081,"9":535,"10":387,"17":2461},"ilvl":502}}}, {"id":95685,"name":"Amulet of the Primal Turtle","icon":"inv_jewelry_necklace_118","type":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":214,"6":341},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"5":325,"6":508},"ilvl":502}}}, -{"id":95686,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":356,"6":284},"ilvl":502}}}, +{"id":95686,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":356,"6":284},"ilvl":502}}}, {"id":95687,"name":"Beakbreaker Greatcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":344,"11":318,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":720,"2":1081,"9":495,"11":456,"17":1163},"ilvl":502}}}, {"id":95688,"name":"Azure Shell Bracers","icon":"inv_bracer_cloth_raidmage_m_01","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"6":368,"11":277,"17":891},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"6":529,"11":399,"17":1017},"ilvl":502}}}, {"id":95689,"name":"Stonegaze Hood","icon":"inv_cloth_raidpriest_m_01helm","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":556,"6":368,"17":1655},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1054,"4":841,"6":592,"17":1889},"ilvl":502}}}, @@ -8778,7 +8778,7 @@ {"id":95695,"name":"Spaulders of Quaking Fear","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":462,"7":309,"17":2705},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":682,"7":462,"17":3089},"ilvl":502}}}, {"id":95696,"name":"Refreshing Abalone Girdle","icon":"inv_belt_plate_raidpaladin_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":385,"7":332,"17":2771},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":589,"7":513,"17":3164},"ilvl":502}}}, {"id":95697,"name":"Tortos' Shellseizers","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":351,"6":438,"17":3079},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":522,"6":647,"17":3515},"ilvl":502}}}, -{"id":95698,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":474,"2":832,"5":275,"11":362},"ilvl":502}}}, +{"id":95698,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":474,"2":832,"5":275,"11":362},"ilvl":502}}}, {"id":95699,"name":"Quadra-Head Brooch","icon":"inv_jewelry_necklace_140","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"5":294,"11":294},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":640,"2":1081,"5":440,"11":440},"ilvl":502}}}, {"id":95700,"name":"Poisonblood Bladeshoulders","icon":"inv_shoulder_leather_raidrogue_m_01","type":3,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":405,"11":405,"17":1944},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"7":601,"11":601,"17":2220},"ilvl":502}}}, {"id":95701,"name":"Grips of Cinderflesh","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":372,"11":425,"17":2254},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"7":553,"11":629,"17":2574},"ilvl":502}}}, @@ -8800,7 +8800,7 @@ {"id":95717,"name":"Pinionfeather Greatcloak","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":286,"11":299,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":640,"2":1081,"6":428,"11":448,"17":1163},"ilvl":502}}}, {"id":95718,"name":"Cord of Cacophonous Cawing","icon":"inv_belt_cloth_raidwarlock_m_01","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":398,"7":311,"17":1146},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"5":607,"7":482,"17":1308},"ilvl":502}}}, {"id":95719,"name":"Robe of Midnight Down","icon":"inv_chest_cloth_raidmage_m_01","type":5,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"7":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"7":656,"11":857,"17":2325},"ilvl":502}}}, -{"id":95720,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"4":885,"7":700,"14":7410},"ilvl":502}}}, +{"id":95720,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"4":885,"7":700,"14":7410},"ilvl":502}}}, {"id":95721,"name":"Featherflight Belt","icon":"inv_belt_leather_raidrogue_m_01","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"7":416,"8":279,"17":1458},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":801,"2":1441,"7":633,"8":436,"17":1665},"ilvl":502}}}, {"id":95722,"name":"Grasp of the Ruthless Mother","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":668,"4":401,"11":471,"17":2254},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":961,"4":578,"11":678,"17":2574},"ilvl":502}}}, {"id":95723,"name":"Crown of Potentiated Birth","icon":"inv_helmet_plate_raidpaladin_m_01","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":583,"7":316,"17":4002},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1054,"4":883,"7":515,"17":4570},"ilvl":502}}}, @@ -8808,7 +8808,7 @@ {"id":95725,"name":"Egg-Shard Grips","icon":"inv_gloves_plate_raidwarrior_m_01","type":7,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3079},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":881,"2":1441,"8":447,"10":690,"17":3515},"ilvl":502}}}, {"id":95726,"name":"Fabled Feather of Ji-Kun","icon":"ability_priest_angelicfeather","type":12,"phase":3,"quality":4,"limitCategory":265,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"5":1218},"ilvl":502}},"itemEffects":[{"buffId":138759,"buffName":"Feathers of Fury","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138760,"buffName":"Mighty","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"0":769}},"0":{"stats":{"0":1107}}}},"stackPeriodMs":1000}]}, {"id":95727,"name":"Ji-Kun's Rising Winds","icon":"spell_holy_heal","type":12,"phase":3,"quality":4,"limitCategory":270,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"8":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"8":1218},"ilvl":502}},"itemEffects":[{"buffId":138973,"buffName":"The Risen Wind","scalingOptions":{"-1":{},"0":{}},"proc":{"icdMs":30000,"procChance":1}}]}, -{"id":95728,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":11340,"weaponDamageMax":17010,"stats":{"1":1214,"2":1941,"6":873,"7":738},"ilvl":502}}}, +{"id":95728,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":11340,"weaponDamageMax":17010,"stats":{"1":1214,"2":1941,"6":873,"7":738},"ilvl":502}}}, {"id":95729,"name":"Crimson Bloom Legguards","icon":"inv_pant_leather_raidrogue_m_01","type":9,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":588,"6":403,"17":2268},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"5":881,"6":615,"17":2590},"ilvl":502}}}, {"id":95730,"name":"Links of the Disintegrator","icon":"inv_belt_mail_raidshaman_m_01","type":8,"armorType":3,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"6":391,"7":321,"17":2029},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":801,"2":1441,"6":598,"7":498,"17":2316},"ilvl":502}}}, {"id":95731,"name":"Aberrant Chestguard of Torment","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":546,"7":475,"17":3607},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"6":821,"7":719,"17":4118},"ilvl":502}}}, @@ -8823,7 +8823,7 @@ {"id":95740,"name":"Chilblain Spaulders","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":383,"11":418,"17":1527},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"6":569,"11":620,"17":1744},"ilvl":502}}}, {"id":95741,"name":"Deadly Glare Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":278,"7":304,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"6":416,"7":455,"17":1163},"ilvl":502}}}, {"id":95742,"name":"Durumu's Captive Eyeball","icon":"inv_jewelry_ring_ahnqiraj_02","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":254,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":313,"6":246},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"4":477,"6":360},"ilvl":502}}}, -{"id":95743,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"4":356,"6":284,"14":7408},"ilvl":502}}}, +{"id":95743,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"4":356,"6":284,"14":7408},"ilvl":502}}}, {"id":95744,"name":"Sandals of the Starving Eye","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":430,"6":359,"17":1782},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":639,"6":530,"17":2035},"ilvl":502}}}, {"id":95745,"name":"Vein-Cover Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":377,"7":262,"17":1578},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":720,"4":541,"7":376,"17":1802},"ilvl":502}}}, {"id":95746,"name":"Iceshatter Gauntlets","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":3079},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":609,"11":467,"17":3515},"ilvl":502}}}, @@ -8838,7 +8838,7 @@ {"id":95755,"name":"Hydra-Scale Bloodcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"6":314,"8":261,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"6":468,"8":393,"17":1163},"ilvl":502}}}, {"id":95756,"name":"Band of the Scaled Tyrant","icon":"inv_jewelry_ring_177","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":259,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":269,"7":299},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"5":394,"7":458},"ilvl":502}}}, {"id":95757,"name":"Primordius' Talisman of Rage","icon":"ability_warrior_rampage","type":12,"phase":3,"quality":4,"limitCategory":272,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"6":1218},"ilvl":502}},"itemEffects":[{"buffId":138870,"buffName":"Rampage","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{"stats":{"0":887}},"0":{"stats":{"0":1277}}},"proc":{"icdMs":5000,"rppm":{"rate":3.5}}}]}, -{"id":95758,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":5887,"weaponDamageMax":10934,"stats":{"0":474,"2":832,"9":362,"10":275},"ilvl":502}}}, +{"id":95758,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":5887,"weaponDamageMax":10934,"stats":{"0":474,"2":832,"9":362,"10":275},"ilvl":502}}}, {"id":95759,"name":"Robes of Mutagenic Blood","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"7":490,"17":2037},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"6":808,"7":740,"17":2325},"ilvl":502}}}, {"id":95760,"name":"Helix-Breaker Gloves","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":388,"6":316,"17":1273},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":600,"6":483,"17":1453},"ilvl":502}}}, {"id":95761,"name":"Leggings of Ebon Veins","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":1782},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":782,"6":782,"17":2035},"ilvl":502}}}, @@ -8850,18 +8850,18 @@ {"id":95767,"name":"Spaulders of Primordial Growth","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":690,"7":447,"17":4218},"ilvl":502}}}, {"id":95768,"name":"Greatshield of the Gloaming","icon":"inv_shield_thunderisleraid_d_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":310,"11":275,"17":15800},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"9":452,"11":424,"17":18040},"ilvl":502}}}, {"id":95769,"name":"Gore-Soaked Gear","icon":"inv_jewelry_ring_180","type":11,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":249,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":294,"7":277},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":640,"2":1081,"6":451,"7":405},"ilvl":502}}}, -{"id":95770,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"7":362,"8":275},"ilvl":502}}}, +{"id":95770,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"7":362,"8":275},"ilvl":502}}}, {"id":95771,"name":"Hood of the Crimson Wake","icon":"inv_helm_cloth_raidwarlock_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"7":460,"11":500,"17":1655},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1054,"7":722,"11":762,"17":1889},"ilvl":502}}}, {"id":95772,"name":"Cha-Ye's Essence of Brilliance","icon":"spell_holy_mindsooth","type":12,"phase":3,"quality":4,"limitCategory":263,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"6":1218},"ilvl":502}},"itemEffects":[{"buffId":139133,"buffName":"Mastermind","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"3":4232}},"0":{"stats":{"3":6088}}},"proc":{"icdMs":10000,"rppm":{"rate":0.8500000238418579,"mods":[{"coefficient":1,"crit":false}]}}}]}, {"id":95773,"name":"Constantly Accelerating Cloak","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":261,"7":314,"17":1018},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"4":393,"7":468,"17":1163},"ilvl":502}}}, -{"id":95774,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"7":330,"11":330,"14":7408},"ilvl":502}}}, +{"id":95774,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"7":330,"11":330,"14":7408},"ilvl":502}}}, {"id":95775,"name":"Worldbinder Leggings","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":403,"11":588,"17":2268},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"6":615,"11":881,"17":2590},"ilvl":502}}}, {"id":95776,"name":"Anima-Ringed Fingers","icon":"inv_leather_raiddruid_m_01glove","type":7,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":362,"6":359,"17":1620},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":564,"6":545,"17":1850},"ilvl":502}}}, {"id":95777,"name":"Matter-Swapped Legplates","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":537,"11":490,"17":4310},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":808,"11":740,"17":4921},"ilvl":502}}}, {"id":95778,"name":"Crown of the Golden Golem","icon":"inv_helmet_plate_deathknight_m_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":503,"7":426,"17":4002},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1054,"2":1941,"6":785,"7":657,"17":4570},"ilvl":502}}}, {"id":95779,"name":"Delicate Vial of the Sanguinaire","icon":"ability_deathwing_bloodcorruption_earth","type":12,"phase":3,"quality":4,"limitCategory":264,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"9":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"9":1218},"ilvl":502}},"itemEffects":[{"buffId":138864,"buffName":"Blood of Power","effectDurationMs":20000,"maxCumulativeStacks":3,"scalingOptions":{"-1":{"stats":{"11":5079}},"0":{"stats":{"11":7306}}},"proc":{"procChance":0.04}}]}, -{"id":95780,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":474,"2":832,"5":241,"7":381},"ilvl":502}}}, -{"id":95781,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1294,"2":1861,"5":801,"7":836},"ilvl":502}}}, +{"id":95780,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":474,"2":832,"5":241,"7":381},"ilvl":502}}}, +{"id":95781,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1294,"2":1861,"5":801,"7":836},"ilvl":502}}}, {"id":95782,"name":"Quet'zal's Crackling Cord","icon":"inv_cloth_raidpriest_m_01belt","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":343,"6":378,"17":1146},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":529,"6":580,"17":1308},"ilvl":502}}}, {"id":95783,"name":"Saddle-Scarred Leggings","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":563,"11":446,"17":1782},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":845,"11":677,"17":2035},"ilvl":502}}}, {"id":95784,"name":"Dam'ren's Frozen Footguards","icon":"inv_boot_cloth_raidmage_m_01","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":343,"7":446,"17":1400},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"5":514,"7":655,"17":1599},"ilvl":502}}}, @@ -8870,12 +8870,12 @@ {"id":95787,"name":"Spurs of the Storm Cavalry","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":397,"11":413,"17":1782},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"6":593,"11":609,"17":2035},"ilvl":502}}}, {"id":95788,"name":"Ro'shak's Molten Chain","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":3607},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":782,"7":782,"17":4118},"ilvl":502}}}, {"id":95789,"name":"Rein-Binder's Fists","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"6":400,"7":295,"17":3079},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":801,"2":1441,"6":617,"7":452,"17":3515},"ilvl":502}}}, -{"id":95790,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"8":330,"11":330},"ilvl":502}}}, -{"id":95791,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"6":302,"7":346},"ilvl":502}}}, +{"id":95790,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"8":330,"11":330},"ilvl":502}}}, +{"id":95791,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"6":302,"7":346},"ilvl":502}}}, {"id":95792,"name":"Robes of the Moon Lotus","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":2037},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1134,"4":782,"7":782,"17":2325},"ilvl":502}}}, {"id":95793,"name":"Passionfire Choker","icon":"inv_jewelry_necklace_123","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":278,"6":304},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"4":416,"6":455},"ilvl":502}}}, {"id":95794,"name":"Shield of Twinned Despair","icon":"inv_shield_zandalari_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":356,"11":205,"17":15800},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"4":519,"11":323,"17":18040},"ilvl":502}}}, -{"id":95795,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"7":909,"11":693,"14":7410},"ilvl":502}}}, +{"id":95795,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6237,"weaponDamageMax":9356,"stats":{"2":1941,"3":1214,"7":909,"11":693,"14":7410},"ilvl":502}}}, {"id":95796,"name":"Bracers of the Midnight Comet","icon":"inv_bracer_leather_raidrogue_m_01","type":6,"armorType":2,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1134},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"1":640,"2":1081,"17":1295},"ilvl":502}}}, {"id":95797,"name":"Girdle of Night and Day","icon":"inv_leather_raiddruid_m_01belt","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":365,"7":365,"17":1458},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":561,"7":561,"17":1665},"ilvl":502}}}, {"id":95798,"name":"Tidal Force Treads","icon":"inv_boots_plate_deathknight_m_01","type":10,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":448,"7":327,"17":3386},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":881,"2":1441,"6":665,"7":484,"17":3867},"ilvl":502}}}, @@ -8883,19 +8883,19 @@ {"id":95800,"name":"Moonjade Necklace","icon":"inv_jewelry_necklace_120","type":2,"gemSockets":[2],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"8":294,"9":294},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"8":440,"9":440},"ilvl":502}}}, {"id":95801,"name":"Fingers of the Night","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"6":319,"17":2254},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":673,"6":476,"17":2574},"ilvl":502}}}, {"id":95802,"name":"Rune of Re-Origination","icon":"inv_offhand_1h_ulduarraid_d_01","type":12,"phase":3,"quality":4,"limitCategory":274,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":1218},"ilvl":502}},"itemEffects":[{"buffId":139116,"buffName":"Item - Attacks Proc Highest Rating","scalingOptions":{"-1":{},"0":{}}}]}, -{"id":95803,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"1":1214,"2":1941,"7":798,"8":846},"ilvl":502}}}, +{"id":95803,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"1":1214,"2":1941,"7":798,"8":846},"ilvl":502}}}, {"id":95804,"name":"Fusion Slasher Chestguard","icon":"inv_chest_leather_raidrogue_m_01","type":5,"armorType":2,"gemSockets":[4,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":490,"11":537,"17":2592},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"6":740,"11":808,"17":2960},"ilvl":502}}}, {"id":95805,"name":"Conduit-Breaker Chain Leggings","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":488,"7":472,"17":3156},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1054,"2":1941,"6":750,"7":734,"17":3603},"ilvl":502}}}, {"id":95806,"name":"Doomed Crown of Lei Shen","icon":"achievement_boss_leishen","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"5":356,"11":543,"17":4002},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1054,"2":1941,"5":555,"11":843,"17":4570},"ilvl":502}}}, {"id":95807,"name":"Legplates of the Lightning Throne","icon":"inv_pants_plate_raidwarrior_m_01","type":9,"armorType":4,"gemSockets":[2,4,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":571,"7":328,"17":4310},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1054,"2":1941,"6":871,"7":527,"17":4921},"ilvl":502}}}, {"id":95808,"name":"Legplates of Whipping Ionization","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,2,2],"socketBonus":[0,0,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"9":531,"11":398,"17":4310},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"0":1054,"2":1941,"9":813,"11":629,"17":4921},"ilvl":502}}}, -{"id":95809,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"6":919,"11":639},"ilvl":502}}}, +{"id":95809,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"6":919,"11":639},"ilvl":502}}}, {"id":95810,"name":"Ultimate Protection of the Emperor","icon":"inv_shield_mogu_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"10":294,"11":277,"17":15800},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"10":451,"11":405,"17":18040},"ilvl":502}}}, {"id":95811,"name":"Soul Barrier","icon":"spell_warlock_demonsoul","type":12,"phase":3,"quality":4,"limitCategory":275,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1270},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1827},"ilvl":502}},"itemEffects":[{"buffId":138979,"buffName":"Soul Barrier","effectDurationMs":20000,"scalingOptions":{"-1":{},"0":{}},"onUse":{"cooldownMs":120000}}]}, {"id":95812,"name":"Legwraps of Cardinality","icon":"inv_pant_cloth_raidmage_m_01","type":9,"armorType":1,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"5":344,"6":555,"17":1782},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"2":1941,"3":1054,"5":543,"6":855,"17":2035},"ilvl":502}}}, {"id":95813,"name":"Gloves of the Maimed Vizier","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":412,"11":274,"17":1273},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":801,"4":634,"11":423,"17":1453},"ilvl":502}}}, {"id":95814,"name":"Unerring Vision of Lei Shen","icon":"ability_hunter_focusedaim","type":12,"phase":3,"quality":4,"limitCategory":279,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"3":1218},"ilvl":502}},"itemEffects":[{"buffId":138963,"buffName":"Perfect Aim","effectDurationMs":4000,"scalingOptions":{"-1":{},"0":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.5799999833106995,"mods":[{"coefficient":1,"ilvl":528},{"coefficient":-0.349999994039536,"spec":4},{"coefficient":-0.400000005960464,"classMask":256}]}}}]}, -{"id":95815,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2943,"weaponDamageMax":5467,"stats":{"2":752,"3":554,"4":381,"7":241,"14":7408},"ilvl":502}}}, +{"id":95815,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2943,"weaponDamageMax":5467,"stats":{"2":752,"3":554,"4":381,"7":241,"14":7408},"ilvl":502}}}, {"id":95816,"name":"Soul Prism of Lei Shen","icon":"inv_jewelry_necklace_136","type":2,"gemSockets":[3,3],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":341,"4":301,"7":174},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":560,"4":468,"7":285},"ilvl":502}}}, {"id":95817,"name":"Lightning-Imbued Chalice","icon":"spell_mage_runeofpower","type":12,"phase":3,"quality":4,"limitCategory":271,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"3":1218},"ilvl":502}},"itemEffects":[{"buffId":139190,"buffName":"Item - Proc Charges For Smart Heal","scalingOptions":{"-1":{},"0":{}}}]}, {"id":95818,"name":"Lei Shen's Orb of Command","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":323,"7":245},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"2":1081,"3":640,"6":482,"7":370},"ilvl":502}}}, @@ -8933,15 +8933,15 @@ {"id":95853,"name":"Breeches of the Haunted Forest","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","classAllowlist":[11],"setName":"Armor of the Haunted Forest","setId":1156,"sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":814,"otherName":"Nalak, The Storm Lord"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":480,"7":560,"17":2268},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1134,"2":1941,"5":742,"7":822,"17":2590},"ilvl":502},"1":{"randPropPoints":2553,"stats":{"1":1183,"2":2014,"5":775,"7":855,"17":2623},"ilvl":506},"2":{"randPropPoints":2650,"stats":{"1":1234,"2":2091,"5":809,"7":889,"17":2656},"ilvl":510}}}, {"id":95854,"name":"Shoulderguards of the Haunted Forest","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","classAllowlist":[11],"setName":"Armor of the Haunted Forest","setId":1156,"sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"5":269,"6":422,"17":1944},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":801,"2":1441,"5":422,"6":642,"17":2220},"ilvl":502},"1":{"randPropPoints":1897,"stats":{"1":838,"2":1497,"5":441,"6":670,"17":2248},"ilvl":506},"2":{"randPropPoints":1969,"stats":{"1":875,"2":1553,"5":460,"6":698,"17":2276},"ilvl":510}}}, {"id":95858,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":6804,"weaponDamageMax":10206,"stats":{"2":1941,"3":1294,"6":799,"11":901,"14":7410},"ilvl":502}}}, -{"id":95859,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1214,"2":1941,"7":655,"11":921},"ilvl":502}}}, -{"id":95860,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":554,"2":752,"7":356,"8":284},"ilvl":502}}}, -{"id":95861,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":5887,"weaponDamageMax":10934,"stats":{"1":474,"2":832,"8":372,"11":258},"ilvl":502}}}, -{"id":95862,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":12474,"weaponDamageMax":18711,"stats":{"1":1214,"2":1941,"6":741,"11":861},"ilvl":502}}}, +{"id":95859,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":9922,"weaponDamageMax":18428,"stats":{"1":1214,"2":1941,"7":655,"11":921},"ilvl":502}}}, +{"id":95860,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":4415,"weaponDamageMax":8200,"stats":{"1":554,"2":752,"7":356,"8":284},"ilvl":502}}}, +{"id":95861,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":5887,"weaponDamageMax":10934,"stats":{"1":474,"2":832,"8":372,"11":258},"ilvl":502}}}, +{"id":95862,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":12474,"weaponDamageMax":18711,"stats":{"1":1214,"2":1941,"6":741,"11":861},"ilvl":502}}}, {"id":95863,"name":"Lost Shoulders of Fire","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":327,"7":448,"17":1527},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"5":484,"7":665,"17":1744},"ilvl":502}}}, {"id":95864,"name":"Lost Shoulders of Healing","icon":"inv_cloth_raidpriest_m_01shoulder","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":444,"7":340,"17":1527},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"4":656,"7":507,"17":1744},"ilvl":502}}}, {"id":95865,"name":"Lost Shoulders of Fluidity","icon":"inv_shoulder_cloth_raidwarlock_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":405,"7":405,"17":1527},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"6":601,"7":601,"17":1744},"ilvl":502}}}, -{"id":95866,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"5":335,"6":320,"14":7408},"ilvl":502}}}, -{"id":95867,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2943,"weaponDamageMax":5467,"stats":{"2":832,"3":474,"4":249,"11":376,"14":7408},"ilvl":502}}}, +{"id":95866,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2207,"weaponDamageMax":4100,"stats":{"2":832,"3":474,"5":335,"6":320,"14":7408},"ilvl":502}}}, +{"id":95867,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":2943,"weaponDamageMax":5467,"stats":{"2":832,"3":474,"4":249,"11":376,"14":7408},"ilvl":502}}}, {"id":95868,"name":"Forgotten Mantle of the Moon","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":468,"8":298,"17":1944},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"7":690,"8":447,"17":2220},"ilvl":502}}}, {"id":95869,"name":"Forgotten Mantle of the Sun","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":383,"11":418,"17":1944},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"7":569,"11":620,"17":2220},"ilvl":502}}}, {"id":95870,"name":"Abandoned Spaulders of Arrowflight","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":298,"11":468,"17":2705},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"7":447,"11":690,"17":3089},"ilvl":502}}}, @@ -8949,9 +8949,9 @@ {"id":95872,"name":"Reconstructed Holy Shoulderplates","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":412,"11":394,"17":3694},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"2":1441,"3":881,"7":610,"11":584,"17":4218},"ilvl":502}}}, {"id":95873,"name":"Reconstructed Furious Shoulderplates","icon":"inv_shoulder_plate_raidwarrior_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"7":418,"11":383,"17":3694},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":881,"2":1441,"7":620,"11":569,"17":4218},"ilvl":502}}}, {"id":95874,"name":"Reconstructed Bloody Shoulderplates","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3694},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"0":881,"2":1441,"8":447,"10":690,"17":4218},"ilvl":502}}}, -{"id":95875,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"6":783,"7":837},"ilvl":502}}}, -{"id":95876,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_pandaraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":258,"11":372},"ilvl":502}}}, -{"id":95877,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"8":714,"11":897},"ilvl":502}}}, +{"id":95875,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"6":783,"7":837},"ilvl":502}}}, +{"id":95876,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_pandaraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"0":474,"2":832,"5":258,"11":372},"ilvl":502}}}, +{"id":95877,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":2460,"weaponDamageMin":13608,"weaponDamageMax":20412,"stats":{"0":1214,"2":1941,"8":714,"11":897},"ilvl":502}}}, {"id":95878,"name":"Visage of the Doomed","icon":"inv_shield_zandalari_c_02","type":13,"weaponType":7,"handType":3,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":253,"10":308,"17":15800},"ilvl":463},"0":{"randPropPoints":1370,"stats":{"0":640,"2":1081,"9":371,"10":471,"17":18040},"ilvl":502}}}, {"id":95882,"name":"Saurok Stalker's Tunic","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[2,4,3],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","classAllowlist":[3],"setName":"Battlegear of the Saurok Stalker","setId":1157,"sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"8":489,"11":464,"17":3607},"ilvl":463},"0":{"randPropPoints":2460,"stats":{"1":1054,"2":1941,"8":756,"11":721,"17":4118},"ilvl":502},"1":{"randPropPoints":2553,"stats":{"1":1103,"2":2014,"8":789,"11":753,"17":4171},"ilvl":506},"2":{"randPropPoints":2650,"stats":{"1":1154,"2":2091,"8":823,"11":786,"17":4223},"ilvl":510}}}, {"id":95883,"name":"Saurok Stalker's Gloves","icon":"inv_glove_mail_raidhunter_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Celestial","classAllowlist":[3],"setName":"Battlegear of the Saurok Stalker","setId":1157,"sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"difficulty":9,"npcId":814,"otherName":"Nalak, The Storm Lord"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":410,"8":391,"17":2254},"ilvl":463},"0":{"randPropPoints":1827,"stats":{"1":881,"2":1441,"6":612,"8":577,"17":2574},"ilvl":502},"1":{"randPropPoints":1897,"stats":{"1":918,"2":1497,"6":637,"8":600,"17":2607},"ilvl":506},"2":{"randPropPoints":1969,"stats":{"1":955,"2":1553,"6":663,"8":624,"17":2639},"ilvl":510}}}, @@ -9069,7 +9069,7 @@ {"id":96001,"name":"Cloudbreaker Greatbelt","icon":"inv_belt_plate_raidwarrior_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"7":354,"11":372,"17":2771},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1064,"2":1837,"7":716,"11":749,"17":3425},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1111,"2":1906,"7":746,"11":780,"17":3466},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1159,"2":1979,"7":777,"11":813,"17":3506},"ilvl":536}}}, {"id":96002,"name":"Chestplate of Violent Detonation","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":537,"11":490,"17":4926},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1488,"2":2472,"5":1051,"11":964,"17":6090},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1551,"2":2566,"5":1094,"11":1004,"17":6161},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"5":1139,"11":1045,"17":6233},"ilvl":536}}}, {"id":96003,"name":"Bracers of Constant Implosion","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-337,-338,-339,-341],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"17":2155},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"17":2664},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"17":2696},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"17":2727},"ilvl":536}}}, -{"id":96004,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":491,"8":329},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":511,"8":343},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":532,"8":357},"ilvl":536}}}, +{"id":96004,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":491,"8":329},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":511,"8":343},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":532,"8":357},"ilvl":536}}}, {"id":96005,"name":"Jin'rokh's Soulcrystal","icon":"inv_jewelry_ring_172","type":11,"phase":3,"quality":4,"limitCategory":251,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"8":301,"9":354},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":918,"2":1377,"8":552,"9":648},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":953,"2":1429,"8":573,"9":672},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"8":595,"9":698},"ilvl":536}}}, {"id":96006,"name":"Lightningweaver Gauntlets","icon":"inv_glove_cloth_raidmage_m_01","type":7,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":418,"11":383,"17":1273},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"5":800,"11":736,"17":1574},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"5":832,"11":765,"17":1592},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":865,"11":796,"17":1611},"ilvl":536}}}, {"id":96007,"name":"Al'set's Tormented Leggings","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":389,"11":596,"17":1782},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"5":780,"11":1158,"17":2203},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"5":813,"11":1205,"17":2229},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"5":847,"11":1254,"17":2255},"ilvl":536}}}, @@ -9077,14 +9077,14 @@ {"id":96009,"name":"Robes of Static Bursts","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":858,"11":1114,"17":2518},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":893,"11":1159,"17":2547},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":930,"11":1206,"17":2577},"ilvl":536}}}, {"id":96010,"name":"Jin'rokh's Dreamshard","icon":"inv_jewelry_ring_169","type":11,"phase":3,"quality":4,"limitCategory":253,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":309,"6":349},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"5":567,"6":639},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"5":588,"6":663},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"5":611,"6":689},"ilvl":536}}}, {"id":96011,"name":"Drape of Booming Nights","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":368,"6":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":674,"6":508,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":699,"6":527,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":726,"6":547,"17":1289},"ilvl":536}}}, -{"id":96012,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02blue","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3438,"weaponDamageMax":6385,"stats":{"2":1059,"3":626,"4":385,"6":458,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3568,"weaponDamageMax":6627,"stats":{"2":1100,"3":653,"4":401,"6":477,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3704,"weaponDamageMax":6879,"stats":{"2":1142,"3":681,"4":417,"6":497,"14":10170},"ilvl":536}}}, +{"id":96012,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02blue","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3438,"weaponDamageMax":6385,"stats":{"2":1059,"3":626,"4":385,"6":458,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3568,"weaponDamageMax":6627,"stats":{"2":1100,"3":653,"4":401,"6":477,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3704,"weaponDamageMax":6879,"stats":{"2":1142,"3":681,"4":417,"6":497,"14":10170},"ilvl":536}}}, {"id":96013,"name":"Horridon's Last Gasp","icon":"spell_nature_eyeofthestorm","type":12,"phase":3,"quality":4,"limitCategory":268,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"3":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"3":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"3":1672},"ilvl":536}},"itemEffects":[{"buffId":138856,"buffName":"Cloudburst","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.9599999785423279,"mods":[{"coefficient":1,"haste":false}]}}}]}, {"id":96014,"name":"Infinitely Conducting Bracers","icon":"inv_bracer_leather_raidmonk_m_01","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":293,"6":358,"17":1134},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":537,"6":657,"17":1402},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":557,"6":681,"17":1419},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":579,"6":707,"17":1435},"ilvl":536}}}, {"id":96015,"name":"Ghostbinder Greatboots","icon":"inv_boot_mail_raidshaman_m_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":442,"7":337,"17":2480},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":850,"7":645,"17":3066},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":884,"7":671,"17":3102},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":920,"7":698,"17":3138},"ilvl":536}}}, {"id":96016,"name":"Ionized Yojamban Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":389,"11":596,"17":4926},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"6":780,"11":1158,"17":6090},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"6":813,"11":1205,"17":6161},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":847,"11":1254,"17":6233},"ilvl":536}}}, {"id":96017,"name":"Wastewalker's Sandblasted Drape","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"5":368,"7":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":918,"2":1377,"5":674,"7":508,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":953,"2":1429,"5":699,"7":527,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"5":726,"7":547,"17":1289},"ilvl":536}}}, {"id":96018,"name":"Talisman of Living Poison","icon":"inv_jewelry_necklace_119","type":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":349,"8":309},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":918,"2":1377,"7":639,"8":567},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":953,"2":1429,"7":663,"8":588},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"7":689,"8":611},"ilvl":536}}}, -{"id":96019,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":15893,"weaponDamageMax":23840,"stats":{"1":1568,"2":2472,"5":1115,"11":980},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":16497,"weaponDamageMax":24746,"stats":{"1":1631,"2":2566,"5":1158,"11":1020},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"5":1203,"11":1061},"ilvl":536}}}, +{"id":96019,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":15893,"weaponDamageMax":23840,"stats":{"1":1568,"2":2472,"5":1115,"11":980},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":16497,"weaponDamageMax":24746,"stats":{"1":1631,"2":2566,"5":1158,"11":1020},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"5":1203,"11":1061},"ilvl":536}}}, {"id":96020,"name":"Bindings of Multiplicative Strikes","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"6":339,"7":326,"17":1134},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":918,"2":1377,"6":621,"7":597,"17":1402},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":953,"2":1429,"6":645,"7":619,"17":1419},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":989,"2":1484,"6":669,"7":643,"17":1435},"ilvl":536}}}, {"id":96021,"name":"Sul'lithuz Sandmail","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":572,"11":432,"17":3607},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"7":1114,"11":858,"17":4459},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"7":1159,"11":893,"17":4511},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"7":1206,"11":930,"17":4564},"ilvl":536}}}, {"id":96022,"name":"Frozen Warlord's Bracers","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"7":358,"8":293,"17":2155},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":918,"2":1377,"7":657,"8":537,"17":2664},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":953,"2":1429,"7":681,"8":557,"17":2696},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"7":707,"8":579,"17":2727},"ilvl":536}}}, @@ -9094,28 +9094,28 @@ {"id":96026,"name":"Spark of Zandalar","icon":"spell_nature_lightningshield","type":12,"phase":3,"quality":4,"limitCategory":276,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"7":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"7":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"7":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"7":1672},"ilvl":536}},"itemEffects":[{"buffId":138957,"buffName":"Item - Proc Charges For Strength Transform","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96027,"name":"Flamecaster's Burning Crown","icon":"inv_helm_cloth_raidmage_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"6":562,"7":379,"17":1655},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"6":1083,"7":841,"17":2046},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"6":1127,"7":880,"17":2070},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"6":1172,"7":920,"17":2094},"ilvl":536}}}, {"id":96028,"name":"Vaccinator's Armwraps","icon":"inv_cloth_raidpriest_m_01bracer","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":334,"7":334,"17":891},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":612,"7":612,"17":1102},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":635,"7":635,"17":1114},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":659,"7":659,"17":1127},"ilvl":536}}}, -{"id":96029,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"5":975,"7":1099,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"5":1012,"7":1143,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"5":1051,"7":1189,"14":10169},"ilvl":536}}}, +{"id":96029,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"5":975,"7":1099,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"5":1012,"7":1143,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"5":1051,"7":1189,"14":10169},"ilvl":536}}}, {"id":96030,"name":"Horridon's Tusk Fragment","icon":"inv_jewelry_necklace_141","type":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":285,"11":363},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":522,"11":665},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":542,"11":690},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":563,"11":717},"ilvl":536}}}, {"id":96031,"name":"Petrified Eye of the Basilisk","icon":"inv_jewelry_ring_178","type":11,"phase":3,"quality":4,"limitCategory":260,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":381,"11":254},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":698,"11":465},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":724,"11":483},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":752,"11":501},"ilvl":536}}}, -{"id":96032,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2969,"weaponDamageMax":5514,"stats":{"2":1059,"3":626,"6":438,"7":419,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3081,"weaponDamageMax":5724,"stats":{"2":1100,"3":653,"6":456,"7":436,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3199,"weaponDamageMax":5941,"stats":{"2":1142,"3":681,"6":475,"7":455,"14":10170},"ilvl":536}}}, +{"id":96032,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2969,"weaponDamageMax":5514,"stats":{"2":1059,"3":626,"6":438,"7":419,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3081,"weaponDamageMax":5724,"stats":{"2":1100,"3":653,"6":456,"7":436,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3199,"weaponDamageMax":5941,"stats":{"2":1142,"3":681,"6":475,"7":455,"14":10170},"ilvl":536}}}, {"id":96033,"name":"Roots of Rampaging Earth","icon":"inv_pant_leather_raidmonk_m_01","type":9,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"11":490,"17":2268},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"6":1051,"11":964,"17":2804},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"6":1094,"11":1004,"17":2837},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1139,"11":1045,"17":2870},"ilvl":536}}}, {"id":96034,"name":"Spaulders of Dinomancy","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"7":319,"17":1944},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":869,"7":618,"17":2404},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":903,"7":643,"17":2432},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":939,"7":669,"17":2460},"ilvl":536}}}, {"id":96035,"name":"Legguards of Scintillating Scales","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":520,"11":520,"17":3156},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"6":1019,"11":1019,"17":3902},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"6":1061,"11":1061,"17":3948},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1104,"11":1104,"17":3993},"ilvl":536}}}, {"id":96036,"name":"Armplates of the Vanquished Abomination","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"17":2155},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"17":2664},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"17":2696},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"17":2727},"ilvl":536}}}, {"id":96037,"name":"Bad Juju","icon":"trade_archaeology_troll_voodoodoll","type":12,"phase":3,"quality":4,"limitCategory":261,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"11":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"11":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"11":1672},"ilvl":536}},"itemEffects":[{"buffId":138938,"buffName":"Juju Madness","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"1":4232}},"0":{"stats":{"1":7757}},"1":{"stats":{"1":8051}},"2":{"stats":{"1":8356}}},"proc":{"icdMs":10000,"rppm":{"rate":1.100000023841858}}}]}, -{"id":96038,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"6":431,"11":431},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"6":449,"11":449},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":467,"11":467},"ilvl":536}}}, +{"id":96038,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"6":431,"11":431},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"6":449,"11":449},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":467,"11":467},"ilvl":536}}}, {"id":96039,"name":"Mar'li's Bloodstained Sandals","icon":"inv_cloth_raidpriest_m_01boot","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":436,"6":348,"17":1400},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":839,"6":665,"17":1731},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":872,"6":691,"17":1751},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":908,"6":718,"17":1772},"ilvl":536}}}, {"id":96040,"name":"Zandalari Robes of the Final Rite","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"6":546,"17":2037},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"5":937,"6":1067,"17":2518},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"5":976,"6":1111,"17":2547},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"5":1016,"6":1156,"17":2577},"ilvl":536}}}, {"id":96041,"name":"Wushoolay's Final Choice","icon":"spell_nature_chainlightning","type":12,"phase":3,"quality":4,"limitCategory":280,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"5":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"5":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"5":1672},"ilvl":536}},"itemEffects":[{"buffId":138786,"buffName":"Wushoolay's Lightning","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138788,"buffName":"Electrified","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"3":769}},"0":{"stats":{"3":1410}},"1":{"stats":{"3":1464}},"2":{"stats":{"3":1519}}}},"stackPeriodMs":1000}]}, -{"id":96042,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":4063,"weaponDamageMax":7546,"stats":{"2":1059,"3":626,"4":472,"11":362,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":4217,"weaponDamageMax":7832,"stats":{"2":1100,"3":653,"4":491,"11":377,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4377,"weaponDamageMax":8130,"stats":{"2":1142,"3":681,"4":511,"11":393,"14":10170},"ilvl":536}}}, +{"id":96042,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":4063,"weaponDamageMax":7546,"stats":{"2":1059,"3":626,"4":472,"11":362,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":4217,"weaponDamageMax":7832,"stats":{"2":1100,"3":653,"4":491,"11":377,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4377,"weaponDamageMax":8130,"stats":{"2":1142,"3":681,"4":511,"11":393,"14":10170},"ilvl":536}}}, {"id":96043,"name":"Robes of Treacherous Ground","icon":"inv_leather_raiddruid_m_01robe","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":389,"11":596,"17":2592},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":780,"11":1158,"17":3205},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":813,"11":1205,"17":3242},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":847,"11":1254,"17":3280},"ilvl":536}}}, {"id":96044,"name":"Gaze of Gara'jal","icon":"inv_helm_mail_raidhunter_m_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1408,"2":2472,"6":959,"7":999,"17":3623},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1471,"2":2566,"6":1001,"7":1041,"17":3666},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1535,"2":2663,"6":1044,"7":1084,"17":3708},"ilvl":536}}}, {"id":96045,"name":"Loa-Ridden Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":1578},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"17":1951},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"17":1974},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"17":1997},"ilvl":536}}}, {"id":96046,"name":"Overloaded Bladebreaker Cuirass","icon":"inv_chest_plate_raidwarrior_m_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":376,"10":603,"17":4926},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1488,"2":2472,"5":755,"10":1173,"17":6090},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1551,"2":2566,"5":787,"10":1220,"17":6161},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1615,"2":2663,"5":819,"10":1269,"17":6233},"ilvl":536}}}, -{"id":96047,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"5":1174,"6":844},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"5":1221,"6":877},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"5":1270,"6":911},"ilvl":536}}}, +{"id":96047,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"5":1174,"6":844},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"5":1221,"6":877},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"5":1270,"6":911},"ilvl":536}}}, {"id":96048,"name":"Talisman of Angry Spirits","icon":"inv_jewelry_necklace_139","type":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"6":344,"11":318},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":918,"2":1377,"6":630,"11":582},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":953,"2":1429,"6":654,"11":604},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"6":679,"11":627},"ilvl":536}}}, {"id":96049,"name":"Fortitude of the Zandalari","icon":"spell_holy_mindvision","type":12,"phase":3,"quality":4,"limitCategory":266,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"11":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"11":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"11":1672},"ilvl":536}},"itemEffects":[{"buffId":126697,"buffName":"Tremendous Fortitude","effectDurationMs":15000,"scalingOptions":{"-1":{"stats":{"19":42617}},"0":{"stats":{"19":78106}},"1":{"stats":{"19":81071}},"2":{"stats":{"19":84137}}},"onUse":{"cooldownMs":120000,"categoryId":1190,"categoryCooldownMs":120000}}]}, -{"id":96050,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1568,"2":2472,"5":1004,"8":1091},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1631,"2":2566,"5":1044,"8":1134},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"5":1085,"8":1179},"ilvl":536}}}, +{"id":96050,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1568,"2":2472,"5":1004,"8":1091},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1631,"2":2566,"5":1044,"8":1134},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"5":1085,"8":1179},"ilvl":536}}}, {"id":96051,"name":"Rockfall Ribwraps","icon":"inv_chest_leather_raidmonk_m_01","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":461,"6":555,"17":2592},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"5":911,"6":1083,"17":3205},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"5":948,"6":1127,"17":3242},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"5":987,"6":1173,"17":3280},"ilvl":536}}}, {"id":96052,"name":"Grips of Vampiric Cruelty","icon":"inv_glove_leather_raidrogue_m_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"5":394,"7":412,"17":1620},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"5":756,"7":789,"17":2003},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"5":786,"7":820,"17":2026},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"5":817,"7":853,"17":2050},"ilvl":536}}}, {"id":96053,"name":"Beady-Eye Bracers","icon":"inv_bracer_mail_raidhunter_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1578},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"17":1951},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"17":1974},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"17":1997},"ilvl":536}}}, @@ -9123,7 +9123,7 @@ {"id":96055,"name":"Shoulderguards of Centripetal Destruction","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1144,"2":1837,"6":891,"7":580,"17":4567},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1191,"2":1906,"6":926,"7":604,"17":4621},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"6":962,"7":628,"17":4675},"ilvl":536}}}, {"id":96056,"name":"Shell-Coated Wristplates","icon":"inv_bracer_plate_deathknight_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":372,"10":269,"17":2155},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":918,"2":1377,"9":682,"10":494,"17":2664},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":953,"2":1429,"9":708,"10":512,"17":2696},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"9":735,"10":532,"17":2727},"ilvl":536}}}, {"id":96057,"name":"Amulet of the Primal Turtle","icon":"inv_jewelry_necklace_118","type":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":214,"6":341},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"5":425,"6":658},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"5":443,"6":684},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"5":461,"6":712},"ilvl":536}}}, -{"id":96058,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":465,"6":373},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":484,"6":389},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":504,"6":405},"ilvl":536}}}, +{"id":96058,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":465,"6":373},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":484,"6":389},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":504,"6":405},"ilvl":536}}}, {"id":96059,"name":"Beakbreaker Greatcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":344,"11":318,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":918,"2":1377,"9":630,"11":582,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":953,"2":1429,"9":654,"11":604,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":989,"2":1484,"9":679,"11":627,"17":1289},"ilvl":536}}}, {"id":96060,"name":"Azure Shell Bracers","icon":"inv_bracer_cloth_raidmage_m_01","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"6":368,"11":277,"17":891},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"6":674,"11":508,"17":1102},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"6":699,"11":527,"17":1114},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"6":726,"11":547,"17":1127},"ilvl":536}}}, {"id":96061,"name":"Stonegaze Hood","icon":"inv_cloth_raidpriest_m_01helm","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":556,"6":368,"17":1655},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"4":1098,"6":794,"17":2046},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"4":1143,"6":829,"17":2070},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"4":1190,"6":866,"17":2094},"ilvl":536}}}, @@ -9135,7 +9135,7 @@ {"id":96067,"name":"Spaulders of Quaking Fear","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":462,"7":309,"17":2705},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":880,"7":599,"17":3344},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":915,"7":623,"17":3384},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":951,"7":648,"17":3423},"ilvl":536}}}, {"id":96068,"name":"Refreshing Abalone Girdle","icon":"inv_belt_plate_raidpaladin_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":385,"7":332,"17":2771},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":772,"7":676,"17":3425},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":804,"7":704,"17":3466},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":838,"7":734,"17":3506},"ilvl":536}}}, {"id":96069,"name":"Tortos' Shellseizers","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":351,"6":438,"17":3079},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":676,"6":836,"17":3806},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":703,"6":869,"17":3851},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":731,"6":903,"17":3896},"ilvl":536}}}, -{"id":96070,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":626,"2":1059,"5":362,"11":472},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":653,"2":1100,"5":377,"11":491},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":393,"11":511},"ilvl":536}}}, +{"id":96070,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":626,"2":1059,"5":362,"11":472},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":653,"2":1100,"5":377,"11":491},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":393,"11":511},"ilvl":536}}}, {"id":96071,"name":"Quadra-Head Brooch","icon":"inv_jewelry_necklace_140","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"5":294,"11":294},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"5":572,"11":572},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"5":595,"11":595},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"5":619,"11":619},"ilvl":536}}}, {"id":96072,"name":"Poisonblood Bladeshoulders","icon":"inv_shoulder_leather_raidrogue_m_01","type":3,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":405,"11":405,"17":1944},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"7":776,"11":776,"17":2404},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"7":807,"11":807,"17":2432},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":839,"11":839,"17":2460},"ilvl":536}}}, {"id":96073,"name":"Grips of Cinderflesh","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":372,"11":425,"17":2254},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"7":716,"11":812,"17":2787},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"7":744,"11":844,"17":2820},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":774,"11":878,"17":2852},"ilvl":536}}}, @@ -9157,7 +9157,7 @@ {"id":96089,"name":"Pinionfeather Greatcloak","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":286,"11":299,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"6":557,"11":581,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"6":579,"11":605,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"6":603,"11":629,"17":1289},"ilvl":536}}}, {"id":96090,"name":"Cord of Cacophonous Cawing","icon":"inv_belt_cloth_raidwarlock_m_01","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":398,"7":311,"17":1146},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"5":796,"7":636,"17":1416},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"5":829,"7":663,"17":1433},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"5":863,"7":691,"17":1450},"ilvl":536}}}, {"id":96091,"name":"Robe of Midnight Down","icon":"inv_chest_cloth_raidmage_m_01","type":5,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"7":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"7":858,"11":1114,"17":2518},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"7":893,"11":1159,"17":2547},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"7":930,"11":1206,"17":2577},"ilvl":536}}}, -{"id":96092,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"4":1145,"7":896,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"4":1191,"7":930,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"4":1238,"7":966,"14":10169},"ilvl":536}}}, +{"id":96092,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"4":1145,"7":896,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"4":1191,"7":930,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"4":1238,"7":966,"14":10169},"ilvl":536}}}, {"id":96093,"name":"Featherflight Belt","icon":"inv_belt_leather_raidrogue_m_01","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"7":416,"8":279,"17":1458},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1064,"2":1837,"7":829,"8":578,"17":1803},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1111,"2":1906,"7":863,"8":603,"17":1824},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1159,"2":1979,"7":899,"8":629,"17":1845},"ilvl":536}}}, {"id":96094,"name":"Grasp of the Ruthless Mother","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":668,"4":401,"11":471,"17":2254},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1224,"4":736,"11":864,"17":2787},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1271,"4":764,"11":897,"17":2820},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1319,"4":793,"11":931,"17":2852},"ilvl":536}}}, {"id":96095,"name":"Crown of Potentiated Birth","icon":"inv_helmet_plate_raidpaladin_m_01","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":583,"7":316,"17":4002},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"4":1153,"7":695,"17":4948},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"4":1200,"7":727,"17":5006},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"4":1249,"7":759,"17":5064},"ilvl":536}}}, @@ -9165,7 +9165,7 @@ {"id":96097,"name":"Egg-Shard Grips","icon":"inv_gloves_plate_raidwarrior_m_01","type":7,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3079},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1144,"2":1837,"8":580,"10":891,"17":3806},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1191,"2":1906,"8":604,"10":926,"17":3851},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"8":628,"10":962,"17":3896},"ilvl":536}}}, {"id":96098,"name":"Fabled Feather of Ji-Kun","icon":"ability_priest_angelicfeather","type":12,"phase":3,"quality":4,"limitCategory":265,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"5":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"5":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"5":1672},"ilvl":536}},"itemEffects":[{"buffId":138759,"buffName":"Feathers of Fury","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138760,"buffName":"Mighty","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"0":769}},"0":{"stats":{"0":1410}},"1":{"stats":{"0":1464}},"2":{"stats":{"0":1519}}}},"stackPeriodMs":1000}]}, {"id":96099,"name":"Ji-Kun's Rising Winds","icon":"spell_holy_heal","type":12,"phase":3,"quality":4,"limitCategory":270,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"8":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"8":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"8":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"8":1672},"ilvl":536}},"itemEffects":[{"buffId":138973,"buffName":"The Risen Wind","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":30000,"procChance":1}}]}, -{"id":96100,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":14448,"weaponDamageMax":21673,"stats":{"1":1568,"2":2472,"6":1123,"7":951},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":14997,"weaponDamageMax":22496,"stats":{"1":1631,"2":2566,"6":1167,"7":988},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":15566,"weaponDamageMax":23350,"stats":{"1":1695,"2":2663,"6":1213,"7":1027},"ilvl":536}}}, +{"id":96100,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":14448,"weaponDamageMax":21673,"stats":{"1":1568,"2":2472,"6":1123,"7":951},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":14997,"weaponDamageMax":22496,"stats":{"1":1631,"2":2566,"6":1167,"7":988},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":15566,"weaponDamageMax":23350,"stats":{"1":1695,"2":2663,"6":1213,"7":1027},"ilvl":536}}}, {"id":96101,"name":"Crimson Bloom Legguards","icon":"inv_pant_leather_raidrogue_m_01","type":9,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":588,"6":403,"17":2268},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"5":1144,"6":806,"17":2804},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"5":1190,"6":840,"17":2837},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"5":1238,"6":874,"17":2870},"ilvl":536}}}, {"id":96102,"name":"Links of the Disintegrator","icon":"inv_belt_mail_raidshaman_m_01","type":8,"armorType":3,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"6":391,"7":321,"17":2029},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1064,"2":1837,"6":784,"7":656,"17":2508},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1111,"2":1906,"6":817,"7":684,"17":2538},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1159,"2":1979,"6":851,"7":713,"17":2567},"ilvl":536}}}, {"id":96103,"name":"Aberrant Chestguard of Torment","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":546,"7":475,"17":3607},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"6":1067,"7":937,"17":4459},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"6":1111,"7":976,"17":4511},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"6":1156,"7":1016,"17":4564},"ilvl":536}}}, @@ -9180,7 +9180,7 @@ {"id":96112,"name":"Chilblain Spaulders","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":383,"11":418,"17":1527},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"6":736,"11":800,"17":1888},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"6":765,"11":832,"17":1911},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"6":796,"11":865,"17":1933},"ilvl":536}}}, {"id":96113,"name":"Deadly Glare Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":278,"7":304,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"6":542,"7":590,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"6":564,"7":614,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"6":587,"7":639,"17":1289},"ilvl":536}}}, {"id":96114,"name":"Durumu's Captive Eyeball","icon":"inv_jewelry_ring_ahnqiraj_02","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":254,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":313,"6":246},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"4":626,"6":463},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"4":652,"6":481},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":679,"6":500},"ilvl":536}}}, -{"id":96115,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"4":465,"6":373,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"4":484,"6":389,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"4":504,"6":405,"14":10170},"ilvl":536}}}, +{"id":96115,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"4":465,"6":373,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"4":484,"6":389,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"4":504,"6":405,"14":10170},"ilvl":536}}}, {"id":96116,"name":"Sandals of the Starving Eye","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":430,"6":359,"17":1782},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":828,"6":684,"17":2203},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":861,"6":711,"17":2229},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":895,"6":739,"17":2255},"ilvl":536}}}, {"id":96117,"name":"Vein-Cover Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":377,"7":262,"17":1578},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":918,"4":690,"7":479,"17":1951},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":953,"4":716,"7":497,"17":1974},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":989,"4":743,"7":516,"17":1997},"ilvl":536}}}, {"id":96118,"name":"Iceshatter Gauntlets","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":3079},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":802,"11":613,"17":3806},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":836,"11":639,"17":3851},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":872,"11":666,"17":3896},"ilvl":536}}}, @@ -9195,7 +9195,7 @@ {"id":96127,"name":"Hydra-Scale Bloodcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"6":314,"8":261,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"6":608,"8":512,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"6":632,"8":533,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"6":658,"8":555,"17":1289},"ilvl":536}}}, {"id":96128,"name":"Band of the Scaled Tyrant","icon":"inv_jewelry_ring_177","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":259,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":269,"7":299},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"5":506,"7":601},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"5":526,"7":626},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"5":547,"7":653},"ilvl":536}}}, {"id":96129,"name":"Primordius' Talisman of Rage","icon":"ability_warrior_rampage","type":12,"phase":3,"quality":4,"limitCategory":272,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"6":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"6":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"6":1672},"ilvl":536}},"itemEffects":[{"buffId":138870,"buffName":"Rampage","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{"stats":{"0":887}},"0":{"stats":{"0":1627}},"1":{"stats":{"0":1688}},"2":{"stats":{"0":1752}}},"proc":{"icdMs":5000,"rppm":{"rate":3.5}}}]}, -{"id":96130,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":7501,"weaponDamageMax":13931,"stats":{"0":626,"2":1059,"9":472,"10":362},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":7786,"weaponDamageMax":14460,"stats":{"0":653,"2":1100,"9":491,"10":377},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"0":681,"2":1142,"9":511,"10":393},"ilvl":536}}}, +{"id":96130,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":7501,"weaponDamageMax":13931,"stats":{"0":626,"2":1059,"9":472,"10":362},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":7786,"weaponDamageMax":14460,"stats":{"0":653,"2":1100,"9":491,"10":377},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"0":681,"2":1142,"9":511,"10":393},"ilvl":536}}}, {"id":96131,"name":"Robes of Mutagenic Blood","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"7":490,"17":2037},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"6":1051,"7":964,"17":2518},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"6":1094,"7":1004,"17":2547},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"6":1139,"7":1045,"17":2577},"ilvl":536}}}, {"id":96132,"name":"Helix-Breaker Gloves","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":388,"6":316,"17":1273},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":791,"6":633,"17":1574},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":824,"6":659,"17":1592},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":860,"6":686,"17":1611},"ilvl":536}}}, {"id":96133,"name":"Leggings of Ebon Veins","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":1782},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1019,"6":1019,"17":2203},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1061,"6":1061,"17":2229},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"6":1104,"17":2255},"ilvl":536}}}, @@ -9207,18 +9207,18 @@ {"id":96139,"name":"Spaulders of Primordial Growth","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":891,"7":580,"17":4567},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":926,"7":604,"17":4621},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":962,"7":628,"17":4675},"ilvl":536}}}, {"id":96140,"name":"Greatshield of the Gloaming","icon":"inv_shield_thunderisleraid_d_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":310,"11":275,"17":15800},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"9":581,"11":557,"17":19533},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"9":603,"11":581,"17":19762},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"9":627,"11":605,"17":19992},"ilvl":536}}}, {"id":96141,"name":"Gore-Soaked Gear","icon":"inv_jewelry_ring_180","type":11,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":249,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":294,"7":277},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"6":593,"7":521},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"6":617,"7":541},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"6":643,"7":563},"ilvl":536}}}, -{"id":96142,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"7":472,"8":362},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"7":491,"8":377},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"7":511,"8":393},"ilvl":536}}}, +{"id":96142,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"7":472,"8":362},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"7":491,"8":377},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"7":511,"8":393},"ilvl":536}}}, {"id":96143,"name":"Hood of the Crimson Wake","icon":"inv_helm_cloth_raidwarlock_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"7":460,"11":500,"17":1655},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"7":959,"11":999,"17":2046},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"7":1001,"11":1041,"17":2070},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"7":1044,"11":1084,"17":2094},"ilvl":536}}}, {"id":96144,"name":"Cha-Ye's Essence of Brilliance","icon":"spell_holy_mindsooth","type":12,"phase":3,"quality":4,"limitCategory":263,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"6":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"6":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"6":1672},"ilvl":536}},"itemEffects":[{"buffId":139133,"buffName":"Mastermind","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"3":4232}},"0":{"stats":{"3":7757}},"1":{"stats":{"3":8051}},"2":{"stats":{"3":8356}}},"proc":{"icdMs":10000,"rppm":{"rate":0.8500000238418579,"mods":[{"coefficient":1,"crit":false}]}}}]}, {"id":96145,"name":"Constantly Accelerating Cloak","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":261,"7":314,"17":1018},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"4":512,"7":608,"17":1259},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"4":533,"7":632,"17":1274},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":555,"7":658,"17":1289},"ilvl":536}}}, -{"id":96146,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"7":431,"11":431,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"7":449,"11":449,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"7":467,"11":467,"14":10170},"ilvl":536}}}, +{"id":96146,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"7":431,"11":431,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"7":449,"11":449,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"7":467,"11":467,"14":10170},"ilvl":536}}}, {"id":96147,"name":"Worldbinder Leggings","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":403,"11":588,"17":2268},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"6":806,"11":1144,"17":2804},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"6":840,"11":1190,"17":2837},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"6":874,"11":1238,"17":2870},"ilvl":536}}}, {"id":96148,"name":"Anima-Ringed Fingers","icon":"inv_leather_raiddruid_m_01glove","type":7,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":362,"6":359,"17":1620},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":744,"6":712,"17":2003},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":776,"6":741,"17":2026},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":809,"6":772,"17":2050},"ilvl":536}}}, {"id":96149,"name":"Matter-Swapped Legplates","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":537,"11":490,"17":4310},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1051,"11":964,"17":5328},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1094,"11":1004,"17":5391},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1139,"11":1045,"17":5454},"ilvl":536}}}, {"id":96150,"name":"Crown of the Golden Golem","icon":"inv_helmet_plate_deathknight_m_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":503,"7":426,"17":4002},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1408,"2":2472,"6":1039,"7":864,"17":4948},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1471,"2":2566,"6":1083,"7":901,"17":5006},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"6":1130,"7":938,"17":5064},"ilvl":536}}}, {"id":96151,"name":"Delicate Vial of the Sanguinaire","icon":"ability_deathwing_bloodcorruption_earth","type":12,"phase":3,"quality":4,"limitCategory":264,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"9":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"9":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"9":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"9":1672},"ilvl":536}},"itemEffects":[{"buffId":138864,"buffName":"Blood of Power","effectDurationMs":20000,"maxCumulativeStacks":3,"scalingOptions":{"-1":{"stats":{"11":5079}},"0":{"stats":{"11":9308}},"1":{"stats":{"11":9661}},"2":{"stats":{"11":10027}}},"proc":{"procChance":0.04}}]}, -{"id":96152,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":626,"2":1059,"5":318,"7":497},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":653,"2":1100,"5":331,"7":517},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":345,"7":538},"ilvl":536}}}, -{"id":96153,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1648,"2":2392,"5":1031,"7":1075},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1711,"2":2486,"5":1072,"7":1118},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1775,"2":2583,"5":1114,"7":1162},"ilvl":536}}}, +{"id":96152,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":626,"2":1059,"5":318,"7":497},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":653,"2":1100,"5":331,"7":517},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":681,"2":1142,"5":345,"7":538},"ilvl":536}}}, +{"id":96153,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1648,"2":2392,"5":1031,"7":1075},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1711,"2":2486,"5":1072,"7":1118},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1775,"2":2583,"5":1114,"7":1162},"ilvl":536}}}, {"id":96154,"name":"Quet'zal's Crackling Cord","icon":"inv_cloth_raidpriest_m_01belt","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":343,"6":378,"17":1146},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":696,"6":760,"17":1416},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":725,"6":792,"17":1433},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":756,"6":825,"17":1450},"ilvl":536}}}, {"id":96155,"name":"Saddle-Scarred Leggings","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":563,"11":446,"17":1782},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1099,"11":884,"17":2203},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1143,"11":921,"17":2229},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1190,"11":958,"17":2255},"ilvl":536}}}, {"id":96156,"name":"Dam'ren's Frozen Footguards","icon":"inv_boot_cloth_raidmage_m_01","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":343,"7":446,"17":1400},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"5":668,"7":844,"17":1731},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"5":695,"7":877,"17":1751},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":723,"7":911,"17":1772},"ilvl":536}}}, @@ -9227,12 +9227,12 @@ {"id":96159,"name":"Spurs of the Storm Cavalry","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":397,"11":413,"17":1782},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"6":768,"11":784,"17":2203},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"6":799,"11":815,"17":2229},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"6":831,"11":847,"17":2255},"ilvl":536}}}, {"id":96160,"name":"Ro'shak's Molten Chain","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":3607},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1019,"7":1019,"17":4459},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1061,"7":1061,"17":4511},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":4564},"ilvl":536}}}, {"id":96161,"name":"Rein-Binder's Fists","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"6":400,"7":295,"17":3079},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1064,"2":1837,"6":813,"7":594,"17":3806},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1111,"2":1906,"6":847,"7":619,"17":3851},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1159,"2":1979,"6":883,"7":645,"17":3896},"ilvl":536}}}, -{"id":96162,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"8":431,"11":431},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"8":449,"11":449},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"8":467,"11":467},"ilvl":536}}}, -{"id":96163,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"6":396,"7":452},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"6":412,"7":470},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":430,"7":490},"ilvl":536}}}, +{"id":96162,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"8":431,"11":431},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"8":449,"11":449},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"8":467,"11":467},"ilvl":536}}}, +{"id":96163,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"6":396,"7":452},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"6":412,"7":470},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"6":430,"7":490},"ilvl":536}}}, {"id":96164,"name":"Robes of the Moon Lotus","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":2037},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1019,"7":1019,"17":2518},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1061,"7":1061,"17":2547},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":2577},"ilvl":536}}}, {"id":96165,"name":"Passionfire Choker","icon":"inv_jewelry_necklace_123","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":278,"6":304},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"4":542,"6":590},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"4":564,"6":614},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":587,"6":639},"ilvl":536}}}, {"id":96166,"name":"Shield of Twinned Despair","icon":"inv_shield_zandalari_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":356,"11":205,"17":15800},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"4":666,"11":430,"17":19533},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"4":692,"11":448,"17":19762},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"4":719,"11":468,"17":19992},"ilvl":536}}}, -{"id":96167,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"7":1163,"11":900,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"7":1207,"11":937,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"7":1254,"11":974,"14":10169},"ilvl":536}}}, +{"id":96167,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":7946,"weaponDamageMax":11920,"stats":{"2":2472,"3":1568,"7":1163,"11":900,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8248,"weaponDamageMax":12373,"stats":{"2":2566,"3":1631,"7":1207,"11":937,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":8561,"weaponDamageMax":12843,"stats":{"2":2663,"3":1695,"7":1254,"11":974,"14":10169},"ilvl":536}}}, {"id":96168,"name":"Bracers of the Midnight Comet","icon":"inv_bracer_leather_raidrogue_m_01","type":6,"armorType":2,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1134},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"17":1402},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"17":1419},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"17":1435},"ilvl":536}}}, {"id":96169,"name":"Girdle of Night and Day","icon":"inv_leather_raiddruid_m_01belt","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":365,"7":365,"17":1458},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":736,"7":736,"17":1803},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":767,"7":767,"17":1824},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":799,"7":799,"17":1845},"ilvl":536}}}, {"id":96170,"name":"Tidal Force Treads","icon":"inv_boots_plate_deathknight_m_01","type":10,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":448,"7":327,"17":3386},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1144,"2":1837,"6":861,"7":626,"17":4187},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1191,"2":1906,"6":895,"7":651,"17":4236},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"6":931,"7":677,"17":4285},"ilvl":536}}}, @@ -9240,35 +9240,35 @@ {"id":96172,"name":"Moonjade Necklace","icon":"inv_jewelry_necklace_120","type":2,"gemSockets":[2],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"8":294,"9":294},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"8":572,"9":572},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"8":595,"9":595},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"8":619,"9":619},"ilvl":536}}}, {"id":96173,"name":"Fingers of the Night","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"6":319,"17":2254},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":869,"6":618,"17":2787},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":903,"6":643,"17":2820},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":939,"6":669,"17":2852},"ilvl":536}}}, {"id":96174,"name":"Rune of Re-Origination","icon":"inv_offhand_1h_ulduarraid_d_01","type":12,"phase":3,"quality":4,"limitCategory":274,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1672},"ilvl":536}},"itemEffects":[{"buffId":139116,"buffName":"Item - Attacks Proc Highest Rating","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, -{"id":96175,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"1":1568,"2":2472,"7":1035,"8":1083},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"1":1631,"2":2566,"7":1077,"8":1125},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"1":1695,"2":2663,"7":1120,"8":1168},"ilvl":536}}}, +{"id":96175,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"1":1568,"2":2472,"7":1035,"8":1083},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"1":1631,"2":2566,"7":1077,"8":1125},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"1":1695,"2":2663,"7":1120,"8":1168},"ilvl":536}}}, {"id":96176,"name":"Fusion Slasher Chestguard","icon":"inv_chest_leather_raidrogue_m_01","type":5,"armorType":2,"gemSockets":[4,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":490,"11":537,"17":2592},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1488,"2":2472,"6":964,"11":1051,"17":3205},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1551,"2":2566,"6":1004,"11":1094,"17":3242},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1615,"2":2663,"6":1045,"11":1139,"17":3280},"ilvl":536}}}, {"id":96177,"name":"Conduit-Breaker Chain Leggings","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":488,"7":472,"17":3156},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"1":1408,"2":2472,"6":987,"7":971,"17":3902},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"1":1471,"2":2566,"6":1029,"7":1013,"17":3948},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"1":1535,"2":2663,"6":1072,"7":1056,"17":3993},"ilvl":536}}}, {"id":96178,"name":"Doomed Crown of Lei Shen","icon":"achievement_boss_leishen","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"5":356,"11":543,"17":4002},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1408,"2":2472,"5":735,"11":1113,"17":4948},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1471,"2":2566,"5":767,"11":1160,"17":5006},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"5":799,"11":1209,"17":5064},"ilvl":536}}}, {"id":96179,"name":"Legplates of the Lightning Throne","icon":"inv_pants_plate_raidwarrior_m_01","type":9,"armorType":4,"gemSockets":[2,4,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":571,"7":328,"17":4310},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1408,"2":2472,"6":1141,"7":707,"17":5328},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1471,"2":2566,"6":1188,"7":739,"17":5391},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"6":1237,"7":771,"17":5454},"ilvl":536}}}, {"id":96180,"name":"Legplates of Whipping Ionization","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,2,2],"socketBonus":[0,0,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"9":531,"11":398,"17":4310},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"0":1408,"2":2472,"9":1067,"11":836,"17":5328},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"0":1471,"2":2566,"9":1111,"11":873,"17":5391},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"0":1535,"2":2663,"9":1158,"11":910,"17":5454},"ilvl":536}}}, -{"id":96181,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"6":1189,"11":819},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"6":1236,"11":851},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1285,"11":883},"ilvl":536}}}, +{"id":96181,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"6":1189,"11":819},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"6":1236,"11":851},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1285,"11":883},"ilvl":536}}}, {"id":96182,"name":"Ultimate Protection of the Emperor","icon":"inv_shield_mogu_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"10":294,"11":277,"17":15800},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"10":593,"11":521,"17":19533},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"10":617,"11":541,"17":19762},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"10":643,"11":563,"17":19992},"ilvl":536}}}, {"id":96183,"name":"Soul Barrier","icon":"spell_warlock_demonsoul","type":12,"phase":3,"quality":4,"limitCategory":275,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1270},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":2328},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":2416},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":2508},"ilvl":536}},"itemEffects":[{"buffId":138979,"buffName":"Soul Barrier","effectDurationMs":20000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"onUse":{"cooldownMs":120000}}]}, {"id":96184,"name":"Legwraps of Cardinality","icon":"inv_pant_cloth_raidmage_m_01","type":9,"armorType":1,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"5":344,"6":555,"17":1782},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"5":723,"6":1125,"17":2203},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"5":755,"6":1172,"17":2229},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"5":787,"6":1221,"17":2255},"ilvl":536}}}, {"id":96185,"name":"Gloves of the Maimed Vizier","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":412,"11":274,"17":1273},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":835,"11":556,"17":1574},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":870,"11":580,"17":1592},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":906,"11":604,"17":1611},"ilvl":536}}}, {"id":96186,"name":"Unerring Vision of Lei Shen","icon":"ability_hunter_focusedaim","type":12,"phase":3,"quality":4,"limitCategory":279,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"3":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"3":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"3":1672},"ilvl":536}},"itemEffects":[{"buffId":138963,"buffName":"Perfect Aim","effectDurationMs":4000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.5799999833106995,"mods":[{"coefficient":1,"ilvl":528},{"coefficient":-0.349999994039536,"spec":4},{"coefficient":-0.400000005960464,"classMask":256}]}}}]}, -{"id":96187,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3750,"weaponDamageMax":6965,"stats":{"2":979,"3":706,"4":497,"7":318,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3893,"weaponDamageMax":7230,"stats":{"2":1020,"3":733,"4":517,"7":331,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1062,"3":761,"4":538,"7":345,"14":10170},"ilvl":536}}}, +{"id":96187,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3750,"weaponDamageMax":6965,"stats":{"2":979,"3":706,"4":497,"7":318,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3893,"weaponDamageMax":7230,"stats":{"2":1020,"3":733,"4":517,"7":331,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1062,"3":761,"4":538,"7":345,"14":10170},"ilvl":536}}}, {"id":96188,"name":"Soul Prism of Lei Shen","icon":"inv_jewelry_necklace_136","type":2,"gemSockets":[3,3],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":341,"4":301,"7":174},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":758,"4":618,"7":385},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":793,"4":644,"7":403},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":829,"4":672,"7":421},"ilvl":536}}}, {"id":96189,"name":"Lightning-Imbued Chalice","icon":"spell_mage_runeofpower","type":12,"phase":3,"quality":4,"limitCategory":271,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"3":1552},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"3":1611},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"3":1672},"ilvl":536}},"itemEffects":[{"buffId":139190,"buffName":"Item - Proc Charges For Smart Heal","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96190,"name":"Lei Shen's Orb of Command","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":323,"7":245},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"2":1377,"3":838,"6":625,"7":482},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"2":1429,"3":873,"6":650,"7":502},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"2":1484,"3":909,"6":677,"7":523},"ilvl":536}}}, {"id":96191,"name":"Grips of Slicing Electricity","icon":"inv_glove_leather_raidmonk_m_01","type":7,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":1620},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1064,"4":802,"11":613,"17":2003},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1111,"4":836,"11":639,"17":2026},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1159,"4":872,"11":666,"17":2050},"ilvl":536}}}, {"id":96192,"name":"Leggings of the Violent Gale","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":540,"11":371,"17":3156},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1408,"4":1096,"11":774,"17":3902},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1471,"4":1142,"11":808,"17":3948},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1535,"4":1190,"11":842,"17":3993},"ilvl":536}}}, {"id":96193,"name":"Lei Shen's Grounded Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":4926},"ilvl":463},"0":{"randPropPoints":3134,"stats":{"2":2472,"3":1488,"4":1019,"7":1019,"17":6090},"ilvl":528},"1":{"randPropPoints":3253,"stats":{"2":2566,"3":1551,"4":1061,"7":1061,"17":6161},"ilvl":532},"2":{"randPropPoints":3376,"stats":{"2":2663,"3":1615,"4":1104,"7":1104,"17":6233},"ilvl":536}}}, -{"id":96230,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":8669,"weaponDamageMax":13004,"stats":{"2":2472,"3":1648,"6":1017,"11":1147,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8998,"weaponDamageMax":13498,"stats":{"2":2566,"3":1711,"6":1056,"11":1191,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":9340,"weaponDamageMax":14010,"stats":{"2":2663,"3":1775,"6":1096,"11":1236,"14":10169},"ilvl":536}}}, -{"id":96231,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1568,"2":2472,"7":846,"11":1184},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1631,"2":2566,"7":880,"11":1230},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"7":914,"11":1278},"ilvl":536}}}, -{"id":96232,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":706,"2":979,"7":465,"8":373},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":733,"2":1020,"7":484,"8":389},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":761,"2":1062,"7":504,"8":405},"ilvl":536}}}, -{"id":96233,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":7501,"weaponDamageMax":13931,"stats":{"1":626,"2":1059,"8":484,"11":340},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":7786,"weaponDamageMax":14460,"stats":{"1":653,"2":1100,"8":504,"11":354},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"1":681,"2":1142,"8":525,"11":369},"ilvl":536}}}, -{"id":96234,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":15893,"weaponDamageMax":23840,"stats":{"1":1568,"2":2472,"6":948,"11":1115},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":16497,"weaponDamageMax":24746,"stats":{"1":1631,"2":2566,"6":985,"11":1159},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"6":1022,"11":1206},"ilvl":536}}}, +{"id":96230,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":8669,"weaponDamageMax":13004,"stats":{"2":2472,"3":1648,"6":1017,"11":1147,"14":9440},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":8998,"weaponDamageMax":13498,"stats":{"2":2566,"3":1711,"6":1056,"11":1191,"14":9798},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":9340,"weaponDamageMax":14010,"stats":{"2":2663,"3":1775,"6":1096,"11":1236,"14":10169},"ilvl":536}}}, +{"id":96231,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":12642,"weaponDamageMax":23479,"stats":{"1":1568,"2":2472,"7":846,"11":1184},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":13122,"weaponDamageMax":24371,"stats":{"1":1631,"2":2566,"7":880,"11":1230},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":13620,"weaponDamageMax":25296,"stats":{"1":1695,"2":2663,"7":914,"11":1278},"ilvl":536}}}, +{"id":96232,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":5625,"weaponDamageMax":10448,"stats":{"1":706,"2":979,"7":465,"8":373},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":5839,"weaponDamageMax":10845,"stats":{"1":733,"2":1020,"7":484,"8":389},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":6061,"weaponDamageMax":11257,"stats":{"1":761,"2":1062,"7":504,"8":405},"ilvl":536}}}, +{"id":96233,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":7501,"weaponDamageMax":13931,"stats":{"1":626,"2":1059,"8":484,"11":340},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":7786,"weaponDamageMax":14460,"stats":{"1":653,"2":1100,"8":504,"11":354},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8081,"weaponDamageMax":15009,"stats":{"1":681,"2":1142,"8":525,"11":369},"ilvl":536}}}, +{"id":96234,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":15893,"weaponDamageMax":23840,"stats":{"1":1568,"2":2472,"6":948,"11":1115},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":16497,"weaponDamageMax":24746,"stats":{"1":1631,"2":2566,"6":985,"11":1159},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":17123,"weaponDamageMax":25685,"stats":{"1":1695,"2":2663,"6":1022,"11":1206},"ilvl":536}}}, {"id":96235,"name":"Lost Shoulders of Fire","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":327,"7":448,"17":1527},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"5":626,"7":861,"17":1888},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"5":651,"7":895,"17":1911},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"5":677,"7":931,"17":1933},"ilvl":536}}}, {"id":96236,"name":"Lost Shoulders of Healing","icon":"inv_cloth_raidpriest_m_01shoulder","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":444,"7":340,"17":1527},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"4":847,"7":657,"17":1888},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"4":880,"7":683,"17":1911},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"4":916,"7":710,"17":1933},"ilvl":536}}}, {"id":96237,"name":"Lost Shoulders of Fluidity","icon":"inv_shoulder_cloth_raidwarlock_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":405,"7":405,"17":1527},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"6":776,"7":776,"17":1888},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"6":807,"7":807,"17":1911},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"6":839,"7":839,"17":1933},"ilvl":536}}}, -{"id":96238,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"5":438,"6":419,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"5":456,"6":436,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"5":475,"6":455,"14":10170},"ilvl":536}}}, -{"id":96239,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3750,"weaponDamageMax":6965,"stats":{"2":1059,"3":626,"4":329,"11":491,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3893,"weaponDamageMax":7230,"stats":{"2":1100,"3":653,"4":343,"11":511,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1142,"3":681,"4":357,"11":532,"14":10170},"ilvl":536}}}, +{"id":96238,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":2812,"weaponDamageMax":5224,"stats":{"2":1059,"3":626,"5":438,"6":419,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":2919,"weaponDamageMax":5422,"stats":{"2":1100,"3":653,"5":456,"6":436,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":3030,"weaponDamageMax":5628,"stats":{"2":1142,"3":681,"5":475,"6":455,"14":10170},"ilvl":536}}}, +{"id":96239,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":3750,"weaponDamageMax":6965,"stats":{"2":1059,"3":626,"4":329,"11":491,"14":9439},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":3893,"weaponDamageMax":7230,"stats":{"2":1100,"3":653,"4":343,"11":511,"14":9797},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":4040,"weaponDamageMax":7504,"stats":{"2":1142,"3":681,"4":357,"11":532,"14":10170},"ilvl":536}}}, {"id":96240,"name":"Forgotten Mantle of the Moon","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":468,"8":298,"17":1944},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"7":891,"8":580,"17":2404},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"7":926,"8":604,"17":2432},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":962,"8":628,"17":2460},"ilvl":536}}}, {"id":96241,"name":"Forgotten Mantle of the Sun","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":383,"11":418,"17":1944},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"7":736,"11":800,"17":2404},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"7":765,"11":832,"17":2432},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"7":796,"11":865,"17":2460},"ilvl":536}}}, {"id":96242,"name":"Abandoned Spaulders of Arrowflight","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":298,"11":468,"17":2705},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1144,"2":1837,"7":580,"11":891,"17":3344},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1191,"2":1906,"7":604,"11":926,"17":3384},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1239,"2":1979,"7":628,"11":962,"17":3423},"ilvl":536}}}, @@ -9276,9 +9276,9 @@ {"id":96244,"name":"Reconstructed Holy Shoulderplates","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":412,"11":394,"17":3694},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"2":1837,"3":1144,"7":789,"11":756,"17":4567},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"2":1906,"3":1191,"7":820,"11":786,"17":4621},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"2":1979,"3":1239,"7":853,"11":817,"17":4675},"ilvl":536}}}, {"id":96245,"name":"Reconstructed Furious Shoulderplates","icon":"inv_shoulder_plate_raidwarrior_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"7":418,"11":383,"17":3694},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1144,"2":1837,"7":800,"11":736,"17":4567},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1191,"2":1906,"7":832,"11":765,"17":4621},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"7":865,"11":796,"17":4675},"ilvl":536}}}, {"id":96246,"name":"Reconstructed Bloody Shoulderplates","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3694},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"0":1144,"2":1837,"8":580,"10":891,"17":4567},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"0":1191,"2":1906,"8":604,"10":926,"17":4621},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"0":1239,"2":1979,"8":628,"10":962,"17":4675},"ilvl":536}}}, -{"id":96247,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"6":1001,"7":1083},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"6":1040,"7":1127},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1080,"7":1172},"ilvl":536}}}, -{"id":96248,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":340,"11":484},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":354,"11":504},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":369,"11":525},"ilvl":536}}}, -{"id":96249,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"8":927,"11":1147},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"8":964,"11":1191},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"8":1003,"11":1237},"ilvl":536}}}, +{"id":96247,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"6":1001,"7":1083},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"6":1040,"7":1127},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"6":1080,"7":1172},"ilvl":536}}}, +{"id":96248,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"0":626,"2":1059,"5":340,"11":484},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"0":653,"2":1100,"5":354,"11":504},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"0":681,"2":1142,"5":369,"11":525},"ilvl":536}}}, +{"id":96249,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3134,"weaponDamageMin":17338,"weaponDamageMax":26008,"stats":{"0":1568,"2":2472,"8":927,"11":1147},"ilvl":528},"1":{"randPropPoints":3253,"weaponDamageMin":17996,"weaponDamageMax":26995,"stats":{"0":1631,"2":2566,"8":964,"11":1191},"ilvl":532},"2":{"randPropPoints":3376,"weaponDamageMin":18680,"weaponDamageMax":28020,"stats":{"0":1695,"2":2663,"8":1003,"11":1237},"ilvl":536}}}, {"id":96250,"name":"Visage of the Doomed","icon":"inv_shield_zandalari_c_02","type":13,"weaponType":7,"handType":3,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":253,"10":308,"17":15800},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"0":838,"2":1377,"9":478,"10":618,"17":19533},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"0":873,"2":1429,"9":496,"10":644,"17":19762},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"0":909,"2":1484,"9":516,"10":671,"17":19992},"ilvl":536}}}, {"id":96330,"name":"Necklace of the Terra-Cotta Archer","icon":"inv_jewelry_necklace_128","type":2,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Trash Mobs"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":299,"7":286},"ilvl":463},"0":{"randPropPoints":1746,"stats":{"1":838,"2":1377,"6":581,"7":557},"ilvl":528},"1":{"randPropPoints":1812,"stats":{"1":873,"2":1429,"6":605,"7":579},"ilvl":532},"2":{"randPropPoints":1881,"stats":{"1":909,"2":1484,"6":629,"7":603},"ilvl":536}}}, {"id":96331,"name":"Spiderweb Tabi","icon":"inv_boot_leather_raidrogue_m_01","type":10,"armorType":2,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Trash Mobs"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":668,"2":1002,"6":496,"8":359,"17":1782},"ilvl":463},"0":{"randPropPoints":2328,"stats":{"1":1224,"2":1837,"6":909,"8":658,"17":2203},"ilvl":528},"1":{"randPropPoints":2416,"stats":{"1":1271,"2":1906,"6":943,"8":683,"17":2229},"ilvl":532},"2":{"randPropPoints":2508,"stats":{"1":1319,"2":1979,"6":979,"8":709,"17":2255},"ilvl":536}}}, @@ -9311,7 +9311,7 @@ {"id":96373,"name":"Cloudbreaker Greatbelt","icon":"inv_belt_plate_raidwarrior_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"7":354,"11":372,"17":2771},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1147,"2":1960,"7":769,"11":804,"17":3496},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1235,"2":2092,"7":826,"11":864,"17":3566},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1329,"2":2233,"7":888,"11":928,"17":3637},"ilvl":549}}}, {"id":96374,"name":"Chestplate of Violent Detonation","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":537,"11":490,"17":4926},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1599,"2":2639,"5":1128,"11":1035,"17":6215},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1718,"2":2817,"5":1209,"11":1110,"17":6340},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1844,"2":3006,"5":1296,"11":1190,"17":6466},"ilvl":549}}}, {"id":96375,"name":"Bracers of Constant Implosion","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-337,-338,-339,-341],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"17":2155},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"17":2719},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"17":2774},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"17":2829},"ilvl":549}}}, -{"id":96376,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":527,"8":354},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":565,"8":380},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":605,"8":408},"ilvl":549}}}, +{"id":96376,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":527,"8":354},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":565,"8":380},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":605,"8":408},"ilvl":549}}}, {"id":96377,"name":"Jin'rokh's Soulcrystal","icon":"inv_jewelry_ring_172","type":11,"phase":3,"quality":4,"limitCategory":251,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"8":301,"9":354},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":980,"2":1471,"8":589,"9":692},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":1046,"2":1569,"8":629,"9":738},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"8":671,"9":788},"ilvl":549}}}, {"id":96378,"name":"Lightningweaver Gauntlets","icon":"inv_glove_cloth_raidmage_m_01","type":7,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":418,"11":383,"17":1273},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"5":857,"11":788,"17":1606},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"5":917,"11":844,"17":1638},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":982,"11":903,"17":1671},"ilvl":549}}}, {"id":96379,"name":"Al'set's Tormented Leggings","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":389,"11":596,"17":1782},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"5":838,"11":1242,"17":2248},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"5":900,"11":1331,"17":2294},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"5":966,"11":1426,"17":2339},"ilvl":549}}}, @@ -9319,14 +9319,14 @@ {"id":96381,"name":"Robes of Static Bursts","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":921,"11":1194,"17":2570},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":988,"11":1281,"17":2621},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1060,"11":1372,"17":2673},"ilvl":549}}}, {"id":96382,"name":"Jin'rokh's Dreamshard","icon":"inv_jewelry_ring_169","type":11,"phase":3,"quality":4,"limitCategory":253,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":309,"6":349},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"5":605,"6":682},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"5":646,"6":728},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"5":689,"6":777},"ilvl":549}}}, {"id":96383,"name":"Drape of Booming Nights","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":368,"6":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":719,"6":542,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":767,"6":579,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":819,"6":618,"17":1337},"ilvl":549}}}, -{"id":96384,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02red","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3669,"weaponDamageMax":6815,"stats":{"2":1131,"3":674,"4":413,"6":492,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3917,"weaponDamageMax":7275,"stats":{"2":1207,"3":725,"4":444,"6":528,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4181,"weaponDamageMax":7765,"stats":{"2":1288,"3":779,"4":476,"6":566,"14":11477},"ilvl":549}}}, +{"id":96384,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02red","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3669,"weaponDamageMax":6815,"stats":{"2":1131,"3":674,"4":413,"6":492,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3917,"weaponDamageMax":7275,"stats":{"2":1207,"3":725,"4":444,"6":528,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4181,"weaponDamageMax":7765,"stats":{"2":1288,"3":779,"4":476,"6":566,"14":11477},"ilvl":549}}}, {"id":96385,"name":"Horridon's Last Gasp","icon":"spell_nature_eyeofthestorm","type":12,"phase":3,"quality":4,"limitCategory":268,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"3":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"3":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":138856,"buffName":"Cloudburst","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.9599999785423279,"mods":[{"coefficient":1,"haste":false}]}}}]}, {"id":96386,"name":"Infinitely Conducting Bracers","icon":"inv_bracer_leather_raidmonk_m_01","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":293,"6":358,"17":1134},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":573,"6":701,"17":1431},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":612,"6":748,"17":1460},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":653,"6":798,"17":1489},"ilvl":549}}}, {"id":96387,"name":"Ghostbinder Greatboots","icon":"inv_boot_mail_raidshaman_m_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":442,"7":337,"17":2480},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":911,"7":691,"17":3129},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":975,"7":739,"17":3192},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1044,"7":792,"17":3255},"ilvl":549}}}, {"id":96388,"name":"Ionized Yojamban Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":389,"11":596,"17":4926},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"6":838,"11":1242,"17":6215},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"6":900,"11":1331,"17":6340},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":966,"11":1426,"17":6466},"ilvl":549}}}, {"id":96389,"name":"Wastewalker's Sandblasted Drape","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"5":368,"7":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":980,"2":1471,"5":719,"7":542,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":1046,"2":1569,"5":767,"7":579,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"5":819,"7":618,"17":1337},"ilvl":549}}}, {"id":96390,"name":"Talisman of Living Poison","icon":"inv_jewelry_necklace_119","type":2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":349,"8":309},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":980,"2":1471,"7":682,"8":605},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":1046,"2":1569,"7":728,"8":646},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"7":777,"8":689},"ilvl":549}}}, -{"id":96391,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":16964,"weaponDamageMax":25447,"stats":{"1":1679,"2":2639,"5":1192,"11":1051},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":18108,"weaponDamageMax":27162,"stats":{"1":1798,"2":2817,"5":1273,"11":1126},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"5":1360,"11":1206},"ilvl":549}}}, +{"id":96391,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":16964,"weaponDamageMax":25447,"stats":{"1":1679,"2":2639,"5":1192,"11":1051},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":18108,"weaponDamageMax":27162,"stats":{"1":1798,"2":2817,"5":1273,"11":1126},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"5":1360,"11":1206},"ilvl":549}}}, {"id":96392,"name":"Bindings of Multiplicative Strikes","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"6":339,"7":326,"17":1134},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":980,"2":1471,"6":663,"7":637,"17":1431},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":1046,"2":1569,"6":708,"7":680,"17":1460},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"6":756,"7":726,"17":1489},"ilvl":549}}}, {"id":96393,"name":"Sul'lithuz Sandmail","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":572,"11":432,"17":3607},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"7":1194,"11":921,"17":4551},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"7":1281,"11":988,"17":4643},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"7":1372,"11":1060,"17":4734},"ilvl":549}}}, {"id":96394,"name":"Frozen Warlord's Bracers","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"7":358,"8":293,"17":2155},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":980,"2":1471,"7":701,"8":573,"17":2719},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":1046,"2":1569,"7":748,"8":612,"17":2774},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"7":798,"8":653,"17":2829},"ilvl":549}}}, @@ -9336,28 +9336,28 @@ {"id":96398,"name":"Spark of Zandalar","icon":"spell_nature_lightningshield","type":12,"phase":3,"quality":4,"limitCategory":276,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"7":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"7":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"7":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"7":1887},"ilvl":549}},"itemEffects":[{"buffId":138957,"buffName":"Item - Proc Charges For Strength Transform","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96399,"name":"Flamecaster's Burning Crown","icon":"inv_helm_cloth_raidmage_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"6":562,"7":379,"17":1655},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1519,"6":1161,"7":910,"17":2088},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1638,"6":1243,"7":983,"17":2130},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"6":1331,"7":1061,"17":2172},"ilvl":549}}}, {"id":96400,"name":"Vaccinator's Armwraps","icon":"inv_cloth_raidpriest_m_01bracer","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":334,"7":334,"17":891},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":654,"7":654,"17":1124},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":697,"7":697,"17":1147},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":744,"7":744,"17":1170},"ilvl":549}}}, -{"id":96401,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"5":1041,"7":1177,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"5":1113,"7":1261,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"5":1189,"7":1350,"14":11479},"ilvl":549}}}, +{"id":96401,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"5":1041,"7":1177,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"5":1113,"7":1261,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"5":1189,"7":1350,"14":11479},"ilvl":549}}}, {"id":96402,"name":"Horridon's Tusk Fragment","icon":"inv_jewelry_necklace_141","type":2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":285,"11":363},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":558,"11":710},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":595,"11":758},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":635,"11":809},"ilvl":549}}}, {"id":96403,"name":"Petrified Eye of the Basilisk","icon":"inv_jewelry_ring_178","type":11,"phase":3,"quality":4,"limitCategory":260,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":381,"11":254},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":745,"11":497},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":795,"11":530},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":849,"11":566},"ilvl":549}}}, -{"id":96404,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3169,"weaponDamageMax":5886,"stats":{"2":1131,"3":674,"6":470,"7":450,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3382,"weaponDamageMax":6283,"stats":{"2":1207,"3":725,"6":505,"7":483,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3610,"weaponDamageMax":6706,"stats":{"2":1288,"3":779,"6":541,"7":518,"14":11477},"ilvl":549}}}, +{"id":96404,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3169,"weaponDamageMax":5886,"stats":{"2":1131,"3":674,"6":470,"7":450,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3382,"weaponDamageMax":6283,"stats":{"2":1207,"3":725,"6":505,"7":483,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3610,"weaponDamageMax":6706,"stats":{"2":1288,"3":779,"6":541,"7":518,"14":11477},"ilvl":549}}}, {"id":96405,"name":"Roots of Rampaging Earth","icon":"inv_pant_leather_raidmonk_m_01","type":9,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"11":490,"17":2268},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"6":1128,"11":1035,"17":2862},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"6":1209,"11":1110,"17":2920},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1296,"11":1190,"17":2977},"ilvl":549}}}, {"id":96406,"name":"Spaulders of Dinomancy","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"7":319,"17":1944},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":930,"7":663,"17":2453},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":996,"7":710,"17":2502},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1066,"7":760,"17":2552},"ilvl":549}}}, {"id":96407,"name":"Legguards of Scintillating Scales","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":520,"11":520,"17":3156},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"6":1093,"11":1093,"17":3982},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"6":1172,"11":1172,"17":4062},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1256,"11":1256,"17":4143},"ilvl":549}}}, {"id":96408,"name":"Armplates of the Vanquished Abomination","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"17":2155},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"17":2719},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"17":2774},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"17":2829},"ilvl":549}}}, {"id":96409,"name":"Bad Juju","icon":"trade_archaeology_troll_voodoodoll","type":12,"phase":3,"quality":4,"limitCategory":261,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"11":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"11":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"11":1887},"ilvl":549}},"itemEffects":[{"buffId":138938,"buffName":"Juju Madness","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"1":4232}},"0":{"stats":{"1":8279}},"1":{"stats":{"1":8838}},"2":{"stats":{"1":9432}}},"proc":{"icdMs":10000,"rppm":{"rate":1.100000023841858}}}]}, -{"id":96410,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"6":463,"11":463},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"6":496,"11":496},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":533,"11":533},"ilvl":549}}}, +{"id":96410,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"6":463,"11":463},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"6":496,"11":496},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":533,"11":533},"ilvl":549}}}, {"id":96411,"name":"Mar'li's Bloodstained Sandals","icon":"inv_cloth_raidpriest_m_01boot","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":436,"6":348,"17":1400},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":899,"6":712,"17":1767},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":962,"6":761,"17":1802},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1031,"6":815,"17":1838},"ilvl":549}}}, {"id":96412,"name":"Zandalari Robes of the Final Rite","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"6":546,"17":2037},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"5":1006,"6":1145,"17":2570},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"5":1079,"6":1227,"17":2621},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"5":1157,"6":1315,"17":2673},"ilvl":549}}}, {"id":96413,"name":"Wushoolay's Final Choice","icon":"spell_nature_chainlightning","type":12,"phase":3,"quality":4,"limitCategory":280,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"5":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"5":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"5":1887},"ilvl":549}},"itemEffects":[{"buffId":138786,"buffName":"Wushoolay's Lightning","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138788,"buffName":"Electrified","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"3":769}},"0":{"stats":{"3":1505}},"1":{"stats":{"3":1607}},"2":{"stats":{"3":1715}}}},"stackPeriodMs":1000}]}, -{"id":96414,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4337,"weaponDamageMax":8054,"stats":{"2":1131,"3":674,"4":506,"11":389,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4629,"weaponDamageMax":8597,"stats":{"2":1207,"3":725,"4":543,"11":418,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4941,"weaponDamageMax":9177,"stats":{"2":1288,"3":779,"4":582,"11":449,"14":11477},"ilvl":549}}}, +{"id":96414,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4337,"weaponDamageMax":8054,"stats":{"2":1131,"3":674,"4":506,"11":389,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4629,"weaponDamageMax":8597,"stats":{"2":1207,"3":725,"4":543,"11":418,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4941,"weaponDamageMax":9177,"stats":{"2":1288,"3":779,"4":582,"11":449,"14":11477},"ilvl":549}}}, {"id":96415,"name":"Robes of Treacherous Ground","icon":"inv_leather_raiddruid_m_01robe","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":389,"11":596,"17":2592},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":838,"11":1242,"17":3271},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":900,"11":1331,"17":3337},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":966,"11":1426,"17":3403},"ilvl":549}}}, {"id":96416,"name":"Gaze of Gara'jal","icon":"inv_helm_mail_raidhunter_m_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1519,"2":2639,"6":1033,"7":1073,"17":3697},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1638,"2":2817,"6":1112,"7":1152,"17":3772},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1764,"2":3006,"6":1196,"7":1236,"17":3847},"ilvl":549}}}, {"id":96417,"name":"Loa-Ridden Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":1578},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"17":1991},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"17":2031},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"17":2071},"ilvl":549}}}, {"id":96418,"name":"Overloaded Bladebreaker Cuirass","icon":"inv_chest_plate_raidwarrior_m_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":376,"10":603,"17":4926},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1599,"2":2639,"5":811,"10":1257,"17":6215},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1718,"2":2817,"5":871,"10":1347,"17":6340},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1844,"2":3006,"5":935,"10":1443,"17":6466},"ilvl":549}}}, -{"id":96419,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"5":1258,"6":902},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"5":1347,"6":964},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"5":1442,"6":1030},"ilvl":549}}}, +{"id":96419,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"5":1258,"6":902},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"5":1347,"6":964},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"5":1442,"6":1030},"ilvl":549}}}, {"id":96420,"name":"Talisman of Angry Spirits","icon":"inv_jewelry_necklace_139","type":2,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"6":344,"11":318},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":980,"2":1471,"6":673,"11":621},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":1046,"2":1569,"6":718,"11":663},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"6":766,"11":707},"ilvl":549}}}, {"id":96421,"name":"Fortitude of the Zandalari","icon":"spell_holy_mindvision","type":12,"phase":3,"quality":4,"limitCategory":266,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"11":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"11":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"11":1887},"ilvl":549}},"itemEffects":[{"buffId":126697,"buffName":"Tremendous Fortitude","effectDurationMs":15000,"scalingOptions":{"-1":{"stats":{"19":42617}},"0":{"stats":{"19":83364}},"1":{"stats":{"19":88996}},"2":{"stats":{"19":94978}}},"onUse":{"cooldownMs":120000,"categoryId":1190,"categoryCooldownMs":120000}}]}, -{"id":96422,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1679,"2":2639,"5":1075,"8":1168},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1798,"2":2817,"5":1150,"8":1249},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"5":1230,"8":1336},"ilvl":549}}}, +{"id":96422,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1679,"2":2639,"5":1075,"8":1168},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1798,"2":2817,"5":1150,"8":1249},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"5":1230,"8":1336},"ilvl":549}}}, {"id":96423,"name":"Rockfall Ribwraps","icon":"inv_chest_leather_raidmonk_m_01","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":461,"6":555,"17":2592},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"5":977,"6":1161,"17":3271},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"5":1049,"6":1245,"17":3337},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"5":1125,"6":1334,"17":3403},"ilvl":549}}}, {"id":96424,"name":"Grips of Vampiric Cruelty","icon":"inv_glove_leather_raidrogue_m_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"5":394,"7":412,"17":1620},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"5":809,"7":844,"17":2044},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"5":866,"7":904,"17":2085},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"5":928,"7":968,"17":2127},"ilvl":549}}}, {"id":96425,"name":"Beady-Eye Bracers","icon":"inv_bracer_mail_raidhunter_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1578},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":900,"2":1471,"17":1991},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":966,"2":1569,"17":2031},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"17":2071},"ilvl":549}}}, @@ -9365,7 +9365,7 @@ {"id":96427,"name":"Shoulderguards of Centripetal Destruction","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1227,"2":1960,"6":953,"7":622,"17":4661},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1315,"2":2092,"6":1020,"7":666,"17":4755},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"6":1092,"7":714,"17":4849},"ilvl":549}}}, {"id":96428,"name":"Shell-Coated Wristplates","icon":"inv_bracer_plate_deathknight_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":372,"10":269,"17":2155},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":980,"2":1471,"9":728,"10":527,"17":2719},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":1046,"2":1569,"9":777,"10":562,"17":2774},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"9":829,"10":600,"17":2829},"ilvl":549}}}, {"id":96429,"name":"Amulet of the Primal Turtle","icon":"inv_jewelry_necklace_118","type":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":214,"6":341},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"5":457,"6":705},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"5":490,"6":755},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"5":526,"6":809},"ilvl":549}}}, -{"id":96430,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":499,"6":401},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":535,"6":431},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":574,"6":462},"ilvl":549}}}, +{"id":96430,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":499,"6":401},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":535,"6":431},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":574,"6":462},"ilvl":549}}}, {"id":96431,"name":"Beakbreaker Greatcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":344,"11":318,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":980,"2":1471,"9":673,"11":621,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":1046,"2":1569,"9":718,"11":663,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"9":766,"11":707,"17":1337},"ilvl":549}}}, {"id":96432,"name":"Azure Shell Bracers","icon":"inv_bracer_cloth_raidmage_m_01","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"6":368,"11":277,"17":891},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"6":719,"11":542,"17":1124},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"6":767,"11":579,"17":1147},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"6":819,"11":618,"17":1170},"ilvl":549}}}, {"id":96433,"name":"Stonegaze Hood","icon":"inv_cloth_raidpriest_m_01helm","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":556,"6":368,"17":1655},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1519,"4":1178,"6":857,"17":2088},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1638,"4":1265,"6":924,"17":2130},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"4":1356,"6":996,"17":2172},"ilvl":549}}}, @@ -9377,7 +9377,7 @@ {"id":96439,"name":"Spaulders of Quaking Fear","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":462,"7":309,"17":2705},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":942,"7":642,"17":3413},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":1008,"7":688,"17":3482},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1079,"7":737,"17":3551},"ilvl":549}}}, {"id":96440,"name":"Refreshing Abalone Girdle","icon":"inv_belt_plate_raidpaladin_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":385,"7":332,"17":2771},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":830,"7":727,"17":3496},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":891,"7":781,"17":3566},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":956,"7":839,"17":3637},"ilvl":549}}}, {"id":96441,"name":"Tortos' Shellseizers","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":351,"6":438,"17":3079},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":724,"6":895,"17":3884},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":776,"6":957,"17":3963},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":831,"6":1025,"17":4041},"ilvl":549}}}, -{"id":96442,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":674,"2":1131,"5":389,"11":506},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":725,"2":1207,"5":418,"11":543},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":449,"11":582},"ilvl":549}}}, +{"id":96442,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":674,"2":1131,"5":389,"11":506},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":725,"2":1207,"5":418,"11":543},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":449,"11":582},"ilvl":549}}}, {"id":96443,"name":"Quadra-Head Brooch","icon":"inv_jewelry_necklace_140","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"5":294,"11":294},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":900,"2":1471,"5":614,"11":614},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":966,"2":1569,"5":657,"11":657},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"5":704,"11":704},"ilvl":549}}}, {"id":96444,"name":"Poisonblood Bladeshoulders","icon":"inv_shoulder_leather_raidrogue_m_01","type":3,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":405,"11":405,"17":1944},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"7":831,"11":831,"17":2453},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"7":890,"11":890,"17":2502},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":953,"11":953,"17":2552},"ilvl":549}}}, {"id":96445,"name":"Grips of Cinderflesh","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":372,"11":425,"17":2254},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"7":767,"11":870,"17":2844},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"7":821,"11":931,"17":2902},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":879,"11":996,"17":2959},"ilvl":549}}}, @@ -9399,7 +9399,7 @@ {"id":96461,"name":"Pinionfeather Greatcloak","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":286,"11":299,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":900,"2":1471,"6":597,"11":623,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":966,"2":1569,"6":640,"11":668,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"6":686,"11":716,"17":1337},"ilvl":549}}}, {"id":96462,"name":"Cord of Cacophonous Cawing","icon":"inv_belt_cloth_raidwarlock_m_01","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":398,"7":311,"17":1146},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"5":855,"7":684,"17":1445},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"5":917,"7":736,"17":1475},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"5":985,"7":791,"17":1504},"ilvl":549}}}, {"id":96463,"name":"Robe of Midnight Down","icon":"inv_chest_cloth_raidmage_m_01","type":5,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"7":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"7":921,"11":1194,"17":2570},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"7":988,"11":1281,"17":2621},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"7":1060,"11":1372,"17":2673},"ilvl":549}}}, -{"id":96464,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"4":1227,"7":957,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"4":1314,"7":1023,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"4":1406,"7":1093,"14":11479},"ilvl":549}}}, +{"id":96464,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"4":1227,"7":957,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"4":1314,"7":1023,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"4":1406,"7":1093,"14":11479},"ilvl":549}}}, {"id":96465,"name":"Featherflight Belt","icon":"inv_belt_leather_raidrogue_m_01","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"7":416,"8":279,"17":1458},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1147,"2":1960,"7":890,"8":623,"17":1840},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1235,"2":2092,"7":956,"8":670,"17":1877},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1329,"2":2233,"7":1026,"8":720,"17":1914},"ilvl":549}}}, {"id":96466,"name":"Grasp of the Ruthless Mother","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":668,"4":401,"11":471,"17":2254},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1307,"4":786,"11":922,"17":2844},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1395,"4":838,"11":984,"17":2902},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1489,"4":895,"11":1051,"17":2959},"ilvl":549}}}, {"id":96467,"name":"Crown of Potentiated Birth","icon":"inv_helmet_plate_raidpaladin_m_01","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":583,"7":316,"17":4002},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1519,"4":1237,"7":751,"17":5050},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1638,"4":1327,"7":811,"17":5151},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"4":1423,"7":875,"17":5253},"ilvl":549}}}, @@ -9407,7 +9407,7 @@ {"id":96469,"name":"Egg-Shard Grips","icon":"inv_gloves_plate_raidwarrior_m_01","type":7,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3079},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1227,"2":1960,"8":622,"10":953,"17":3884},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1315,"2":2092,"8":666,"10":1020,"17":3963},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"8":714,"10":1092,"17":4041},"ilvl":549}}}, {"id":96470,"name":"Fabled Feather of Ji-Kun","icon":"ability_priest_angelicfeather","type":12,"phase":3,"quality":4,"limitCategory":265,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"5":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"5":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"5":1887},"ilvl":549}},"itemEffects":[{"buffId":138759,"buffName":"Feathers of Fury","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138760,"buffName":"Mighty","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"0":769}},"0":{"stats":{"0":1505}},"1":{"stats":{"0":1607}},"2":{"stats":{"0":1715}}}},"stackPeriodMs":1000}]}, {"id":96471,"name":"Ji-Kun's Rising Winds","icon":"spell_holy_heal","type":12,"phase":3,"quality":4,"limitCategory":270,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"8":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"8":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"8":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"8":1887},"ilvl":549}},"itemEffects":[{"buffId":138973,"buffName":"The Risen Wind","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":30000,"procChance":1}}]}, -{"id":96472,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":15422,"weaponDamageMax":23134,"stats":{"1":1679,"2":2639,"6":1201,"7":1017},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":16461,"weaponDamageMax":24693,"stats":{"1":1798,"2":2817,"6":1285,"7":1089},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":17571,"weaponDamageMax":26357,"stats":{"1":1924,"2":3006,"6":1374,"7":1165},"ilvl":549}}}, +{"id":96472,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":15422,"weaponDamageMax":23134,"stats":{"1":1679,"2":2639,"6":1201,"7":1017},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":16461,"weaponDamageMax":24693,"stats":{"1":1798,"2":2817,"6":1285,"7":1089},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":17571,"weaponDamageMax":26357,"stats":{"1":1924,"2":3006,"6":1374,"7":1165},"ilvl":549}}}, {"id":96473,"name":"Crimson Bloom Legguards","icon":"inv_pant_leather_raidrogue_m_01","type":9,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":588,"6":403,"17":2268},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"5":1226,"6":866,"17":2862},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"5":1314,"6":930,"17":2920},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"5":1408,"6":997,"17":2977},"ilvl":549}}}, {"id":96474,"name":"Links of the Disintegrator","icon":"inv_belt_mail_raidshaman_m_01","type":8,"armorType":3,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"6":391,"7":321,"17":2029},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1147,"2":1960,"6":842,"7":706,"17":2560},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1235,"2":2092,"6":904,"7":758,"17":2611},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1329,"2":2233,"6":971,"7":815,"17":2663},"ilvl":549}}}, {"id":96475,"name":"Aberrant Chestguard of Torment","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":546,"7":475,"17":3607},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"6":1145,"7":1006,"17":4551},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"6":1227,"7":1079,"17":4643},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":1315,"7":1157,"17":4734},"ilvl":549}}}, @@ -9422,7 +9422,7 @@ {"id":96484,"name":"Chilblain Spaulders","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":383,"11":418,"17":1527},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"6":788,"11":857,"17":1927},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"6":844,"11":917,"17":1966},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"6":903,"11":982,"17":2005},"ilvl":549}}}, {"id":96485,"name":"Deadly Glare Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":278,"7":304,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"6":581,"7":633,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"6":623,"7":678,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"6":667,"7":726,"17":1337},"ilvl":549}}}, {"id":96486,"name":"Durumu's Captive Eyeball","icon":"inv_jewelry_ring_ahnqiraj_02","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":254,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":313,"6":246},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"4":672,"6":496},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"4":722,"6":530},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":775,"6":567},"ilvl":549}}}, -{"id":96487,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"4":499,"6":401,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"4":535,"6":431,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"4":574,"6":462,"14":11477},"ilvl":549}}}, +{"id":96487,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"4":499,"6":401,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"4":535,"6":431,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"4":574,"6":462,"14":11477},"ilvl":549}}}, {"id":96488,"name":"Sandals of the Starving Eye","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":430,"6":359,"17":1782},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":887,"6":732,"17":2249},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":949,"6":784,"17":2294},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1017,"6":839,"17":2339},"ilvl":549}}}, {"id":96489,"name":"Vein-Cover Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":377,"7":262,"17":1578},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":980,"4":736,"7":512,"17":1991},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":1046,"4":786,"7":546,"17":2031},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":839,"7":583,"17":2071},"ilvl":549}}}, {"id":96490,"name":"Iceshatter Gauntlets","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":3079},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":863,"11":659,"17":3884},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":927,"11":707,"17":3963},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":996,"11":760,"17":4041},"ilvl":549}}}, @@ -9437,7 +9437,7 @@ {"id":96499,"name":"Hydra-Scale Bloodcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"6":314,"8":261,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"6":652,"8":549,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"6":698,"8":589,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"6":748,"8":631,"17":1337},"ilvl":549}}}, {"id":96500,"name":"Band of the Scaled Tyrant","icon":"inv_jewelry_ring_177","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":259,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":269,"7":299},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"5":542,"7":646},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"5":579,"7":694},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"5":619,"7":745},"ilvl":549}}}, {"id":96501,"name":"Primordius' Talisman of Rage","icon":"ability_warrior_rampage","type":12,"phase":3,"quality":4,"limitCategory":272,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"6":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"6":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"6":1887},"ilvl":549}},"itemEffects":[{"buffId":138870,"buffName":"Rampage","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{"stats":{"0":887}},"0":{"stats":{"0":1736}},"1":{"stats":{"0":1853}},"2":{"stats":{"0":1978}}},"proc":{"icdMs":5000,"rppm":{"rate":3.5}}}]}, -{"id":96502,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8006,"weaponDamageMax":14870,"stats":{"0":674,"2":1131,"9":506,"10":389},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":8546,"weaponDamageMax":15872,"stats":{"0":725,"2":1207,"9":543,"10":418},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"0":779,"2":1288,"9":582,"10":449},"ilvl":549}}}, +{"id":96502,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8006,"weaponDamageMax":14870,"stats":{"0":674,"2":1131,"9":506,"10":389},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":8546,"weaponDamageMax":15872,"stats":{"0":725,"2":1207,"9":543,"10":418},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"0":779,"2":1288,"9":582,"10":449},"ilvl":549}}}, {"id":96503,"name":"Robes of Mutagenic Blood","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"7":490,"17":2037},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"6":1128,"7":1035,"17":2570},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"6":1209,"7":1110,"17":2621},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1296,"7":1190,"17":2673},"ilvl":549}}}, {"id":96504,"name":"Helix-Breaker Gloves","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":388,"6":316,"17":1273},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":851,"6":680,"17":1606},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":914,"6":729,"17":1638},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":983,"6":783,"17":1671},"ilvl":549}}}, {"id":96505,"name":"Leggings of Ebon Veins","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":1782},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":1093,"6":1093,"17":2248},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":1172,"6":1172,"17":2294},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"6":1256,"17":2339},"ilvl":549}}}, @@ -9449,18 +9449,18 @@ {"id":96511,"name":"Spaulders of Primordial Growth","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":953,"7":622,"17":4661},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":1020,"7":666,"17":4755},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1092,"7":714,"17":4849},"ilvl":549}}}, {"id":96512,"name":"Greatshield of the Gloaming","icon":"inv_shield_thunderisleraid_d_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":310,"11":275,"17":15800},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"9":621,"11":599,"17":19935},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"9":664,"11":644,"17":20337},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"9":710,"11":692,"17":20739},"ilvl":549}}}, {"id":96513,"name":"Gore-Soaked Gear","icon":"inv_jewelry_ring_180","type":11,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":249,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":294,"7":277},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":900,"2":1471,"6":637,"7":557},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":966,"2":1569,"6":684,"7":596},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"6":734,"7":637},"ilvl":549}}}, -{"id":96514,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"7":506,"8":389},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"7":543,"8":418},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"7":582,"8":449},"ilvl":549}}}, +{"id":96514,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"7":506,"8":389},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"7":543,"8":418},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"7":582,"8":449},"ilvl":549}}}, {"id":96515,"name":"Hood of the Crimson Wake","icon":"inv_helm_cloth_raidwarlock_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"7":460,"11":500,"17":1655},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1519,"7":1033,"11":1073,"17":2088},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1638,"7":1112,"11":1152,"17":2130},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"7":1196,"11":1236,"17":2172},"ilvl":549}}}, {"id":96516,"name":"Cha-Ye's Essence of Brilliance","icon":"spell_holy_mindsooth","type":12,"phase":3,"quality":4,"limitCategory":263,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"6":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"6":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"6":1887},"ilvl":549}},"itemEffects":[{"buffId":139133,"buffName":"Mastermind","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"3":4232}},"0":{"stats":{"3":8279}},"1":{"stats":{"3":8838}},"2":{"stats":{"3":9432}}},"proc":{"icdMs":10000,"rppm":{"rate":0.8500000238418579,"mods":[{"coefficient":1,"crit":false}]}}}]}, {"id":96517,"name":"Constantly Accelerating Cloak","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":261,"7":314,"17":1018},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"4":549,"7":652,"17":1285},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"4":589,"7":698,"17":1311},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":631,"7":748,"17":1337},"ilvl":549}}}, -{"id":96518,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"7":463,"11":463,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"7":496,"11":496,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"7":533,"11":533,"14":11477},"ilvl":549}}}, +{"id":96518,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"7":463,"11":463,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"7":496,"11":496,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"7":533,"11":533,"14":11477},"ilvl":549}}}, {"id":96519,"name":"Worldbinder Leggings","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":403,"11":588,"17":2268},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"6":866,"11":1226,"17":2862},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"6":930,"11":1314,"17":2920},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":997,"11":1408,"17":2977},"ilvl":549}}}, {"id":96520,"name":"Anima-Ringed Fingers","icon":"inv_leather_raiddruid_m_01glove","type":7,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":362,"6":359,"17":1620},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":801,"6":764,"17":2044},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":861,"6":820,"17":2085},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":926,"6":879,"17":2127},"ilvl":549}}}, {"id":96521,"name":"Matter-Swapped Legplates","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":537,"11":490,"17":4310},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":1128,"11":1035,"17":5438},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":1209,"11":1110,"17":5548},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1296,"11":1190,"17":5657},"ilvl":549}}}, {"id":96522,"name":"Crown of the Golden Golem","icon":"inv_helmet_plate_deathknight_m_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":503,"7":426,"17":4002},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1519,"2":2639,"6":1118,"7":929,"17":5050},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1638,"2":2817,"6":1203,"7":998,"17":5151},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"6":1293,"7":1072,"17":5253},"ilvl":549}}}, {"id":96523,"name":"Delicate Vial of the Sanguinaire","icon":"ability_deathwing_bloodcorruption_earth","type":12,"phase":3,"quality":4,"limitCategory":264,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"9":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"9":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"9":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"9":1887},"ilvl":549}},"itemEffects":[{"buffId":138864,"buffName":"Blood of Power","effectDurationMs":20000,"maxCumulativeStacks":3,"scalingOptions":{"-1":{"stats":{"11":5079}},"0":{"stats":{"11":9935}},"1":{"stats":{"11":10606}},"2":{"stats":{"11":11319}}},"proc":{"procChance":0.04}}]}, -{"id":96524,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":674,"2":1131,"5":342,"7":533},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":725,"2":1207,"5":368,"7":572},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":395,"7":613},"ilvl":549}}}, -{"id":96525,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1759,"2":2559,"5":1103,"7":1150},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1878,"2":2737,"5":1181,"7":1231},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":2004,"2":2926,"5":1263,"7":1316},"ilvl":549}}}, +{"id":96524,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":674,"2":1131,"5":342,"7":533},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":725,"2":1207,"5":368,"7":572},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":395,"7":613},"ilvl":549}}}, +{"id":96525,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1759,"2":2559,"5":1103,"7":1150},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1878,"2":2737,"5":1181,"7":1231},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":2004,"2":2926,"5":1263,"7":1316},"ilvl":549}}}, {"id":96526,"name":"Quet'zal's Crackling Cord","icon":"inv_cloth_raidpriest_m_01belt","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":343,"6":378,"17":1146},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":748,"6":817,"17":1445},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":804,"6":877,"17":1475},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":863,"6":942,"17":1504},"ilvl":549}}}, {"id":96527,"name":"Saddle-Scarred Leggings","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":563,"11":446,"17":1782},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":1178,"11":949,"17":2248},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":1263,"11":1018,"17":2294},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1353,"11":1092,"17":2339},"ilvl":549}}}, {"id":96528,"name":"Dam'ren's Frozen Footguards","icon":"inv_boot_cloth_raidmage_m_01","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":343,"7":446,"17":1400},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"5":716,"7":903,"17":1767},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"5":768,"7":965,"17":1802},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":823,"7":1033,"17":1838},"ilvl":549}}}, @@ -9469,12 +9469,12 @@ {"id":96531,"name":"Spurs of the Storm Cavalry","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":397,"11":413,"17":1782},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"6":823,"11":839,"17":2249},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"6":882,"11":898,"17":2294},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"6":945,"11":961,"17":2339},"ilvl":549}}}, {"id":96532,"name":"Ro'shak's Molten Chain","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":3607},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":1093,"7":1093,"17":4551},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":1172,"7":1172,"17":4643},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"7":1256,"17":4734},"ilvl":549}}}, {"id":96533,"name":"Rein-Binder's Fists","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"6":400,"7":295,"17":3079},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1147,"2":1960,"6":874,"7":639,"17":3884},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1235,"2":2092,"6":940,"7":686,"17":3963},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1329,"2":2233,"6":1010,"7":736,"17":4041},"ilvl":549}}}, -{"id":96534,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"8":463,"11":463},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"8":496,"11":496},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"8":533,"11":533},"ilvl":549}}}, -{"id":96535,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"6":425,"7":485},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"6":457,"7":520},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":490,"7":558},"ilvl":549}}}, +{"id":96534,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"8":463,"11":463},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"8":496,"11":496},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"8":533,"11":533},"ilvl":549}}}, +{"id":96535,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"6":425,"7":485},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"6":457,"7":520},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":490,"7":558},"ilvl":549}}}, {"id":96536,"name":"Robes of the Moon Lotus","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":2037},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1599,"4":1093,"7":1093,"17":2570},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1718,"4":1172,"7":1172,"17":2621},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"7":1256,"17":2673},"ilvl":549}}}, {"id":96537,"name":"Passionfire Choker","icon":"inv_jewelry_necklace_123","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":278,"6":304},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"4":581,"6":633},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"4":623,"6":678},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":667,"6":726},"ilvl":549}}}, {"id":96538,"name":"Shield of Twinned Despair","icon":"inv_shield_zandalari_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":356,"11":205,"17":15800},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"4":712,"11":463,"17":19935},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"4":761,"11":498,"17":20337},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":813,"11":536,"17":20739},"ilvl":549}}}, -{"id":96539,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"7":1242,"11":965,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"7":1327,"11":1034,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"7":1417,"11":1108,"14":11479},"ilvl":549}}}, +{"id":96539,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":8482,"weaponDamageMax":12724,"stats":{"2":2639,"3":1679,"7":1242,"11":965,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9054,"weaponDamageMax":13581,"stats":{"2":2817,"3":1798,"7":1327,"11":1034,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"7":1417,"11":1108,"14":11479},"ilvl":549}}}, {"id":96540,"name":"Bracers of the Midnight Comet","icon":"inv_bracer_leather_raidrogue_m_01","type":6,"armorType":2,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1134},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"1":900,"2":1471,"17":1431},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"1":966,"2":1569,"17":1460},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"17":1489},"ilvl":549}}}, {"id":96541,"name":"Girdle of Night and Day","icon":"inv_leather_raiddruid_m_01belt","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":365,"7":365,"17":1458},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":791,"7":791,"17":1840},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":850,"7":850,"17":1877},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":913,"7":913,"17":1914},"ilvl":549}}}, {"id":96542,"name":"Tidal Force Treads","icon":"inv_boots_plate_deathknight_m_01","type":10,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":448,"7":327,"17":3386},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1227,"2":1960,"6":922,"7":671,"17":4273},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1315,"2":2092,"6":988,"7":718,"17":4359},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"6":1058,"7":768,"17":4445},"ilvl":549}}}, @@ -9482,19 +9482,19 @@ {"id":96544,"name":"Moonjade Necklace","icon":"inv_jewelry_necklace_120","type":2,"gemSockets":[2],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"8":294,"9":294},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"8":614,"9":614},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"8":657,"9":657},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"8":704,"9":704},"ilvl":549}}}, {"id":96545,"name":"Fingers of the Night","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"6":319,"17":2254},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":930,"6":663,"17":2844},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":996,"6":710,"17":2902},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1066,"6":760,"17":2959},"ilvl":549}}}, {"id":96546,"name":"Rune of Re-Origination","icon":"inv_offhand_1h_ulduarraid_d_01","type":12,"phase":3,"quality":4,"limitCategory":274,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1887},"ilvl":549}},"itemEffects":[{"buffId":139116,"buffName":"Item - Attacks Proc Highest Rating","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, -{"id":96547,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"1":1679,"2":2639,"7":1109,"8":1157},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"1":1798,"2":2817,"7":1188,"8":1236},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"1":1924,"2":3006,"7":1272,"8":1320},"ilvl":549}}}, +{"id":96547,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"1":1679,"2":2639,"7":1109,"8":1157},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"1":1798,"2":2817,"7":1188,"8":1236},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"1":1924,"2":3006,"7":1272,"8":1320},"ilvl":549}}}, {"id":96548,"name":"Fusion Slasher Chestguard","icon":"inv_chest_leather_raidrogue_m_01","type":5,"armorType":2,"gemSockets":[4,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":490,"11":537,"17":2592},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"6":1035,"11":1128,"17":3271},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1718,"2":2817,"6":1110,"11":1209,"17":3337},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":1190,"11":1296,"17":3403},"ilvl":549}}}, {"id":96549,"name":"Conduit-Breaker Chain Leggings","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":488,"7":472,"17":3156},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1519,"2":2639,"6":1061,"7":1045,"17":3982},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"1":1638,"2":2817,"6":1140,"7":1124,"17":4062},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"1":1764,"2":3006,"6":1224,"7":1208,"17":4143},"ilvl":549}}}, {"id":96550,"name":"Doomed Crown of Lei Shen","icon":"achievement_boss_leishen","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"5":356,"11":543,"17":4002},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1519,"2":2639,"5":791,"11":1197,"17":5050},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1638,"2":2817,"5":851,"11":1287,"17":5151},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"5":915,"11":1383,"17":5253},"ilvl":549}}}, {"id":96551,"name":"Legplates of the Lightning Throne","icon":"inv_pants_plate_raidwarrior_m_01","type":9,"armorType":4,"gemSockets":[2,4,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":571,"7":328,"17":4310},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1519,"2":2639,"6":1225,"7":763,"17":5438},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1638,"2":2817,"6":1315,"7":823,"17":5548},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"6":1411,"7":887,"17":5657},"ilvl":549}}}, {"id":96552,"name":"Legplates of Whipping Ionization","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,2,2],"socketBonus":[0,0,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"9":531,"11":398,"17":4310},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"0":1519,"2":2639,"9":1146,"11":901,"17":5438},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"0":1638,"2":2817,"9":1231,"11":970,"17":5548},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"9":1321,"11":1044,"17":5657},"ilvl":549}}}, -{"id":96553,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"6":1273,"11":875},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"6":1363,"11":935},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1459,"11":999},"ilvl":549}}}, +{"id":96553,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"6":1273,"11":875},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"6":1363,"11":935},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1459,"11":999},"ilvl":549}}}, {"id":96554,"name":"Ultimate Protection of the Emperor","icon":"inv_shield_mogu_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"10":294,"11":277,"17":15800},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"10":637,"11":557,"17":19935},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"10":684,"11":596,"17":20337},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"10":734,"11":637,"17":20739},"ilvl":549}}}, {"id":96555,"name":"Soul Barrier","icon":"spell_warlock_demonsoul","type":12,"phase":3,"quality":4,"limitCategory":275,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1270},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":2485},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2652},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2831},"ilvl":549}},"itemEffects":[{"buffId":138979,"buffName":"Soul Barrier","effectDurationMs":20000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"onUse":{"cooldownMs":120000}}]}, {"id":96556,"name":"Legwraps of Cardinality","icon":"inv_pant_cloth_raidmage_m_01","type":9,"armorType":1,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"5":344,"6":555,"17":1782},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"2":2639,"3":1519,"5":779,"6":1209,"17":2248},"ilvl":535},"1":{"randPropPoints":3571,"stats":{"2":2817,"3":1638,"5":839,"6":1299,"17":2294},"ilvl":542},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"5":903,"6":1395,"17":2339},"ilvl":549}}}, {"id":96557,"name":"Gloves of the Maimed Vizier","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":412,"11":274,"17":1273},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1147,"4":897,"11":598,"17":1606},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1235,"4":964,"11":642,"17":1638},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":1036,"11":690,"17":1671},"ilvl":549}}}, {"id":96558,"name":"Unerring Vision of Lei Shen","icon":"ability_hunter_focusedaim","type":12,"phase":3,"quality":4,"limitCategory":279,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"3":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"3":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":138963,"buffName":"Perfect Aim","effectDurationMs":4000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.5799999833106995,"mods":[{"coefficient":1,"ilvl":528},{"coefficient":-0.349999994039536,"spec":4},{"coefficient":-0.400000005960464,"classMask":256}]}}}]}, -{"id":96559,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4003,"weaponDamageMax":7435,"stats":{"2":1051,"3":754,"4":533,"7":342,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4273,"weaponDamageMax":7936,"stats":{"2":1127,"3":805,"4":572,"7":368,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1208,"3":859,"4":613,"7":395,"14":11477},"ilvl":549}}}, +{"id":96559,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4003,"weaponDamageMax":7435,"stats":{"2":1051,"3":754,"4":533,"7":342,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4273,"weaponDamageMax":7936,"stats":{"2":1127,"3":805,"4":572,"7":368,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1208,"3":859,"4":613,"7":395,"14":11477},"ilvl":549}}}, {"id":96560,"name":"Soul Prism of Lei Shen","icon":"inv_jewelry_necklace_136","type":2,"gemSockets":[3,3],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":341,"4":301,"7":174},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":820,"4":665,"7":417},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":886,"4":715,"7":450},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":956,"4":769,"7":486},"ilvl":549}}}, {"id":96561,"name":"Lightning-Imbued Chalice","icon":"spell_mage_runeofpower","type":12,"phase":3,"quality":4,"limitCategory":271,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"3":1657},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"3":1768},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":139190,"buffName":"Item - Proc Charges For Smart Heal","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96562,"name":"Lei Shen's Orb of Command","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":323,"7":245},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"2":1471,"3":900,"6":670,"7":518},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"2":1569,"3":966,"6":718,"7":555},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"6":769,"7":595},"ilvl":549}}}, @@ -9531,16 +9531,16 @@ {"id":96596,"name":"Headguard of the Haunted Forest","icon":"inv_helm_leather_raiddruid_m_01","type":1,"armorType":2,"gemSockets":[1,4],"socketBonus":[0,0,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","classAllowlist":[11],"setName":"Armor of the Haunted Forest","setId":1156,"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":489,"11":464,"17":2106},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1519,"2":2639,"6":1070,"11":1023,"17":2657},"ilvl":535},"1":{"randPropPoints":3472,"stats":{"1":1586,"2":2739,"6":1116,"11":1067,"17":2688},"ilvl":539},"2":{"randPropPoints":3604,"stats":{"1":1655,"2":2843,"6":1163,"11":1112,"17":2719},"ilvl":543}}}, {"id":96597,"name":"Breeches of the Haunted Forest","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","classAllowlist":[11],"setName":"Armor of the Haunted Forest","setId":1156,"sources":[{"drop":{"difficulty":9,"npcId":814,"otherName":"Nalak, The Storm Lord"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":480,"7":560,"17":2268},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1599,"2":2639,"5":1053,"7":1133,"17":2862},"ilvl":535},"1":{"randPropPoints":3472,"stats":{"1":1666,"2":2739,"5":1097,"7":1177,"17":2895},"ilvl":539},"2":{"randPropPoints":3604,"stats":{"1":1735,"2":2843,"5":1144,"7":1224,"17":2928},"ilvl":543}}}, {"id":96598,"name":"Shoulderguards of the Haunted Forest","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","classAllowlist":[11],"setName":"Armor of the Haunted Forest","setId":1156,"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"5":269,"6":422,"17":1944},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1147,"2":1960,"5":602,"6":902,"17":2453},"ilvl":535},"1":{"randPropPoints":2579,"stats":{"1":1196,"2":2035,"5":628,"6":939,"17":2481},"ilvl":539},"2":{"randPropPoints":2677,"stats":{"1":1248,"2":2112,"5":655,"6":978,"17":2510},"ilvl":543}}}, -{"id":96602,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":9253,"weaponDamageMax":13880,"stats":{"2":2639,"3":1759,"6":1086,"11":1225,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9877,"weaponDamageMax":14816,"stats":{"2":2817,"3":1878,"6":1159,"11":1307,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":10542,"weaponDamageMax":15814,"stats":{"2":3006,"3":2004,"6":1237,"11":1395,"14":11479},"ilvl":549}}}, -{"id":96603,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1679,"2":2639,"7":906,"11":1266},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1798,"2":2817,"7":970,"11":1354},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"7":1037,"11":1448},"ilvl":549}}}, -{"id":96604,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":754,"2":1051,"7":499,"8":401},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":805,"2":1127,"7":535,"8":431},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":859,"2":1208,"7":574,"8":462},"ilvl":549}}}, -{"id":96605,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8006,"weaponDamageMax":14870,"stats":{"1":674,"2":1131,"8":520,"11":365},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":8546,"weaponDamageMax":15872,"stats":{"1":725,"2":1207,"8":557,"11":393},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"1":779,"2":1288,"8":598,"11":422},"ilvl":549}}}, -{"id":96606,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":16964,"weaponDamageMax":25447,"stats":{"1":1679,"2":2639,"6":1013,"11":1194},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":18108,"weaponDamageMax":27162,"stats":{"1":1798,"2":2817,"6":1082,"11":1279},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"6":1156,"11":1369},"ilvl":549}}}, +{"id":96602,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":9253,"weaponDamageMax":13880,"stats":{"2":2639,"3":1759,"6":1086,"11":1225,"14":10075},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":9877,"weaponDamageMax":14816,"stats":{"2":2817,"3":1878,"6":1159,"11":1307,"14":10756},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":10542,"weaponDamageMax":15814,"stats":{"2":3006,"3":2004,"6":1237,"11":1395,"14":11479},"ilvl":549}}}, +{"id":96603,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":13494,"weaponDamageMax":25062,"stats":{"1":1679,"2":2639,"7":906,"11":1266},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":14404,"weaponDamageMax":26751,"stats":{"1":1798,"2":2817,"7":970,"11":1354},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"7":1037,"11":1448},"ilvl":549}}}, +{"id":96604,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":6005,"weaponDamageMax":11152,"stats":{"1":754,"2":1051,"7":499,"8":401},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":6409,"weaponDamageMax":11904,"stats":{"1":805,"2":1127,"7":535,"8":431},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":859,"2":1208,"7":574,"8":462},"ilvl":549}}}, +{"id":96605,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8006,"weaponDamageMax":14870,"stats":{"1":674,"2":1131,"8":520,"11":365},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":8546,"weaponDamageMax":15872,"stats":{"1":725,"2":1207,"8":557,"11":393},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"1":779,"2":1288,"8":598,"11":422},"ilvl":549}}}, +{"id":96606,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":16964,"weaponDamageMax":25447,"stats":{"1":1679,"2":2639,"6":1013,"11":1194},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":18108,"weaponDamageMax":27162,"stats":{"1":1798,"2":2817,"6":1082,"11":1279},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"6":1156,"11":1369},"ilvl":549}}}, {"id":96607,"name":"Lost Shoulders of Fire","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":327,"7":448,"17":1527},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"5":671,"7":922,"17":1927},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"5":718,"7":988,"17":1966},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":768,"7":1058,"17":2005},"ilvl":549}}}, {"id":96608,"name":"Lost Shoulders of Healing","icon":"inv_cloth_raidpriest_m_01shoulder","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":444,"7":340,"17":1527},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"4":907,"7":704,"17":1927},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"4":970,"7":753,"17":1966},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1039,"7":807,"17":2005},"ilvl":549}}}, {"id":96609,"name":"Lost Shoulders of Fluidity","icon":"inv_shoulder_cloth_raidwarlock_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":405,"7":405,"17":1527},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"6":831,"7":831,"17":1927},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"6":890,"7":890,"17":1966},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"6":953,"7":953,"17":2005},"ilvl":549}}}, -{"id":96610,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"5":470,"6":450,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"5":505,"6":483,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"5":541,"6":518,"14":11477},"ilvl":549}}}, -{"id":96611,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4003,"weaponDamageMax":7435,"stats":{"2":1131,"3":674,"4":354,"11":527,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4273,"weaponDamageMax":7936,"stats":{"2":1207,"3":725,"4":380,"11":565,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1288,"3":779,"4":408,"11":605,"14":11477},"ilvl":549}}}, +{"id":96610,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pvppandarias2_c_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":3002,"weaponDamageMax":5576,"stats":{"2":1131,"3":674,"5":470,"6":450,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":3204,"weaponDamageMax":5952,"stats":{"2":1207,"3":725,"5":505,"6":483,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"5":541,"6":518,"14":11477},"ilvl":549}}}, +{"id":96611,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":4003,"weaponDamageMax":7435,"stats":{"2":1131,"3":674,"4":354,"11":527,"14":10078},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":4273,"weaponDamageMax":7936,"stats":{"2":1207,"3":725,"4":380,"11":565,"14":10753},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1288,"3":779,"4":408,"11":605,"14":11477},"ilvl":549}}}, {"id":96612,"name":"Forgotten Mantle of the Moon","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":468,"8":298,"17":1944},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"7":953,"8":622,"17":2453},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"7":1020,"8":666,"17":2502},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":1092,"8":714,"17":2552},"ilvl":549}}}, {"id":96613,"name":"Forgotten Mantle of the Sun","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":383,"11":418,"17":1944},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"7":788,"11":857,"17":2453},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"7":844,"11":917,"17":2502},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"7":903,"11":982,"17":2552},"ilvl":549}}}, {"id":96614,"name":"Abandoned Spaulders of Arrowflight","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":298,"11":468,"17":2705},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"7":622,"11":953,"17":3413},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"1":1315,"2":2092,"7":666,"11":1020,"17":3482},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":714,"11":1092,"17":3551},"ilvl":549}}}, @@ -9548,9 +9548,9 @@ {"id":96616,"name":"Reconstructed Holy Shoulderplates","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":412,"11":394,"17":3694},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"2":1960,"3":1227,"7":844,"11":809,"17":4661},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"2":2092,"3":1315,"7":904,"11":866,"17":4755},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"7":968,"11":928,"17":4849},"ilvl":549}}}, {"id":96617,"name":"Reconstructed Furious Shoulderplates","icon":"inv_shoulder_plate_raidwarrior_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"7":418,"11":383,"17":3694},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1227,"2":1960,"7":857,"11":788,"17":4661},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1315,"2":2092,"7":917,"11":844,"17":4755},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"7":982,"11":903,"17":4849},"ilvl":549}}}, {"id":96618,"name":"Reconstructed Bloody Shoulderplates","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3694},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"0":1227,"2":1960,"8":622,"10":953,"17":4661},"ilvl":535},"1":{"randPropPoints":2652,"stats":{"0":1315,"2":2092,"8":666,"10":1020,"17":4755},"ilvl":542},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"8":714,"10":1092,"17":4849},"ilvl":549}}}, -{"id":96619,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"6":1070,"7":1161},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"6":1143,"7":1243},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1221,"7":1331},"ilvl":549}}}, -{"id":96620,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":365,"11":520},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":393,"11":557},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":422,"11":598},"ilvl":549}}}, -{"id":96621,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"8":993,"11":1225},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"8":1065,"11":1309},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"8":1141,"11":1398},"ilvl":549}}}, +{"id":96619,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"6":1070,"7":1161},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"6":1143,"7":1243},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1221,"7":1331},"ilvl":549}}}, +{"id":96620,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"0":674,"2":1131,"5":365,"11":520},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"0":725,"2":1207,"5":393,"11":557},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":422,"11":598},"ilvl":549}}}, +{"id":96621,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3345,"weaponDamageMin":18506,"weaponDamageMax":27760,"stats":{"0":1679,"2":2639,"8":993,"11":1225},"ilvl":535},"1":{"randPropPoints":3571,"weaponDamageMin":19754,"weaponDamageMax":29631,"stats":{"0":1798,"2":2817,"8":1065,"11":1309},"ilvl":542},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"8":1141,"11":1398},"ilvl":549}}}, {"id":96622,"name":"Visage of the Doomed","icon":"inv_shield_zandalari_c_02","type":13,"weaponType":7,"handType":3,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":253,"10":308,"17":15800},"ilvl":463},"0":{"randPropPoints":1864,"stats":{"0":900,"2":1471,"9":511,"10":664,"17":19935},"ilvl":535},"1":{"randPropPoints":1989,"stats":{"0":966,"2":1569,"9":546,"10":713,"17":20337},"ilvl":542},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"9":584,"10":765,"17":20739},"ilvl":549}}}, {"id":96626,"name":"Saurok Stalker's Tunic","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[2,4,3],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","classAllowlist":[3],"setName":"Battlegear of the Saurok Stalker","setId":1157,"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"8":489,"11":464,"17":3607},"ilvl":463},"0":{"randPropPoints":3345,"stats":{"1":1519,"2":2639,"8":1070,"11":1023,"17":4551},"ilvl":535},"1":{"randPropPoints":3472,"stats":{"1":1586,"2":2739,"8":1116,"11":1067,"17":4603},"ilvl":539},"2":{"randPropPoints":3604,"stats":{"1":1655,"2":2843,"8":1163,"11":1112,"17":4656},"ilvl":543}}}, {"id":96627,"name":"Saurok Stalker's Gloves","icon":"inv_glove_mail_raidhunter_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic","classAllowlist":[3],"setName":"Battlegear of the Saurok Stalker","setId":1157,"sources":[{"drop":{"difficulty":9,"npcId":814,"otherName":"Nalak, The Storm Lord"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":410,"8":391,"17":2254},"ilvl":463},"0":{"randPropPoints":2485,"stats":{"1":1227,"2":1960,"6":849,"8":796,"17":2844},"ilvl":535},"1":{"randPropPoints":2579,"stats":{"1":1276,"2":2035,"6":883,"8":827,"17":2877},"ilvl":539},"2":{"randPropPoints":2677,"stats":{"1":1328,"2":2112,"6":918,"8":860,"17":2910},"ilvl":543}}}, @@ -9645,7 +9645,7 @@ {"id":96745,"name":"Cloudbreaker Greatbelt","icon":"inv_belt_plate_raidwarrior_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"7":354,"11":372,"17":2771},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1222,"2":2073,"7":818,"11":855,"17":3556},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1275,"2":2152,"7":852,"11":891,"17":3597},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1329,"2":2233,"7":888,"11":928,"17":3637},"ilvl":549}}}, {"id":96746,"name":"Chestplate of Violent Detonation","icon":"inv_chest_plate_deathknight_m_01","type":5,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":537,"11":490,"17":4926},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1700,"2":2790,"5":1197,"11":1099,"17":6322},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1771,"2":2897,"5":1246,"11":1144,"17":6394},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1844,"2":3006,"5":1296,"11":1190,"17":6466},"ilvl":549}}}, {"id":96747,"name":"Bracers of Constant Implosion","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-337,-338,-339,-341],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"17":2155},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"17":2766},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"17":2797},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"17":2829},"ilvl":549}}}, -{"id":96748,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":559,"8":376},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":582,"8":392},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":605,"8":408},"ilvl":549}}}, +{"id":96748,"name":"Worldbreaker's Stormscythe","icon":"inv_axe_1h_thunderisleraid_d_031","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":250,"8":161},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":559,"8":376},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":582,"8":392},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":605,"8":408},"ilvl":549}}}, {"id":96749,"name":"Jin'rokh's Soulcrystal","icon":"inv_jewelry_ring_172","type":11,"phase":3,"quality":4,"limitCategory":251,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"8":301,"9":354},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":1037,"2":1555,"8":623,"9":731},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":1076,"2":1614,"8":647,"9":759},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"8":671,"9":788},"ilvl":549}}}, {"id":96750,"name":"Lightningweaver Gauntlets","icon":"inv_glove_cloth_raidmage_m_01","type":7,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":418,"11":383,"17":1273},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"5":909,"11":836,"17":1634},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"5":945,"11":869,"17":1652},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":982,"11":903,"17":1671},"ilvl":549}}}, {"id":96751,"name":"Al'set's Tormented Leggings","icon":"inv_pant_cloth_raidwarlock_m_01","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":389,"11":596,"17":1782},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"5":891,"11":1317,"17":2287},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"5":928,"11":1371,"17":2313},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"5":966,"11":1426,"17":2339},"ilvl":549}}}, @@ -9653,14 +9653,14 @@ {"id":96753,"name":"Robes of Static Bursts","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":978,"11":1268,"17":2614},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1019,"11":1319,"17":2644},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1060,"11":1372,"17":2673},"ilvl":549}}}, {"id":96754,"name":"Jin'rokh's Dreamshard","icon":"inv_jewelry_ring_169","type":11,"phase":3,"quality":4,"limitCategory":253,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":309,"6":349},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"5":640,"6":722},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"5":664,"6":749},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"5":689,"6":777},"ilvl":549}}}, {"id":96755,"name":"Drape of Booming Nights","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":368,"6":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":760,"6":573,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":789,"6":595,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":819,"6":618,"17":1337},"ilvl":549}}}, -{"id":96756,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02red","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3880,"weaponDamageMax":7207,"stats":{"2":1196,"3":717,"4":439,"6":523,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4028,"weaponDamageMax":7481,"stats":{"2":1242,"3":748,"4":458,"6":544,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4181,"weaponDamageMax":7765,"stats":{"2":1288,"3":779,"4":476,"6":566,"14":11477},"ilvl":549}}}, +{"id":96756,"name":"Soulblade of the Breaking Storm","icon":"inv_sword_1h_zandalari_c_02red","type":13,"weaponType":9,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1876,"weaponDamageMax":3484,"stats":{"2":578,"3":305,"4":192,"6":232,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3880,"weaponDamageMax":7207,"stats":{"2":1196,"3":717,"4":439,"6":523,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4028,"weaponDamageMax":7481,"stats":{"2":1242,"3":748,"4":458,"6":544,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4181,"weaponDamageMax":7765,"stats":{"2":1288,"3":779,"4":476,"6":566,"14":11477},"ilvl":549}}}, {"id":96757,"name":"Horridon's Last Gasp","icon":"spell_nature_eyeofthestorm","type":12,"phase":3,"quality":4,"limitCategory":268,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"3":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"3":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":138856,"buffName":"Cloudburst","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.9599999785423279,"mods":[{"coefficient":1,"haste":false}]}}}]}, {"id":96758,"name":"Infinitely Conducting Bracers","icon":"inv_bracer_leather_raidmonk_m_01","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":293,"6":358,"17":1134},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":606,"6":741,"17":1456},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":629,"6":770,"17":1472},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":653,"6":798,"17":1489},"ilvl":549}}}, {"id":96759,"name":"Ghostbinder Greatboots","icon":"inv_boot_mail_raidshaman_m_01","type":10,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":442,"7":337,"17":2480},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":966,"7":732,"17":3183},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":1004,"7":762,"17":3219},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1044,"7":792,"17":3255},"ilvl":549}}}, {"id":96760,"name":"Ionized Yojamban Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":827,"zoneId":6622,"otherName":"Jin'rokh the Breaker"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":389,"11":596,"17":4926},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"6":891,"11":1317,"17":6322},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"6":928,"11":1371,"17":6394},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":966,"11":1426,"17":6466},"ilvl":549}}}, {"id":96761,"name":"Wastewalker's Sandblasted Drape","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"5":368,"7":277,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":1037,"2":1555,"5":760,"7":573,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":1076,"2":1614,"5":789,"7":595,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"5":819,"7":618,"17":1337},"ilvl":549}}}, {"id":96762,"name":"Talisman of Living Poison","icon":"inv_jewelry_necklace_119","type":2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":349,"8":309},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":1037,"2":1555,"7":722,"8":640},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":1076,"2":1614,"7":749,"8":664},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"7":777,"8":689},"ilvl":549}}}, -{"id":96763,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":17940,"weaponDamageMax":26910,"stats":{"1":1780,"2":2790,"5":1261,"11":1115},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":18621,"weaponDamageMax":27932,"stats":{"1":1851,"2":2897,"5":1310,"11":1160},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"5":1360,"11":1206},"ilvl":549}}}, +{"id":96763,"name":"Jalak's Maelstrom Staff","icon":"inv_stave_2h_thunderisleraid_d_01","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"5":601,"11":506},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":17940,"weaponDamageMax":26910,"stats":{"1":1780,"2":2790,"5":1261,"11":1115},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":18621,"weaponDamageMax":27932,"stats":{"1":1851,"2":2897,"5":1310,"11":1160},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"5":1360,"11":1206},"ilvl":549}}}, {"id":96764,"name":"Bindings of Multiplicative Strikes","icon":"inv_leather_raiddruid_m_01bracer","type":6,"armorType":2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"6":339,"7":326,"17":1134},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":1037,"2":1555,"6":701,"7":674,"17":1456},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":1076,"2":1614,"6":728,"7":699,"17":1472},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1116,"2":1675,"6":756,"7":726,"17":1489},"ilvl":549}}}, {"id":96765,"name":"Sul'lithuz Sandmail","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"7":572,"11":432,"17":3607},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"7":1268,"11":978,"17":4629},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"7":1319,"11":1019,"17":4682},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"7":1372,"11":1060,"17":4734},"ilvl":549}}}, {"id":96766,"name":"Frozen Warlord's Bracers","icon":"inv_bracer_plate_raidwarrior_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"7":358,"8":293,"17":2155},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":1037,"2":1555,"7":741,"8":606,"17":2766},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":1076,"2":1614,"7":770,"8":629,"17":2797},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"7":798,"8":653,"17":2829},"ilvl":549}}}, @@ -9670,28 +9670,28 @@ {"id":96770,"name":"Spark of Zandalar","icon":"spell_nature_lightningshield","type":12,"phase":3,"quality":4,"limitCategory":276,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"7":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"7":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"7":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"7":1887},"ilvl":549}},"itemEffects":[{"buffId":138957,"buffName":"Item - Proc Charges For Strength Transform","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96771,"name":"Flamecaster's Burning Crown","icon":"inv_helm_cloth_raidmage_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"6":562,"7":379,"17":1655},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"6":1231,"7":972,"17":2124},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"6":1280,"7":1016,"17":2148},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"6":1331,"7":1061,"17":2172},"ilvl":549}}}, {"id":96772,"name":"Vaccinator's Armwraps","icon":"inv_cloth_raidpriest_m_01bracer","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":334,"7":334,"17":891},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":691,"7":691,"17":1144},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":717,"7":717,"17":1157},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":744,"7":744,"17":1170},"ilvl":549}}}, -{"id":96773,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"5":1102,"7":1249,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"5":1145,"7":1299,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"5":1189,"7":1350,"14":11479},"ilvl":549}}}, +{"id":96773,"name":"Dinomancer's Spiritbinding Spire","icon":"inv_stave_2h_thunderisleraid_d_03","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"5":525,"7":571,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"5":1102,"7":1249,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"5":1145,"7":1299,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"5":1189,"7":1350,"14":11479},"ilvl":549}}}, {"id":96774,"name":"Horridon's Tusk Fragment","icon":"inv_jewelry_necklace_141","type":2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":285,"11":363},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":590,"11":751},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":612,"11":780},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":635,"11":809},"ilvl":549}}}, {"id":96775,"name":"Petrified Eye of the Basilisk","icon":"inv_jewelry_ring_178","type":11,"phase":3,"quality":4,"limitCategory":260,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":381,"11":254},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":788,"11":525},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":818,"11":545},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":849,"11":566},"ilvl":549}}}, -{"id":96776,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3351,"weaponDamageMax":6224,"stats":{"2":1196,"3":717,"6":500,"7":478,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3478,"weaponDamageMax":6461,"stats":{"2":1242,"3":748,"6":520,"7":498,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3610,"weaponDamageMax":6706,"stats":{"2":1288,"3":779,"6":541,"7":518,"14":11477},"ilvl":549}}}, +{"id":96776,"name":"Venomlord's Totemic Wand","icon":"inv_wand_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":6,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.9,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1620,"weaponDamageMax":3009,"stats":{"2":578,"3":305,"6":221,"7":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3351,"weaponDamageMax":6224,"stats":{"2":1196,"3":717,"6":500,"7":478,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3478,"weaponDamageMax":6461,"stats":{"2":1242,"3":748,"6":520,"7":498,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3610,"weaponDamageMax":6706,"stats":{"2":1288,"3":779,"6":541,"7":518,"14":11477},"ilvl":549}}}, {"id":96777,"name":"Roots of Rampaging Earth","icon":"inv_pant_leather_raidmonk_m_01","type":9,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"11":490,"17":2268},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"6":1197,"11":1099,"17":2911},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"6":1246,"11":1144,"17":2944},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1296,"11":1190,"17":2977},"ilvl":549}}}, {"id":96778,"name":"Spaulders of Dinomancy","icon":"inv_shoulder_leather_raiddruid_m_01","type":3,"armorType":2,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"7":319,"17":1944},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":986,"7":703,"17":2495},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":1025,"7":731,"17":2524},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1066,"7":760,"17":2552},"ilvl":549}}}, {"id":96779,"name":"Legguards of Scintillating Scales","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":520,"11":520,"17":3156},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"6":1160,"11":1160,"17":4051},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"6":1207,"11":1207,"17":4097},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1256,"11":1256,"17":4143},"ilvl":549}}}, {"id":96780,"name":"Armplates of the Vanquished Abomination","icon":"inv_bracer_plate_raidpaladin_m_01","type":6,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":819,"zoneId":6622,"otherName":"Horridon"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"17":2155},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"17":2766},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"17":2797},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"17":2829},"ilvl":549}}}, {"id":96781,"name":"Bad Juju","icon":"trade_archaeology_troll_voodoodoll","type":12,"phase":3,"quality":4,"limitCategory":261,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"11":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"11":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"11":1887},"ilvl":549}},"itemEffects":[{"buffId":138938,"buffName":"Juju Madness","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"1":4232}},"0":{"stats":{"1":8754}},"1":{"stats":{"1":9088}},"2":{"stats":{"1":9432}}},"proc":{"icdMs":10000,"rppm":{"rate":1.100000023841858}}}]}, -{"id":96782,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"6":492,"11":492},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"6":512,"11":512},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":533,"11":533},"ilvl":549}}}, +{"id":96782,"name":"Kura-Kura, Kazra'jin's Skullcleaver","icon":"inv_axe_1h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":217,"11":217},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"6":492,"11":492},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"6":512,"11":512},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":533,"11":533},"ilvl":549}}}, {"id":96783,"name":"Mar'li's Bloodstained Sandals","icon":"inv_cloth_raidpriest_m_01boot","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":436,"6":348,"17":1400},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":953,"6":754,"17":1797},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":991,"6":784,"17":1818},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1031,"6":815,"17":1838},"ilvl":549}}}, {"id":96784,"name":"Zandalari Robes of the Final Rite","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"5":475,"6":546,"17":2037},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"5":1068,"6":1215,"17":2614},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"5":1112,"6":1264,"17":2644},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"5":1157,"6":1315,"17":2673},"ilvl":549}}}, {"id":96785,"name":"Wushoolay's Final Choice","icon":"spell_nature_chainlightning","type":12,"phase":3,"quality":4,"limitCategory":280,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"5":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"5":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"5":1887},"ilvl":549}},"itemEffects":[{"buffId":138786,"buffName":"Wushoolay's Lightning","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138788,"buffName":"Electrified","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"3":769}},"0":{"stats":{"3":1592}},"1":{"stats":{"3":1652}},"2":{"stats":{"3":1715}}}},"stackPeriodMs":1000}]}, -{"id":96786,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4586,"weaponDamageMax":8518,"stats":{"2":1196,"3":717,"4":538,"11":414,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4760,"weaponDamageMax":8841,"stats":{"2":1242,"3":748,"4":560,"11":431,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4941,"weaponDamageMax":9177,"stats":{"2":1288,"3":779,"4":582,"11":449,"14":11477},"ilvl":549}}}, +{"id":96786,"name":"Amun-Thoth, Sul's Spiritrending Talons","icon":"inv_hand_1h_thunderisleraid_d_01","type":13,"weaponType":3,"handType":2,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2217,"weaponDamageMax":4118,"stats":{"2":578,"3":305,"4":239,"11":179,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4586,"weaponDamageMax":8518,"stats":{"2":1196,"3":717,"4":538,"11":414,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4760,"weaponDamageMax":8841,"stats":{"2":1242,"3":748,"4":560,"11":431,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4941,"weaponDamageMax":9177,"stats":{"2":1288,"3":779,"4":582,"11":449,"14":11477},"ilvl":549}}}, {"id":96787,"name":"Robes of Treacherous Ground","icon":"inv_leather_raiddruid_m_01robe","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":389,"11":596,"17":2592},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":891,"11":1317,"17":3327},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":928,"11":1371,"17":3365},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":966,"11":1426,"17":3403},"ilvl":549}}}, {"id":96788,"name":"Gaze of Gara'jal","icon":"inv_helm_mail_raidhunter_m_01","type":1,"armorType":3,"gemSockets":[1,4],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":460,"7":500,"17":2931},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1620,"2":2790,"6":1100,"7":1140,"17":3761},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1691,"2":2897,"6":1147,"7":1187,"17":3804},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1764,"2":3006,"6":1196,"7":1236,"17":3847},"ilvl":549}}}, {"id":96789,"name":"Loa-Ridden Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-339,-340,-343],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"17":1578},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"17":2025},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"17":2048},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"17":2071},"ilvl":549}}}, {"id":96790,"name":"Overloaded Bladebreaker Cuirass","icon":"inv_chest_plate_raidwarrior_m_01","type":5,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":739,"2":1349,"5":376,"10":603,"17":4926},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1700,"2":2790,"5":862,"10":1334,"17":6322},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1771,"2":2897,"5":898,"10":1388,"17":6394},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1844,"2":3006,"5":935,"10":1443,"17":6466},"ilvl":549}}}, -{"id":96791,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"5":1333,"6":955},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"5":1387,"6":992},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"5":1442,"6":1030},"ilvl":549}}}, +{"id":96791,"name":"Zerat, Malakk's Soulburning Greatsword","icon":"inv_sword_2h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":4,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"5":612,"6":453},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"5":1333,"6":955},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"5":1387,"6":992},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"5":1442,"6":1030},"ilvl":549}}}, {"id":96792,"name":"Talisman of Angry Spirits","icon":"inv_jewelry_necklace_139","type":2,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"6":344,"11":318},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":1037,"2":1555,"6":712,"11":657},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":1076,"2":1614,"6":739,"11":682},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"6":766,"11":707},"ilvl":549}}}, {"id":96793,"name":"Fortitude of the Zandalari","icon":"spell_holy_mindvision","type":12,"phase":3,"quality":4,"limitCategory":266,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":816,"zoneId":6622,"otherName":"Council of Elders"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"11":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"11":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"11":1818},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"11":1887},"ilvl":549}},"itemEffects":[{"buffId":126697,"buffName":"Tremendous Fortitude","effectDurationMs":15000,"scalingOptions":{"-1":{"stats":{"19":42617}},"0":{"stats":{"19":88149}},"1":{"stats":{"19":91514}},"2":{"stats":{"19":94978}}},"onUse":{"cooldownMs":120000,"categoryId":1190,"categoryCooldownMs":120000}}]}, -{"id":96794,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1780,"2":2790,"5":1139,"8":1237},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1851,"2":2897,"5":1184,"8":1286},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"5":1230,"8":1336},"ilvl":549}}}, +{"id":96794,"name":"Shattered Tortoiseshell Longbow","icon":"inv_bow_1h_thunderisleraid_d_01","type":14,"rangedWeaponType":1,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"5":530,"8":577},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1780,"2":2790,"5":1139,"8":1237},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1851,"2":2897,"5":1184,"8":1286},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"5":1230,"8":1336},"ilvl":549}}}, {"id":96795,"name":"Rockfall Ribwraps","icon":"inv_chest_leather_raidmonk_m_01","type":5,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":461,"6":555,"17":2592},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"5":1038,"6":1233,"17":3327},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"5":1081,"6":1283,"17":3365},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"5":1125,"6":1334,"17":3403},"ilvl":549}}}, {"id":96796,"name":"Grips of Vampiric Cruelty","icon":"inv_glove_leather_raidrogue_m_01","type":7,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"5":394,"7":412,"17":1620},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"5":858,"7":895,"17":2079},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"5":892,"7":931,"17":2103},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"5":928,"7":968,"17":2127},"ilvl":549}}}, {"id":96797,"name":"Beady-Eye Bracers","icon":"inv_bracer_mail_raidhunter_m_01","type":6,"armorType":3,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1578},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":957,"2":1555,"17":2025},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":996,"2":1614,"17":2048},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"17":2071},"ilvl":549}}}, @@ -9699,7 +9699,7 @@ {"id":96799,"name":"Shoulderguards of Centripetal Destruction","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1302,"2":2073,"6":1010,"7":660,"17":4742},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1355,"2":2152,"6":1050,"7":687,"17":4795},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"6":1092,"7":714,"17":4849},"ilvl":549}}}, {"id":96800,"name":"Shell-Coated Wristplates","icon":"inv_bracer_plate_deathknight_m_01","type":6,"armorType":4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":372,"10":269,"17":2155},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":1037,"2":1555,"9":770,"10":557,"17":2766},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":1076,"2":1614,"9":799,"10":578,"17":2797},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"9":829,"10":600,"17":2829},"ilvl":549}}}, {"id":96801,"name":"Amulet of the Primal Turtle","icon":"inv_jewelry_necklace_118","type":2,"gemSockets":[3],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":214,"6":341},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"5":485,"6":748},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"5":505,"6":778},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"5":526,"6":809},"ilvl":549}}}, -{"id":96802,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":530,"6":426},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":552,"6":444},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":574,"6":462},"ilvl":549}}}, +{"id":96802,"name":"Shellsplitter Greataxe","icon":"inv_axe_1h_thunderisleraid_d_02","type":13,"weaponType":1,"handType":2,"gemSockets":[3,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":236,"6":185},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":530,"6":426},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":552,"6":444},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":574,"6":462},"ilvl":549}}}, {"id":96803,"name":"Beakbreaker Greatcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":501,"2":752,"9":344,"11":318,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":1037,"2":1555,"9":712,"11":657,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":1076,"2":1614,"9":739,"11":682,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1116,"2":1675,"9":766,"11":707,"17":1337},"ilvl":549}}}, {"id":96804,"name":"Azure Shell Bracers","icon":"inv_bracer_cloth_raidmage_m_01","type":6,"armorType":1,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"6":368,"11":277,"17":891},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"6":760,"11":573,"17":1144},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"6":789,"11":595,"17":1157},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"6":819,"11":618,"17":1170},"ilvl":549}}}, {"id":96805,"name":"Stonegaze Hood","icon":"inv_cloth_raidpriest_m_01helm","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":556,"6":368,"17":1655},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"4":1252,"6":914,"17":2124},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"4":1303,"6":955,"17":2148},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"4":1356,"6":996,"17":2172},"ilvl":549}}}, @@ -9711,7 +9711,7 @@ {"id":96811,"name":"Spaulders of Quaking Fear","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":462,"7":309,"17":2705},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":998,"7":681,"17":3472},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":1038,"7":709,"17":3511},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1079,"7":737,"17":3551},"ilvl":549}}}, {"id":96812,"name":"Refreshing Abalone Girdle","icon":"inv_belt_plate_raidpaladin_m_01","type":8,"armorType":4,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":385,"7":332,"17":2771},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":882,"7":773,"17":3556},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":919,"7":806,"17":3597},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":956,"7":839,"17":3637},"ilvl":549}}}, {"id":96813,"name":"Tortos' Shellseizers","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":825,"zoneId":6622,"otherName":"Tortos"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":351,"6":438,"17":3079},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":768,"6":948,"17":3951},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":799,"6":986,"17":3996},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":831,"6":1025,"17":4041},"ilvl":549}}}, -{"id":96814,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":717,"2":1196,"5":414,"11":538},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":748,"2":1242,"5":431,"11":560},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":449,"11":582},"ilvl":549}}}, +{"id":96814,"name":"Megaera's Poisoned Fang","icon":"inv_knife_1h_thunderisleraid_d_01","type":13,"weaponType":2,"handType":2,"gemSockets":[3,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":179,"11":239},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":717,"2":1196,"5":414,"11":538},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":748,"2":1242,"5":431,"11":560},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":449,"11":582},"ilvl":549}}}, {"id":96815,"name":"Quadra-Head Brooch","icon":"inv_jewelry_necklace_140","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"5":294,"11":294},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":957,"2":1555,"5":651,"11":651},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":996,"2":1614,"5":677,"11":677},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"5":704,"11":704},"ilvl":549}}}, {"id":96816,"name":"Poisonblood Bladeshoulders","icon":"inv_shoulder_leather_raidrogue_m_01","type":3,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":405,"11":405,"17":1944},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"7":881,"11":881,"17":2495},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"7":916,"11":916,"17":2524},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":953,"11":953,"17":2552},"ilvl":549}}}, {"id":96817,"name":"Grips of Cinderflesh","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":821,"zoneId":6622,"otherName":"Megaera"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":372,"11":425,"17":2254},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"7":813,"11":922,"17":2893},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"7":846,"11":959,"17":2926},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":879,"11":996,"17":2959},"ilvl":549}}}, @@ -9733,7 +9733,7 @@ {"id":96833,"name":"Pinionfeather Greatcloak","icon":"inv_cape_pandaria_d_01","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":286,"11":299,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":957,"2":1555,"6":634,"11":661,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":996,"2":1614,"6":659,"11":688,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"6":686,"11":716,"17":1337},"ilvl":549}}}, {"id":96834,"name":"Cord of Cacophonous Cawing","icon":"inv_belt_cloth_raidwarlock_m_01","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"5":398,"7":311,"17":1146},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"5":908,"7":728,"17":1470},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"5":946,"7":759,"17":1487},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"5":985,"7":791,"17":1504},"ilvl":549}}}, {"id":96835,"name":"Robe of Midnight Down","icon":"inv_chest_cloth_raidmage_m_01","type":5,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"7":432,"11":572,"17":2037},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"7":978,"11":1268,"17":2614},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"7":1019,"11":1319,"17":2644},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"7":1060,"11":1372,"17":2673},"ilvl":549}}}, -{"id":96836,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"4":1301,"7":1013,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"4":1353,"7":1052,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"4":1406,"7":1093,"14":11479},"ilvl":549}}}, +{"id":96836,"name":"Giorgio's Caduceus of Pure Moods","icon":"inv_stave_2h_thunderisleraid_d_02","type":13,"weaponType":8,"handType":4,"gemSockets":[3,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"4":596,"7":481,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"4":1301,"7":1013,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"4":1353,"7":1052,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"4":1406,"7":1093,"14":11479},"ilvl":549}}}, {"id":96837,"name":"Featherflight Belt","icon":"inv_belt_leather_raidrogue_m_01","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"7":416,"8":279,"17":1458},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1222,"2":2073,"7":946,"8":663,"17":1872},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1275,"2":2152,"7":985,"8":691,"17":1893},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1329,"2":2233,"7":1026,"8":720,"17":1914},"ilvl":549}}}, {"id":96838,"name":"Grasp of the Ruthless Mother","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":668,"4":401,"11":471,"17":2254},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1382,"4":831,"11":975,"17":2893},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1435,"4":862,"11":1012,"17":2926},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1489,"4":895,"11":1051,"17":2959},"ilvl":549}}}, {"id":96839,"name":"Crown of Potentiated Birth","icon":"inv_helmet_plate_raidpaladin_m_01","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":583,"7":316,"17":4002},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"4":1314,"7":802,"17":5137},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"4":1368,"7":838,"17":5195},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"4":1423,"7":875,"17":5253},"ilvl":549}}}, @@ -9741,7 +9741,7 @@ {"id":96841,"name":"Egg-Shard Grips","icon":"inv_gloves_plate_raidwarrior_m_01","type":7,"armorType":4,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3079},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1302,"2":2073,"8":660,"10":1010,"17":3951},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1355,"2":2152,"8":687,"10":1050,"17":3996},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"8":714,"10":1092,"17":4041},"ilvl":549}}}, {"id":96842,"name":"Fabled Feather of Ji-Kun","icon":"ability_priest_angelicfeather","type":12,"phase":3,"quality":4,"limitCategory":265,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"5":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"5":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"5":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"5":1887},"ilvl":549}},"itemEffects":[{"buffId":138759,"buffName":"Feathers of Fury","effectDurationMs":10000,"maxCumulativeStacks":1,"proc":{"icdMs":10000,"rppm":{"rate":1.2100000381469727}},"stackingAura":{"buffId":138760,"buffName":"Mighty","effectDurationMs":10000,"maxCumulativeStacks":10,"scalingOptions":{"-1":{"stats":{"0":769}},"0":{"stats":{"0":1592}},"1":{"stats":{"0":1652}},"2":{"stats":{"0":1715}}}},"stackPeriodMs":1000}]}, {"id":96843,"name":"Ji-Kun's Rising Winds","icon":"spell_holy_heal","type":12,"phase":3,"quality":4,"limitCategory":270,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":828,"zoneId":6622,"otherName":"Ji-Kun"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"8":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"8":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"8":1818},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"8":1887},"ilvl":549}},"itemEffects":[{"buffId":138973,"buffName":"The Risen Wind","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":30000,"procChance":1}}]}, -{"id":96844,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":16309,"weaponDamageMax":24464,"stats":{"1":1780,"2":2790,"6":1273,"7":1078},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":16928,"weaponDamageMax":25393,"stats":{"1":1851,"2":2897,"6":1323,"7":1121},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":17571,"weaponDamageMax":26357,"stats":{"1":1924,"2":3006,"6":1374,"7":1165},"ilvl":549}}}, +{"id":96844,"name":"Durumu's Baleful Gaze","icon":"inv_bow_2h_crossbow_thunderisleraid_d_01","type":14,"rangedWeaponType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":7885,"weaponDamageMax":11828,"stats":{"1":819,"2":1349,"6":595,"7":501},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":16309,"weaponDamageMax":24464,"stats":{"1":1780,"2":2790,"6":1273,"7":1078},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":16928,"weaponDamageMax":25393,"stats":{"1":1851,"2":2897,"6":1323,"7":1121},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":17571,"weaponDamageMax":26357,"stats":{"1":1924,"2":3006,"6":1374,"7":1165},"ilvl":549}}}, {"id":96845,"name":"Crimson Bloom Legguards","icon":"inv_pant_leather_raidrogue_m_01","type":9,"armorType":2,"gemSockets":[2,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"5":588,"6":403,"17":2268},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"5":1301,"6":920,"17":2911},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"5":1354,"6":958,"17":2944},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"5":1408,"6":997,"17":2977},"ilvl":549}}}, {"id":96846,"name":"Links of the Disintegrator","icon":"inv_belt_mail_raidshaman_m_01","type":8,"armorType":3,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":508,"2":1002,"6":391,"7":321,"17":2029},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1222,"2":2073,"6":895,"7":751,"17":2604},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1275,"2":2152,"6":932,"7":782,"17":2634},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1329,"2":2233,"6":971,"7":815,"17":2663},"ilvl":549}}}, {"id":96847,"name":"Aberrant Chestguard of Torment","icon":"inv_chest_mail_raidhunter_m_01","type":5,"armorType":3,"gemSockets":[3,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":546,"7":475,"17":3607},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"6":1215,"7":1068,"17":4629},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"6":1264,"7":1112,"17":4682},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":1315,"7":1157,"17":4734},"ilvl":549}}}, @@ -9756,7 +9756,7 @@ {"id":96856,"name":"Chilblain Spaulders","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":383,"11":418,"17":1527},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"6":836,"11":909,"17":1961},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"6":869,"11":945,"17":1983},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"6":903,"11":982,"17":2005},"ilvl":549}}}, {"id":96857,"name":"Deadly Glare Cape","icon":"inv_cape_pandaria_d_03","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":278,"7":304,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"6":617,"7":672,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"6":642,"7":699,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"6":667,"7":726,"17":1337},"ilvl":549}}}, {"id":96858,"name":"Durumu's Captive Eyeball","icon":"inv_jewelry_ring_ahnqiraj_02","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":254,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":313,"6":246},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"4":715,"6":525},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"4":744,"6":546},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":775,"6":567},"ilvl":549}}}, -{"id":96859,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"4":530,"6":426,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"4":552,"6":444,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"4":574,"6":462,"14":11477},"ilvl":549}}}, +{"id":96859,"name":"Ritual Dagger of the Mind's Eye","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"4":236,"6":185,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"4":530,"6":426,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"4":552,"6":444,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"4":574,"6":462,"14":11477},"ilvl":549}}}, {"id":96860,"name":"Sandals of the Starving Eye","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":430,"6":359,"17":1782},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":940,"6":776,"17":2287},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":978,"6":807,"17":2313},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1017,"6":839,"17":2339},"ilvl":549}}}, {"id":96861,"name":"Vein-Cover Bracers","icon":"inv_bracer_mail_raidshaman_m_01","type":6,"armorType":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":377,"7":262,"17":1578},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":1037,"4":779,"7":541,"17":2025},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":1076,"4":808,"7":562,"17":2048},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1116,"4":839,"7":583,"17":2071},"ilvl":549}}}, {"id":96862,"name":"Iceshatter Gauntlets","icon":"inv_glove_plate_raidpaladin_m_01","type":7,"armorType":4,"gemSockets":[2,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":818,"zoneId":6622,"otherName":"Durumu the Forgotten"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":3079},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":918,"11":700,"17":3951},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":956,"11":730,"17":3996},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":996,"11":760,"17":4041},"ilvl":549}}}, @@ -9771,7 +9771,7 @@ {"id":96871,"name":"Hydra-Scale Bloodcloak","icon":"inv_cape_pandaria_d_04","type":4,"armorType":1,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"6":314,"8":261,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"6":691,"8":583,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"6":719,"8":607,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"6":748,"8":631,"17":1337},"ilvl":549}}}, {"id":96872,"name":"Band of the Scaled Tyrant","icon":"inv_jewelry_ring_177","type":11,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":259,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"5":269,"7":299},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"5":574,"7":687},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"5":596,"7":716},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"5":619,"7":745},"ilvl":549}}}, {"id":96873,"name":"Primordius' Talisman of Rage","icon":"ability_warrior_rampage","type":12,"phase":3,"quality":4,"limitCategory":272,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"6":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"6":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"6":1887},"ilvl":549}},"itemEffects":[{"buffId":138870,"buffName":"Rampage","effectDurationMs":10000,"maxCumulativeStacks":5,"scalingOptions":{"-1":{"stats":{"0":887}},"0":{"stats":{"0":1836}},"1":{"stats":{"0":1906}},"2":{"stats":{"0":1978}}},"proc":{"icdMs":5000,"rppm":{"rate":3.5}}}]}, -{"id":96874,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":8467,"weaponDamageMax":15725,"stats":{"0":717,"2":1196,"9":538,"10":414},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":8788,"weaponDamageMax":16322,"stats":{"0":748,"2":1242,"9":560,"10":431},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"0":779,"2":1288,"9":582,"10":449},"ilvl":549}}}, +{"id":96874,"name":"Acid-Spine Bonemace","icon":"inv_mace_1h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"0":305,"2":578,"9":239,"10":179},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":8467,"weaponDamageMax":15725,"stats":{"0":717,"2":1196,"9":538,"10":414},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":8788,"weaponDamageMax":16322,"stats":{"0":748,"2":1242,"9":560,"10":431},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"0":779,"2":1288,"9":582,"10":449},"ilvl":549}}}, {"id":96875,"name":"Robes of Mutagenic Blood","icon":"inv_robe_cloth_raidwarlock_m_01","type":5,"armorType":1,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"6":537,"7":490,"17":2037},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"6":1197,"7":1099,"17":2614},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"6":1246,"7":1144,"17":2644},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"6":1296,"7":1190,"17":2673},"ilvl":549}}}, {"id":96876,"name":"Helix-Breaker Gloves","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[4,4],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":388,"6":316,"17":1273},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":905,"6":722,"17":1634},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":943,"6":752,"17":1652},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":983,"6":783,"17":1671},"ilvl":549}}}, {"id":96877,"name":"Leggings of Ebon Veins","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"6":520,"17":1782},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1160,"6":1160,"17":2287},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1207,"6":1207,"17":2313},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"6":1256,"17":2339},"ilvl":549}}}, @@ -9783,18 +9783,18 @@ {"id":96883,"name":"Spaulders of Primordial Growth","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[4],"socketBonus":[0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":468,"7":298,"17":3694},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":1010,"7":660,"17":4742},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":1050,"7":687,"17":4795},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1092,"7":714,"17":4849},"ilvl":549}}}, {"id":96884,"name":"Greatshield of the Gloaming","icon":"inv_shield_thunderisleraid_d_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":820,"zoneId":6622,"otherName":"Primordius"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":310,"11":275,"17":15800},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"9":658,"11":637,"17":20279},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"9":683,"11":664,"17":20509},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"9":710,"11":692,"17":20739},"ilvl":549}}}, {"id":96885,"name":"Gore-Soaked Gear","icon":"inv_jewelry_ring_180","type":11,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"limitCategory":249,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"6":294,"7":277},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":957,"2":1555,"6":677,"7":590},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":996,"2":1614,"6":706,"7":613},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"6":734,"7":637},"ilvl":549}}}, -{"id":96886,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"7":538,"8":414},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"7":560,"8":431},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"7":582,"8":449},"ilvl":549}}}, +{"id":96886,"name":"Hand of the Dark Animus","icon":"inv_mace_1h_thunderisleraid_d_01","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"7":239,"8":179},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"7":538,"8":414},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"7":560,"8":431},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"7":582,"8":449},"ilvl":549}}}, {"id":96887,"name":"Hood of the Crimson Wake","icon":"inv_helm_cloth_raidwarlock_m_01","type":1,"armorType":1,"gemSockets":[1,3],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"7":460,"11":500,"17":1655},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"7":1100,"11":1140,"17":2124},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"7":1147,"11":1187,"17":2148},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"7":1196,"11":1236,"17":2172},"ilvl":549}}}, {"id":96888,"name":"Cha-Ye's Essence of Brilliance","icon":"spell_holy_mindsooth","type":12,"phase":3,"quality":4,"limitCategory":263,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"6":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"6":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"6":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"6":1887},"ilvl":549}},"itemEffects":[{"buffId":139133,"buffName":"Mastermind","effectDurationMs":10000,"scalingOptions":{"-1":{"stats":{"3":4232}},"0":{"stats":{"3":8754}},"1":{"stats":{"3":9088}},"2":{"stats":{"3":9432}}},"proc":{"icdMs":10000,"rppm":{"rate":0.8500000238418579,"mods":[{"coefficient":1,"crit":false}]}}}]}, {"id":96889,"name":"Constantly Accelerating Cloak","icon":"inv_cape_pandaria_d_02","type":4,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":261,"7":314,"17":1018},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"4":583,"7":691,"17":1307},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"4":607,"7":719,"17":1322},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":631,"7":748,"17":1337},"ilvl":549}}}, -{"id":96890,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"7":492,"11":492,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"7":512,"11":512,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"7":533,"11":533,"14":11477},"ilvl":549}}}, +{"id":96890,"name":"Athame of the Sanguine Ritual","icon":"inv_knife_1h_thunderisleraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"7":217,"11":217,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"7":492,"11":492,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"7":512,"11":512,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"7":533,"11":533,"14":11477},"ilvl":549}}}, {"id":96891,"name":"Worldbinder Leggings","icon":"inv_leather_raiddruid_m_01pant","type":9,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":403,"11":588,"17":2268},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"6":920,"11":1301,"17":2911},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"6":958,"11":1354,"17":2944},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":997,"11":1408,"17":2977},"ilvl":549}}}, {"id":96892,"name":"Anima-Ringed Fingers","icon":"inv_leather_raiddruid_m_01glove","type":7,"armorType":2,"gemSockets":[4,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":362,"6":359,"17":1620},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":853,"6":812,"17":2079},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":889,"6":845,"17":2103},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":926,"6":879,"17":2127},"ilvl":549}}}, {"id":96893,"name":"Matter-Swapped Legplates","icon":"inv_pants_plate_raidpaladin_m_01","type":9,"armorType":4,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":537,"11":490,"17":4310},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1197,"11":1099,"17":5532},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1246,"11":1144,"17":5595},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1296,"11":1190,"17":5657},"ilvl":549}}}, {"id":96894,"name":"Crown of the Golden Golem","icon":"inv_helmet_plate_deathknight_m_01","type":1,"armorType":4,"gemSockets":[1,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":503,"7":426,"17":4002},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1620,"2":2790,"6":1190,"7":988,"17":5137},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1691,"2":2897,"6":1241,"7":1030,"17":5195},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"6":1293,"7":1072,"17":5253},"ilvl":549}}}, {"id":96895,"name":"Delicate Vial of the Sanguinaire","icon":"ability_deathwing_bloodcorruption_earth","type":12,"phase":3,"quality":4,"limitCategory":264,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":824,"zoneId":6622,"otherName":"Dark Animus"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"9":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"9":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"9":1818},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"9":1887},"ilvl":549}},"itemEffects":[{"buffId":138864,"buffName":"Blood of Power","effectDurationMs":20000,"maxCumulativeStacks":3,"scalingOptions":{"-1":{"stats":{"11":5079}},"0":{"stats":{"11":10505}},"1":{"stats":{"11":10906}},"2":{"stats":{"11":11319}}},"proc":{"procChance":0.04}}]}, -{"id":96896,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":717,"2":1196,"5":364,"7":566},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":748,"2":1242,"5":379,"7":589},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":395,"7":613},"ilvl":549}}}, -{"id":96897,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1860,"2":2710,"5":1169,"7":1219},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1931,"2":2817,"5":1215,"7":1267},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":2004,"2":2926,"5":1263,"7":1316},"ilvl":549}}}, +{"id":96896,"name":"Iron Qon's Boot Knife","icon":"inv_knife_1h_thunderisleraid_d_04","type":13,"weaponType":2,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":305,"2":578,"5":155,"7":253},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":717,"2":1196,"5":364,"7":566},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":748,"2":1242,"5":379,"7":589},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":779,"2":1288,"5":395,"7":613},"ilvl":549}}}, +{"id":96897,"name":"Voice of the Quilen","icon":"inv_firearm_2h_rifle_thunderisleraid_d_01","type":14,"rangedWeaponType":3,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":899,"2":1269,"5":544,"7":569},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1860,"2":2710,"5":1169,"7":1219},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1931,"2":2817,"5":1215,"7":1267},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":2004,"2":2926,"5":1263,"7":1316},"ilvl":549}}}, {"id":96898,"name":"Quet'zal's Crackling Cord","icon":"inv_cloth_raidpriest_m_01belt","type":8,"armorType":1,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":343,"6":378,"17":1146},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":796,"6":869,"17":1470},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":829,"6":905,"17":1487},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":863,"6":942,"17":1504},"ilvl":549}}}, {"id":96899,"name":"Saddle-Scarred Leggings","icon":"inv_cloth_raidpriest_m_01pant","type":9,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":563,"11":446,"17":1782},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1250,"11":1008,"17":2287},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1301,"11":1050,"17":2313},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1353,"11":1092,"17":2339},"ilvl":549}}}, {"id":96900,"name":"Dam'ren's Frozen Footguards","icon":"inv_boot_cloth_raidmage_m_01","type":10,"armorType":1,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":343,"7":446,"17":1400},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"5":760,"7":956,"17":1797},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"5":791,"7":994,"17":1818},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":823,"7":1033,"17":1838},"ilvl":549}}}, @@ -9803,12 +9803,12 @@ {"id":96903,"name":"Spurs of the Storm Cavalry","icon":"inv_boot_leather_raidmonk_m_01","type":10,"armorType":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"6":397,"11":413,"17":1782},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"6":873,"11":889,"17":2287},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"6":908,"11":924,"17":2313},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"6":945,"11":961,"17":2339},"ilvl":549}}}, {"id":96904,"name":"Ro'shak's Molten Chain","icon":"inv_chest_mail_raidshaman_m_01","type":5,"armorType":3,"gemSockets":[2,2],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":3607},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1160,"7":1160,"17":4629},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1207,"7":1207,"17":4682},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"7":1256,"17":4734},"ilvl":549}}}, {"id":96905,"name":"Rein-Binder's Fists","icon":"inv_gloves_plate_deathknight_m_01","type":7,"armorType":4,"gemSockets":[2,3],"socketBonus":[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":508,"2":1002,"6":400,"7":295,"17":3079},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1222,"2":2073,"6":930,"7":679,"17":3951},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1275,"2":2152,"6":969,"7":707,"17":3996},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1329,"2":2233,"6":1010,"7":736,"17":4041},"ilvl":549}}}, -{"id":96906,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"8":492,"11":492},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"8":512,"11":512},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"8":533,"11":533},"ilvl":549}}}, -{"id":96907,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"6":452,"7":515},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"6":471,"7":536},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":490,"7":558},"ilvl":549}}}, +{"id":96906,"name":"Qon's Flaming Scimitar","icon":"inv_sword_1h_thunderisleraid_d_01","type":13,"weaponType":9,"handType":2,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":817,"zoneId":6622,"otherName":"Iron Qon"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"8":217,"11":217},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"8":492,"11":492},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"8":512,"11":512},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"8":533,"11":533},"ilvl":549}}}, +{"id":96907,"name":"Wu-Lai, Bladed Fan of the Empyreans","icon":"inv_hand_1h_thunderisleraid_d_02","type":13,"weaponType":3,"handType":2,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"6":198,"7":228},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"6":452,"7":515},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"6":471,"7":536},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"6":490,"7":558},"ilvl":549}}}, {"id":96908,"name":"Robes of the Moon Lotus","icon":"inv_cloth_raidpriest_m_01robe","type":5,"armorType":1,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":2037},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1160,"7":1160,"17":2614},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1207,"7":1207,"17":2644},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"7":1256,"17":2673},"ilvl":549}}}, {"id":96909,"name":"Passionfire Choker","icon":"inv_jewelry_necklace_123","type":2,"gemSockets":[4],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":278,"6":304},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"4":617,"6":672},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"4":642,"6":699},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":667,"6":726},"ilvl":549}}}, {"id":96910,"name":"Shield of Twinned Despair","icon":"inv_shield_zandalari_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"4":356,"11":205,"17":15800},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"4":754,"11":493,"17":20279},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"4":783,"11":514,"17":20509},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"4":813,"11":536,"17":20739},"ilvl":549}}}, -{"id":96911,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"7":1314,"11":1024,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"7":1365,"11":1066,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"7":1417,"11":1108,"14":11479},"ilvl":549}}}, +{"id":96911,"name":"Suen-Wo, Spire of the Falling Sun","icon":"inv_stave_2h_thunderisleraid_d_04","type":13,"weaponType":8,"handType":4,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4336,"weaponDamageMax":6505,"stats":{"2":1349,"3":819,"7":627,"11":462,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":8970,"weaponDamageMax":13455,"stats":{"2":2790,"3":1780,"7":1314,"11":1024,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":9310,"weaponDamageMax":13966,"stats":{"2":2897,"3":1851,"7":1365,"11":1066,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":9664,"weaponDamageMax":14496,"stats":{"2":3006,"3":1924,"7":1417,"11":1108,"14":11479},"ilvl":549}}}, {"id":96912,"name":"Bracers of the Midnight Comet","icon":"inv_bracer_leather_raidrogue_m_01","type":6,"armorType":2,"gemSockets":[4],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[-336,-337,-338,-339,-340],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":421,"2":752,"17":1134},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"1":957,"2":1555,"17":1456},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"1":996,"2":1614,"17":1472},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"1":1036,"2":1675,"17":1489},"ilvl":549}}}, {"id":96913,"name":"Girdle of Night and Day","icon":"inv_leather_raiddruid_m_01belt","type":8,"armorType":2,"gemSockets":[2,4,8],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":365,"7":365,"17":1458},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":841,"7":841,"17":1872},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":876,"7":876,"17":1893},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":913,"7":913,"17":1914},"ilvl":549}}}, {"id":96914,"name":"Tidal Force Treads","icon":"inv_boots_plate_deathknight_m_01","type":10,"armorType":4,"gemSockets":[2],"socketBonus":[0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"6":448,"7":327,"17":3386},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1302,"2":2073,"6":978,"7":711,"17":4347},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1355,"2":2152,"6":1017,"7":739,"17":4396},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"6":1058,"7":768,"17":4445},"ilvl":549}}}, @@ -9816,35 +9816,35 @@ {"id":96916,"name":"Moonjade Necklace","icon":"inv_jewelry_necklace_120","type":2,"gemSockets":[2],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"8":294,"9":294},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"8":651,"9":651},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"8":677,"9":677},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"8":704,"9":704},"ilvl":549}}}, {"id":96917,"name":"Fingers of the Night","icon":"inv_glove_mail_raidshaman_m_01","type":7,"armorType":3,"gemSockets":[4],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":829,"zoneId":6622,"otherName":"Twin Empyreans"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":456,"6":319,"17":2254},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":986,"6":703,"17":2893},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":1025,"6":731,"17":2926},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1066,"6":760,"17":2959},"ilvl":549}}}, {"id":96918,"name":"Rune of Re-Origination","icon":"inv_offhand_1h_ulduarraid_d_01","type":12,"phase":3,"quality":4,"limitCategory":274,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1887},"ilvl":549}},"itemEffects":[{"buffId":139116,"buffName":"Item - Attacks Proc Highest Rating","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, -{"id":96919,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"1":1780,"2":2790,"7":1176,"8":1224},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"1":1851,"2":2897,"7":1223,"8":1271},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"1":1924,"2":3006,"7":1272,"8":1320},"ilvl":549}}}, +{"id":96919,"name":"Shan-Dun, Breaker of Hope","icon":"inv_polearm_2h_thunderisleraid_d_01","type":13,"weaponType":6,"handType":4,"gemSockets":[2,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"1":819,"2":1349,"7":536,"8":584},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"1":1780,"2":2790,"7":1176,"8":1224},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"1":1851,"2":2897,"7":1223,"8":1271},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"1":1924,"2":3006,"7":1272,"8":1320},"ilvl":549}}}, {"id":96920,"name":"Fusion Slasher Chestguard","icon":"inv_chest_leather_raidrogue_m_01","type":5,"armorType":2,"gemSockets":[4,4],"socketBonus":[0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":739,"2":1349,"6":490,"11":537,"17":2592},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1700,"2":2790,"6":1099,"11":1197,"17":3327},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1771,"2":2897,"6":1144,"11":1246,"17":3365},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1844,"2":3006,"6":1190,"11":1296,"17":3403},"ilvl":549}}}, {"id":96921,"name":"Conduit-Breaker Chain Leggings","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"1":659,"2":1349,"6":488,"7":472,"17":3156},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"1":1620,"2":2790,"6":1128,"7":1112,"17":4051},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"1":1691,"2":2897,"6":1175,"7":1159,"17":4097},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"1":1764,"2":3006,"6":1224,"7":1208,"17":4143},"ilvl":549}}}, {"id":96922,"name":"Doomed Crown of Lei Shen","icon":"achievement_boss_leishen","type":1,"armorType":4,"gemSockets":[1,2],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"5":356,"11":543,"17":4002},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1620,"2":2790,"5":842,"11":1274,"17":5137},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1691,"2":2897,"5":878,"11":1328,"17":5195},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"5":915,"11":1383,"17":5253},"ilvl":549}}}, {"id":96923,"name":"Legplates of the Lightning Throne","icon":"inv_pants_plate_raidwarrior_m_01","type":9,"armorType":4,"gemSockets":[2,4,4],"socketBonus":[180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"6":571,"7":328,"17":4310},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1620,"2":2790,"6":1302,"7":814,"17":5532},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1691,"2":2897,"6":1356,"7":850,"17":5595},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"6":1411,"7":887,"17":5657},"ilvl":549}}}, {"id":96924,"name":"Legplates of Whipping Ionization","icon":"inv_pants_plate_deathknight_m_01","type":9,"armorType":4,"gemSockets":[2,2,2],"socketBonus":[0,0,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"0":659,"2":1349,"9":531,"11":398,"17":4310},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"0":1620,"2":2790,"9":1218,"11":960,"17":5532},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"0":1691,"2":2897,"9":1269,"11":1002,"17":5595},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"0":1764,"2":3006,"9":1321,"11":1044,"17":5657},"ilvl":549}}}, -{"id":96925,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"6":1350,"11":926},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"6":1404,"11":962},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1459,"11":999},"ilvl":549}}}, +{"id":96925,"name":"Uroe, Harbinger of Terror","icon":"inv_axe_2h_thunderisleraid_d_01","type":13,"weaponType":1,"handType":4,"gemSockets":[2,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":619,"11":440},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"6":1350,"11":926},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"6":1404,"11":962},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1459,"11":999},"ilvl":549}}}, {"id":96926,"name":"Ultimate Protection of the Emperor","icon":"inv_shield_mogu_c_01","type":13,"weaponType":7,"handType":3,"gemSockets":[2],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"10":294,"11":277,"17":15800},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"10":677,"11":590,"17":20279},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"10":706,"11":613,"17":20509},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"10":734,"11":637,"17":20739},"ilvl":549}}}, {"id":96927,"name":"Soul Barrier","icon":"spell_warlock_demonsoul","type":12,"phase":3,"quality":4,"limitCategory":275,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1270},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2628},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2728},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2831},"ilvl":549}},"itemEffects":[{"buffId":138979,"buffName":"Soul Barrier","effectDurationMs":20000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"onUse":{"cooldownMs":120000}}]}, {"id":96928,"name":"Legwraps of Cardinality","icon":"inv_pant_cloth_raidmage_m_01","type":9,"armorType":1,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"5":344,"6":555,"17":1782},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"5":830,"6":1286,"17":2287},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"5":866,"6":1340,"17":2313},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"5":903,"6":1395,"17":2339},"ilvl":549}}}, {"id":96929,"name":"Gloves of the Maimed Vizier","icon":"inv_cloth_raidpriest_m_01glove","type":7,"armorType":1,"gemSockets":[2,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":412,"11":274,"17":1273},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":954,"11":636,"17":1634},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":994,"11":663,"17":1652},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":1036,"11":690,"17":1671},"ilvl":549}}}, {"id":96930,"name":"Unerring Vision of Lei Shen","icon":"ability_hunter_focusedaim","type":12,"phase":3,"quality":4,"limitCategory":279,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"3":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"3":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":138963,"buffName":"Perfect Aim","effectDurationMs":4000,"scalingOptions":{"-1":{},"0":{},"1":{},"2":{}},"proc":{"icdMs":3000,"rppm":{"rate":0.5799999833106995,"mods":[{"coefficient":1,"ilvl":528},{"coefficient":-0.349999994039536,"spec":4},{"coefficient":-0.400000005960464,"classMask":256}]}}}]}, -{"id":96931,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4233,"weaponDamageMax":7862,"stats":{"2":1116,"3":797,"4":566,"7":364,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4394,"weaponDamageMax":8161,"stats":{"2":1162,"3":828,"4":589,"7":379,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1208,"3":859,"4":613,"7":395,"14":11477},"ilvl":549}}}, +{"id":96931,"name":"Torall, Rod of the Shattered Throne","icon":"inv_mace_1h_thunderisleraid_d_03","type":13,"weaponType":4,"handType":2,"gemSockets":[2,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":498,"3":385,"4":253,"7":155,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4233,"weaponDamageMax":7862,"stats":{"2":1116,"3":797,"4":566,"7":364,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4394,"weaponDamageMax":8161,"stats":{"2":1162,"3":828,"4":589,"7":379,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1208,"3":859,"4":613,"7":395,"14":11477},"ilvl":549}}}, {"id":96932,"name":"Soul Prism of Lei Shen","icon":"inv_jewelry_necklace_136","type":2,"gemSockets":[3,3],"socketBonus":[0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":341,"4":301,"7":174},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":877,"4":708,"7":445},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":916,"4":738,"7":465},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":956,"4":769,"7":486},"ilvl":549}}}, {"id":96933,"name":"Lightning-Imbued Chalice","icon":"spell_mage_runeofpower","type":12,"phase":3,"quality":4,"limitCategory":271,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"3":847},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"3":1752},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"3":1819},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"3":1887},"ilvl":549}},"itemEffects":[{"buffId":139190,"buffName":"Item - Proc Charges For Smart Heal","scalingOptions":{"-1":{},"0":{},"1":{},"2":{}}}]}, {"id":96934,"name":"Lei Shen's Orb of Command","icon":"inv_offhand_1h_thunderisleraid_d_02","type":13,"weaponType":5,"handType":3,"gemSockets":[2],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":421,"6":323,"7":245},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"2":1555,"3":957,"6":711,"7":550},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"2":1614,"3":996,"6":740,"7":572},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"2":1675,"3":1036,"6":769,"7":595},"ilvl":549}}}, {"id":96935,"name":"Grips of Slicing Electricity","icon":"inv_glove_leather_raidmonk_m_01","type":7,"armorType":2,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":508,"4":394,"11":305,"17":1620},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1222,"4":918,"11":700,"17":2079},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1275,"4":956,"11":730,"17":2103},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1329,"4":996,"11":760,"17":2127},"ilvl":549}}}, {"id":96936,"name":"Leggings of the Violent Gale","icon":"inv_pant_mail_raidshaman_m_01","type":9,"armorType":3,"gemSockets":[2,2,2],"socketBonus":[0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":659,"4":540,"11":371,"17":3156},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1620,"4":1253,"11":888,"17":4051},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1691,"4":1306,"11":926,"17":4097},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1764,"4":1360,"11":965,"17":4143},"ilvl":549}}}, {"id":96937,"name":"Lei Shen's Grounded Carapace","icon":"inv_chest_plate_raidpaladin_m_01","type":5,"armorType":4,"gemSockets":[3,3],"socketBonus":[0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"npcId":832,"zoneId":6622,"otherName":"Lei Shen"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"stats":{"2":1349,"3":739,"4":520,"7":520,"17":4926},"ilvl":463},"0":{"randPropPoints":3537,"stats":{"2":2790,"3":1700,"4":1160,"7":1160,"17":6322},"ilvl":541},"1":{"randPropPoints":3672,"stats":{"2":2897,"3":1771,"4":1207,"7":1207,"17":6394},"ilvl":545},"2":{"randPropPoints":3811,"stats":{"2":3006,"3":1844,"4":1256,"7":1256,"17":6466},"ilvl":549}}}, -{"id":96974,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":9785,"weaponDamageMax":14678,"stats":{"2":2790,"3":1860,"6":1148,"11":1295,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":10157,"weaponDamageMax":15236,"stats":{"2":2897,"3":1931,"6":1192,"11":1344,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":10542,"weaponDamageMax":15814,"stats":{"2":3006,"3":2004,"6":1237,"11":1395,"14":11479},"ilvl":549}}}, -{"id":96975,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1780,"2":2790,"7":960,"11":1341},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1851,"2":2897,"7":998,"11":1394},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"7":1037,"11":1448},"ilvl":549}}}, -{"id":96976,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":797,"2":1116,"7":530,"8":426},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":828,"2":1162,"7":552,"8":444},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":859,"2":1208,"7":574,"8":462},"ilvl":549}}}, -{"id":96977,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":8467,"weaponDamageMax":15725,"stats":{"1":717,"2":1196,"8":552,"11":389},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":8788,"weaponDamageMax":16322,"stats":{"1":748,"2":1242,"8":575,"11":405},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"1":779,"2":1288,"8":598,"11":422},"ilvl":549}}}, -{"id":96978,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":17940,"weaponDamageMax":26910,"stats":{"1":1780,"2":2790,"6":1072,"11":1266},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":18621,"weaponDamageMax":27932,"stats":{"1":1851,"2":2897,"6":1114,"11":1317},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"6":1156,"11":1369},"ilvl":549}}}, +{"id":96974,"name":"Invocation of the Dawn","icon":"inv_mace_2h_thunderisleraid_d_02","type":13,"weaponType":4,"handType":4,"gemSockets":[8],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":4731,"weaponDamageMax":7097,"stats":{"2":1349,"3":899,"6":555,"11":626,"14":5151},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":9785,"weaponDamageMax":14678,"stats":{"2":2790,"3":1860,"6":1148,"11":1295,"14":10654},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":10157,"weaponDamageMax":15236,"stats":{"2":2897,"3":1931,"6":1192,"11":1344,"14":11060},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":10542,"weaponDamageMax":15814,"stats":{"2":3006,"3":2004,"6":1237,"11":1395,"14":11479},"ilvl":549}}}, +{"id":96975,"name":"Miracoran, the Vehement Chord","icon":"inv_bow_1h_zandalari_c_01","type":14,"rangedWeaponType":1,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":6899,"weaponDamageMax":12813,"stats":{"1":819,"2":1349,"7":443,"11":628},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":14270,"weaponDamageMax":26502,"stats":{"1":1780,"2":2790,"7":960,"11":1341},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":14812,"weaponDamageMax":27509,"stats":{"1":1851,"2":2897,"7":998,"11":1394},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":15374,"weaponDamageMax":28553,"stats":{"1":1924,"2":3006,"7":1037,"11":1448},"ilvl":549}}}, +{"id":96976,"name":"Fyn's Flickering Dagger","icon":"inv_knife_1h_thunderisleraid_d_03","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":3070,"weaponDamageMax":5702,"stats":{"1":385,"2":498,"7":236,"8":185},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":6350,"weaponDamageMax":11794,"stats":{"1":797,"2":1116,"7":530,"8":426},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":6591,"weaponDamageMax":12241,"stats":{"1":828,"2":1162,"7":552,"8":444},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":6841,"weaponDamageMax":12706,"stats":{"1":859,"2":1208,"7":574,"8":462},"ilvl":549}}}, +{"id":96977,"name":"Zeeg's Ancient Kegsmasher","icon":"inv_mace_17","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4093,"weaponDamageMax":7602,"stats":{"1":305,"2":578,"8":246,"11":167},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":8467,"weaponDamageMax":15725,"stats":{"1":717,"2":1196,"8":552,"11":389},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":8788,"weaponDamageMax":16322,"stats":{"1":748,"2":1242,"8":575,"11":405},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9122,"weaponDamageMax":16942,"stats":{"1":779,"2":1288,"8":598,"11":422},"ilvl":549}}}, +{"id":96978,"name":"Darkwood Spiritstaff","icon":"inv_staff_2h_zandalari_c_01","type":13,"weaponType":8,"handType":4,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.3,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":8673,"weaponDamageMax":13010,"stats":{"1":819,"2":1349,"6":510,"11":579},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":17940,"weaponDamageMax":26910,"stats":{"1":1780,"2":2790,"6":1072,"11":1266},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":18621,"weaponDamageMax":27932,"stats":{"1":1851,"2":2897,"6":1114,"11":1317},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":19328,"weaponDamageMax":28993,"stats":{"1":1924,"2":3006,"6":1156,"11":1369},"ilvl":549}}}, {"id":96979,"name":"Lost Shoulders of Fire","icon":"inv_shoulder_cloth_raidmage_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"5":327,"7":448,"17":1527},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"5":711,"7":978,"17":1961},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"5":739,"7":1017,"17":1983},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"5":768,"7":1058,"17":2005},"ilvl":549}}}, {"id":96980,"name":"Lost Shoulders of Healing","icon":"inv_cloth_raidpriest_m_01shoulder","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"4":444,"7":340,"17":1527},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"4":961,"7":746,"17":1961},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"4":999,"7":776,"17":1983},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"4":1039,"7":807,"17":2005},"ilvl":549}}}, {"id":96981,"name":"Lost Shoulders of Fluidity","icon":"inv_shoulder_cloth_raidwarlock_m_01","type":3,"armorType":1,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"6":405,"7":405,"17":1527},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"6":881,"7":881,"17":1961},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"6":916,"7":916,"17":1983},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"6":953,"7":953,"17":2005},"ilvl":549}}}, -{"id":96982,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pandaraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"5":500,"6":478,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"5":520,"6":498,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"5":541,"6":518,"14":11477},"ilvl":549}}}, -{"id":96983,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4233,"weaponDamageMax":7862,"stats":{"2":1196,"3":717,"4":376,"11":559,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4394,"weaponDamageMax":8161,"stats":{"2":1242,"3":748,"4":392,"11":582,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1288,"3":779,"4":408,"11":605,"14":11477},"ilvl":549}}}, +{"id":96982,"name":"Nadagast's Exsanguinator","icon":"inv_knife_1h_pandaraid_d_02","type":13,"weaponType":2,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":1.8,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":1535,"weaponDamageMax":2851,"stats":{"2":578,"3":305,"5":221,"6":211,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":3175,"weaponDamageMax":5897,"stats":{"2":1196,"3":717,"5":500,"6":478,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":3295,"weaponDamageMax":6121,"stats":{"2":1242,"3":748,"5":520,"6":498,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":3420,"weaponDamageMax":6353,"stats":{"2":1288,"3":779,"5":541,"6":518,"14":11477},"ilvl":549}}}, +{"id":96983,"name":"Jerthud, Graceful Hand of the Savior","icon":"inv_mace_1h_zandalari_c_01","type":13,"weaponType":4,"handType":2,"gemSockets":[4,8],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.4,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":2046,"weaponDamageMax":3801,"stats":{"2":578,"3":305,"4":161,"11":250,"14":5152},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":4233,"weaponDamageMax":7862,"stats":{"2":1196,"3":717,"4":376,"11":559,"14":10655},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":4394,"weaponDamageMax":8161,"stats":{"2":1242,"3":748,"4":392,"11":582,"14":11062},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":4561,"weaponDamageMax":8471,"stats":{"2":1288,"3":779,"4":408,"11":605,"14":11477},"ilvl":549}}}, {"id":96984,"name":"Forgotten Mantle of the Moon","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":468,"8":298,"17":1944},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"7":1010,"8":660,"17":2495},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"7":1050,"8":687,"17":2524},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":1092,"8":714,"17":2552},"ilvl":549}}}, {"id":96985,"name":"Forgotten Mantle of the Sun","icon":"inv_shoulder_leather_raidmonk_m_01","type":3,"armorType":2,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":383,"11":418,"17":1944},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"7":836,"11":909,"17":2495},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"7":869,"11":945,"17":2524},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"7":903,"11":982,"17":2552},"ilvl":549}}}, {"id":96986,"name":"Abandoned Spaulders of Arrowflight","icon":"inv_shoulder_mail_raidshaman_m_01","type":3,"armorType":3,"gemSockets":[3],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"1":588,"2":1002,"7":298,"11":468,"17":2705},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"1":1302,"2":2073,"7":660,"11":1010,"17":3472},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"1":1355,"2":2152,"7":687,"11":1050,"17":3511},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"1":1409,"2":2233,"7":714,"11":1092,"17":3551},"ilvl":549}}}, @@ -9852,15 +9852,15 @@ {"id":96988,"name":"Reconstructed Holy Shoulderplates","icon":"inv_shoulder_plate_raidpaladin_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"2":1002,"3":588,"7":412,"11":394,"17":3694},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"2":2073,"3":1302,"7":895,"11":858,"17":4742},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"2":2152,"3":1355,"7":931,"11":892,"17":4795},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"2":2233,"3":1409,"7":968,"11":928,"17":4849},"ilvl":549}}}, {"id":96989,"name":"Reconstructed Furious Shoulderplates","icon":"inv_shoulder_plate_raidwarrior_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"7":418,"11":383,"17":3694},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1302,"2":2073,"7":909,"11":836,"17":4742},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1355,"2":2152,"7":945,"11":869,"17":4795},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"7":982,"11":903,"17":4849},"ilvl":549}}}, {"id":96990,"name":"Reconstructed Bloody Shoulderplates","icon":"inv_shoulder_plate_deathknight_m_01","type":3,"armorType":4,"gemSockets":[3],"socketBonus":[0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1270,"stats":{"0":588,"2":1002,"8":298,"10":468,"17":3694},"ilvl":463},"0":{"randPropPoints":2628,"stats":{"0":1302,"2":2073,"8":660,"10":1010,"17":4742},"ilvl":541},"1":{"randPropPoints":2728,"stats":{"0":1355,"2":2152,"8":687,"10":1050,"17":4795},"ilvl":545},"2":{"randPropPoints":2831,"stats":{"0":1409,"2":2233,"8":714,"10":1092,"17":4849},"ilvl":549}}}, -{"id":96991,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"6":1132,"7":1231},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"6":1176,"7":1280},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1221,"7":1331},"ilvl":549}}}, -{"id":96992,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":389,"11":552},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":405,"11":575},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":422,"11":598},"ilvl":549}}}, -{"id":96993,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"8":1054,"11":1297},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"8":1097,"11":1347},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"8":1141,"11":1398},"ilvl":549}}}, +{"id":96991,"name":"Greatsword of Frozen Hells","icon":"inv_sword_2h_mogu_c_01","type":13,"weaponType":9,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"6":539,"7":562},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"6":1132,"7":1231},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"6":1176,"7":1280},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"6":1221,"7":1331},"ilvl":549}}}, +{"id":96992,"name":"Do-tharak, the Swordbreaker","icon":"inv_sword_1h_mogu_c_01","type":13,"weaponType":9,"handType":2,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"0":305,"2":578,"5":167,"11":246},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"0":717,"2":1196,"5":389,"11":552},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"0":748,"2":1242,"5":405,"11":575},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"0":779,"2":1288,"5":422,"11":598},"ilvl":549}}}, +{"id":96993,"name":"Bo-Ris, Horror in the Night","icon":"inv_polearm_2h_mogu_c_01","type":13,"weaponType":6,"handType":4,"gemSockets":[4,8],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":3.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":1710,"weaponDamageMin":9462,"weaponDamageMax":14193,"stats":{"0":819,"2":1349,"8":477,"11":619},"ilvl":463},"0":{"randPropPoints":3537,"weaponDamageMin":19571,"weaponDamageMax":29357,"stats":{"0":1780,"2":2790,"8":1054,"11":1297},"ilvl":541},"1":{"randPropPoints":3672,"weaponDamageMin":20314,"weaponDamageMax":30471,"stats":{"0":1851,"2":2897,"8":1097,"11":1347},"ilvl":545},"2":{"randPropPoints":3811,"weaponDamageMin":21085,"weaponDamageMax":31628,"stats":{"0":1924,"2":3006,"8":1141,"11":1398},"ilvl":549}}}, {"id":96994,"name":"Visage of the Doomed","icon":"inv_shield_zandalari_c_02","type":13,"weaponType":7,"handType":3,"gemSockets":[4],"socketBonus":[60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"0":421,"2":752,"9":253,"10":308,"17":15800},"ilvl":463},"0":{"randPropPoints":1971,"stats":{"0":957,"2":1555,"9":541,"10":706,"17":20279},"ilvl":541},"1":{"randPropPoints":2046,"stats":{"0":996,"2":1614,"9":562,"10":735,"17":20509},"ilvl":545},"2":{"randPropPoints":2123,"stats":{"0":1036,"2":1675,"9":584,"10":765,"17":20739},"ilvl":549}}}, -{"id":97126,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"5":412,"8":394},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"5":443,"8":423},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"5":475,"8":455},"ilvl":536}}}, -{"id":97127,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"5":470,"8":450},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"5":505,"8":483},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"5":541,"8":518},"ilvl":549}}}, -{"id":97128,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"5":438,"8":419},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"5":456,"8":436},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"5":475,"8":455},"ilvl":536}}}, -{"id":97129,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"5":335,"8":320},"ilvl":502}}}, -{"id":97130,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"5":500,"8":478},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"5":520,"8":498},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"5":541,"8":518},"ilvl":549}}}, +{"id":97126,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1270,"weaponDamageMin":7684,"weaponDamageMax":14271,"stats":{"1":588,"2":1002,"5":412,"8":394},"ilvl":522},"1":{"randPropPoints":1356,"weaponDamageMin":8202,"weaponDamageMax":15233,"stats":{"1":633,"2":1070,"5":443,"8":423},"ilvl":529},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"5":475,"8":455},"ilvl":536}}}, +{"id":97127,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1434,"weaponDamageMin":8674,"weaponDamageMax":16109,"stats":{"1":674,"2":1131,"5":470,"8":450},"ilvl":535},"1":{"randPropPoints":1530,"weaponDamageMin":9258,"weaponDamageMax":17195,"stats":{"1":725,"2":1207,"5":505,"8":483},"ilvl":542},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"5":541,"8":518},"ilvl":549}}}, +{"id":97128,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Thunderforged","sources":[{"drop":{"difficulty":5,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1343,"weaponDamageMin":8126,"weaponDamageMax":15092,"stats":{"1":626,"2":1059,"5":438,"8":419},"ilvl":528},"1":{"randPropPoints":1394,"weaponDamageMin":8434,"weaponDamageMax":15665,"stats":{"1":653,"2":1100,"5":456,"8":436},"ilvl":532},"2":{"randPropPoints":1447,"weaponDamageMin":8755,"weaponDamageMax":16260,"stats":{"1":681,"2":1142,"5":475,"8":455},"ilvl":536}}}, +{"id":97129,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Celestial","sources":[{"soldBy":{"npcId":248108,"npcName":"Avatar of the August Celestials"}},{"drop":{"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1054,"weaponDamageMin":6378,"weaponDamageMax":11845,"stats":{"1":474,"2":832,"5":335,"8":320},"ilvl":502}}}, +{"id":97130,"name":"Tia-Tia, the Scything Star","icon":"inv_hand_1h_thunderisleraid_d_03","type":13,"weaponType":3,"handType":2,"gemSockets":[4,8],"socketBonus":[0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"eotbGemSocket":true,"weaponSpeed":2.6,"phase":3,"quality":4,"nameDescription":"Heroic Thunderforged","sources":[{"drop":{"difficulty":6,"zoneId":6622,"otherName":"Shared Boss Loot"}}],"scalingOptions":{"-1":{"randPropPoints":733,"weaponDamageMin":4434,"weaponDamageMax":8236,"stats":{"1":305,"2":578,"5":221,"8":211},"ilvl":463},"0":{"randPropPoints":1516,"weaponDamageMin":9172,"weaponDamageMax":17035,"stats":{"1":717,"2":1196,"5":500,"8":478},"ilvl":541},"1":{"randPropPoints":1574,"weaponDamageMin":9521,"weaponDamageMax":17682,"stats":{"1":748,"2":1242,"5":520,"8":498},"ilvl":545},"2":{"randPropPoints":1633,"weaponDamageMin":9882,"weaponDamageMax":18353,"stats":{"1":779,"2":1288,"5":541,"8":518},"ilvl":549}}}, {"id":97187,"name":"Refurbished Band of Jin","icon":"inv_jewelry_ring_44","type":11,"phase":3,"quality":4,"limitCategory":281,"sources":[{"rep":{"repFactionId":1387,"repLevel":8,"factionId":1}}],"factionRestriction":1,"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"1":501,"2":752,"7":339,"11":326},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"1":682,"2":1022,"7":461,"11":443},"ilvl":496}}}, {"id":97188,"name":"Restored Hexxer's Signet","icon":"inv_jewelry_ring_37","type":11,"phase":3,"quality":4,"limitCategory":281,"sources":[{"rep":{"repFactionId":1387,"repLevel":8,"factionId":1}}],"factionRestriction":1,"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"5":318,"11":344},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"2":1022,"3":682,"5":432,"11":468},"ilvl":496}}}, {"id":97189,"name":"Ancient Primalist's Seal","icon":"inv_jewelry_ring_47","type":11,"phase":3,"quality":4,"limitCategory":281,"sources":[{"rep":{"repFactionId":1387,"repLevel":8,"factionId":1}}],"factionRestriction":1,"scalingOptions":{"-1":{"randPropPoints":953,"stats":{"2":752,"3":501,"4":277,"7":368},"ilvl":463},"0":{"randPropPoints":1296,"stats":{"2":1022,"3":682,"4":377,"7":500},"ilvl":496}}}, diff --git a/assets/locales/en/translation.json b/assets/locales/en/translation.json index 72f1131955..49c2e0985d 100644 --- a/assets/locales/en/translation.json +++ b/assets/locales/en/translation.json @@ -245,7 +245,7 @@ "description": "{{spec}} {{class}} simulations for World of Warcraft® Mists of Pandaria Classic.", "basic_bis_disclaimer": "

Preset gear lists are intended as rough approximations of BIS, and will often not be the absolute highest-DPS setup for you. Your optimal gear setup will depend on many factors; that's why we have a sim!

Items may also be omitted from the presets if they are highly contested and clearly better utilized on other classes, to encourage equitable gearing for the raid as a whole.

", "healing_sim_disclaimer": "*** WARNING - USE AT YOUR OWN RISK ***\n\nThe entire concept of a healing sim is EXPERIMENTAL. All results should be taken with an EXTREMELY large grain of salt.\n\nThis tool is currently more similar to a spreadsheet than a true sim. Options for specifying incoming damage profiles in order to have proper reactive rotations have not yet been added.", - "notice_local_download": { + "notice_native_download": { "title": "Did you know?", "message": "You can download our local sim to speed up your simulations significantly?", "download_button": "Download" @@ -776,7 +776,7 @@ "bulk_tab": { "title": "Batch (New)", "description": "Batch Simming is a new feature akin to the Top Gear sim on Raidbots.com that allows you to select multiple items and sim them find the best combinations.
This is an Alpha feature, so if you have feedback or find a bug, please report it!", - "download_local": "Download the local sim for faster results.", + "download_native": "Download the local sim for faster results.", "tabs": { "setup": "Setup", "results": "Results" @@ -800,14 +800,24 @@ "item_unique": "{{itemName}} is unique and already added." }, "settings": { - "combinations_count": "{{count}} Combinations", + "combinations_count": "{{amount}} Combinations", "combination_singular": "1 Combination", "iterations": "Iterations", - "fallback_gems": "Fallback Gems", "inherit_upgrades": { "label": "Inherit Upgrades", "tooltip": "When enabled, items will inherit upgrades from the equipped item. Otherwise, items will be simmed without any upgrades." }, + "use_legacy_bulk_sim": { + "label": "Use legacy single-stage sim", + "tooltip": "By default, Bulk Sim runs large batches in multiple stages: a low-iteration pass to find likely contenders, a medium-iteration refinement pass, and a final high-iteration pass for the best remaining gear sets. Enable this only to force the legacy high-stage-only behavior." + }, + "required_set_bonuses": { + "label": "Required Set Bonuses", + "none": "No requirement", + "require_2p": "Require 2P", + "require_4p": "Require 4P", + "available_pieces": "({{count}} available)" + }, "freeze_ring": { "label": "Freeze ring slot", "tooltip": "Freeze one equipped ring to reduce combination counts" @@ -827,12 +837,17 @@ } }, "progress": { - "total_combinations": "{{count}} total combinations.", - "reforging_rounds": "Running reforges", + "building_candidate_gear_sets": "Building candidate gear sets", + "restoring_reforges_from_cache": "Restoring reforges from cache", + "reforging_iteration_rounds": "Running reforges", "baseline_round": "Running baseline round", "refining_rounds": "Running refining rounds", + "low_iteration_rounds": "Running low iteration rounds", + "medium_iteration_rounds": "Running medium iteration rounds", + "high_iteration_rounds": "Running high iteration rounds", "iterations_complete": "{{completed}} / {{total}}
iterations complete", - "seconds_remaining": "{{seconds}} seconds remaining" + "seconds_remaining": "{{seconds}} seconds remaining", + "time_remaining": "{{time}} remaining" }, "notifications": { "bulk_sim_cancelled": "Bulk sim cancelled.", @@ -853,9 +868,6 @@ "gear_equipped": "Batch gear equipped!", "current_gear": "Current Gear" }, - "gem_selector": { - "title": "Choose fallback Gem" - }, "import_modal": { "title": "Bag Item Import", "description_line1": "Import bag items from a JSON file, which can be created by the WowSimsExporter in-game AddOn.", @@ -2372,6 +2384,11 @@ "tooltip": "Change Reforge Optimizer settings", "use_soft_cap_breakpoints": "Use soft cap breakpoints", "force_stat_proc": "Force RoRo proc", + "relative_stat_cap_precision": "Precision", + "relative_stat_cap_precision_tooltip": "Higher precision finds a slightly better result but takes longer to calculate. Lower precision is much faster but less accurate.", + "precision_precise": "Precise", + "precision_balanced": "Balanced", + "precision_fast": "Fast", "any": "Any", "optimize_gems_tooltip": "Optimize gems and Reforges simultaneously.", "freeze_item_slots_tooltip": "Flag one or more item slots to be \"frozen\", which will prevent the optimizer from changing the Reforge or gems in that slot from their current settings. This can be useful for hybrid classes who use the same gear piece for multiple raid roles.", @@ -2391,13 +2408,11 @@ "enable_modification": "This will enable modification of the default EP weights and setting custom stat caps.", "modify_in_editor": "Ep weights can be modified in the Stat Weights editor.", "hard_cap_info": "If you want to hard cap a stat make sure to put the EP for that stat higher.", - "edit_weights": "Edit weights", + "edit_weights": "Change weights", "include_gems": "Include gems", "freeze_item_slots": "Freeze item slots", "include_eotbp_socket": "Include EotBP Socket", - "include_eotbp_socket_tooltip": "Allows the optimiser to also include the \"Eye of the Black Prince\" socket in the optimization.", - "limit_execution_time": "Limit execution time", - "limit_execution_time_tooltip": "If checked, the solver will error out if the total computation time exceeds 30 seconds. If unchecked, then total computation time will be capped at 1 hour instead." + "include_eotbp_socket_tooltip": "Allows the optimiser to also include the \"Eye of the Black Prince\" socket in the optimization." } }, "header": { diff --git a/assets/locales/fr/translation.json b/assets/locales/fr/translation.json index 6079a2bced..be6d0fe44e 100644 --- a/assets/locales/fr/translation.json +++ b/assets/locales/fr/translation.json @@ -245,7 +245,7 @@ "description": "Simulations {{class}} {{spec}} pour World of Warcraft® Mists of Pandaria Classic.", "basic_bis_disclaimer": "

Les listes d'équipement prédéfinies fournie sont approximatives du meilleur équipement possible, et ne seront souvent pas la configuration optimale pour vous. Votre configuration d'équipement optimale dépendra de nombreux facteurs ; c'est pourquoi nous avons un simulateur !

Les objets peuvent également être omis des préréglages s'ils sont très contestés et clairement mieux utilisés sur d'autres classes, pour encourager un équipement équitable pour le raid dans son ensemble.

", "healing_sim_disclaimer": "*** AVERTISSEMENT - UTILISEZ À VOS PROPRES RISQUES ***\n\nLe concept entier d'un simulateur de soins est EXPÉRIMENTAL. Tous les résultats doivent être pris avec un grain de sel EXTREMEMENT important.\n\nCet outil est actuellement plus similaire à une feuille de calcul qu'à un véritable simulateur. Les options pour spécifier les profils de dégâts entrants afin d'avoir des rotations réactives appropriées n'ont pas encore été ajoutées.", - "notice_local_download": { + "notice_native_download": { "title": "Le saviez-vous ?", "message": "Vous pouvez télécharger notre simulateur en local pour accélérer considérablement vos simulations ?", "download_button": "Télécharger" @@ -776,7 +776,7 @@ "bulk_tab": { "title": "Lot (Nouveau)", "description": "Simulation par lot est une nouvelle fonctionnalité similaire à la simulation Top Gear sur Raidbots.com qui vous permet de sélectionner plusieurs objets et de les simuler pour trouver les meilleures combinaisons.
C'est une fonctionnalité Alpha, donc si vous avez des commentaires ou trouvez un bug, veuillez le signaler !", - "download_local": "Téléchargez le simulateur en local pour des résultats plus rapides.", + "download_native": "Téléchargez le simulateur en local pour des résultats plus rapides.", "tabs": { "setup": "Configuration", "results": "Résultats" @@ -800,14 +800,24 @@ "item_unique": "{{itemName}} est unique et a déjà été ajouté." }, "settings": { - "combinations_count": "{{count}} Combinaisons", + "combinations_count": "{{amount}} Combinaisons", "combination_singular": "1 Combinaison", "iterations": "Itérations", - "fallback_gems": "Gemmes de secours", "inherit_upgrades": { "label": "Hériter des améliorations", "tooltip": "Lorsque cette option est activée, les objets hériteront des améliorations de l'objet équipé. Sinon, les objets seront simulés sans aucune amélioration." - }, + }, + "use_legacy_bulk_sim": { + "label": "Utiliser la simulation mono-étape héritée", + "tooltip": "Par défaut, Bulk Sim exécute les lots volumineux en plusieurs étapes : une passe à faible nombre d'itérations pour trouver les candidats prometteurs, une passe de raffinement à nombre moyen d'itérations, puis une passe finale à nombre élevé d'itérations pour les meilleurs ensembles restants. Activez cette option uniquement pour forcer l'ancien comportement avec une seule passe finale." + }, + "required_set_bonuses": { + "label": "Bonus d'ensemble requis", + "none": "Aucune exigence", + "require_2p": "Exiger 2P", + "require_4p": "Exiger 4P", + "available_pieces": "({{count}} disponibles)" + }, "freeze_ring": { "label": "Geler un emplacement d'anneau", "tooltip": "Geler un anneau équipé pour réduire le nombre de combinaisons" @@ -827,12 +837,17 @@ } }, "progress": { - "total_combinations": "{{count}} combinaisons totales.", - "reforging_rounds": "Exécution des reforges", + "building_candidate_gear_sets": "Création des ensembles d'équipement candidats", + "restoring_reforges_from_cache": "Restauration des reforges depuis le cache", + "reforging_iteration_rounds": "Exécution des reforges", "baseline_round": "Exécution du tour de référence", "refining_rounds": "Exécution des tours d'affinage", + "low_iteration_rounds": "Exécution des tours à faible itération", + "medium_iteration_rounds": "Exécution des tours à itération moyenne", + "high_iteration_rounds": "Exécution des tours à forte itération", "iterations_complete": "{{completed}} / {{total}}
itérations terminées", - "seconds_remaining": "{{seconds}} secondes restantes" + "seconds_remaining": "{{seconds}} secondes restantes", + "time_remaining": "Il reste {{time}}" }, "notifications": { "bulk_sim_cancelled": "Simulation par lot annulée.", @@ -853,9 +868,6 @@ "gear_equipped": "Équipement du lot équipé !", "current_gear": "Équipement actuel" }, - "gem_selector": { - "title": "Choisir la gemme par défaut" - }, "import_modal": { "title": "Importation d'objets de sac", "description_line1": "Importez des objets de sac à partir d'un fichier JSON, qui peut être créé par l'AddOn en jeu WowSimsExporter.", @@ -2373,6 +2385,11 @@ "tooltip": "Modifier les paramètres de l'Optimiseur de retouche", "use_soft_cap_breakpoints": "Utiliser les breakpoints de softcap", "force_stat_proc": "Forcer le proc RoRo", + "relative_stat_cap_precision": "Précision", + "relative_stat_cap_precision_tooltip": "Une précision plus élevée donne un résultat légèrement meilleur mais prend plus de temps à calculer. Une précision plus faible est beaucoup plus rapide mais moins précise.", + "precision_precise": "Précise", + "precision_balanced": "Équilibrée", + "precision_fast": "Rapide", "any": "N'importe lequel", "optimize_gems_tooltip": "Optimiser les gemmes et les retouches simultanément.", "freeze_item_slots_tooltip": "Marquer un ou plusieurs emplacements d'objets comme \"gelés\", ce qui empêchera l'optimiseur de modifier la retouche ou les gemmes dans cet emplacement de leurs paramètres actuels. Cela peut être utile pour les classes hybrides qui utilisent la même pièce d'équipement pour plusieurs rôles de raid.", @@ -2396,9 +2413,7 @@ "include_gems": "Inclure les gemmes", "freeze_item_slots": "Verrouiller certains emplacements", "include_eotbp_socket": "Inclure le socket EotBP", - "include_eotbp_socket_tooltip": "Permet à l'optimiseur d'inclure également le socket \"Œil du Prince Noir\" dans l'optimisation.", - "limit_execution_time": "Limiter le temps d'exécution", - "limit_execution_time_tooltip": "Si coché, le solveur se terminera en erreur si le temps de calcul total dépasse 30 secondes. Si décoché, le temps de calcul total sera plafonné à 1 heure." + "include_eotbp_socket_tooltip": "Permet à l'optimiseur d'inclure également le socket \"Œil du Prince Noir\" dans l'optimisation." } }, "header": { diff --git a/go.mod b/go.mod index 447a339ec9..63f6d4eb67 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 github.com/spf13/cobra v1.7.0 github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a + github.com/tetratelabs/wazero v1.11.0 golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 golang.org/x/sync v0.22.0 golang.org/x/text v0.24.0 @@ -25,7 +26,7 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/sys v0.33.0 // indirect + golang.org/x/sys v0.38.0 // indirect modernc.org/libc v1.65.7 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect diff --git a/go.sum b/go.sum index 9025980239..51c13b98a2 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a h1:SJy1Pu0eH1C29XwJucQo73FrleVK6t4kYz4NVhp34Yw= github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a/go.mod h1:DFSS3NAGHthKo1gTlmEcSBiZrRJXi28rLNd/1udP1c8= +github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA= +github.com/tetratelabs/wazero v1.11.0/go.mod h1:eV28rsN8Q+xwjogd7f4/Pp4xFxO7uOGbLcD/LzB1wiU= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= @@ -40,8 +42,8 @@ golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= diff --git a/makefile b/makefile index 211f49a0a5..fcd2686874 100644 --- a/makefile +++ b/makefile @@ -8,6 +8,8 @@ ASSETS := $(patsubst assets/%,$(OUT_DIR)/assets/%,$(ASSETS_INPUT)) rwildcard = $(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d)) GOROOT := $(shell go env GOROOT) UI_SRC := $(shell find ui -name '*.ts' -o -name '*.tsx' -o -name '*.scss' -o -name '*.html') +AUTO_GEN_FILES_TS := ui/core/player_classes/capabilities_auto_gen.ts ui/core/components/individual_sim_ui/bulk/constants_auto_gen.ts +AUTO_GEN_FILES_TS_DEPS := sim/core/character_constants.go sim/core/bulk/candidates.go tools/database/gen_character_constants_ts.go tools/database/gen_bulksim_constants.ts.go sim/core/proto/api.pb.go PAGE_INDECES := ui/death_knight/blood/index.html \ ui/death_knight/frost/index.html \ ui/death_knight/unholy/index.html \ @@ -54,6 +56,7 @@ $(OUT_DIR)/.dirstamp: \ $(OUT_DIR)/bundle/.dirstamp: \ $(UI_SRC) \ $(PAGE_INDECES) \ + $(AUTO_GEN_FILES_TS) \ vite.config.mts \ vite.build-workers.mts \ node_modules \ @@ -123,7 +126,7 @@ node_modules: package-lock.json # Generic rule for hosting any class directory .PHONY: host_% -host_%: $(OUT_DIR) node_modules +host_%: $(OUT_DIR) node_modules $(AUTO_GEN_FILES_TS) npx http-server $(OUT_DIR)/.. # Generic rule for building index.html for any class directory @@ -175,9 +178,9 @@ proto: sim/core/proto/api.pb.go ui/core/proto/api.ts wowsimmop: binary_dist devserver .PHONY: devserver -devserver: sim/core/proto/api.pb.go sim/web/main.go binary_dist/dist.go +devserver: sim/core/proto/api.pb.go sim/web/*.go binary_dist/dist.go @echo "Starting server compile now..." - @if go build -o wowsimmop$(BIN_EXT) ./sim/web/main.go ; then \ + @if go build -o wowsimmop$(BIN_EXT) ./sim/web ; then \ printf "\033[1;32mBuild Completed Successfully\033[0m\n"; \ else \ printf "\033[1;31mBUILD FAILED\033[0m\n"; \ @@ -193,7 +196,7 @@ ifeq ($(WATCH), 1) fi endif -rundevserver: air devserver +rundevserver: air devserver $(AUTO_GEN_FILES_TS) ifeq ($(WATCH), 1) npx tsx vite.build-workers.mts & npx vite build -m development --watch & ulimit -n 10240 && air -tmp_dir "/tmp" -build.include_ext "go,proto" -build.args_bin "--usefs=true --launch=false" -build.bin "./wowsimmop$(BIN_EXT)" -build.cmd "make devserver" -build.exclude_dir "assets,dist,node_modules,ui,tools" @@ -211,10 +214,10 @@ wowsimmop-windows.exe: wowsimmop mv ./cmd/wowsimcli/wowsimcli-windows.exe ./wowsimcli-windows.exe release: wowsimmop wowsimmop-windows.exe - GOOS=darwin GOARCH=amd64 GOAMD64=v2 go build -o wowsimmop-amd64-darwin -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web/main.go - GOOS=darwin GOARCH=arm64 go build -o wowsimmop-arm64-darwin -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web/main.go + GOOS=darwin GOARCH=amd64 GOAMD64=v2 go build -o wowsimmop-amd64-darwin -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web + GOOS=darwin GOARCH=arm64 go build -o wowsimmop-arm64-darwin -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web GOOS=darwin GOARCH=arm64 go build -o wowsimcli-arm64-darwin --tags=with_db -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./cmd/wowsimcli/cli_main.go - GOOS=linux GOARCH=amd64 GOAMD64=v2 go build -o wowsimmop-amd64-linux -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web/main.go + GOOS=linux GOARCH=amd64 GOAMD64=v2 go build -o wowsimmop-amd64-linux -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./sim/web GOOS=linux GOARCH=amd64 GOAMD64=v2 go build -o wowsimcli-amd64-linux --tags=with_db -ldflags="-X 'main.Version=$(VERSION)' -s -w" ./cmd/wowsimcli/cli_main.go # Now compress into a zip because the files are getting large. zip wowsimmop-windows.exe.zip wowsimmop-windows.exe @@ -241,6 +244,15 @@ sim/core/proto/api.pb.go: proto/*.proto --go_opt=Mgoogle/protobuf/descriptor.proto=google.golang.org/protobuf/types/descriptorpb \ --go_out=./sim/core ./proto/*.proto +$(AUTO_GEN_FILES_TS): $(AUTO_GEN_FILES_TS_DEPS) + go run ./tools/database/gen_db -gen=go-to-ts + +.PHONY: go-to-ts +go-to-ts: $(AUTO_GEN_FILES_TS) + +.PHONY: character-constants-ts +character-constants-ts: go-to-ts + # Only useful for building the lib on a host platform that matches the target platform .PHONY: locallib locallib: sim/core/proto/api.pb.go @@ -285,6 +297,14 @@ sim/core/items/all_items.go: $(call rwildcard,tools/database,*.go) $(call rwildc curl -fL -o tools/db2tool/listfile.csv https://github.com/wowdev/wow-listfile/releases/latest/download/community-listfile.csv; } go run tools/database/gen_db/*.go -outDir=./assets -gen=db +# Syncs the HiGHS solver artifacts from the pinned npm `highs` package: copies its wasm to +# ui/worker/highs.wasm (which the Go backend go:embeds) and regenerates the minified-name map the +# wazero host looks its imports and exports up through. Run after changing the pinned version in +# package.json, and commit both outputs. TestHiGHSArtifactsMatchPinnedVersion fails if you don't. +.PHONY: update-highs +update-highs: node_modules + go run ./tools/gen_highs + .PHONY: test test: $(OUT_DIR)/lib.wasm binary_dist/dist.go GOARCH=amd64 go test --tags=with_db ./sim/... @@ -311,7 +331,7 @@ setup: # Host a local server, for dev testing .PHONY: host -host: air $(OUT_DIR)/.dirstamp node_modules +host: air $(OUT_DIR)/.dirstamp node_modules $(AUTO_GEN_FILES_TS) ifeq ($(WATCH), 1) ulimit -n 10240 && air -tmp_dir "/tmp" -build.include_ext "go,ts,js,html" -build.bin "npx" -build.args_bin "http-server $(OUT_DIR)/.." -build.cmd "make" -build.exclude_dir "dist,node_modules,tools" else @@ -320,7 +340,7 @@ else npx http-server $(OUT_DIR)/.. endif -devmode: air devserver $(PAGE_INDECES) +devmode: air devserver $(AUTO_GEN_FILES_TS) $(PAGE_INDECES) ifeq ($(WATCH), 1) npx tsx vite.build-workers.mts & npx vite serve --host & air -tmp_dir "/tmp" -build.include_ext "go,proto" -build.args_bin "--usefs=true --launch=false --wasm=false" -build.bin "./wowsimmop$(BIN_EXT)" -build.cmd "make devserver" -build.exclude_dir "assets,dist,node_modules,ui,tools" diff --git a/package-lock.json b/package-lock.json index a9cf2bda37..281bed00da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,18 +13,19 @@ "@types/pako": "^2.0.0", "ajv": "^8.17.1", "apexcharts": "^4.5.0", + "async": "^3.2.6", "bootstrap": "^5.3.7", "chart.js": "^4.5.0", "clsx": "^2.1.1", - "highs": "^1.8.0", + "highs": "1.15.2", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.0", "i18next-http-backend": "^3.0.2", + "idb": "^8.0.3", "pako": "^2.0.4", "tippy.js": "^6.3.7", "tsx-vanilla": "^1.2.0", - "uuid": "^11.1.0", - "yalps": "^0.5.6" + "uuid": "^11.1.0" }, "devDependencies": { "@bufbuild/buf": "1.55.1", @@ -33,6 +34,7 @@ "@protobuf-ts/plugin-framework": "2.9.0", "@protobuf-ts/protoc": "2.9.1", "@protobuf-ts/runtime": "2.9.1", + "@types/async": "^3.2.25", "@types/bootstrap": "^5.2.10", "@types/gtag.js": "^0.0.20", "@types/minimist": "^1.2.5", @@ -53,7 +55,8 @@ "vite": "^8.2.0", "vite-plugin-checker": "^0.14.5", "vite-plugin-i18next-loader": "^3.1.3", - "vite-plugin-stylelint": "^6.3.0" + "vite-plugin-stylelint": "^6.3.0", + "vite-plugin-watch-and-run": "^1.8.2" }, "engines": { "node": ">=22" @@ -488,39 +491,39 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", - "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", - "minimatch": "^3.1.5" + "minimatch": "^10.2.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/core": "^0.17.0" + "@eslint/core": "^1.2.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -528,98 +531,33 @@ "@types/json-schema": "^7.0.15" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", - "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.14.0", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.3.0", - "minimatch": "^3.1.5", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@eslint/js": { - "version": "9.39.5", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", - "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "dev": true, "license": "Apache-2.0", "peer": true, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.2.1", "levn": "^0.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@exodus/bytes": { @@ -718,6 +656,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@kitql/helpers": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/@kitql/helpers/-/helpers-0.8.15.tgz", + "integrity": "sha512-MAmVehlHoJanT0uqbZP08960P066uuu4GyKcsSXt3YxoBoVJNOvBY9cDNihWDtWCPG34FzGsXI1CcceRHKHLrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esm-env": "^1.2.2" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "funding": { + "url": "https://github.com/sponsors/jycouet" + } + }, "node_modules/@kurkle/color": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", @@ -2179,6 +2133,13 @@ "@svgdotjs/svg.js": "^3.2.4" } }, + "node_modules/@types/async": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/@types/async/-/async-3.2.25.tgz", + "integrity": "sha512-O6Th/DI18XjrL9TX8LO9F/g26qAz5vynmQqlXt/qLGrskvzCKXKc5/tATz3G2N6lM8eOf3M8/StB14FncAmocg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/bootstrap": { "version": "5.2.11", "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.11.tgz", @@ -2189,6 +2150,14 @@ "@popperjs/core": "^2.9.2" } }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", @@ -2728,15 +2697,17 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, "license": "MIT" }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/basic-auth": { "version": "2.0.1", @@ -2771,14 +2742,16 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/braces": { @@ -3339,34 +3312,34 @@ } }, "node_modules/eslint": { - "version": "9.39.5", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", - "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.1.tgz", + "integrity": "sha512-wqA7W2jbsC/BnV9Iv1UZpKVFkO1AdNoSmYW8NWG4HNOBbkAMvIqDZ27pI2f07dqn583NcIC44ckjAcOXDL1QbQ==", "dev": true, "license": "MIT", "peer": true, + "workspaces": [ + "packages/*" + ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.2", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.6", - "@eslint/js": "9.39.5", - "@eslint/plugin-kit": "^0.4.1", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", - "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", @@ -3376,8 +3349,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.5", + "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -3385,7 +3357,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" @@ -3410,32 +3382,34 @@ } }, "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "peer": true, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -3467,20 +3441,27 @@ "license": "MIT", "peer": true }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -3850,45 +3831,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", - "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -3930,20 +3872,6 @@ "which": "bin/which" } }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -4051,12 +3979,6 @@ "he": "bin/he" } }, - "node_modules/heap": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "license": "MIT" - }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -4195,6 +4117,12 @@ "cross-fetch": "4.1.0" } }, + "node_modules/idb": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.3.tgz", + "integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==", + "license": "ISC" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4229,6 +4157,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4707,14 +4645,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -4885,16 +4815,19 @@ } }, "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.8" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -4937,9 +4870,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.17", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", - "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -5389,9 +5322,9 @@ } }, "node_modules/postcss": { - "version": "8.5.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", - "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -5409,7 +5342,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -5431,6 +5364,37 @@ "postcss": "^8.4.21" } }, + "node_modules/postcss-bem-linter/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-bem-linter/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/postcss-bem-linter/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", @@ -5500,9 +5464,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz", + "integrity": "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==", "dev": true, "license": "MIT", "dependencies": { @@ -5543,13 +5507,6 @@ "signal-exit": "^3.0.2" } }, - "node_modules/proper-lockfile/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5620,9 +5577,9 @@ "license": "MIT" }, "node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", "engines": { @@ -5660,13 +5617,13 @@ "license": "MIT" }, "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/retry": { @@ -6257,17 +6214,11 @@ } }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, "node_modules/skin-tone": { "version": "2.0.0", @@ -6348,20 +6299,6 @@ "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint": { "version": "16.26.1", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", @@ -6506,16 +6443,6 @@ "node": ">= 4" } }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6869,16 +6796,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", - "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.23", - "rolldown": "~1.2.0", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -7059,6 +6986,39 @@ } } }, + "node_modules/vite-plugin-watch-and-run": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/vite-plugin-watch-and-run/-/vite-plugin-watch-and-run-1.8.2.tgz", + "integrity": "sha512-VAPmQxf+T4mrVNeaJv6u7q8Ra9ilmIWDW8cwrXKdY/QsVd0K9jUW4+AE0cwfe972yFjsIz5jk8eY/7TwFNXVAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kitql/helpers": "0.8.15", + "picomatch": "4.0.3" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "funding": { + "url": "https://github.com/sponsors/jycouet" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/vite-plugin-watch-and-run/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -7134,6 +7094,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7144,15 +7117,6 @@ "node": ">=10" } }, - "node_modules/yalps": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/yalps/-/yalps-0.5.7.tgz", - "integrity": "sha512-tPTQO+fYSKHmcibiL6fxrgLhARbVgd3KSS3p/SL0PJ3XOVEBKYTvorg5kzMV4PvZrgg9wTCvQ7F5hugIu4kAfA==", - "license": "MIT", - "dependencies": { - "heap": "^0.2.7" - } - }, "node_modules/yargs": { "version": "16.2.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.2.tgz", diff --git a/package.json b/package.json index 10148df3ba..1a3eca92cb 100644 --- a/package.json +++ b/package.json @@ -30,18 +30,19 @@ "@types/pako": "^2.0.0", "ajv": "^8.17.1", "apexcharts": "^4.5.0", + "async": "^3.2.6", "bootstrap": "^5.3.7", "chart.js": "^4.5.0", "clsx": "^2.1.1", - "highs": "^1.8.0", + "highs": "1.15.2", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.0", "i18next-http-backend": "^3.0.2", + "idb": "^8.0.3", "pako": "^2.0.4", "tippy.js": "^6.3.7", "tsx-vanilla": "^1.2.0", - "uuid": "^11.1.0", - "yalps": "^0.5.6" + "uuid": "^11.1.0" }, "devDependencies": { "@bufbuild/buf": "1.55.1", @@ -50,6 +51,7 @@ "@protobuf-ts/plugin-framework": "2.9.0", "@protobuf-ts/protoc": "2.9.1", "@protobuf-ts/runtime": "2.9.1", + "@types/async": "^3.2.25", "@types/bootstrap": "^5.2.10", "@types/gtag.js": "^0.0.20", "@types/minimist": "^1.2.5", @@ -70,7 +72,8 @@ "vite": "^8.2.0", "vite-plugin-checker": "^0.14.5", "vite-plugin-i18next-loader": "^3.1.3", - "vite-plugin-stylelint": "^6.3.0" + "vite-plugin-stylelint": "^6.3.0", + "vite-plugin-watch-and-run": "^1.8.2" }, "overrides": { "http-server": { diff --git a/proto/api.proto b/proto/api.proto index 0a232ee20b..5eb6dafcf1 100644 --- a/proto/api.proto +++ b/proto/api.proto @@ -406,6 +406,193 @@ message RaidSimResultCombinationRequest { bool debug = 2; } +// RPC BulkSim +enum BulkSimStage { + BulkSimStageUnknown = 0; + BulkSimStageError = 1; + BulkSimStageReforge = 2; + BulkSimStageLow = 3; + BulkSimStageMedium = 4; + BulkSimStageHigh = 5; + BulkSimStageComplete = 6; +} + +message BulkSimRequest { + string request_id = 1; + RaidSimRequest base_request = 2; + repeated BulkGearCandidate candidates = 3; + repeated BulkGearCandidate optimized_candidates = 4; + int32 top_results = 5; + int32 high_stage_iterations = 6; + ReforgeOptimizeRequest reforge_request = 7; + BulkSettings bulk_settings = 8; +} + +// RPC ReforgeOptimize +enum ReforgeOptimizeMode { + ReforgeOptimizeModeSingle = 0; + ReforgeOptimizeModeBulk = 1; +} + +message ReforgeOptimizeRequest { + string request_id = 1; + ReforgeOptimizeMode mode = 2; + Raid raid = 3; + UnitStats pre_cap_ep_weights = 4; + UnitStats undershoot_caps = 5; + ReforgeSettings settings = 6; + repeated StatCapConfig soft_caps = 7; + repeated ReforgeGemOption gem_options = 8; + bool debug = 9; +} + +message ReforgeOptimizeResult { + EquipmentSpec optimized_gear = 1; + PlayerStats optimized_player_stats = 2; + double score = 3; + int32 passes_done = 4; + ErrorOutcome error = 5; +} + +message ReforgeSettings { + reserved 3; + reserved "include_timeout"; + bool use_custom_ep_values = 1; + bool use_soft_cap_breakpoints = 2; + bool include_gems = 4; + bool include_eotb_gem_socket = 5; + bool freeze_item_slots = 6; + repeated ItemSlot frozen_item_slots = 7; + UIStat relative_stat_cap_stat = 8; + UnitStats stat_caps = 9; + UnitStats breakpoint_limits = 10; + // HiGHS relative MIP gap tolerance for the relative-stat-cap (RoRo) solve. The ordering + // constraints make that MIP slow to prove optimal, so a looser gap trades a tiny EP difference + // for a large speedup. Only meaningful when relative_stat_cap_stat is set. + double relative_stat_cap_mip_gap = 11; + // Membership, not weight: a stat listed at weight 0 is a legal but worthless target. + // Empty falls back to the non-zero pre-cap weights. + repeated Stat ep_stats = 12; +} + +message StatCapConfig { + UIStat unit_stat = 1; + + // Breakpoint values in ascending order + repeated double breakpoints = 2; + + // Should be either TypeSoftCap or TypeThreshold currently + StatCapType cap_type = 3; + + // postCapEPs[i] is the stat weight value when between breakpoints[i] + // and breakpoints[i+1]. Used only for TypeSoftCap and ignored for + // TypeThreshold. + repeated double post_cap_EPs = 4; +} + +// Represents a single attribute that is either a Stat or a PseudoStat. +// Currently used only within the StatCapConfig UI message for configuring Haste +// caps, and is therefore not versioned, since this message is not imported or +// exported from local storage or links. +message UIStat { + // Proto version at the time these stats were saved. If you make any + // breaking changes to the size, ordering, or interpretation of the + // stats or pseudoStats arrays, then make sure to increment the + // current_version_number option in the ProtoVersion message at the top + // of this file. + // A "breaking change" here is defined as anything that will break saved + // browser data or old sim links; the version need not be incremented if + // you simply append a new rarely-used PseudoStat to the end of the + // array, for example. + int32 api_version = 3; + + // Uniquely identifies the attribute + oneof unit_stat { + Stat stat = 1; + PseudoStat pseudo_stat = 2; + } +} + +// Keep in parity with UIGem in ui.proto while preserving the original +// ReforgeGemOption field numbers for wire compatibility. +message ReforgeGemOption { + int32 id = 1; + string name = 2; + GemColor color = 3; + + repeated double stats = 4; + + bool unique = 5; + Profession required_profession = 6; + bool disabled_in_challenge_mode = 7; + string icon = 8; + int32 phase = 9; + ItemQuality quality = 10; +} + +enum StatCapType { + TypeUnknown = 0; + + // Unused currently, but may be able to combine hard cap + soft cap + // configuration in the future. + TypeHardCap = 1; + + // Used for stats that exhibit significant EP changes after particular + // breakpoint values, but where the post-cap EP remains non-zero. + // Examples include Spell Haste for Demonology Warlocks and Expertise + // for tanks. + TypeSoftCap = 2; + + // Used for stats that exhibit discontinuities in value at discrete + // thresholds due to in-game rounding effects etc., but where the + // average value of the stat from one breakpoint to the next does not + // vary significantly. The most relevant example in early Cata Classic + // is Mastery Rating for Demonology Warlock, which gets floored in-game + // to the nearest integer % damage threshold. + TypeThreshold = 3; +} + +message BulkGearCandidate { + int32 index = 1; + EquipmentSpec gear = 2; +} + +message BulkSimResult { + BulkGearResult baseline = 1; + repeated BulkGearResult top_results = 2; + repeated BulkGearCandidate optimized_candidates = 3; + repeated BulkSimStageMetrics stage_metrics = 4; + BulkSimTimings timings = 5; + ErrorOutcome error = 6; +} + +message BulkGearResult { + int32 candidate_index = 1; + EquipmentSpec gear = 2; + DistributionMetrics dps_metrics = 3; +} + +message BulkSimStageMetrics { + BulkSimStage stage = 1; + int32 input_gear_sets = 2; + int32 survivors = 3; + int32 iterations = 4; + int32 concurrency = 5; + double duration_seconds = 6; + double target_error_pct = 7; + double observed_error_pct = 8; + double baseline_avg_dps = 9; + double best_candidate_avg_dps = 10; +} + +message BulkSimTimings { + double total_seconds = 1; + double simming_seconds = 2; + double low_stage_seconds = 3; + double medium_stage_seconds = 4; + double high_stage_seconds = 5; +} + message AbortRequest { string request_id = 1; // The request that should be aborted. } @@ -419,6 +606,7 @@ message AbortResponse { message ComputeStatsRequest { Raid raid = 1; Encounter encounter = 2; + bool skip_rotation = 3; // Skip APL rotation init and attack-table setup. Faster; suitable for stat-only reads. } message AuraStats { ActionID id = 1; @@ -579,25 +767,58 @@ message ProgressMetrics { // Partial Results double dps = 5; double hps = 9; + repeated BulkGearCandidate optimized_candidates = 13; // partial optimized candidates during bulk sim reforge stage // Final Results RaidSimResult final_raid_result = 6; // only set when completed StatWeightsResult final_weight_result = 7; + BulkSimResult final_bulk_sim_result = 10; + ReforgeOptimizeResult final_reforge_result = 11; + BulkSimStage bulk_stage = 12; } message BulkSettings { repeated ItemSpec items = 1; int32 iterations_per_combo = 2; - int32 default_red_gem = 3; - int32 default_blue_gem = 4; - int32 default_yellow_gem = 5; - int32 default_meta_gem = 6; - int32 default_prismatic_gem = 7; + reserved 3 to 7; bool inherit_upgrades = 8; + bool use_legacy_bulk_sim = 14; + int32 freeze_ring_slot = 9; int32 freeze_trinket_slot = 10; int32 freeze_weapon_slot = 11; repeated WeaponType freeze_mainhand_weapon_slots = 12; repeated WeaponType freeze_offhand_weapon_slots = 13; + repeated BulkRequiredSetBonus required_set_bonuses = 15; +} + +message BulkRequiredSetBonus { + int32 set_id = 1; + int32 pieces = 2; +} + +message BulkCombinationCountRequest { + RaidSimRequest base_request = 1; + BulkSettings bulk_settings = 2; +} + +message BulkCombinationCountResult { + int32 raw_combinations = 1; + int32 combinations = 2; + double iterations = 3; + bool use_legacy_bulk_sim = 4; + ErrorOutcome error = 5; +} + +message BulkCandidatesRequest { + RaidSimRequest base_request = 1; + BulkSettings bulk_settings = 2; +} + +message BulkCandidatesResult { + repeated BulkGearCandidate candidates = 1; + int32 raw_combinations = 2; + int32 combinations = 3; + ErrorOutcome error = 4; } diff --git a/proto/common.proto b/proto/common.proto index d684cda093..6b4a92bf0d 100644 --- a/proto/common.proto +++ b/proto/common.proto @@ -25,7 +25,7 @@ message ProtoVersion { // protos need to define an api_version field so that the UI code knows // to up-convert these protos to the new format whenever api_version is // missing (0) or lower than current_version_number. - option (current_version_number) = 3; + option (current_version_number) = 4; // The actual field value is only used within unit tests. int32 saved_version_number = 1; diff --git a/proto/db.proto b/proto/db.proto index af8f760481..afb41a03ee 100644 --- a/proto/db.proto +++ b/proto/db.proto @@ -24,6 +24,8 @@ message SimEnchant { ItemType type = 3; // Only needed for unit tests. repeated double stats = 4; repeated ItemEffect enchant_effects = 5; + EnchantType enchant_type = 6; + repeated ItemType extra_types = 7; } // Contains only the Item info needed by the sim. @@ -46,6 +48,9 @@ message SimItem { map scaling_options = 13; // keys are the all ItemLevelState variants that this item could potentially have repeated ItemEffect item_effects = 14; + int32 limit_category = 15; + bool unique = 16; + bool eotb_gem_socket = 17; } message Consumable { diff --git a/proto/ui.proto b/proto/ui.proto index 64729d7bf6..d2bb3efdc2 100644 --- a/proto/ui.proto +++ b/proto/ui.proto @@ -62,6 +62,7 @@ message UIItem { repeated double stats = 9; repeated GemColor gem_sockets = 10; repeated double socketBonus = 11; + bool eotb_gem_socket = 33; repeated int32 random_suffix_options = 26; int32 rand_prop_points = 27; @@ -361,79 +362,6 @@ message IndividualSimSettings { ReforgeSettings reforge_settings = 18; } -message ReforgeSettings { - bool use_custom_ep_values = 1; - bool use_soft_cap_breakpoints = 2; - bool include_timeout = 3; - bool include_gems = 4; - bool include_eotb_gem_socket = 5; - bool freeze_item_slots = 6; - repeated ItemSlot frozen_item_slots = 7; - UIStat relative_stat_cap_stat = 8; - UnitStats stat_caps = 9 ; - UnitStats breakpoint_limits = 10; -} - -message StatCapConfig { - UIStat unit_stat = 1; - - // Breakpoint values in ascending order - repeated double breakpoints = 2; - - // Should be either TypeSoftCap or TypeThreshold currently - StatCapType cap_type = 3; - - // postCapEPs[i] is the stat weight value when between breakpoints[i] - // and breakpoints[i+1]. Used only for TypeSoftCap and ignored for - // TypeThreshold. - repeated double post_cap_EPs = 4; -} - -// Represents a single attribute that is either a Stat or a PseudoStat. -// Currently used only within the StatCapConfig UI message for configuring Haste -// caps, and is therefore not versioned, since this message is not imported or -// exported from local storage or links. -message UIStat { - // Proto version at the time these stats were saved. If you make any - // breaking changes to the size, ordering, or interpretation of the - // stats or pseudoStats arrays, then make sure to increment the - // current_version_number option in the ProtoVersion message at the top - // of this file. - // A "breaking change" here is defined as anything that will break saved - // browser data or old sim links; the version need not be incremented if - // you simply append a new rarely-used PseudoStat to the end of the - // array, for example. - int32 api_version = 3; - - // Uniquely identifies the attribute - oneof unit_stat { - Stat stat = 1; - PseudoStat pseudo_stat = 2; - } -} - -enum StatCapType { - TypeUnknown = 0; - - // Unused currently, but may be able to combine hard cap + soft cap - // configuration in the future. - TypeHardCap = 1; - - // Used for stats that exhibit significant EP changes after particular - // breakpoint values, but where the post-cap EP remains non-zero. - // Examples include Spell Haste for Demonology Warlocks and Expertise - // for tanks. - TypeSoftCap = 2; - - // Used for stats that exhibit discontinuities in value at discrete - // thresholds due to in-game rounding effects etc., but where the - // average value of the stat from one breakpoint to the next does not - // vary significantly. The most relevant example in early Cata Classic - // is Mastery Rating for Demonology Warlock, which gets floored in-game - // to the nearest integer % damage threshold. - TypeThreshold = 3; -} - // Local storage data for gear settings. message SavedGearSet { EquipmentSpec gear = 1; diff --git a/schemas/translation.schema.json b/schemas/translation.schema.json index c63ea41ef7..b88d1a9a47 100644 --- a/schemas/translation.schema.json +++ b/schemas/translation.schema.json @@ -908,7 +908,7 @@ "healing_sim_disclaimer": { "type": "string" }, - "notice_local_download": { + "notice_native_download": { "type": "object", "properties": { "title": { @@ -998,7 +998,7 @@ "description", "basic_bis_disclaimer", "healing_sim_disclaimer", - "notice_local_download", + "notice_native_download", "crash_modal", "unlaunched", "notifications", @@ -2750,7 +2750,7 @@ "description": { "type": "string" }, - "download_local": { + "download_native": { "type": "string" }, "tabs": { @@ -2845,9 +2845,6 @@ "iterations": { "type": "string" }, - "fallback_gems": { - "type": "string" - }, "inherit_upgrades": { "type": "object", "properties": { @@ -2861,6 +2858,41 @@ "additionalProperties": false, "required": ["label", "tooltip"] }, + "use_legacy_bulk_sim": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["label", "tooltip"] + }, + "required_set_bonuses": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "none": { + "type": "string" + }, + "require_2p": { + "type": "string" + }, + "require_4p": { + "type": "string" + }, + "available_pieces": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["label", "none", "require_2p", "require_4p", "available_pieces"] + }, "freeze_ring": { "type": "object", "properties": { @@ -2922,8 +2954,9 @@ "combinations_count", "combination_singular", "iterations", - "fallback_gems", "inherit_upgrades", + "use_legacy_bulk_sim", + "required_set_bonuses", "freeze_ring", "freeze_trinket", "freeze_weapon", @@ -2933,10 +2966,13 @@ "progress": { "type": "object", "properties": { - "total_combinations": { + "building_candidate_gear_sets": { + "type": "string" + }, + "restoring_reforges_from_cache": { "type": "string" }, - "reforging_rounds": { + "reforging_iteration_rounds": { "type": "string" }, "baseline_round": { @@ -2945,15 +2981,39 @@ "refining_rounds": { "type": "string" }, + "low_iteration_rounds": { + "type": "string" + }, + "medium_iteration_rounds": { + "type": "string" + }, + "high_iteration_rounds": { + "type": "string" + }, "iterations_complete": { "type": "string" }, "seconds_remaining": { "type": "string" + }, + "time_remaining": { + "type": "string" } }, "additionalProperties": false, - "required": ["total_combinations", "reforging_rounds", "baseline_round", "refining_rounds", "iterations_complete", "seconds_remaining"] + "required": [ + "building_candidate_gear_sets", + "restoring_reforges_from_cache", + "reforging_iteration_rounds", + "baseline_round", + "refining_rounds", + "low_iteration_rounds", + "medium_iteration_rounds", + "high_iteration_rounds", + "iterations_complete", + "seconds_remaining", + "time_remaining" + ] }, "notifications": { "type": "object", @@ -3016,16 +3076,6 @@ "additionalProperties": false, "required": ["run_simulation", "equip_button", "gear_equipped", "current_gear"] }, - "gem_selector": { - "type": "object", - "properties": { - "title": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["title"] - }, "import_modal": { "type": "object", "properties": { @@ -3047,7 +3097,7 @@ "required": [ "title", "description", - "download_local", + "download_native", "tabs", "actions", "search", @@ -3057,7 +3107,6 @@ "warning", "picker", "results", - "gem_selector", "import_modal" ] }, @@ -8352,6 +8401,21 @@ "force_stat_proc": { "type": "string" }, + "relative_stat_cap_precision": { + "type": "string" + }, + "relative_stat_cap_precision_tooltip": { + "type": "string" + }, + "precision_precise": { + "type": "string" + }, + "precision_balanced": { + "type": "string" + }, + "precision_fast": { + "type": "string" + }, "any": { "type": "string" }, @@ -8423,12 +8487,6 @@ }, "include_eotbp_socket_tooltip": { "type": "string" - }, - "limit_execution_time": { - "type": "string" - }, - "limit_execution_time_tooltip": { - "type": "string" } }, "additionalProperties": false, @@ -8460,9 +8518,7 @@ "include_gems", "freeze_item_slots", "include_eotbp_socket", - "include_eotbp_socket_tooltip", - "limit_execution_time", - "limit_execution_time_tooltip" + "include_eotbp_socket_tooltip" ] } }, diff --git a/sim/common/mop/trinkets_phase_4_54.go b/sim/common/mop/trinkets_phase_4_54.go index e288396916..d43b6765f9 100644 --- a/sim/common/mop/trinkets_phase_4_54.go +++ b/sim/common/mop/trinkets_phase_4_54.go @@ -47,6 +47,33 @@ type statAmplificationTrinketConfig struct { buff *buffConfig } +var MeleeAmplificationTrinketItemIDs = shared.ItemVersionMap{ + shared.ItemVersionLFR: 105111, + shared.ItemVersionNormal: 102305, + shared.ItemVersionHeroic: 104613, + shared.ItemVersionWarforged: 105360, + shared.ItemVersionHeroicWarforged: 105609, + shared.ItemVersionFlexible: 104862, +} + +var CasterAmplificationTrinketItemIDs = shared.ItemVersionMap{ + shared.ItemVersionLFR: 104924, + shared.ItemVersionNormal: 102293, + shared.ItemVersionHeroic: 104426, + shared.ItemVersionWarforged: 105173, + shared.ItemVersionHeroicWarforged: 105422, + shared.ItemVersionFlexible: 104675, +} + +var HealerAmplificationTrinketItemIDs = shared.ItemVersionMap{ + shared.ItemVersionLFR: 104976, + shared.ItemVersionNormal: 102299, + shared.ItemVersionHeroic: 104478, + shared.ItemVersionWarforged: 105225, + shared.ItemVersionHeroicWarforged: 105474, + shared.ItemVersionFlexible: 104727, +} + func init() { newReadinessTrinket := func(config *readinessTrinketConfig) { config.itemVersionMap.RegisterAll(func(version shared.ItemVersion, itemID int32, versionLabel string) { @@ -454,14 +481,7 @@ func init() { // (15% chance, 115 sec cooldown) (Proc chance: 15%, 1.917m cooldown) // Amplifies your Critical Strike damage and healing, Haste, Mastery, and Spirit by 1%. newStatAmplificationTrinket(&statAmplificationTrinketConfig{ - itemVersionMap: shared.ItemVersionMap{ - shared.ItemVersionLFR: 105111, - shared.ItemVersionNormal: 102305, - shared.ItemVersionHeroic: 104613, - shared.ItemVersionWarforged: 105360, - shared.ItemVersionHeroicWarforged: 105609, - shared.ItemVersionFlexible: 104862, - }, + itemVersionMap: MeleeAmplificationTrinketItemIDs, baseTrinketLabel: "Thok's Tail Tip", buff: &buffConfig{ auraLabel: "Determination", @@ -475,14 +495,7 @@ func init() { // (15% chance, 115 sec cooldown) (Proc chance: 15%, 1.917m cooldown) // Amplifies your Critical Strike damage and healing, Haste, Mastery, and Spirit by 1%. newStatAmplificationTrinket(&statAmplificationTrinketConfig{ - itemVersionMap: shared.ItemVersionMap{ - shared.ItemVersionLFR: 104924, - shared.ItemVersionNormal: 102293, - shared.ItemVersionHeroic: 104426, - shared.ItemVersionWarforged: 105173, - shared.ItemVersionHeroicWarforged: 105422, - shared.ItemVersionFlexible: 104675, - }, + itemVersionMap: CasterAmplificationTrinketItemIDs, baseTrinketLabel: "Purified Bindings of Immerseus", buff: &buffConfig{ auraLabel: "Expanded Mind", @@ -497,14 +510,7 @@ func init() { // (15% chance, 115 sec cooldown) (Proc chance: 15%, 1.917m cooldown) // Amplifies your Critical Strike damage and healing, Haste, Mastery, and Spirit by 1%. newStatAmplificationTrinket(&statAmplificationTrinketConfig{ - itemVersionMap: shared.ItemVersionMap{ - shared.ItemVersionLFR: 104976, - shared.ItemVersionNormal: 102299, - shared.ItemVersionHeroic: 104478, - shared.ItemVersionWarforged: 105225, - shared.ItemVersionHeroicWarforged: 105474, - shared.ItemVersionFlexible: 104727, - }, + itemVersionMap: HealerAmplificationTrinketItemIDs, baseTrinketLabel: "Prismatic Prison of Pride", buff: &buffConfig{ auraLabel: "Titanic Restoration", diff --git a/sim/core/TestProtoVersioning.results b/sim/core/TestProtoVersioning.results index e7ee4a6935..7010cbee66 100644 --- a/sim/core/TestProtoVersioning.results +++ b/sim/core/TestProtoVersioning.results @@ -1 +1 @@ -saved_version_number: 3 +saved_version_number: 4 diff --git a/sim/core/api.go b/sim/core/api.go index a24f09dd90..8acac4ee31 100644 --- a/sim/core/api.go +++ b/sim/core/api.go @@ -4,6 +4,7 @@ package core import ( "github.com/wowsims/mop/sim/core/proto" "github.com/wowsims/mop/sim/core/simsignals" + "github.com/wowsims/mop/sim/core/stats" ) /** @@ -15,7 +16,7 @@ func ComputeStats(csr *proto.ComputeStatsRequest) *proto.ComputeStatsResult { encounter = &proto.Encounter{} } - _, raidStats, encounterStats := NewEnvironment(csr.Raid, encounter, true) + _, raidStats, encounterStats := NewEnvironment(csr.Raid, encounter, !csr.SkipRotation, csr.SkipRotation) return &proto.ComputeStatsResult{ RaidStats: raidStats, @@ -23,6 +24,43 @@ func ComputeStats(csr *proto.ComputeStatsRequest) *proto.ComputeStatsResult { } } +// ComputeStatDependencies builds a character from the request and returns its finalized +// StatDependencyManager. This is lightweight compared to ComputeStats — it builds the +// character and resolves all stat dependencies, but does not run the simulation. +func ComputeStatDependencies(request *proto.ComputeStatsRequest) *stats.StatDependencyManager { + _, sdm := ComputeStatsAndDeps(request) + return sdm +} + +// ComputeStatsAndDeps combines a skip-rotation ComputeStats with ComputeStatDependencies +// in a single NewEnvironment call. Use this when both are needed for the same raid to +// avoid building the character environment twice. +func ComputeStatsAndDeps(request *proto.ComputeStatsRequest) (*proto.ComputeStatsResult, *stats.StatDependencyManager) { + encounter := request.Encounter + if encounter == nil { + encounter = &proto.Encounter{} + } + env, raidStats, encounterStats := NewEnvironment(request.Raid, encounter, false, true) + result := &proto.ComputeStatsResult{ + RaidStats: raidStats, + EncounterStats: encounterStats, + } + if len(env.Raid.Parties) == 0 || len(env.Raid.Parties[0].Players) == 0 { + return result, &stats.StatDependencyManager{} + } + character := env.Raid.Parties[0].Players[0].GetCharacter() + // FillPlayerStats (called inside NewEnvironment) activates build-phase auras to + // compute FinalStats, then clears them — leaving dynamic deps (e.g. Bear Form's + // CritRating×1.5, Mark of the Wild's Agility×1.05, Stat Amplification's dynamic + // multiplier) disabled. Re-apply Base/Gear/Buffs auras so those multiplicative + // deps are active in the returned SDM. Talent deps used by the optimizer (e.g. + // Heart of the Wild's Agility×1.06) are added as static deps rather than via + // aura, so they don't need their phase re-activated here. + character.applyBuildPhaseAuras(CharacterBuildPhaseBase | CharacterBuildPhaseGear | CharacterBuildPhaseBuffs) + sdm := character.StatDependencyManager + return result, &sdm +} + /** * Returns stat weights and EP values, with standard deviations, for all stats. */ @@ -90,6 +128,13 @@ func RunRaidSimConcurrent(request *proto.RaidSimRequest) *proto.RaidSimResult { return runSimConcurrent(request, nil, simsignals.CreateSignals()) } +// Threading does not work in WASM! +// Exposed for internal packages that need concurrent sim execution with +// externally managed progress and abort signals. +func RunRaidSimConcurrentWithSignals(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, signals simsignals.Signals) *proto.RaidSimResult { + return runSimConcurrent(request, progress, signals) +} + // Threading does not work in WASM! func RunRaidSimConcurrentAsync(request *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, requestId string) { signals, err := simsignals.RegisterWithId(requestId) diff --git a/sim/core/bulk/batch.go b/sim/core/bulk/batch.go new file mode 100644 index 0000000000..4682a36968 --- /dev/null +++ b/sim/core/bulk/batch.go @@ -0,0 +1,148 @@ +package bulk + +import ( + "sync" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/simsignals" + googleProto "google.golang.org/protobuf/proto" +) + +type BulkSimStageTask struct { + Candidate BulkSimCandidate + Position int +} + +// Describes one pass of candidate sims: how much to run, where its progress sits +// within the stage, and which already-simmed metrics to fold into each result. +type bulkSimCandidateBatchConfig struct { + iterations int32 + seedOffset int32 + concurrency int + completedSimsBase int + completedIterationsBase int32 + emitter bulkSimStageProgressEmitter + carried *bulkSimStageCarryOver +} + +// Runs `iterations` for every candidate across `concurrency` workers, folding in any +// carried-over metrics, and returns the collected results. Both the initial stage pass +// and the adaptive extra-iteration passes go through here so their queueing, progress +// accounting, abort handling and merging cannot drift apart. +func runBulkSimCandidateBatch(request *proto.BulkSimRequest, candidates []BulkSimCandidate, config BulkSimStageConfig, batch bulkSimCandidateBatchConfig, signals simsignals.Signals) []*BulkSimCandidateResult { + jobs := make(chan BulkSimStageTask, len(candidates)) + // Results are written by position rather than collected from a channel: the slots + // are disjoint, so no synchronisation is needed and the output order is the + // candidate order instead of the completion order. + resultsByPosition := make([]*BulkSimCandidateResult, len(candidates)) + progressTracker := &BulkSimStageProgressTracker{ + emitter: batch.emitter, + totalCandidates: len(candidates), + iterations: batch.iterations, + completedSimsBeforeCandidates: batch.completedSimsBase, + completedIterationsBeforeCandidates: batch.completedIterationsBase, + completedIterationsByCandidate: make([]int32, len(candidates)), + } + var wg sync.WaitGroup + + for range max(1, batch.concurrency) { + wg.Go(func() { + for task := range jobs { + if signals.Abort.IsTriggered() { + return + } + + candidateResult := runSingleBulkSimCandidate(request, task.Candidate, batch.iterations, batch.seedOffset, signals, config.UseConcurrentSim, func(progressMetrics *proto.ProgressMetrics) { + progressTracker.reportCandidateProgress(task.Position, progressMetrics) + }) + candidateResult = mergeBulkSimCandidateResults(batch.carried.candidateResult(task.Candidate.Index), candidateResult) + progressTracker.reportCandidateComplete(task.Position, candidateResult) + resultsByPosition[task.Position] = candidateResult + if candidateResult.Error != nil { + signals.Abort.Trigger() + } + } + }) + } + + go func() { + defer close(jobs) + for idx, candidate := range candidates { + if signals.Abort.IsTriggered() { + return + } + jobs <- BulkSimStageTask{Candidate: candidate, Position: idx} + } + }() + wg.Wait() + + // Aborted runs leave gaps where a candidate never started. + return core.FilterSlice(resultsByPosition, func(candidateResult *BulkSimCandidateResult) bool { + return candidateResult != nil + }) +} + +// Runs one gear set start to finish with no progress reporting, for the paths that just +// need a number (the baseline of a run with no candidates). +func runSingleBulkSim(request *proto.BulkSimRequest, candidate BulkSimCandidate, iterations int32, signals simsignals.Signals) *BulkSimCandidateResult { + return runSingleBulkSimCandidate(request, candidate, iterations, 0, signals, false, nil) +} + +// Runs `iterations` for one gear set, starting the RNG `seedOffset` iterations into the +// sequence so a segment can extend an earlier run instead of repeating it. +func runSingleBulkSimCandidate(request *proto.BulkSimRequest, candidate BulkSimCandidate, iterations int32, seedOffset int32, signals simsignals.Signals, useConcurrentSim bool, progressCallback func(*proto.ProgressMetrics)) *BulkSimCandidateResult { + if signals.Abort.IsTriggered() { + return &BulkSimCandidateResult{Candidate: candidate, Error: bulkSimAbortedError()} + } + + simRequest := googleProto.Clone(request.BaseRequest).(*proto.RaidSimRequest) + simRequest.SimOptions.Iterations = iterations + simRequest.SimOptions.RandomSeed += int64(seedOffset) + simRequest.SimOptions.DebugFirstIteration = false + simRequest.SimOptions.Debug = false + // Every candidate runs the same seed sequence, so keeping the per-iteration values + // lets culling compare paired differences instead of marginal errors. + simRequest.SimOptions.SaveAllValues = true + + player, err := getBulkSimPlayer(simRequest.Raid) + if err != "" { + return &BulkSimCandidateResult{Candidate: candidate, Error: &proto.ErrorOutcome{Message: err}} + } + player.Equipment = googleProto.Clone(candidate.Gear).(*proto.EquipmentSpec) + + var simProgress chan *proto.ProgressMetrics + var progressWg sync.WaitGroup + if progressCallback != nil && !simRequest.SimOptions.IsTest { + simProgress = make(chan *proto.ProgressMetrics, 16) + progressWg.Go(func() { + for progressMetrics := range simProgress { + progressCallback(progressMetrics) + } + }) + } + + var simResult *proto.RaidSimResult + if useConcurrentSim { + simResult = core.RunRaidSimConcurrentWithSignals(simRequest, simProgress, signals) + } else { + simResult = core.RunSim(simRequest, simProgress, signals) + } + if simProgress != nil { + progressWg.Wait() + } + if simResult == nil { + return &BulkSimCandidateResult{Candidate: candidate, Error: &proto.ErrorOutcome{Message: "Bulk sim did not return a result"}} + } + if simResult.Error != nil { + if simResult.Error.Type == proto.ErrorOutcomeType_ErrorOutcomeAborted && simResult.Error.Message == "" { + return &BulkSimCandidateResult{Candidate: candidate, Error: bulkSimAbortedError()} + } + return &BulkSimCandidateResult{Candidate: candidate, Error: simResult.Error} + } + + return &BulkSimCandidateResult{ + Candidate: candidate, + DpsMetrics: cleanBulkSimDpsMetrics(simResult.RaidMetrics.Dps), + } +} diff --git a/sim/core/bulk/bulk_sim.go b/sim/core/bulk/bulk_sim.go new file mode 100644 index 0000000000..e62ef29973 --- /dev/null +++ b/sim/core/bulk/bulk_sim.go @@ -0,0 +1,235 @@ +package bulk + +import ( + "log" + "time" + + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/simsignals" +) + +const ( + bulkSimDefaultTopResults = 5 + bulkSimMinCombinations = 20 + bulkSimCullingCoefficient = 1.35 + bulkSimLowStageConcurrencyFactor = 2 + bulkSimCombinationLogMin float64 = 10 + bulkSimMaxAdaptivePasses = 2 + bulkSimAdaptiveMaxIterationMultiplier = 4 + bulkSimSurvivorSoftCapMultiplier = 2 + bulkSimLowStageSurvivorScaleReference = 1000 + bulkSimMediumStageSurvivorScaleReference = 100 + bulkSimProgressThrottle = 100 * time.Millisecond +) + +type BulkSimCandidate struct { + Index int32 + Gear *proto.EquipmentSpec +} + +type BulkSimCandidateResult struct { + Candidate BulkSimCandidate + DpsMetrics *proto.DistributionMetrics + Error *proto.ErrorOutcome +} + +func BulkSim(request *proto.BulkSimRequest) *proto.BulkSimResult { + return runBulkSim(request, nil, simsignals.CreateSignals()) +} + +func BulkSimAsync(request *proto.BulkSimRequest, progress chan *proto.ProgressMetrics, requestId string) { + signals, err := simsignals.RegisterWithId(requestId) + if err != nil { + progress <- &proto.ProgressMetrics{ + BulkStage: proto.BulkSimStage_BulkSimStageError, + FinalBulkSimResult: &proto.BulkSimResult{ + Error: &proto.ErrorOutcome{Message: "Couldn't register for signal API: " + err.Error()}, + }, + } + close(progress) + return + } + + go func() { + defer simsignals.UnregisterId(requestId) + defer close(progress) + + result := runBulkSim(request, progress, signals) + if result != nil && result.Error != nil && result.Error.Type == proto.ErrorOutcomeType_ErrorOutcomeAborted { + log.Printf("[Bulk Sim] Cancelled") + } + progress <- &proto.ProgressMetrics{ + BulkStage: proto.BulkSimStage_BulkSimStageComplete, + FinalBulkSimResult: result, + } + }() +} + +func runBulkSim(request *proto.BulkSimRequest, progress chan *proto.ProgressMetrics, signals simsignals.Signals) *proto.BulkSimResult { + startedAt := time.Now() + + if err := validateBulkSimRequest(request); err != "" { + return &proto.BulkSimResult{Error: &proto.ErrorOutcome{Message: err}} + } + + candidates := make([]BulkSimCandidate, 0, len(request.Candidates)) + for _, candidate := range request.Candidates { + if candidate == nil || candidate.Gear == nil { + continue + } + candidates = append(candidates, BulkSimCandidate{ + Index: candidate.Index, + Gear: candidate.Gear, + }) + } + + topResults := int(request.TopResults) + if topResults <= 0 { + topResults = bulkSimDefaultTopResults + } + + result := &proto.BulkSimResult{ + Timings: &proto.BulkSimTimings{}, + OptimizedCandidates: request.GetOptimizedCandidates(), + } + baselineGear := getBulkSimBaselineGear(request) + + if len(candidates) == 0 { + baselineResult := runSingleBulkSim(request, BulkSimCandidate{Index: -1, Gear: baselineGear}, request.BaseRequest.SimOptions.Iterations, signals) + if baselineResult.Error != nil { + result.Error = baselineResult.Error + return result + } + result.Baseline = bulkSimCandidateResultToProto(baselineResult) + result.Timings.TotalSeconds = time.Since(startedAt).Seconds() + result.Timings.SimmingSeconds = result.Timings.TotalSeconds + return result + } + + simmingStartedAt := time.Now() + var latestBaseline *BulkSimCandidateResult + var latestResults []*BulkSimCandidateResult + var carry *bulkSimStageCarryOver + useLegacyBulkSim := shouldUseLegacyBulkSim(request.GetBulkSettings(), request.HighStageIterations, len(candidates)) + // Culling intervals are corrected for how many candidates the run started with, + // not for how many are left: the survivors were themselves selected by the same + // noisy metric, so recomputing the correction on the shrinking set would weaken + // it exactly as the decisions become final. Iteration targeting deliberately + // keeps using the current stage's count - driving it from the original count + // inflates the final stage's iterations (measured +17.6%) without changing which + // gear set wins. + originalCandidateCount := len(candidates) + + for _, stageConfig := range bulkSimStageConfigs { + if signals.Abort.IsTriggered() { + result.Error = bulkSimAbortedError() + return result + } + + if useLegacyBulkSim && stageConfig.Stage != proto.BulkSimStage_BulkSimStageHigh { + continue + } + if !shouldRunBulkSimStage(stageConfig, len(candidates)) { + continue + } + + stageResult := runBulkSimStage(request, candidates, stageConfig, carry, progress, signals) + if stageResult.Baseline != nil && stageResult.Baseline.Error != nil { + result.Error = stageResult.Baseline.Error + return result + } + for _, candidateResult := range stageResult.Results { + if candidateResult.Error != nil { + result.Error = candidateResult.Error + return result + } + } + + latestBaseline = stageResult.Baseline + latestResults = stageResult.Results + carry = newBulkSimStageCarryOver(stageResult) + result.StageMetrics = append(result.StageMetrics, stageResult.Metrics) + setBulkSimStageTiming(result.Timings, stageConfig.Stage, stageResult.Metrics.DurationSeconds) + + if stageConfig.MaxSurvivors > 0 { + candidates = selectBulkSimSurvivors(stageResult.Results, stageResult.Baseline, stageResult.Iterations, stageConfig, originalCandidateCount) + stageResult.Metrics.Survivors = int32(len(candidates)) + } + log.Printf("[Bulk Sim] %s", formatBulkSimStageSummary("Finished", stageResult.Metrics, len(stageResult.Results))) + } + + // A cancel that lands after the last stage's workers returned would otherwise be + // reported as a completed run built from a partially simmed candidate set. + if signals.Abort.IsTriggered() { + result.Error = bulkSimAbortedError() + return result + } + + if latestBaseline == nil { + baselineResult := runSingleBulkSim(request, BulkSimCandidate{Index: -1, Gear: baselineGear}, request.BaseRequest.SimOptions.Iterations, signals) + if baselineResult.Error != nil { + result.Error = baselineResult.Error + return result + } + latestBaseline = baselineResult + } + if latestResults == nil { + latestResults = []*BulkSimCandidateResult{} + } + + result.Baseline = bulkSimCandidateResultToProto(latestBaseline) + for _, candidateResult := range topBulkSimResults(latestResults, topResults) { + result.TopResults = append(result.TopResults, bulkSimCandidateResultToProto(candidateResult)) + } + + result.Timings.SimmingSeconds = time.Since(simmingStartedAt).Seconds() + result.Timings.TotalSeconds = time.Since(startedAt).Seconds() + return result +} + +func validateBulkSimRequest(request *proto.BulkSimRequest) string { + if request == nil { + return "[Bulk sim] Request is empty" + } + if request.BaseRequest == nil { + return "[Bulk sim] Base request is empty" + } + if request.BaseRequest.Raid == nil { + return "[Bulk sim] Raid is empty" + } + if request.BaseRequest.SimOptions == nil { + return "[Bulk sim] Sim options are empty" + } + player, err := getBulkSimPlayer(request.BaseRequest.Raid) + if err != "" { + return err + } + if player.GetEquipment() == nil { + return "[Bulk sim] Baseline gear is empty" + } + return "" +} + +func getBulkSimPlayer(raid *proto.Raid) (*proto.Player, string) { + if raid == nil { + return nil, "[Bulk Sim] Raid is empty" + } + if len(raid.Parties) == 0 || raid.Parties[0] == nil || len(raid.Parties[0].Players) == 0 { + return nil, "[Bulk Sim] First party has no players" + } + + player := raid.Parties[0].Players[0] + if player == nil || player.Class == proto.Class_ClassUnknown { + return nil, "[Bulk Sim] First player is empty" + } + + return player, "" +} + +func getBulkSimBaselineGear(request *proto.BulkSimRequest) *proto.EquipmentSpec { + player, _ := getBulkSimPlayer(request.GetBaseRequest().GetRaid()) + if player == nil { + return nil + } + return player.GetEquipment() +} diff --git a/sim/core/bulk/bulk_sim_test.go b/sim/core/bulk/bulk_sim_test.go new file mode 100644 index 0000000000..1e0ca287e1 --- /dev/null +++ b/sim/core/bulk/bulk_sim_test.go @@ -0,0 +1,269 @@ +package bulk + +import ( + "math" + "testing" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func TestGetBulkSimStageMaxSurvivorsScalesLowStage(t *testing.T) { + lowStageConfig := BulkSimStageConfig{ + Stage: proto.BulkSimStage_BulkSimStageLow, + MaxSurvivors: 100, + } + + testCases := []struct { + name string + candidateCount int + want int + }{ + {name: "below reference", candidateCount: 863, want: 100}, + {name: "at reference", candidateCount: 1000, want: 100}, + {name: "large candidate set", candidateCount: 13000, want: 361}, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + if got := getBulkSimStageMaxSurvivors(lowStageConfig, testCase.candidateCount); got != testCase.want { + t.Fatalf("max survivors for %d candidates = %d, want %d", testCase.candidateCount, got, testCase.want) + } + }) + } +} + +func TestGetBulkSimStageMaxSurvivorsScalesMediumStage(t *testing.T) { + mediumStageConfig := BulkSimStageConfig{ + Stage: proto.BulkSimStage_BulkSimStageMedium, + MaxSurvivors: 25, + } + + testCases := []struct { + name string + candidateCount int + want int + }{ + {name: "below reference", candidateCount: 50, want: 25}, + {name: "at reference", candidateCount: 100, want: 25}, + {name: "large low-stage output", candidateCount: 722, want: 68}, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + if got := getBulkSimStageMaxSurvivors(mediumStageConfig, testCase.candidateCount); got != testCase.want { + t.Fatalf("max survivors for %d candidates = %d, want %d", testCase.candidateCount, got, testCase.want) + } + }) + } +} + +func TestGetBulkSimStageMaxSurvivorsKeepsHighStageUncapped(t *testing.T) { + highStageConfig := BulkSimStageConfig{ + Stage: proto.BulkSimStage_BulkSimStageHigh, + MaxSurvivors: 0, + } + + if got := getBulkSimStageMaxSurvivors(highStageConfig, 13000); got != 0 { + t.Fatalf("high max survivors = %d, want uncapped", got) + } +} + +func TestShouldUseLegacyBulkSim(t *testing.T) { + legacySettings := &proto.BulkSettings{UseLegacyBulkSim: true} + + testCases := []struct { + name string + settings *proto.BulkSettings + highIterations int32 + candidateCount int + want bool + }{ + {name: "forced legacy", settings: legacySettings, highIterations: 5000, candidateCount: 1000, want: true}, + {name: "below minimum candidates", settings: &proto.BulkSettings{}, highIterations: 5000, candidateCount: 19, want: true}, + {name: "multistage cheaper", settings: &proto.BulkSettings{}, highIterations: 5000, candidateCount: 1000, want: false}, + {name: "multistage not cheaper", settings: &proto.BulkSettings{}, highIterations: 1000, candidateCount: 20, want: true}, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + if got := shouldUseLegacyBulkSim(testCase.settings, testCase.highIterations, testCase.candidateCount); got != testCase.want { + t.Fatalf("shouldUseLegacyBulkSim(%d, %d) = %t, want %t", testCase.highIterations, testCase.candidateCount, got, testCase.want) + } + }) + } +} + +func TestEstimateBulkSimIterations(t *testing.T) { + settings := &proto.BulkSettings{} + + iterations, useLegacyBulkSim := estimateBulkSimIterations(settings, 5000, 1000) + if useLegacyBulkSim { + t.Fatalf("expected multistage bulk sim to be used") + } + if iterations != 331100 { + t.Fatalf("optimisation iterations = %d, want 331100", iterations) + } + + iterations, useLegacyBulkSim = estimateBulkSimIterations(settings, 1000, 20) + if !useLegacyBulkSim { + t.Fatalf("expected high-stage only run") + } + if iterations != 20000 { + t.Fatalf("high-stage-only iterations = %d, want 20000", iterations) + } +} + +func TestEstimateBulkSimIterationsAvoidsOverflow(t *testing.T) { + iterations, useLegacyBulkSim := estimateBulkSimIterations(&proto.BulkSettings{UseLegacyBulkSim: true}, 50000, 84240) + if !useLegacyBulkSim { + t.Fatalf("expected high-stage-only run") + } + if iterations != 4212000000 { + t.Fatalf("high-stage-only iterations = %d, want 4212000000", iterations) + } +} + +func TestMergeBulkSimDistributionMetrics(t *testing.T) { + metrics := newBulkSimTestDistributionMetrics([]float64{8, 12}) + metrics.MaxSeed = 12 + metrics.MinSeed = 8 + + additionalMetrics := newBulkSimTestDistributionMetrics([]float64{16, 20, 24}) + additionalMetrics.MaxSeed = 24 + additionalMetrics.MinSeed = 16 + + merged := mergeBulkSimDistributionMetrics(metrics, additionalMetrics) + + assertFloatEqual(t, "avg", merged.Avg, 16) + assertFloatEqual(t, "stdev", merged.Stdev, math.Sqrt(32)) + if merged.AggregatorData.N != 5 { + t.Fatalf("expected 5 merged samples, got %d", merged.AggregatorData.N) + } + assertFloatEqual(t, "sumSq", merged.AggregatorData.SumSq, 1440) + assertFloatEqual(t, "max", merged.Max, 24) + assertFloatEqual(t, "min", merged.Min, 8) + if merged.MaxSeed != 24 { + t.Fatalf("expected max seed 24, got %d", merged.MaxSeed) + } + if merged.MinSeed != 8 { + t.Fatalf("expected min seed 8, got %d", merged.MinSeed) + } +} + +// Extra iterations are folded into the pass so far via a carry-over keyed by candidate +// index, so a batch that completes out of order still merges each candidate with its +// own previous metrics. +func TestBulkSimCarryOverMergesByCandidateIndex(t *testing.T) { + results := []*BulkSimCandidateResult{ + newBulkSimTestCandidateResult(2, []float64{8, 12}), + newBulkSimTestCandidateResult(1, []float64{18, 22}), + } + additionalResults := []*BulkSimCandidateResult{ + newBulkSimTestCandidateResult(1, []float64{20, 24}), + newBulkSimTestCandidateResult(2, []float64{10, 14}), + } + + carry := bulkSimCarryOverFromResults(2, results[0], results) + merged := make([]*BulkSimCandidateResult, 0, len(additionalResults)) + for _, additionalResult := range additionalResults { + merged = append(merged, mergeBulkSimCandidateResults(carry.candidateResult(additionalResult.Candidate.Index), additionalResult)) + } + + if len(merged) != len(additionalResults) { + t.Fatalf("expected %d merged results, got %d", len(additionalResults), len(merged)) + } + if merged[0].Candidate.Index != 1 || merged[1].Candidate.Index != 2 { + t.Fatalf("expected result order [1, 2], got [%d, %d]", merged[0].Candidate.Index, merged[1].Candidate.Index) + } + assertFloatEqual(t, "candidate 1 avg", merged[0].DpsMetrics.Avg, 21) + assertFloatEqual(t, "candidate 2 avg", merged[1].DpsMetrics.Avg, 11) +} + +func newBulkSimTestCandidateResult(index int32, values []float64) *BulkSimCandidateResult { + return &BulkSimCandidateResult{ + Candidate: BulkSimCandidate{Index: index}, + DpsMetrics: newBulkSimTestDistributionMetrics(values), + } +} + +func newBulkSimTestDistributionMetrics(values []float64) *proto.DistributionMetrics { + metrics := &proto.DistributionMetrics{ + Min: math.MaxFloat64, + AggregatorData: &proto.AggregatorData{N: int32(len(values))}, + } + for idx, value := range values { + metrics.Avg += value + metrics.AggregatorData.SumSq += value * value + if value > metrics.Max { + metrics.Max = value + metrics.MaxSeed = int64(value) + } + if value < metrics.Min { + metrics.Min = value + metrics.MinSeed = int64(value) + } + if idx == len(values)-1 { + metrics.Avg /= float64(len(values)) + } + } + metrics.Stdev = math.Sqrt(metrics.AggregatorData.SumSq/float64(len(values)) - metrics.Avg*metrics.Avg) + return metrics +} + +func assertFloatEqual(t *testing.T, name string, actual float64, expected float64) { + t.Helper() + if !core.WithinToleranceFloat64(expected, actual, 1e-9) { + t.Fatalf("expected %s %.12f, got %.12f", name, expected, actual) + } +} + +// Candidates share their seed sequence, so a candidate that trails the leader on every +// single iteration is behind for real - the marginal standard errors overlap and would +// keep it, the paired difference culls it. +func TestBulkSimCullingUsesSharedNoise(t *testing.T) { + leaderValues := []float64{100, 300, 200, 400} + best := &proto.DistributionMetrics{Avg: 250, Stdev: math.Sqrt(12500), AllValues: leaderValues} + trailing := &proto.DistributionMetrics{Avg: 240, Stdev: math.Sqrt(12500), AllValues: []float64{90, 290, 190, 390}} + + const iterations int32 = 4 + const intervalMultiplier = 1.0 + bestLowerBound := best.Avg - bulkSimDpsError(best, iterations)*intervalMultiplier + + pairedError, ok := bulkSimPairedDpsError(trailing, best) + if !ok { + t.Fatal("expected the runs to be pairable") + } + assertFloatEqual(t, "paired error", pairedError, 0) + + if !bulkSimCandidateIsCulled(trailing, best, bestLowerBound, iterations, intervalMultiplier) { + t.Fatal("expected a candidate trailing on every iteration to be culled") + } + + // Without the per-iteration values the marginal intervals overlap, so it survives. + marginalTrailing := &proto.DistributionMetrics{Avg: trailing.Avg, Stdev: trailing.Stdev} + if bulkSimCandidateIsCulled(marginalTrailing, &proto.DistributionMetrics{Avg: best.Avg, Stdev: best.Stdev}, bestLowerBound, iterations, intervalMultiplier) { + t.Fatal("expected the marginal comparison to keep the candidate") + } +} + +func TestBulkSimPairedDpsErrorRequiresAlignedValues(t *testing.T) { + best := &proto.DistributionMetrics{AllValues: []float64{100, 300, 200, 400}} + + if _, ok := bulkSimPairedDpsError(&proto.DistributionMetrics{AllValues: []float64{100, 300}}, best); ok { + t.Fatal("expected differing iteration counts to be unpairable") + } + if _, ok := bulkSimPairedDpsError(&proto.DistributionMetrics{}, best); ok { + t.Fatal("expected missing values to be unpairable") + } + + // Independent noise leaves a real difference variance behind. + noisy := &proto.DistributionMetrics{AllValues: []float64{400, 200, 300, 100}} + pairedError, ok := bulkSimPairedDpsError(noisy, best) + if !ok { + t.Fatal("expected the runs to be pairable") + } + if pairedError <= 0 { + t.Fatalf("expected a positive paired error, got %f", pairedError) + } +} diff --git a/sim/core/bulk/candidates.go b/sim/core/bulk/candidates.go new file mode 100644 index 0000000000..071faef8a4 --- /dev/null +++ b/sim/core/bulk/candidates.go @@ -0,0 +1,172 @@ +package bulk + +import ( + "fmt" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func EnsureBulkSimCandidatesGenerated(request *proto.BulkSimRequest) error { + if request == nil || request.GetBulkSettings() == nil || len(request.GetCandidates()) > 0 { + return nil + } + if request.GetBaseRequest() == nil || request.GetBaseRequest().GetRaid() == nil { + return fmt.Errorf("bulk sim request is missing base raid") + } + player, playerErr := getPlayer(request) + if playerErr != nil { + return playerErr + } + if player.GetEquipment() == nil { + return fmt.Errorf("bulk sim request is missing player equipment") + } + if player.GetDatabase() != nil { + // Safe to run unserialized: core guards the shared database itself, so generation + // (minutes, for a large selection) does not block other bulk requests. + core.AddToDatabase(player.GetDatabase()) + } + generator, buildErr := newBulkSimCandidateGenerator(request, player) + if buildErr != nil { + return buildErr + } + candidates, buildErr := generator.buildCandidates() + if buildErr != nil { + return buildErr + } + request.Candidates = candidates + return nil +} + +func BulkCombinationCount(request *proto.BulkCombinationCountRequest) *proto.BulkCombinationCountResult { + if request == nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: "bulk combination count request is missing"}} + } + if request.GetBaseRequest() == nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: "bulk combination count request is missing base request"}} + } + if request.GetBulkSettings() == nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: "bulk combination count request is missing bulk settings"}} + } + + bulkRequest := &proto.BulkSimRequest{ + BaseRequest: request.GetBaseRequest(), + BulkSettings: request.GetBulkSettings(), + } + player, playerErr := getPlayer(bulkRequest) + if playerErr != nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: playerErr.Error()}} + } + if player.GetEquipment() == nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: "bulk combination count request is missing player equipment"}} + } + if player.GetDatabase() != nil { + // Safe to run unserialized: core guards the shared database itself, so generation + // (minutes, for a large selection) does not block other bulk requests. + core.AddToDatabase(player.GetDatabase()) + } + + generator, err := newBulkSimCandidateGenerator(bulkRequest, player) + if err != nil { + return &proto.BulkCombinationCountResult{Error: &proto.ErrorOutcome{Message: err.Error()}} + } + + rawCombinations := generator.rawCombinationsCount() + matchingCombinations := rawCombinations + if matcher := generator.buildRequiredSetBonusMatcher(generator.settings.GetRequiredSetBonuses()); matcher != nil { + counted, ok := matcher.countMatchingCombos() + if !ok { + counted = generator.scanMatchingCombos(rawCombinations, matcher) + } + matchingCombinations = counted + } + + return &proto.BulkCombinationCountResult{ + RawCombinations: int32(rawCombinations), + Combinations: int32(matchingCombinations), + Iterations: estimateIterationsForCountRequest(request.GetBulkSettings(), matchingCombinations), + UseLegacyBulkSim: shouldUseLegacyBulkSimForCountRequest(request.GetBulkSettings(), matchingCombinations), + } +} + +func (generator *bulkSimCandidateGenerator) scanMatchingCombos(rawCombinations int, matcher *bulkSimRequiredSetBonusComboMatcher) int { + matching := 0 + scratchCounts := make([]int, len(matcher.baseCounts)) + for comboIdx := range rawCombinations { + if generator.comboMatchesRequiredSetBonusMatcher(comboIdx, matcher, scratchCounts) { + matching++ + } + } + return matching +} + +func estimateIterationsForCountRequest(settings *proto.BulkSettings, candidateCount int) float64 { + iterations, _ := estimateBulkSimIterations(settings, settings.GetIterationsPerCombo(), candidateCount) + return float64(iterations) +} + +func shouldUseLegacyBulkSimForCountRequest(settings *proto.BulkSettings, candidateCount int) bool { + useLegacyBulkSim := shouldUseLegacyBulkSim(settings, settings.GetIterationsPerCombo(), candidateCount) + return useLegacyBulkSim +} + +func BulkCandidates(request *proto.BulkCandidatesRequest) *proto.BulkCandidatesResult { + if request == nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: "bulk candidates request is missing"}} + } + if request.GetBaseRequest() == nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: "bulk candidates request is missing base request"}} + } + if request.GetBulkSettings() == nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: "bulk candidates request is missing bulk settings"}} + } + + bulkRequest := &proto.BulkSimRequest{ + BaseRequest: request.GetBaseRequest(), + BulkSettings: request.GetBulkSettings(), + } + player, playerErr := getPlayer(bulkRequest) + if playerErr != nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: playerErr.Error()}} + } + if player.GetEquipment() == nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: "bulk candidates request is missing player equipment"}} + } + if player.GetDatabase() != nil { + // Safe to run unserialized: core guards the shared database itself, so generation + // (minutes, for a large selection) does not block other bulk requests. + core.AddToDatabase(player.GetDatabase()) + } + + generator, err := newBulkSimCandidateGenerator(bulkRequest, player) + if err != nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: err.Error()}} + } + + rawCombinations := generator.rawCombinationsCount() + candidates, err := generator.buildCandidates() + if err != nil { + return &proto.BulkCandidatesResult{Error: &proto.ErrorOutcome{Message: err.Error()}} + } + + return &proto.BulkCandidatesResult{ + Candidates: candidates, + RawCombinations: int32(rawCombinations), + Combinations: int32(len(candidates)), + } +} + +func getPlayer(request *proto.BulkSimRequest) (*proto.Player, error) { + if request == nil || request.GetBaseRequest() == nil || request.GetBaseRequest().GetRaid() == nil { + return nil, fmt.Errorf("bulk sim request is missing base raid") + } + parties := request.GetBaseRequest().GetRaid().GetParties() + if len(parties) == 0 || parties[0] == nil { + return nil, fmt.Errorf("bulk sim request raid is missing parties") + } + players := parties[0].GetPlayers() + if len(players) == 0 || players[0] == nil { + return nil, fmt.Errorf("bulk sim request raid is missing player") + } + return players[0], nil +} diff --git a/sim/core/bulk/candidates_test.go b/sim/core/bulk/candidates_test.go new file mode 100644 index 0000000000..13c64a595e --- /dev/null +++ b/sim/core/bulk/candidates_test.go @@ -0,0 +1,813 @@ +package bulk + +import ( + "fmt" + "slices" + "sort" + "strings" + "testing" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func addBulkTestEnchant(effectID int32, itemType proto.ItemType, extraTypes []proto.ItemType, enchantType proto.EnchantType) { + core.AddToDatabase(&proto.SimDatabase{ + Enchants: []*proto.SimEnchant{ + { + EffectId: effectID, + Type: itemType, + ExtraTypes: extraTypes, + EnchantType: enchantType, + }, + }, + }) +} + +func TestBulkSimEnchantAppliesToItem_UsesTypedWeaponRules(t *testing.T) { + twoHandEffectID := int32(910001) + staffEffectID := int32(910002) + shieldEffectID := int32(910003) + offHandEffectID := int32(910004) + + addBulkTestEnchant(twoHandEffectID, proto.ItemType_ItemTypeWeapon, nil, proto.EnchantType_EnchantTypeTwoHand) + addBulkTestEnchant(staffEffectID, proto.ItemType_ItemTypeWeapon, nil, proto.EnchantType_EnchantTypeStaff) + addBulkTestEnchant(shieldEffectID, proto.ItemType_ItemTypeWeapon, nil, proto.EnchantType_EnchantTypeShield) + addBulkTestEnchant(offHandEffectID, proto.ItemType_ItemTypeWeapon, nil, proto.EnchantType_EnchantTypeOffHand) + + twoHandSword := core.Item{ + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: proto.WeaponType_WeaponTypeSword, + HandType: proto.HandType_HandTypeTwoHand, + } + oneHandSword := core.Item{ + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: proto.WeaponType_WeaponTypeSword, + HandType: proto.HandType_HandTypeOneHand, + } + staff := core.Item{ + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: proto.WeaponType_WeaponTypeStaff, + HandType: proto.HandType_HandTypeTwoHand, + } + shield := core.Item{ + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: proto.WeaponType_WeaponTypeShield, + HandType: proto.HandType_HandTypeOffHand, + } + offHand := core.Item{ + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: proto.WeaponType_WeaponTypeOffHand, + HandType: proto.HandType_HandTypeOffHand, + } + + if !enchantAppliesToItem(twoHandEffectID, twoHandSword) { + t.Fatalf("expected two-hand enchant to apply to two-handed weapon") + } + if enchantAppliesToItem(twoHandEffectID, oneHandSword) { + t.Fatalf("expected two-hand enchant to not apply to one-handed weapon") + } + + if !enchantAppliesToItem(staffEffectID, staff) { + t.Fatalf("expected staff enchant to apply to staff") + } + if enchantAppliesToItem(staffEffectID, twoHandSword) { + t.Fatalf("expected staff enchant to not apply to non-staff weapon") + } + + if !enchantAppliesToItem(shieldEffectID, shield) { + t.Fatalf("expected shield enchant to apply to shield") + } + if enchantAppliesToItem(shieldEffectID, offHand) { + t.Fatalf("expected shield enchant to not apply to off-hand frill") + } + + if !enchantAppliesToItem(offHandEffectID, offHand) { + t.Fatalf("expected off-hand enchant to apply to off-hand frill") + } + if !enchantAppliesToItem(offHandEffectID, shield) { + t.Fatalf("expected off-hand enchant to apply to shield") + } + if enchantAppliesToItem(offHandEffectID, oneHandSword) { + t.Fatalf("expected off-hand enchant to not apply to one-handed weapon") + } +} + +func TestBulkSimEnchantAppliesToItem_UsesTypedRangedRules(t *testing.T) { + rangedEffectID := int32(910005) + weaponEffectID := int32(910006) + + addBulkTestEnchant(rangedEffectID, proto.ItemType_ItemTypeRanged, nil, proto.EnchantType_EnchantTypeNormal) + addBulkTestEnchant(weaponEffectID, proto.ItemType_ItemTypeWeapon, nil, proto.EnchantType_EnchantTypeNormal) + + bow := core.Item{ + Type: proto.ItemType_ItemTypeRanged, + RangedWeaponType: proto.RangedWeaponType_RangedWeaponTypeBow, + } + wand := core.Item{ + Type: proto.ItemType_ItemTypeRanged, + RangedWeaponType: proto.RangedWeaponType_RangedWeaponTypeWand, + } + gun := core.Item{ + Type: proto.ItemType_ItemTypeRanged, + RangedWeaponType: proto.RangedWeaponType_RangedWeaponTypeGun, + } + + if !enchantAppliesToItem(rangedEffectID, bow) { + t.Fatalf("expected ranged enchant to apply to bow") + } + if enchantAppliesToItem(rangedEffectID, wand) { + t.Fatalf("expected ranged enchant to not apply to wand") + } + if enchantAppliesToItem(weaponEffectID, gun) { + t.Fatalf("expected non-ranged enchant to not apply to non-wand ranged weapon") + } +} + +func TestBulkSimEnchantAppliesToItem_SupportsExtraTypes(t *testing.T) { + extraTypeEffectID := int32(910007) + addBulkTestEnchant(extraTypeEffectID, proto.ItemType_ItemTypeChest, []proto.ItemType{proto.ItemType_ItemTypeWrist}, proto.EnchantType_EnchantTypeNormal) + + wrist := core.Item{Type: proto.ItemType_ItemTypeWrist} + legs := core.Item{Type: proto.ItemType_ItemTypeLegs} + + if !enchantAppliesToItem(extraTypeEffectID, wrist) { + t.Fatalf("expected enchant to apply to item type listed in extra types") + } + if enchantAppliesToItem(extraTypeEffectID, legs) { + t.Fatalf("expected enchant to not apply to unrelated item type") + } +} + +func TestMergeGems_RehomesReplacedItemGems(t *testing.T) { + existing := core.Item{ + Type: proto.ItemType_ItemTypeHead, + GemSockets: []proto.GemColor{proto.GemColor_GemColorMeta, proto.GemColor_GemColorRed}, + Gems: []core.Gem{ + {ID: 1001, Color: proto.GemColor_GemColorMeta}, + {ID: 1002, Color: proto.GemColor_GemColorRed}, + }, + } + newItem := core.Item{ + Type: proto.ItemType_ItemTypeHead, + GemSockets: []proto.GemColor{proto.GemColor_GemColorMeta, proto.GemColor_GemColorBlue}, + } + + gems := mergeGems(existing, bulkSimCandidateOption{spec: &proto.ItemSpec{}}, newItem) + if len(gems) != 2 { + t.Fatalf("expected 2 gem slots, got %d", len(gems)) + } + if gems[0] != 1001 { + t.Fatalf("expected meta gem to persist in meta socket, got %d", gems[0]) + } + if gems[1] != 1002 { + t.Fatalf("expected red gem to be re-homed into the blue socket, got %d", gems[1]) + } +} + +func TestMergeGems_KeepsNonHeadGems(t *testing.T) { + existing := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorRed}, + Gems: []core.Gem{ + {ID: 2001, Color: proto.GemColor_GemColorRed}, + }, + } + newItem := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorRed}, + } + + gems := mergeGems(existing, bulkSimCandidateOption{spec: &proto.ItemSpec{}}, newItem) + if len(gems) != 1 { + t.Fatalf("expected 1 gem slot, got %d", len(gems)) + } + if gems[0] != 2001 { + t.Fatalf("expected gem to be carried over into the matching socket, got %d", gems[0]) + } +} + +func TestMergeGems_DropsGemsWithNoRoom(t *testing.T) { + existing := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorRed, proto.GemColor_GemColorBlue}, + Gems: []core.Gem{ + {ID: 3001, Color: proto.GemColor_GemColorRed}, + {ID: 3002, Color: proto.GemColor_GemColorBlue}, + }, + } + newItem := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorBlue}, + } + + gems := mergeGems(existing, bulkSimCandidateOption{spec: &proto.ItemSpec{}}, newItem) + if len(gems) != 1 { + t.Fatalf("expected 1 gem slot, got %d", len(gems)) + } + if gems[0] != 3001 { + t.Fatalf("expected the first carried gem to take the only socket, got %d", gems[0]) + } +} + +func TestMergeGems_BulkItemGemsWin(t *testing.T) { + existing := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorRed}, + Gems: []core.Gem{ + {ID: 4001, Color: proto.GemColor_GemColorRed}, + }, + } + newItem := core.Item{ + Type: proto.ItemType_ItemTypeHands, + GemSockets: []proto.GemColor{proto.GemColor_GemColorRed}, + } + option := bulkSimCandidateOption{spec: &proto.ItemSpec{Gems: []int32{4002}}} + + gems := mergeGems(existing, option, newItem) + if gems[0] != 4002 { + t.Fatalf("expected the gem picked for the bulk item to win, got %d", gems[0]) + } +} + +// Per-spec mainhand/offhand combination matrix. + +// Feeds every spec a pool of synthetic weapons covering every (weaponType, handType) shape the +// class can equip - ranged weapons included, since MoP puts bows and wands in the mainhand - +// then asserts the generated MH/OH pairs are all wearable in game and that no eligible item is +// dropped from the batch. Run with -v to print the per-spec combination table. + +// (weaponType, handType) pairs that actually occur in assets/database/db.json, so the synthetic +// pool cannot invent shapes like a one-handed off-hand frill. +var comboTableWeaponShapes = map[proto.WeaponType][]proto.HandType{ + proto.WeaponType_WeaponTypeAxe: {proto.HandType_HandTypeMainHand, proto.HandType_HandTypeOneHand, proto.HandType_HandTypeTwoHand}, + proto.WeaponType_WeaponTypeDagger: {proto.HandType_HandTypeMainHand, proto.HandType_HandTypeOneHand, proto.HandType_HandTypeOffHand}, + proto.WeaponType_WeaponTypeFist: {proto.HandType_HandTypeOneHand}, + proto.WeaponType_WeaponTypeMace: {proto.HandType_HandTypeMainHand, proto.HandType_HandTypeOneHand, proto.HandType_HandTypeTwoHand}, + proto.WeaponType_WeaponTypeOffHand: {proto.HandType_HandTypeOffHand}, + proto.WeaponType_WeaponTypePolearm: {proto.HandType_HandTypeTwoHand}, + proto.WeaponType_WeaponTypeShield: {proto.HandType_HandTypeOffHand}, + proto.WeaponType_WeaponTypeStaff: {proto.HandType_HandTypeTwoHand}, + proto.WeaponType_WeaponTypeSword: {proto.HandType_HandTypeMainHand, proto.HandType_HandTypeOneHand, proto.HandType_HandTypeTwoHand}, +} + +// Iteration order for the pool, so item ids and the printed table are stable. +var comboTableWeaponTypes = []proto.WeaponType{ + proto.WeaponType_WeaponTypeAxe, + proto.WeaponType_WeaponTypeDagger, + proto.WeaponType_WeaponTypeFist, + proto.WeaponType_WeaponTypeMace, + proto.WeaponType_WeaponTypeOffHand, + proto.WeaponType_WeaponTypePolearm, + proto.WeaponType_WeaponTypeShield, + proto.WeaponType_WeaponTypeStaff, + proto.WeaponType_WeaponTypeSword, +} + +var comboTableRangedTypes = []proto.RangedWeaponType{ + proto.RangedWeaponType_RangedWeaponTypeBow, + proto.RangedWeaponType_RangedWeaponTypeCrossbow, + proto.RangedWeaponType_RangedWeaponTypeGun, + proto.RangedWeaponType_RangedWeaponTypeThrown, + proto.RangedWeaponType_RangedWeaponTypeWand, +} + +var comboTableWeaponTypeNames = map[proto.WeaponType]string{ + proto.WeaponType_WeaponTypeAxe: "Axe", + proto.WeaponType_WeaponTypeDagger: "Dagger", + proto.WeaponType_WeaponTypeFist: "Fist", + proto.WeaponType_WeaponTypeMace: "Mace", + proto.WeaponType_WeaponTypeOffHand: "Frill", + proto.WeaponType_WeaponTypePolearm: "Polearm", + proto.WeaponType_WeaponTypeShield: "Shield", + proto.WeaponType_WeaponTypeStaff: "Staff", + proto.WeaponType_WeaponTypeSword: "Sword", +} + +var comboTableHandTypeNames = map[proto.HandType]string{ + proto.HandType_HandTypeMainHand: "MHonly", + proto.HandType_HandTypeOneHand: "1H", + proto.HandType_HandTypeOffHand: "OHonly", + proto.HandType_HandTypeTwoHand: "2H", +} + +var comboTableRangedTypeNames = map[proto.RangedWeaponType]string{ + proto.RangedWeaponType_RangedWeaponTypeBow: "Bow", + proto.RangedWeaponType_RangedWeaponTypeCrossbow: "Crossbow", + proto.RangedWeaponType_RangedWeaponTypeGun: "Gun", + proto.RangedWeaponType_RangedWeaponTypeThrown: "Thrown", + proto.RangedWeaponType_RangedWeaponTypeWand: "Wand", +} + +func comboTableWeaponID(weaponType proto.WeaponType, handType proto.HandType, copyIdx int) int32 { + return 990000 + int32(weaponType)*100 + int32(handType)*10 + int32(copyIdx) +} + +func comboTableRangedID(rangedType proto.RangedWeaponType, copyIdx int) int32 { + return 991000 + int32(rangedType)*10 + int32(copyIdx) +} + +// Two copies of every shape: a single copy can never produce a same-item-in-both-hands combo, +// so the pool would silently skip that half of the matrix. +const comboTableCopiesPerShape = 2 + +func registerComboTableItems() { + items := make([]*proto.SimItem, 0, 64) + for _, weaponType := range comboTableWeaponTypes { + for _, handType := range comboTableWeaponShapes[weaponType] { + for copyIdx := range comboTableCopiesPerShape { + items = append(items, &proto.SimItem{ + Id: comboTableWeaponID(weaponType, handType, copyIdx), + Name: fmt.Sprintf("%s-%s#%d", comboTableWeaponTypeNames[weaponType], comboTableHandTypeNames[handType], copyIdx), + Type: proto.ItemType_ItemTypeWeapon, + WeaponType: weaponType, + HandType: handType, + ScalingOptions: map[int32]*proto.ScalingItemProperties{0: {}}, + }) + } + } + } + for _, rangedType := range comboTableRangedTypes { + for copyIdx := range comboTableCopiesPerShape { + items = append(items, &proto.SimItem{ + Id: comboTableRangedID(rangedType, copyIdx), + Name: fmt.Sprintf("%s#%d", comboTableRangedTypeNames[rangedType], copyIdx), + Type: proto.ItemType_ItemTypeRanged, + RangedWeaponType: rangedType, + ScalingOptions: map[int32]*proto.ScalingItemProperties{0: {}}, + }) + } + } + core.AddToDatabase(&proto.SimDatabase{Items: items}) +} + +var comboTableSpecs = []struct { + spec proto.Spec + class proto.Class + label string +}{ + {proto.Spec_SpecBloodDeathKnight, proto.Class_ClassDeathKnight, "Blood Death Knight"}, + {proto.Spec_SpecFrostDeathKnight, proto.Class_ClassDeathKnight, "Frost Death Knight"}, + {proto.Spec_SpecUnholyDeathKnight, proto.Class_ClassDeathKnight, "Unholy Death Knight"}, + {proto.Spec_SpecBalanceDruid, proto.Class_ClassDruid, "Balance Druid"}, + {proto.Spec_SpecFeralDruid, proto.Class_ClassDruid, "Feral Druid"}, + {proto.Spec_SpecGuardianDruid, proto.Class_ClassDruid, "Guardian Druid"}, + {proto.Spec_SpecRestorationDruid, proto.Class_ClassDruid, "Restoration Druid"}, + {proto.Spec_SpecBeastMasteryHunter, proto.Class_ClassHunter, "Beast Mastery Hunter"}, + {proto.Spec_SpecMarksmanshipHunter, proto.Class_ClassHunter, "Marksmanship Hunter"}, + {proto.Spec_SpecSurvivalHunter, proto.Class_ClassHunter, "Survival Hunter"}, + {proto.Spec_SpecArcaneMage, proto.Class_ClassMage, "Arcane Mage"}, + {proto.Spec_SpecFireMage, proto.Class_ClassMage, "Fire Mage"}, + {proto.Spec_SpecFrostMage, proto.Class_ClassMage, "Frost Mage"}, + {proto.Spec_SpecBrewmasterMonk, proto.Class_ClassMonk, "Brewmaster Monk"}, + {proto.Spec_SpecMistweaverMonk, proto.Class_ClassMonk, "Mistweaver Monk"}, + {proto.Spec_SpecWindwalkerMonk, proto.Class_ClassMonk, "Windwalker Monk"}, + {proto.Spec_SpecHolyPaladin, proto.Class_ClassPaladin, "Holy Paladin"}, + {proto.Spec_SpecProtectionPaladin, proto.Class_ClassPaladin, "Protection Paladin"}, + {proto.Spec_SpecRetributionPaladin, proto.Class_ClassPaladin, "Retribution Paladin"}, + {proto.Spec_SpecDisciplinePriest, proto.Class_ClassPriest, "Discipline Priest"}, + {proto.Spec_SpecHolyPriest, proto.Class_ClassPriest, "Holy Priest"}, + {proto.Spec_SpecShadowPriest, proto.Class_ClassPriest, "Shadow Priest"}, + {proto.Spec_SpecAssassinationRogue, proto.Class_ClassRogue, "Assassination Rogue"}, + {proto.Spec_SpecCombatRogue, proto.Class_ClassRogue, "Combat Rogue"}, + {proto.Spec_SpecSubtletyRogue, proto.Class_ClassRogue, "Subtlety Rogue"}, + {proto.Spec_SpecElementalShaman, proto.Class_ClassShaman, "Elemental Shaman"}, + {proto.Spec_SpecEnhancementShaman, proto.Class_ClassShaman, "Enhancement Shaman"}, + {proto.Spec_SpecRestorationShaman, proto.Class_ClassShaman, "Restoration Shaman"}, + {proto.Spec_SpecAfflictionWarlock, proto.Class_ClassWarlock, "Affliction Warlock"}, + {proto.Spec_SpecDemonologyWarlock, proto.Class_ClassWarlock, "Demonology Warlock"}, + {proto.Spec_SpecDestructionWarlock, proto.Class_ClassWarlock, "Destruction Warlock"}, + {proto.Spec_SpecArmsWarrior, proto.Class_ClassWarrior, "Arms Warrior"}, + {proto.Spec_SpecFuryWarrior, proto.Class_ClassWarrior, "Fury Warrior"}, + {proto.Spec_SpecProtectionWarrior, proto.Class_ClassWarrior, "Protection Warrior"}, +} + +// classComboTableItems returns every synthetic weapon the class can actually equip somewhere, so +// the selection fed to the generator mirrors what the item search would let through. +func classComboTableItems(class proto.Class) []core.Item { + items := make([]core.Item, 0, 32) + for _, weaponType := range comboTableWeaponTypes { + if _, ok := core.ClassWeaponTypeCapabilities[class][weaponType]; !ok { + continue + } + for _, handType := range comboTableWeaponShapes[weaponType] { + for copyIdx := range comboTableCopiesPerShape { + items = append(items, core.NewItem(core.ItemSpec{ID: comboTableWeaponID(weaponType, handType, copyIdx)})) + } + } + } + for _, rangedType := range comboTableRangedTypes { + if !slices.Contains(core.ClassRangedWeaponTypeCapabilities[class], rangedType) { + continue + } + for copyIdx := range comboTableCopiesPerShape { + items = append(items, core.NewItem(core.ItemSpec{ID: comboTableRangedID(rangedType, copyIdx)})) + } + } + return items +} + +func itemsToSpecs(items []core.Item) []*proto.ItemSpec { + specs := make([]*proto.ItemSpec, 0, len(items)) + for _, item := range items { + specs = append(specs, &proto.ItemSpec{Id: item.ID}) + } + return specs +} + +// Mirrors newBulkSimCandidateGenerator's field setup for a player with empty base gear, so the +// matrix exercises the real initSelectedItems / getAllWeaponCombos path. +func newComboTableGenerator(class proto.Class, spec proto.Spec, selected []*proto.ItemSpec) *bulkSimCandidateGenerator { + return &bulkSimCandidateGenerator{ + settings: &proto.BulkSettings{Items: selected}, + playerClass: class, + playerSpec: spec, + playerCanDualWield: core.SpecCanDualWieldCapabilities[spec] && class != proto.Class_ClassHunter, + playerIsFuryWarrior: spec == proto.Spec_SpecFuryWarrior, + baseEquipment: core.Equipment{}, + selectedByBulkSlot: make(map[BulkSimItemSlot][]bulkSimCandidateOption), + groupedPairsBySlot: make(map[BulkSimItemSlot][][2]bulkSimCandidateOption), + frozenItems: make(map[BulkSimItemSlot]*core.Item), + weaponTypeFilters: make(map[proto.ItemSlot][]proto.WeaponType), + } +} + +// Titan's Grip is the only way a two-hander leaves the mainhand, and in MoP it covers every +// two-hander Fury can wield - spell 46917's subclass mask includes polearms and staves. +func titansGripAllows(spec proto.Spec) bool { + return spec == proto.Spec_SpecFuryWarrior +} + +// Real in-game equip rules, slot aware, kept separate from the production predicates on purpose so +// a wrong rule there does not silently become the expectation here. It also carries weight the +// production side cannot: the missing-item half of the matrix needs to know which hands an item +// *should* reach, which no generator rule implies. +func comboSlotLegal(item core.Item, class proto.Class, spec proto.Spec, slot proto.ItemSlot) bool { + if item.Type == proto.ItemType_ItemTypeRanged { + // MoP has no ranged slot: bows and wands are worn in the mainhand. + return slot == proto.ItemSlot_ItemSlotMainHand && + slices.Contains(core.ClassRangedWeaponTypeCapabilities[class], item.RangedWeaponType) + } + capability, ok := core.ClassWeaponTypeCapabilities[class][item.WeaponType] + if !ok { + return false + } + switch slot { + case proto.ItemSlot_ItemSlotMainHand: + switch item.HandType { + case proto.HandType_HandTypeMainHand, proto.HandType_HandTypeOneHand: + return true + case proto.HandType_HandTypeTwoHand: + return capability.CanUseTwoHand + } + return false + case proto.ItemSlot_ItemSlotOffHand: + switch item.HandType { + case proto.HandType_HandTypeOffHand: + // Shields and off-hand frills need no dual wield; an off-hand-only dagger does. + if item.WeaponType == proto.WeaponType_WeaponTypeShield || item.WeaponType == proto.WeaponType_WeaponTypeOffHand { + return true + } + return core.SpecCanDualWieldCapabilities[spec] + case proto.HandType_HandTypeOneHand: + return core.SpecCanDualWieldCapabilities[spec] + case proto.HandType_HandTypeTwoHand: + return capability.CanUseTwoHand && titansGripAllows(spec) + } + return false + } + return false +} + +func comboLabel(option *bulkSimCandidateOption) string { + if option == nil { + return "(empty)" + } + return option.item.Name +} + +// Returns "" when the combo is wearable, otherwise why it is not. +func comboIllegalReason(combo [2]*bulkSimCandidateOption, class proto.Class, spec proto.Spec) string { + mh, oh := combo[0], combo[1] + if mh != nil && !comboSlotLegal(mh.item, class, spec, proto.ItemSlot_ItemSlotMainHand) { + return fmt.Sprintf("%s cannot be worn in the mainhand", mh.item.Name) + } + if oh != nil && !comboSlotLegal(oh.item, class, spec, proto.ItemSlot_ItemSlotOffHand) { + return fmt.Sprintf("%s cannot be worn in the offhand", oh.item.Name) + } + if mh == nil || oh == nil { + return "" + } + if mh.item.Type == proto.ItemType_ItemTypeRanged && mh.item.RangedWeaponType != proto.RangedWeaponType_RangedWeaponTypeWand { + return fmt.Sprintf("%s occupies both hands, so %s cannot be worn", mh.item.Name, oh.item.Name) + } + if mh.item.HandType == proto.HandType_HandTypeTwoHand && !titansGripAllows(spec) { + return fmt.Sprintf("%s is two-handed, so %s cannot be worn", mh.item.Name, oh.item.Name) + } + return "" +} + +func handTypeShape(option *bulkSimCandidateOption) string { + if option == nil { + return "none" + } + if option.item.Type == proto.ItemType_ItemTypeRanged { + if option.item.RangedWeaponType == proto.RangedWeaponType_RangedWeaponTypeWand { + return "Wand" + } + return "Ranged" + } + switch option.item.HandType { + case proto.HandType_HandTypeOffHand: + if option.item.WeaponType == proto.WeaponType_WeaponTypeShield { + return "Shield" + } + return "OHonly" + } + if name, ok := comboTableHandTypeNames[option.item.HandType]; ok { + return name + } + return "unknown" +} + +func shapeOf(combo [2]*bulkSimCandidateOption) string { + return fmt.Sprintf("MH=%-6s OH=%s", handTypeShape(combo[0]), handTypeShape(combo[1])) +} + +func sortedShapeKeys(shapes map[string]int) []string { + keys := make([]string, 0, len(shapes)) + for key := range shapes { + keys = append(keys, key) + } + sort.Strings(keys) + return keys +} + +func TestWeaponComboMatrixPerSpec(t *testing.T) { + registerComboTableItems() + + type matrixRow struct { + label string + dualWield bool + pool int + mhSlot int + ohSlot int + handSlot int + combos int + illegal int + missing int + shapes map[string]int + illegalEgs []string + missingEgs []string + } + rows := make([]matrixRow, 0, len(comboTableSpecs)) + + for _, testCase := range comboTableSpecs { + pool := classComboTableItems(testCase.class) + generator := newComboTableGenerator(testCase.class, testCase.spec, itemsToSpecs(pool)) + if err := generator.initSelectedItems(); err != nil { + t.Fatalf("%s: initSelectedItems: %v", testCase.label, err) + } + + combos := generator.getAllWeaponCombos() + shapes := make(map[string]int, 16) + illegal := make([]string, 0) + usedInMainHand := make(map[int32]struct{}, len(pool)) + usedInOffHand := make(map[int32]struct{}, len(pool)) + for _, combo := range combos { + shapes[shapeOf(combo)]++ + if reason := comboIllegalReason(combo, testCase.class, testCase.spec); reason != "" { + illegal = append(illegal, reason) + } + if combo[0] != nil { + usedInMainHand[combo[0].item.ID] = struct{}{} + } + if combo[1] != nil { + usedInOffHand[combo[1].item.ID] = struct{}{} + } + } + + // Every item the spec can legally wear in a hand has to reach that hand: an item that + // never shows up in any combo was dropped from the batch entirely. + missing := make([]string, 0) + for _, item := range pool { + if comboSlotLegal(item, testCase.class, testCase.spec, proto.ItemSlot_ItemSlotMainHand) { + if _, ok := usedInMainHand[item.ID]; !ok { + missing = append(missing, item.Name+" (mainhand)") + } + } + if comboSlotLegal(item, testCase.class, testCase.spec, proto.ItemSlot_ItemSlotOffHand) { + if _, ok := usedInOffHand[item.ID]; !ok { + missing = append(missing, item.Name+" (offhand)") + } + } + } + + rows = append(rows, matrixRow{ + label: testCase.label, + dualWield: generator.playerCanDualWield, + pool: len(pool), + mhSlot: len(generator.selectedByBulkSlot[BulkSimItemSlotMainHand]), + ohSlot: len(generator.selectedByBulkSlot[BulkSimItemSlotOffHand]), + handSlot: len(generator.selectedByBulkSlot[BulkSimItemSlotHandWeapon]), + combos: len(combos), + illegal: len(illegal), + missing: len(missing), + shapes: shapes, + illegalEgs: illegal[:min(len(illegal), 6)], + missingEgs: missing[:min(len(missing), 6)], + }) + + if len(illegal) > 0 { + t.Errorf("%s: %d unwearable combos, e.g. %s", testCase.label, len(illegal), strings.Join(illegal[:min(len(illegal), 6)], "; ")) + } + if len(missing) > 0 { + t.Errorf("%s: %d equippable items never reached a combo, e.g. %s", testCase.label, len(missing), strings.Join(missing[:min(len(missing), 6)], "; ")) + } + } + + t.Logf("| %-20s | %-2s | %4s | %2s | %2s | %2s | %6s | %7s | %7s |", "spec", "DW", "pool", "MH", "OH", "HW", "combos", "illegal", "missing") + t.Logf("| %-20s | %-2s | %4s | %2s | %2s | %2s | %6s | %7s | %7s |", strings.Repeat("-", 20), "--", "----", "--", "--", "--", "------", "-------", "-------") + for _, row := range rows { + dualWield := "no" + if row.dualWield { + dualWield = "yes" + } + t.Logf("| %-20s | %-2s | %4d | %2d | %2d | %2d | %6d | %7d | %7d |", + row.label, dualWield, row.pool, row.mhSlot, row.ohSlot, row.handSlot, row.combos, row.illegal, row.missing) + } + for _, row := range rows { + t.Logf("=== %s (dualWield=%v, combos=%d)", row.label, row.dualWield, row.combos) + for _, key := range sortedShapeKeys(row.shapes) { + t.Logf(" %-24s x%d", key, row.shapes[key]) + } + for _, reason := range row.illegalEgs { + t.Logf(" ILLEGAL: %s", reason) + } + for _, name := range row.missingEgs { + t.Logf(" MISSING: %s", name) + } + } +} + +// Per-spec paired-slot (ring / trinket / both hands) matrix. + +// Covers the paired bulk slots for every spec: which same-slot pairings the candidate generator +// offers for two copies of one item, two items sharing a limit category, unique items, and plain +// distinct items. Run with -v to print the table. + +const ( + pairRingPlainID int32 = 992001 + pairRingOtherID int32 = 992002 + pairRingUniqueID int32 = 992003 + pairRingLimitAID int32 = 992004 + pairRingLimitBID int32 = 992005 + pairTrinketPlain int32 = 992011 + pairTrinketOther int32 = 992012 + pairTrinketUnique int32 = 992013 + pairWeaponPlainID int32 = 992021 + pairWeaponUniqID int32 = 992022 +) + +const pairLimitCategory int32 = 4242 + +// Every dual-wielding class can use one-handed axes, so the same-weapon-in-both-hands row is +// about the generator rather than about weapon proficiency. +const pairWeaponType = proto.WeaponType_WeaponTypeAxe + +func registerPairedSlotItems() { + item := func(id int32, itemType proto.ItemType, unique bool, limitCategory int32) *proto.SimItem { + return &proto.SimItem{ + Id: id, + Name: fmt.Sprintf("PairTest-%d", id), + Type: itemType, + Unique: unique, + LimitCategory: limitCategory, + ScalingOptions: map[int32]*proto.ScalingItemProperties{0: {}}, + } + } + weapon := func(id int32, unique bool) *proto.SimItem { + simItem := item(id, proto.ItemType_ItemTypeWeapon, unique, 0) + simItem.WeaponType = pairWeaponType + simItem.HandType = proto.HandType_HandTypeOneHand + return simItem + } + + core.AddToDatabase(&proto.SimDatabase{Items: []*proto.SimItem{ + item(pairRingPlainID, proto.ItemType_ItemTypeFinger, false, 0), + item(pairRingOtherID, proto.ItemType_ItemTypeFinger, false, 0), + item(pairRingUniqueID, proto.ItemType_ItemTypeFinger, true, 0), + item(pairRingLimitAID, proto.ItemType_ItemTypeFinger, false, pairLimitCategory), + item(pairRingLimitBID, proto.ItemType_ItemTypeFinger, false, pairLimitCategory), + item(pairTrinketPlain, proto.ItemType_ItemTypeTrinket, false, 0), + item(pairTrinketOther, proto.ItemType_ItemTypeTrinket, false, 0), + item(pairTrinketUnique, proto.ItemType_ItemTypeTrinket, true, 0), + weapon(pairWeaponPlainID, false), + weapon(pairWeaponUniqID, true), + }}) +} + +// Two copies of everything that may legitimately be doubled, one copy of the rest. +func pairedSlotSelection() []*proto.ItemSpec { + ids := []int32{ + pairRingPlainID, pairRingPlainID, + pairRingOtherID, + pairRingUniqueID, pairRingUniqueID, + pairRingLimitAID, pairRingLimitBID, + pairTrinketPlain, pairTrinketPlain, + pairTrinketOther, + pairTrinketUnique, pairTrinketUnique, + pairWeaponPlainID, pairWeaponPlainID, + pairWeaponUniqID, pairWeaponUniqID, + } + specs := make([]*proto.ItemSpec, 0, len(ids)) + for _, id := range ids { + specs = append(specs, &proto.ItemSpec{Id: id}) + } + return specs +} + +type pairKey struct { + first int32 + second int32 +} + +func newPairKey(first int32, second int32) pairKey { + if second < first { + first, second = second, first + } + return pairKey{first: first, second: second} +} + +func TestPairedSlotMatrixPerSpec(t *testing.T) { + registerPairedSlotItems() + + // asserted == false rows are printed but not enforced: whether a second copy of the same + // ring or trinket is offered is a product decision, not an equip rule. + cases := []struct { + label string + pair pairKey + want bool + asserted bool + }{ + {label: "ring: two copies of a plain item", pair: newPairKey(pairRingPlainID, pairRingPlainID), want: true, asserted: false}, + {label: "ring: one copy of a plain item", pair: newPairKey(pairRingOtherID, pairRingOtherID), want: false, asserted: true}, + {label: "ring: two copies of a unique item", pair: newPairKey(pairRingUniqueID, pairRingUniqueID), want: false, asserted: true}, + {label: "ring: two items sharing a limit category", pair: newPairKey(pairRingLimitAID, pairRingLimitBID), want: false, asserted: true}, + {label: "ring: two distinct plain items", pair: newPairKey(pairRingPlainID, pairRingOtherID), want: true, asserted: true}, + {label: "ring: distinct plain + unique items", pair: newPairKey(pairRingPlainID, pairRingUniqueID), want: true, asserted: true}, + {label: "trinket: two copies of a plain item", pair: newPairKey(pairTrinketPlain, pairTrinketPlain), want: true, asserted: false}, + {label: "trinket: two copies of a unique item", pair: newPairKey(pairTrinketUnique, pairTrinketUnique), want: false, asserted: true}, + {label: "trinket: two distinct plain items", pair: newPairKey(pairTrinketPlain, pairTrinketOther), want: true, asserted: true}, + } + + for _, testCase := range comboTableSpecs { + generator := newComboTableGenerator(testCase.class, testCase.spec, pairedSlotSelection()) + if err := generator.initSelectedItems(); err != nil { + t.Fatalf("%s: initSelectedItems: %v", testCase.label, err) + } + generator.initGroupedSlotPairs() + + offered := make(map[pairKey]bool) + for _, bulkSlot := range []BulkSimItemSlot{BulkSimItemSlotFinger, BulkSimItemSlotTrinket} { + for _, pair := range generator.groupedPairsBySlot[bulkSlot] { + offered[newPairKey(pair[0].spec.GetId(), pair[1].spec.GetId())] = true + } + } + // Both hands are a paired slot too, just built by getAllWeaponCombos instead. + weaponPairs := make(map[pairKey]bool) + for _, combo := range generator.getAllWeaponCombos() { + if combo[0] == nil || combo[1] == nil { + continue + } + weaponPairs[newPairKey(combo[0].spec.GetId(), combo[1].spec.GetId())] = true + } + + t.Logf("=== %s (dualWield=%v)", testCase.label, generator.playerCanDualWield) + for _, expectation := range cases { + got := offered[expectation.pair] + if expectation.asserted && got != expectation.want { + t.Errorf("%s: %s = %v, want %v", testCase.label, expectation.label, got, expectation.want) + } + t.Logf(" %-46s %v", expectation.label, got) + } + + // A 1H weapon may fill both hands only for a dual-wielder, and never when it is unique. + _, classUsesPairWeapon := core.ClassWeaponTypeCapabilities[testCase.class][pairWeaponType] + wantSameWeapon := generator.playerCanDualWield && classUsesPairWeapon + samePlain := weaponPairs[newPairKey(pairWeaponPlainID, pairWeaponPlainID)] + sameUnique := weaponPairs[newPairKey(pairWeaponUniqID, pairWeaponUniqID)] + if samePlain != wantSameWeapon { + t.Errorf("%s: two copies of a plain 1H weapon in both hands = %v, want %v", testCase.label, samePlain, wantSameWeapon) + } + if sameUnique { + t.Errorf("%s: two copies of a unique 1H weapon wielded in both hands", testCase.label) + } + t.Logf(" %-46s %v", "weapon: two copies of a plain 1H item", samePlain) + t.Logf(" %-46s %v", "weapon: two copies of a unique 1H item", sameUnique) + t.Logf(" pairs: finger=%d trinket=%d, weaponCombos=%d", + len(generator.groupedPairsBySlot[BulkSimItemSlotFinger]), + len(generator.groupedPairsBySlot[BulkSimItemSlotTrinket]), + len(generator.getAllWeaponCombos())) + } +} diff --git a/sim/core/bulk/carry_over.go b/sim/core/bulk/carry_over.go new file mode 100644 index 0000000000..5d4e097b44 --- /dev/null +++ b/sim/core/bulk/carry_over.go @@ -0,0 +1,85 @@ +package bulk + +// bulkSimStageCarryOver holds the previous stage's accumulated results so the next +// stage only has to sim the iteration delta. +type bulkSimStageCarryOver struct { + iterations int32 + baseline *BulkSimCandidateResult + byCandidate map[int32]*BulkSimCandidateResult +} + +func newBulkSimStageCarryOver(stageResult BulkSimStageResult) *bulkSimStageCarryOver { + if stageResult.Iterations <= 0 || stageResult.Baseline == nil || stageResult.Baseline.Error != nil || stageResult.Baseline.DpsMetrics == nil { + return nil + } + + byCandidate := make(map[int32]*BulkSimCandidateResult, len(stageResult.Results)) + for _, result := range stageResult.Results { + if result != nil && result.Error == nil && result.DpsMetrics != nil { + byCandidate[result.Candidate.Index] = result + } + } + return &bulkSimStageCarryOver{ + iterations: stageResult.Iterations, + baseline: stageResult.Baseline, + byCandidate: byCandidate, + } +} + +// covers reports whether every candidate has carried metrics. A partial carry-over +// would need per-candidate iteration counts, so the stage falls back to running the +// full count for everyone instead. +func (carry *bulkSimStageCarryOver) covers(candidates []BulkSimCandidate) bool { + if carry == nil { + return false + } + for _, candidate := range candidates { + if carry.byCandidate[candidate.Index] == nil { + return false + } + } + return true +} + +func (carry *bulkSimStageCarryOver) carriedIterations() int32 { + if carry == nil { + return 0 + } + return carry.iterations +} + +func (carry *bulkSimStageCarryOver) baselineResult() *BulkSimCandidateResult { + if carry == nil { + return nil + } + return carry.baseline +} + +func (carry *bulkSimStageCarryOver) candidateResult(index int32) *BulkSimCandidateResult { + if carry == nil { + return nil + } + return carry.byCandidate[index] +} + +func (carry *bulkSimStageCarryOver) results(candidates []BulkSimCandidate) []*BulkSimCandidateResult { + results := make([]*BulkSimCandidateResult, 0, len(candidates)) + for _, candidate := range candidates { + if result := carry.candidateResult(candidate.Index); result != nil { + results = append(results, result) + } + } + return results +} + +// Wraps an in-progress stage's results as a carry-over so an adaptive pass can merge +// its delta through the same path a later stage uses. +func bulkSimCarryOverFromResults(iterations int32, baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult) *bulkSimStageCarryOver { + byCandidate := make(map[int32]*BulkSimCandidateResult, len(results)) + for _, result := range results { + if result != nil { + byCandidate[result.Candidate.Index] = result + } + } + return &bulkSimStageCarryOver{iterations: iterations, baseline: baseline, byCandidate: byCandidate} +} diff --git a/sim/core/bulk/estimate.go b/sim/core/bulk/estimate.go new file mode 100644 index 0000000000..acb09673c9 --- /dev/null +++ b/sim/core/bulk/estimate.go @@ -0,0 +1,46 @@ +package bulk + +import ( + "github.com/wowsims/mop/sim/core/proto" +) + +func shouldUseLegacyBulkSim(settings *proto.BulkSettings, highStageIterations int32, candidateCount int) bool { + if settings != nil && settings.GetUseLegacyBulkSim() { + return true + } + if candidateCount < bulkSimMinCombinations { + return true + } + + fullRunIterations := int64(highStageIterations) * int64(candidateCount) + estimatedMultistageIterationsUpperBound := getBulkSimOptimisationIterationsUpperBound(highStageIterations, candidateCount) + return estimatedMultistageIterationsUpperBound >= fullRunIterations +} + +func getBulkSimOptimisationIterationsUpperBound(highStageIterations int32, candidateCount int) int64 { + remainingCandidates := candidateCount + var iterations int64 + + for _, stageConfig := range bulkSimStageConfigs { + if stageConfig.Stage == proto.BulkSimStage_BulkSimStageHigh { + break + } + if !shouldRunBulkSimStage(stageConfig, remainingCandidates) { + continue + } + + stageIterations := getBulkSimStageMinIterations(highStageIterations, stageConfig) + iterations += int64(stageIterations) * int64(remainingCandidates+1) + remainingCandidates = min(remainingCandidates, getBulkSimStageMaxSurvivors(stageConfig, remainingCandidates)) + } + + return iterations + int64(highStageIterations)*int64(remainingCandidates+1) +} + +func estimateBulkSimIterations(settings *proto.BulkSettings, highStageIterations int32, candidateCount int) (int64, bool) { + if shouldUseLegacyBulkSim(settings, highStageIterations, candidateCount) { + return int64(highStageIterations) * int64(candidateCount), true + } + + return getBulkSimOptimisationIterationsUpperBound(highStageIterations, candidateCount), false +} diff --git a/sim/core/bulk/generator.go b/sim/core/bulk/generator.go new file mode 100644 index 0000000000..3c37986df1 --- /dev/null +++ b/sim/core/bulk/generator.go @@ -0,0 +1,372 @@ +package bulk + +import ( + "fmt" + "math" + "slices" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + googleProto "google.golang.org/protobuf/proto" +) + +type bulkSimCandidateGenerator struct { + settings *proto.BulkSettings + baseEquipment core.Equipment + playerClass proto.Class + playerSpec proto.Spec + playerCanDualWield bool + playerIsFuryWarrior bool + challengeModeEnabled bool + selectedByBulkSlot map[BulkSimItemSlot][]bulkSimCandidateOption + groupedPairsBySlot map[BulkSimItemSlot][][2]bulkSimCandidateOption + comboItemsBySlot []bulkSimCandidateOption + comboSlotUsed []bool + inheritUpgrades bool + frozenItems map[BulkSimItemSlot]*core.Item + frozenWeaponSlot proto.ItemSlot + weaponTypeFilters map[proto.ItemSlot][]proto.WeaponType + weaponCombosCached [][2]*bulkSimCandidateOption + weaponCombosReady bool + weaponCopyCounts map[itemSpecCacheKey]int +} + +func newBulkSimCandidateGenerator(request *proto.BulkSimRequest, player *proto.Player) (*bulkSimCandidateGenerator, error) { + playerSpec, err := getPlayerSpec(player) + if err != nil { + return nil, err + } + playerCanDualWield := core.SpecCanDualWieldCapabilities[playerSpec] && player.GetClass() != proto.Class_ClassHunter + generator := &bulkSimCandidateGenerator{ + settings: request.GetBulkSettings(), + baseEquipment: core.ProtoToEquipment(player.GetEquipment()), + playerClass: player.GetClass(), + playerSpec: playerSpec, + playerCanDualWield: playerCanDualWield, + playerIsFuryWarrior: playerSpec == proto.Spec_SpecFuryWarrior, + challengeModeEnabled: player.GetChallengeMode(), + selectedByBulkSlot: make(map[BulkSimItemSlot][]bulkSimCandidateOption), + groupedPairsBySlot: make(map[BulkSimItemSlot][][2]bulkSimCandidateOption), + comboItemsBySlot: make([]bulkSimCandidateOption, int(core.NumItemSlots)), + comboSlotUsed: make([]bool, int(core.NumItemSlots)), + inheritUpgrades: request.GetBulkSettings().GetInheritUpgrades(), + frozenItems: make(map[BulkSimItemSlot]*core.Item), + weaponTypeFilters: map[proto.ItemSlot][]proto.WeaponType{ + proto.ItemSlot_ItemSlotMainHand: request.GetBulkSettings().GetFreezeMainhandWeaponSlots(), + proto.ItemSlot_ItemSlotOffHand: request.GetBulkSettings().GetFreezeOffhandWeaponSlots(), + }, + } + generator.initFrozenSettings() + if err := generator.initSelectedItems(); err != nil { + return nil, err + } + generator.initGroupedSlotPairs() + if err := generator.validateGroupedSlots(); err != nil { + return nil, err + } + return generator, nil +} + +func (generator *bulkSimCandidateGenerator) validateGroupedSlots() error { + for _, bulkSlot := range []BulkSimItemSlot{BulkSimItemSlotFinger, BulkSimItemSlotTrinket} { + if len(generator.selectedByBulkSlot[bulkSlot]) == 0 { + continue + } + if len(generator.groupedPairsBySlot[bulkSlot]) == 0 { + return fmt.Errorf("no equippable pair of items available for grouped bulk slot %d", bulkSlot) + } + } + return nil +} + +func (generator *bulkSimCandidateGenerator) buildCandidates() ([]*proto.BulkGearCandidate, error) { + rawCombinations := generator.rawCombinationsCount() + matcher := generator.buildRequiredSetBonusMatcher(generator.settings.GetRequiredSetBonuses()) + // Never reserve the whole raw space: it can be millions of entries, required-set + // filtering can drop output cardinality by orders of magnitude, and append grows + // geometrically from here anyway. + candidates := make([]*proto.BulkGearCandidate, 0, min(rawCombinations, maxBulkCandidatePreallocation)) + var scratchCounts []int + if matcher != nil { + scratchCounts = make([]int, len(matcher.baseCounts)) + } + for comboIdx := 0; comboIdx < rawCombinations; comboIdx++ { + if !generator.comboMatchesRequiredSetBonusMatcher(comboIdx, matcher, scratchCounts) { + continue + } + gear, err := generator.buildGearForCombo(comboIdx) + if err != nil { + return nil, err + } + candidates = append(candidates, &proto.BulkGearCandidate{ + Index: int32(len(candidates)), + Gear: gear, + }) + } + return candidates, nil +} + +func (generator *bulkSimCandidateGenerator) initFrozenSettings() { + if slot := generator.settings.GetFreezeRingSlot(); slot == int32(proto.ItemSlot_ItemSlotFinger1) || slot == int32(proto.ItemSlot_ItemSlotFinger2) { + item := generator.baseEquipment.GetItemBySlot(proto.ItemSlot(slot)) + if item != nil && item.ID != 0 { + itemCopy := *item + generator.frozenItems[BulkSimItemSlotFinger] = &itemCopy + } + } + if slot := generator.settings.GetFreezeTrinketSlot(); slot == int32(proto.ItemSlot_ItemSlotTrinket1) || slot == int32(proto.ItemSlot_ItemSlotTrinket2) { + item := generator.baseEquipment.GetItemBySlot(proto.ItemSlot(slot)) + if item != nil && item.ID != 0 { + itemCopy := *item + generator.frozenItems[BulkSimItemSlotTrinket] = &itemCopy + } + } + if slot := generator.settings.GetFreezeWeaponSlot(); slot == int32(proto.ItemSlot_ItemSlotMainHand) || slot == int32(proto.ItemSlot_ItemSlotOffHand) { + generator.frozenWeaponSlot = proto.ItemSlot(slot) + } +} + +func (generator *bulkSimCandidateGenerator) initSelectedItems() error { + equippedSpecKeys := make(map[itemSpecFingerprintKey]struct{}, int(core.NumItemSlots)) + for slot := proto.ItemSlot_ItemSlotHead; slot < core.NumItemSlots; slot++ { + equippedItem := generator.baseEquipment.GetItemBySlot(slot) + if equippedItem == nil || equippedItem.ID == 0 { + continue + } + equippedSpecKeys[buildItemSpecFingerprintKey(equippedItem.ToItemSpecProto())] = struct{}{} + } + + for _, selectedItem := range generator.settings.GetItems() { + if selectedItem == nil || selectedItem.GetId() == 0 { + continue + } + if _, isEquipped := equippedSpecKeys[buildItemSpecFingerprintKey(selectedItem)]; isEquipped { + continue + } + baseItem := core.GetItemByID(selectedItem.GetId()) + if baseItem == nil { + return fmt.Errorf("selected bulk item %d is missing from the database", selectedItem.GetId()) + } + option := bulkSimCandidateOption{ + spec: googleProto.Clone(selectedItem).(*proto.ItemSpec), + item: core.NewItem(core.ItemSpec{ + ID: selectedItem.GetId(), + RandomSuffix: selectedItem.GetRandomSuffix(), + Enchant: selectedItem.GetEnchant(), + Tinker: selectedItem.GetTinker(), + Gems: slices.Clone(selectedItem.GetGems()), + Reforging: selectedItem.GetReforging(), + UpgradeStep: selectedItem.GetUpgradeStep(), + ChallengeMode: selectedItem.GetChallengeMode(), + }), + } + // An item is eligible for at most two slots, and when both collapse into one bulk slot + // (Finger1/2, Trinket1/2, or either hand for a dual wielder) it belongs there once - a + // second append would fake a second copy in weaponCopyCounts below. + lastBulkSlot := BulkSimItemSlot(-1) + for _, slot := range getEligibleItemSlots(option.item, generator.playerIsFuryWarrior) { + if !canEquipItem(&option.item, generator.playerClass, generator.playerSpec, slot) { + continue + } + bulkSlot := getBulkItemSlotFromSlot(slot, generator.playerCanDualWield) + if bulkSlot == lastBulkSlot { + continue + } + lastBulkSlot = bulkSlot + generator.selectedByBulkSlot[bulkSlot] = append(generator.selectedByBulkSlot[bulkSlot], option) + } + } + + // Keep backend candidate semantics aligned with the frontend picker behavior: + // selected items are considered first, but currently equipped items are always + // available fallback options for each eligible bulk slot. + for slot := proto.ItemSlot_ItemSlotHead; slot < core.NumItemSlots; slot++ { + equippedItem := generator.baseEquipment.GetItemBySlot(slot) + if equippedItem == nil || equippedItem.ID == 0 { + continue + } + if !canEquipItem(equippedItem, generator.playerClass, generator.playerSpec, slot) { + continue + } + + bulkSlot := getBulkItemSlotFromSlot(slot, generator.playerCanDualWield) + generator.selectedByBulkSlot[bulkSlot] = append(generator.selectedByBulkSlot[bulkSlot], bulkSimCandidateOption{ + spec: equippedItem.ToItemSpecProto(), + item: *equippedItem, + }) + } + + // Capture how many copies of each 1H weapon are available (selected + equipped) + // before dedup collapses them. A weapon may only occupy both hands when at least + // two copies exist. + generator.weaponCopyCounts = make(map[itemSpecCacheKey]int) + for _, option := range generator.selectedByBulkSlot[BulkSimItemSlotHandWeapon] { + generator.weaponCopyCounts[buildItemSpecKey(option.spec, generator.inheritUpgrades)]++ + } + + for bulkSlot, options := range generator.selectedByBulkSlot { + generator.selectedByBulkSlot[bulkSlot] = dedupeCandidateOptions(options, generator.inheritUpgrades) + } + return nil +} + +func (generator *bulkSimCandidateGenerator) initGroupedSlotPairs() { + for _, bulkSlot := range []BulkSimItemSlot{BulkSimItemSlotFinger, BulkSimItemSlotTrinket} { + options := generator.selectedByBulkSlot[bulkSlot] + if len(options) == 0 { + continue + } + var pairs [][2]bulkSimCandidateOption + if frozenItem := generator.frozenItems[bulkSlot]; frozenItem != nil { + pairs = make([][2]bulkSimCandidateOption, 0, len(options)) + frozenSpec := frozenItem.ToItemSpecProto() + for _, option := range options { + if candidateOptionEqualsItem(&option, frozenItem, generator.inheritUpgrades) { + continue + } + if !pairIsEquippable(frozenItem, &option.item) { + continue + } + pairs = append(pairs, [2]bulkSimCandidateOption{{spec: frozenSpec, item: *frozenItem}, option}) + } + } else { + pairs = make([][2]bulkSimCandidateOption, 0, len(options)*(len(options)-1)/2) + for i := 0; i < len(options); i++ { + for j := i + 1; j < len(options); j++ { + if !pairIsEquippable(&options[i].item, &options[j].item) { + continue + } + pairs = append(pairs, [2]bulkSimCandidateOption{options[i], options[j]}) + } + } + } + generator.groupedPairsBySlot[bulkSlot] = pairs + } +} + +// The raw combination space is a plain product over the bulk slots and nothing bounds it: +// the frontend gates on the *matching* count, and required set bonuses exist precisely so +// a large selection can be filtered down to a runnable set. So the product is clamped only +// to keep it inside the int32 result fields and out of overflow - never to refuse the +// request, which would break exactly that workflow. +const maxBulkRawCombinations = math.MaxInt32 +const maxBulkCandidatePreallocation = 1 << 16 + +func saturatingCombinationsAdd(rawCombinations int, addend int) int { + if rawCombinations > maxBulkRawCombinations-addend { + return maxBulkRawCombinations + } + return rawCombinations + addend +} + +func saturatingCombinationsMul(rawCombinations int, factor int) int { + if factor == 0 { + return 0 + } + if rawCombinations > maxBulkRawCombinations/factor { + return maxBulkRawCombinations + } + return rawCombinations * factor +} + +func (generator *bulkSimCandidateGenerator) rawCombinationsCount() int { + rawCombinations := len(generator.getAllWeaponCombos()) + if rawCombinations == 0 { + rawCombinations = 1 + } + for _, bulkSlot := range bulkSimSelectedOrder { + if bulkSlot == BulkSimItemSlotMainHand || bulkSlot == BulkSimItemSlotOffHand || bulkSlot == BulkSimItemSlotHandWeapon { + continue + } + numOptions := len(generator.selectedByBulkSlot[bulkSlot]) + if numOptions == 0 { + continue + } + if bulkSlot == BulkSimItemSlotFinger || bulkSlot == BulkSimItemSlotTrinket { + rawCombinations = saturatingCombinationsMul(rawCombinations, len(generator.groupedPairsBySlot[bulkSlot])) + } else { + rawCombinations = saturatingCombinationsMul(rawCombinations, numOptions) + } + } + return rawCombinations +} + +func (generator *bulkSimCandidateGenerator) buildGearForCombo(comboIdx int) (*proto.EquipmentSpec, error) { + gear := generator.baseEquipment + err := generator.populateItemsForCombo(comboIdx) + if err != nil { + return nil, err + } + for slot := proto.ItemSlot_ItemSlotHead; slot < core.NumItemSlots; slot++ { + if !generator.comboSlotUsed[int(slot)] { + continue + } + option := generator.comboItemsBySlot[int(slot)] + existingItem := gear.GetItemBySlot(slot) + if existingItem != nil && existingItem.ID != 0 { + gear[slot] = replaceItem(*existingItem, option, generator.inheritUpgrades) + } else { + gear[slot] = createSelectedItem(option, generator.challengeModeEnabled) + } + } + // Non-Fury players cannot dual-wield 2H weapons. When a 2H lands in the mainhand + // the offhand combo slot is nil, leaving the base gear's 1H offhand in place — clear it. + if !generator.playerIsFuryWarrior { + if mh := gear.GetItemBySlot(proto.ItemSlot_ItemSlotMainHand); mh != nil && mh.HandType == proto.HandType_HandTypeTwoHand { + gear[proto.ItemSlot_ItemSlotOffHand] = core.Item{} + } + } + return gear.ToEquipmentSpecProto(), nil +} + +func (generator *bulkSimCandidateGenerator) populateItemsForCombo(comboIdx int) error { + for idx := range generator.comboSlotUsed { + generator.comboSlotUsed[idx] = false + } + + allWeaponPairs := generator.getAllWeaponCombos() + if len(allWeaponPairs) > 0 { + weaponPairIdx := comboIdx % len(allWeaponPairs) + comboIdx = comboIdx / len(allWeaponPairs) + weaponPair := allWeaponPairs[weaponPairIdx] + if weaponPair[0] != nil { + slot := proto.ItemSlot_ItemSlotMainHand + generator.comboItemsBySlot[int(slot)] = *weaponPair[0] + generator.comboSlotUsed[int(slot)] = true + } + if weaponPair[1] != nil { + slot := proto.ItemSlot_ItemSlotOffHand + generator.comboItemsBySlot[int(slot)] = *weaponPair[1] + generator.comboSlotUsed[int(slot)] = true + } + } + for _, bulkSlot := range bulkSimSelectedOrder { + if bulkSlot == BulkSimItemSlotMainHand || bulkSlot == BulkSimItemSlotOffHand || bulkSlot == BulkSimItemSlotHandWeapon { + continue + } + options := generator.selectedByBulkSlot[bulkSlot] + if len(options) == 0 { + continue + } + if bulkSlot == BulkSimItemSlotFinger || bulkSlot == BulkSimItemSlotTrinket { + pairs := generator.groupedPairsBySlot[bulkSlot] + if len(pairs) == 0 { + return fmt.Errorf("no grouped candidate pairs available for bulk slot %d", bulkSlot) + } + pairIdx := comboIdx % len(pairs) + comboIdx = comboIdx / len(pairs) + slots := BulkSimItemSlotToItemSlotPairs[bulkSlot] + generator.comboItemsBySlot[int(slots[0])] = pairs[pairIdx][0] + generator.comboSlotUsed[int(slots[0])] = true + generator.comboItemsBySlot[int(slots[1])] = pairs[pairIdx][1] + generator.comboSlotUsed[int(slots[1])] = true + continue + } + optionIdx := comboIdx % len(options) + comboIdx = comboIdx / len(options) + slot := BulkSimItemSlotToSingleItemSlot[bulkSlot] + generator.comboItemsBySlot[int(slot)] = options[optionIdx] + generator.comboSlotUsed[int(slot)] = true + } + return nil +} diff --git a/sim/core/bulk/item_keys.go b/sim/core/bulk/item_keys.go new file mode 100644 index 0000000000..719af83e29 --- /dev/null +++ b/sim/core/bulk/item_keys.go @@ -0,0 +1,131 @@ +package bulk + +import ( + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +type bulkSimCandidateOption struct { + spec *proto.ItemSpec + item core.Item +} + +type itemSpecCacheKey struct { + id int32 + randomSuffix int32 + upgradeStep proto.ItemLevelState + challengeMode bool +} + +// itemSpecFingerprintKey is a zero-allocation alternative to the string fingerprint. +// gemsHash is a position-weighted XOR of gem IDs; collision probability is negligible +// for the small, fixed set of gem IDs used in practice. +type itemSpecFingerprintKey struct { + id int32 + randomSuffix int32 + enchant int32 + tinker int32 + reforging int32 + upgradeStep proto.ItemLevelState + challengeMode bool + gemsHash uint64 +} + +func buildItemSpecFingerprintKey(item *proto.ItemSpec) itemSpecFingerprintKey { + if item == nil { + return itemSpecFingerprintKey{} + } + var gemsHash uint64 + for i, gem := range item.GetGems() { + // Knuth multiplicative hash per position to make order matter. + gemsHash ^= uint64(uint32(gem)*2654435761) << (uint(i) & 63) + } + return itemSpecFingerprintKey{ + id: item.GetId(), + randomSuffix: item.GetRandomSuffix(), + enchant: item.GetEnchant(), + tinker: item.GetTinker(), + reforging: item.GetReforging(), + upgradeStep: item.GetUpgradeStep(), + challengeMode: item.GetChallengeMode(), + gemsHash: gemsHash, + } +} + +func dedupeCandidateOptions(options []bulkSimCandidateOption, inheritUpgrades bool) []bulkSimCandidateOption { + if len(options) <= 1 { + return options + } + + seen := make(map[itemSpecCacheKey]struct{}, len(options)) + deduped := make([]bulkSimCandidateOption, 0, len(options)) + // Indexed rather than ranged by value: a bulkSimCandidateOption embeds a whole core.Item. + for i := range options { + key := buildItemSpecKey(options[i].spec, inheritUpgrades) + if _, ok := seen[key]; ok { + continue + } + seen[key] = struct{}{} + deduped = append(deduped, options[i]) + } + + return deduped +} + +// Runs inside the O(n^2) weapon pairing loops, so the target key is built once up front rather than +// once per candidate, and the scan is indexed to avoid copying a core.Item per element. +func optionsContainEquivalent(options []bulkSimCandidateOption, target *bulkSimCandidateOption, inheritUpgrades bool) bool { + targetKey := buildItemSpecKey(target.spec, inheritUpgrades) + for i := range options { + if buildItemSpecKey(options[i].spec, inheritUpgrades) == targetKey { + return true + } + } + return false +} + +func candidateOptionsEqual(left *bulkSimCandidateOption, right *bulkSimCandidateOption, inheritUpgrades bool) bool { + return buildItemSpecKey(left.spec, inheritUpgrades) == buildItemSpecKey(right.spec, inheritUpgrades) +} + +func candidateOptionEqualsItem(option *bulkSimCandidateOption, item *core.Item, inheritUpgrades bool) bool { + return buildItemSpecKey(option.spec, inheritUpgrades) == buildItemKey(item, inheritUpgrades) +} + +func candidateOptionEqualsItemPtr(option *bulkSimCandidateOption, item *core.Item, inheritUpgrades bool) bool { + if option == nil || item == nil { + return option == nil && item == nil + } + return candidateOptionEqualsItem(option, item, inheritUpgrades) +} + +// Keyed straight off the item: ToItemSpecProto would allocate a proto message and a gems slice to +// hand back four scalars. +func buildItemKey(item *core.Item, inheritUpgrades bool) itemSpecCacheKey { + key := itemSpecCacheKey{ + id: item.ID, + randomSuffix: item.RandomSuffix.ID, + challengeMode: item.ChallengeMode, + } + if inheritUpgrades { + return key + } + key.upgradeStep = item.UpgradeStep + return key +} + +func buildItemSpecKey(itemSpec *proto.ItemSpec, inheritUpgrades bool) itemSpecCacheKey { + if itemSpec == nil { + return itemSpecCacheKey{} + } + key := itemSpecCacheKey{ + id: itemSpec.GetId(), + randomSuffix: itemSpec.GetRandomSuffix(), + challengeMode: itemSpec.GetChallengeMode(), + } + if inheritUpgrades { + return key + } + key.upgradeStep = itemSpec.GetUpgradeStep() + return key +} diff --git a/sim/core/bulk/item_rules.go b/sim/core/bulk/item_rules.go new file mode 100644 index 0000000000..a7a42e27f8 --- /dev/null +++ b/sim/core/bulk/item_rules.go @@ -0,0 +1,236 @@ +package bulk + +import ( + "slices" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func replaceItem(existing core.Item, option bulkSimCandidateOption, inheritUpgrades bool) core.Item { + itemSpec := existing.ToItemSpecProto() + itemSpec.Id = option.spec.GetId() + itemSpec.Reforging = 0 + itemSpec.RandomSuffix = 0 + itemSpec.ChallengeMode = existing.ChallengeMode + if !enchantAppliesToItem(itemSpec.GetEnchant(), option.item) { + itemSpec.Enchant = 0 + } + if !enchantAppliesToItem(itemSpec.GetTinker(), option.item) { + itemSpec.Tinker = 0 + } + itemSpec.Gems = mergeGems(existing, option, option.item) + if option.spec.GetRandomSuffix() != 0 { + itemSpec.RandomSuffix = option.spec.GetRandomSuffix() + } + if !inheritUpgrades { + itemSpec.UpgradeStep = option.spec.GetUpgradeStep() + } + return core.NewItem(core.ItemSpec{ + ID: itemSpec.GetId(), + RandomSuffix: itemSpec.GetRandomSuffix(), + Enchant: itemSpec.GetEnchant(), + Tinker: itemSpec.GetTinker(), + Gems: slices.Clone(itemSpec.GetGems()), + UpgradeStep: itemSpec.GetUpgradeStep(), + ChallengeMode: itemSpec.GetChallengeMode(), + }) +} + +func createSelectedItem(option bulkSimCandidateOption, challengeModeEnabled bool) core.Item { + return core.NewItem(core.ItemSpec{ + ID: option.spec.GetId(), + RandomSuffix: option.spec.GetRandomSuffix(), + Enchant: option.spec.GetEnchant(), + Tinker: option.spec.GetTinker(), + Gems: slices.Clone(option.spec.GetGems()), + Reforging: option.spec.GetReforging(), + UpgradeStep: option.spec.GetUpgradeStep(), + ChallengeMode: challengeModeEnabled, + }) +} + +// Gems picked for the bulk item win; the replaced item's gems are re-homed into the sockets +// still free, preferring a color match over mere eligibility. Gems with no room are dropped. +func mergeGems(existing core.Item, option bulkSimCandidateOption, newItem core.Item) []int32 { + newGems := make([]int32, len(newItem.GemSockets)) + + for socketIdx, gemID := range option.spec.GetGems() { + if socketIdx >= len(newGems) { + break + } + newGems[socketIdx] = gemID + } + + for gemIdx, gem := range existing.Gems { + if gemIdx >= len(existing.GemSockets) || gem.ID == 0 { + continue + } + socketIdx := firstFreeSocket(newItem.GemSockets, newGems, gem.Color, core.GemMatchesSocket) + if socketIdx == -1 { + socketIdx = firstFreeSocket(newItem.GemSockets, newGems, gem.Color, core.GemEligibleForSocket) + } + if socketIdx != -1 { + newGems[socketIdx] = gem.ID + } + } + return newGems +} + +func firstFreeSocket(socketColors []proto.GemColor, gems []int32, gemColor proto.GemColor, accepts func(proto.GemColor, proto.GemColor) bool) int { + for socketIdx, socketColor := range socketColors { + if gems[socketIdx] == 0 && accepts(gemColor, socketColor) { + return socketIdx + } + } + return -1 +} + +func enchantAppliesToItem(effectID int32, item core.Item) bool { + if effectID == 0 { + return false + } + enchant := core.GetEnchantByEffectID(effectID) + if enchant == nil { + return false + } + if !core.CheckSliceOverlap(getEligibleEnchantSlots(*enchant), getEligibleItemSlots(item, false)) { + return false + } + + if enchant.EnchantType == proto.EnchantType_EnchantTypeTwoHand && item.HandType != proto.HandType_HandTypeTwoHand { + return false + } + + if enchant.EnchantType == proto.EnchantType_EnchantTypeStaff && item.WeaponType != proto.WeaponType_WeaponTypeStaff { + return false + } + + if enchant.EnchantType == proto.EnchantType_EnchantTypeShield && item.WeaponType != proto.WeaponType_WeaponTypeShield { + return false + } + + itemIsOffHandTarget := item.WeaponType == proto.WeaponType_WeaponTypeOffHand || + (item.WeaponType == proto.WeaponType_WeaponTypeShield && enchant.EnchantType != proto.EnchantType_EnchantTypeShield) + if (enchant.EnchantType == proto.EnchantType_EnchantTypeOffHand) != itemIsOffHandTarget { + return false + } + + if enchant.Type == proto.ItemType_ItemTypeRanged { + return item.RangedWeaponType == proto.RangedWeaponType_RangedWeaponTypeBow || item.RangedWeaponType == proto.RangedWeaponType_RangedWeaponTypeCrossbow || item.RangedWeaponType == proto.RangedWeaponType_RangedWeaponTypeGun + } + if item.RangedWeaponType != proto.RangedWeaponType_RangedWeaponTypeUnknown && item.RangedWeaponType != proto.RangedWeaponType_RangedWeaponTypeWand && enchant.Type != proto.ItemType_ItemTypeRanged { + return false + } + return true +} + +func getEligibleEnchantSlots(enchant core.Enchant) []proto.ItemSlot { + types := append([]proto.ItemType{enchant.Type}, enchant.ExtraTypes...) + slots := make([]proto.ItemSlot, 0, len(types)*2) + for _, itemType := range types { + if typeSlots, ok := itemTypeToSlotsMap[itemType]; ok { + slots = append(slots, typeSlots...) + continue + } + if itemType == proto.ItemType_ItemTypeWeapon { + slots = append(slots, proto.ItemSlot_ItemSlotMainHand, proto.ItemSlot_ItemSlotOffHand) + } + } + return slots +} + +func getEligibleItemSlots(item core.Item, isFuryWarrior bool) []proto.ItemSlot { + if slots, ok := itemTypeToSlotsMap[item.Type]; ok { + return slots + } + if item.Type == proto.ItemType_ItemTypeWeapon { + if isFuryWarrior { + return []proto.ItemSlot{proto.ItemSlot_ItemSlotMainHand, proto.ItemSlot_ItemSlotOffHand} + } + switch item.HandType { + case proto.HandType_HandTypeMainHand: + return []proto.ItemSlot{proto.ItemSlot_ItemSlotMainHand} + case proto.HandType_HandTypeOffHand: + return []proto.ItemSlot{proto.ItemSlot_ItemSlotOffHand} + default: + return []proto.ItemSlot{proto.ItemSlot_ItemSlotMainHand, proto.ItemSlot_ItemSlotOffHand} + } + } + return nil +} + +func canEquipItem(item *core.Item, playerClass proto.Class, playerSpec proto.Spec, slot proto.ItemSlot) bool { + if item.Type == proto.ItemType_ItemTypeFinger || item.Type == proto.ItemType_ItemTypeTrinket { + return true + } + if item.Type == proto.ItemType_ItemTypeWeapon { + eligibleWeaponTypes := core.ClassWeaponTypeCapabilities[playerClass] + eligibleWeaponType, ok := eligibleWeaponTypes[item.WeaponType] + if !ok { + return false + } + if (item.HandType == proto.HandType_HandTypeOffHand || (item.HandType == proto.HandType_HandTypeOneHand && slot == proto.ItemSlot_ItemSlotOffHand)) && item.WeaponType != proto.WeaponType_WeaponTypeShield && item.WeaponType != proto.WeaponType_WeaponTypeOffHand && !core.SpecCanDualWieldCapabilities[playerSpec] { + return false + } + if item.HandType == proto.HandType_HandTypeTwoHand && !eligibleWeaponType.CanUseTwoHand { + return false + } + if item.HandType == proto.HandType_HandTypeTwoHand && slot == proto.ItemSlot_ItemSlotOffHand && playerSpec != proto.Spec_SpecFuryWarrior { + return false + } + return true + } + if item.Type == proto.ItemType_ItemTypeRanged { + return slices.Contains(core.ClassRangedWeaponTypeCapabilities[playerClass], item.RangedWeaponType) + } + classArmorTypes := core.ClassArmorTypeCapabilities[playerClass] + if len(classArmorTypes) == 0 { + return false + } + maxArmorType := classArmorTypes[0] + return maxArmorType >= item.ArmorType +} + +// A unique item can only be worn once, and two items never share a limit category. +func pairIsEquippable(first *core.Item, second *core.Item) bool { + if first.Unique && first.ID == second.ID { + return false + } + return first.LimitCategory == 0 || first.LimitCategory != second.LimitCategory +} + +func itemCanBeDoubled(item *core.Item) bool { + return !item.Unique && item.LimitCategory == 0 +} + +func occupiesBothHands(item *core.Item) bool { + return item.RangedWeaponType != proto.RangedWeaponType_RangedWeaponTypeUnknown && + item.RangedWeaponType != proto.RangedWeaponType_RangedWeaponTypeWand +} + +func canWearWeaponInHand(item *core.Item, playerClass proto.Class, playerSpec proto.Spec, slot proto.ItemSlot) bool { + isMainHand := slot == proto.ItemSlot_ItemSlotMainHand + isOffHand := slot == proto.ItemSlot_ItemSlotOffHand + if !isMainHand && !isOffHand { + return false + } + if item.Type == proto.ItemType_ItemTypeRanged { + // MoP has no ranged slot: bows and wands are worn in the mainhand. + return isMainHand && canEquipItem(item, playerClass, playerSpec, slot) + } + if item.Type != proto.ItemType_ItemTypeWeapon { + return false + } + switch item.HandType { + case proto.HandType_HandTypeMainHand: + if !isMainHand { + return false + } + case proto.HandType_HandTypeOffHand: + if !isOffHand { + return false + } + } + return canEquipItem(item, playerClass, playerSpec, slot) +} diff --git a/sim/core/bulk/merge.go b/sim/core/bulk/merge.go new file mode 100644 index 0000000000..3faf93f022 --- /dev/null +++ b/sim/core/bulk/merge.go @@ -0,0 +1,122 @@ +package bulk + +import ( + "log" + "math" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + googleProto "google.golang.org/protobuf/proto" +) + +func mergeBulkSimCandidateResults(result *BulkSimCandidateResult, additionalResult *BulkSimCandidateResult) *BulkSimCandidateResult { + // Nothing carried over: the additional run is the whole result. + if result == nil { + return additionalResult + } + if result.Error != nil { + return result + } + if additionalResult == nil || additionalResult.Error != nil { + return additionalResult + } + + return &BulkSimCandidateResult{ + Candidate: result.Candidate, + DpsMetrics: mergeBulkSimDistributionMetrics(result.DpsMetrics, additionalResult.DpsMetrics), + } +} + +// Combines metrics from two independent sim runs for the same gear set. +// AggregatorData carries the sample count and sum of squares needed to +// recompute the weighted mean/stdev after adaptive extra iterations are +// appended. +func mergeBulkSimDistributionMetrics(metrics *proto.DistributionMetrics, additionalMetrics *proto.DistributionMetrics) *proto.DistributionMetrics { + if metrics == nil { + return additionalMetrics + } + if additionalMetrics == nil { + return metrics + } + + metricsAggregator := bulkSimDistributionMetricsAggregatorData(metrics) + additionalAggregator := bulkSimDistributionMetricsAggregatorData(additionalMetrics) + totalN := metricsAggregator.N + additionalAggregator.N + if totalN <= 0 { + return googleProto.Clone(metrics).(*proto.DistributionMetrics) + } + + combinedMetrics := &proto.DistributionMetrics{ + Min: math.MaxFloat64, + MinSeed: math.MaxInt64, + Hist: make(map[int32]int32), + AllValues: make([]float64, 0), + AggregatorData: &proto.AggregatorData{}, + } + core.CombineDistributionMetrics(combinedMetrics, metrics, false, float64(metricsAggregator.N)/float64(totalN)) + core.CombineDistributionMetrics(combinedMetrics, additionalMetrics, true, float64(additionalAggregator.N)/float64(totalN)) + return combinedMetrics +} + +func bulkSimDistributionMetricsAggregatorData(metrics *proto.DistributionMetrics) *proto.AggregatorData { + if metrics.AggregatorData != nil && metrics.AggregatorData.N > 0 { + return metrics.AggregatorData + } + // Fabricating N=1 makes a merge silently mis-weight the two runs, so surface it + // instead of letting a wrong average through unnoticed. + log.Printf("[Bulk Sim] WARNING: distribution metrics are missing aggregator data; merged mean/stdev will be weighted as a single sample") + n := int32(1) + return &proto.AggregatorData{ + N: n, + SumSq: (metrics.Stdev*metrics.Stdev + metrics.Avg*metrics.Avg) * float64(n), + } +} + +func hasBulkSimStageError(baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult) bool { + if baseline != nil && baseline.Error != nil { + return true + } + for _, result := range results { + if result != nil && result.Error != nil { + return true + } + } + return false +} + +func bulkSimResultsToCandidates(results []*BulkSimCandidateResult) []BulkSimCandidate { + return core.MapSlice(results, func(result *BulkSimCandidateResult) BulkSimCandidate { + return result.Candidate + }) +} + +func bulkSimCandidateResultToProto(result *BulkSimCandidateResult) *proto.BulkGearResult { + if result == nil { + return nil + } + dpsMetrics := result.DpsMetrics + if dpsMetrics != nil && len(dpsMetrics.AllValues) > 0 { + dpsMetrics = googleProto.Clone(dpsMetrics).(*proto.DistributionMetrics) + dpsMetrics.AllValues = nil + } + return &proto.BulkGearResult{ + CandidateIndex: result.Candidate.Index, + Gear: result.Candidate.Gear, + DpsMetrics: dpsMetrics, + } +} + +func cleanBulkSimDpsMetrics(metrics *proto.DistributionMetrics) *proto.DistributionMetrics { + if metrics == nil { + return nil + } + // AllValues is kept: selectBulkSimSurvivors needs the per-iteration values. It is + // stripped again in bulkSimCandidateResultToProto, so it never reaches the frontend. + clone := googleProto.Clone(metrics).(*proto.DistributionMetrics) + clone.Hist = nil + return clone +} + +func bulkSimAbortedError() *proto.ErrorOutcome { + return &proto.ErrorOutcome{Type: proto.ErrorOutcomeType_ErrorOutcomeAborted, Message: "Bulk Sim Aborted"} +} diff --git a/sim/core/bulk/progress.go b/sim/core/bulk/progress.go new file mode 100644 index 0000000000..fd536bba31 --- /dev/null +++ b/sim/core/bulk/progress.go @@ -0,0 +1,175 @@ +package bulk + +import ( + "fmt" + "sync" + "time" + + "github.com/wowsims/mop/sim/core/proto" +) + +type BulkSimStageProgressTracker struct { + mutex sync.Mutex + emitter bulkSimStageProgressEmitter + totalCandidates int + iterations int32 + completedSimsBeforeCandidates int + completedIterationsBeforeCandidates int32 + completedCandidates int + completedCandidateIterations int32 + completedIterationsByCandidate []int32 + lastProgressEmit time.Time +} + +// Binds the parts of a stage's progress reporting that never change between emits, so +// call sites pass only what actually moves. Stage totals are only known after the +// baseline probe, so a stage uses one emitter for the probe and another for the rest. +type bulkSimStageProgressEmitter struct { + progress chan *proto.ProgressMetrics + stage proto.BulkSimStage + totalSims int + totalIterations int32 +} + +func (emitter bulkSimStageProgressEmitter) report(completedSims int, completedIterations int32, dps float64) { + emitBulkSimStageProgress(emitter.progress, emitter.stage, completedSims, emitter.totalSims, completedIterations, emitter.totalIterations, dps) +} + +func emitBulkSimStageProgress(progress chan *proto.ProgressMetrics, stage proto.BulkSimStage, completedSims int, totalSims int, completedIterations int32, totalIterations int32, dps float64) { + if progress == nil { + return + } + + progress <- &proto.ProgressMetrics{ + BulkStage: stage, + CompletedSims: int32(completedSims), + TotalSims: int32(totalSims), + CompletedIterations: completedIterations, + TotalIterations: totalIterations, + Dps: dps, + } +} + +func (tracker *BulkSimStageProgressTracker) reportCandidateProgress(position int, progressMetrics *proto.ProgressMetrics) { + if progressMetrics == nil || progressMetrics.TotalIterations == 0 { + return + } + tracker.report(position, min(progressMetrics.CompletedIterations, tracker.iterations), progressMetrics.Dps, false) +} + +func (tracker *BulkSimStageProgressTracker) reportCandidateComplete(position int, result *BulkSimCandidateResult) { + dps := 0.0 + if result != nil && result.DpsMetrics != nil { + dps = result.DpsMetrics.Avg + } + tracker.report(position, tracker.iterations, dps, true) +} + +// Records how far one candidate has got and emits stage progress when an update is due. +// A finished candidate always emits, since sim counts are what the caller is waiting on. +func (tracker *BulkSimStageProgressTracker) report(position int, completedIterations int32, dps float64, candidateFinished bool) { + if tracker.emitter.progress == nil || position < 0 || position >= tracker.totalCandidates { + return + } + + tracker.mutex.Lock() + shouldEmit := candidateFinished || tracker.shouldEmitProgressLocked() + if completedIterations > tracker.completedIterationsByCandidate[position] { + tracker.completedCandidateIterations += completedIterations - tracker.completedIterationsByCandidate[position] + tracker.completedIterationsByCandidate[position] = completedIterations + shouldEmit = shouldEmit || tracker.shouldEmitProgressLocked() + } + if candidateFinished { + tracker.completedCandidates++ + } + totalCompletedIterations := tracker.completedIterationsBeforeCandidates + tracker.completedCandidateIterations + completedSims := tracker.completedSimsBeforeCandidates + tracker.completedCandidates + if shouldEmit { + tracker.lastProgressEmit = time.Now() + } + tracker.mutex.Unlock() + if !shouldEmit { + return + } + + tracker.emitter.report(completedSims, totalCompletedIterations, dps) +} + +func (tracker *BulkSimStageProgressTracker) shouldEmitProgressLocked() bool { + return tracker.lastProgressEmit.IsZero() || time.Since(tracker.lastProgressEmit) >= bulkSimProgressThrottle +} + +func setBulkSimStageTiming(timings *proto.BulkSimTimings, stage proto.BulkSimStage, durationSeconds float64) { + switch stage { + case proto.BulkSimStage_BulkSimStageLow: + timings.LowStageSeconds = durationSeconds + case proto.BulkSimStage_BulkSimStageMedium: + timings.MediumStageSeconds = durationSeconds + case proto.BulkSimStage_BulkSimStageHigh: + timings.HighStageSeconds = durationSeconds + } +} + +func formatBulkSimStageStart(config BulkSimStageConfig, candidateCount int, concurrency int, minIterations int32, carriedIterations int32) string { + return fmt.Sprintf("- Stage: %s - Starting\n"+ + "Sims:\n"+ + " Candidates: %d\n"+ + " Total runs: %d-%d (baseline probe, optional baseline, candidates)\n"+ + "Stage config:\n"+ + " Concurrency: %d\n"+ + " Per-candidate concurrent sim: %t\n"+ + " Min iterations: %d\n"+ + " Carried iterations: %d\n"+ + " Target error: %.2f%%", + bulkSimStageLogName(config.Stage), + candidateCount, + candidateCount+1, + candidateCount+2, + concurrency, + config.UseConcurrentSim, + minIterations, + carriedIterations, + config.TargetErrorPct, + ) +} + +func formatBulkSimStageSummary(status string, metrics *proto.BulkSimStageMetrics, completedSims int) string { + return fmt.Sprintf("- Stage: %s - %s\n"+ + "Sims:\n"+ + " Input gear sets: %d\n"+ + " Completed candidates: %d\n"+ + " Survivors: %d\n"+ + "Results:\n"+ + " Iterations: %d\n"+ + " Target error: %.2f%%\n"+ + " Observed error: %.2f%%\n"+ + " Best candidate DPS: %.2f\n"+ + " Baseline DPS: %.2f\n"+ + "Timing:\n"+ + " Duration: %.2fs", + bulkSimStageLogName(metrics.Stage), + status, + metrics.InputGearSets, + completedSims, + metrics.Survivors, + metrics.Iterations, + metrics.TargetErrorPct, + metrics.ObservedErrorPct, + metrics.BestCandidateAvgDps, + metrics.BaselineAvgDps, + metrics.DurationSeconds, + ) +} + +func bulkSimStageLogName(stage proto.BulkSimStage) string { + switch stage { + case proto.BulkSimStage_BulkSimStageLow: + return "low" + case proto.BulkSimStage_BulkSimStageMedium: + return "medium" + case proto.BulkSimStage_BulkSimStageHigh: + return "high" + default: + return stage.String() + } +} diff --git a/sim/core/bulk/set_bonus.go b/sim/core/bulk/set_bonus.go new file mode 100644 index 0000000000..6ad1307c04 --- /dev/null +++ b/sim/core/bulk/set_bonus.go @@ -0,0 +1,256 @@ +package bulk + +import ( + "slices" + "strconv" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func (generator *bulkSimCandidateGenerator) buildRequiredSetBonusMatcher(requiredSetBonuses []*proto.BulkRequiredSetBonus) *bulkSimRequiredSetBonusComboMatcher { + if len(requiredSetBonuses) == 0 { + return nil + } + // A set may appear more than once (e.g. a 2pc and a 4pc requirement for the same set), + // so one set ID maps to every requirement index that tracks it. + requiredIndexes := make(map[int32][]int, len(requiredSetBonuses)) + for idx, required := range requiredSetBonuses { + setID := required.GetSetId() + requiredIndexes[setID] = append(requiredIndexes[setID], idx) + } + numRequired := len(requiredSetBonuses) + baseCounts := make([]int, numRequired) + for slot := proto.ItemSlot_ItemSlotHead; slot < core.NumItemSlots; slot++ { + generator.addItemToRequiredSetBonusCounts(baseCounts, requiredIndexes, generator.baseEquipment.GetItemBySlot(slot), 1) + } + dimensions := make([]bulkSimRequiredSetBonusDimension, 0) + weaponPairs := generator.getAllWeaponCombos() + if len(weaponPairs) > 0 { + optionDeltas := make([][]int, 0, len(weaponPairs)) + for _, pair := range weaponPairs { + optionDeltas = append(optionDeltas, generator.getRequiredSetBonusOptionDeltas(numRequired, requiredIndexes, [][2]any{{proto.ItemSlot_ItemSlotMainHand, pair[0]}, {proto.ItemSlot_ItemSlotOffHand, pair[1]}})) + } + dimensions = append(dimensions, bulkSimRequiredSetBonusDimension{optionDeltas: optionDeltas}) + } + for _, bulkSlot := range bulkSimSelectedOrder { + if bulkSlot == BulkSimItemSlotMainHand || bulkSlot == BulkSimItemSlotOffHand || bulkSlot == BulkSimItemSlotHandWeapon { + continue + } + options := generator.selectedByBulkSlot[bulkSlot] + if len(options) == 0 { + continue + } + if bulkSlot == BulkSimItemSlotFinger || bulkSlot == BulkSimItemSlotTrinket { + pairs := generator.groupedPairsBySlot[bulkSlot] + slots := BulkSimItemSlotToItemSlotPairs[bulkSlot] + optionDeltas := make([][]int, 0, len(pairs)) + for _, pair := range pairs { + optionDeltas = append(optionDeltas, generator.getRequiredSetBonusOptionDeltas(numRequired, requiredIndexes, [][2]any{{slots[0], &pair[0]}, {slots[1], &pair[1]}})) + } + dimensions = append(dimensions, bulkSimRequiredSetBonusDimension{optionDeltas: optionDeltas}) + } else { + slot := BulkSimItemSlotToSingleItemSlot[bulkSlot] + optionDeltas := make([][]int, 0, len(options)) + for idx := range options { + optionDeltas = append(optionDeltas, generator.getRequiredSetBonusOptionDeltas(numRequired, requiredIndexes, [][2]any{{slot, &options[idx]}})) + } + dimensions = append(dimensions, bulkSimRequiredSetBonusDimension{optionDeltas: optionDeltas}) + } + } + requiredPieces := make([]int, numRequired) + for idx, required := range requiredSetBonuses { + requiredPieces[idx] = int(required.GetPieces()) + } + return &bulkSimRequiredSetBonusComboMatcher{baseCounts: baseCounts, requiredPieces: requiredPieces, dimensions: dimensions} +} + +func (generator *bulkSimCandidateGenerator) addItemToRequiredSetBonusCounts(counts []int, requiredIndexes map[int32][]int, item *core.Item, delta int) { + if item == nil || item.SetID == 0 { + return + } + for _, idx := range requiredIndexes[item.SetID] { + counts[idx] += delta + } +} + +// numRequired is the requirement count, not len(requiredIndexes): duplicate set IDs +// collapse in the map, and every counts slice is indexed by requirement. +func (generator *bulkSimCandidateGenerator) getRequiredSetBonusOptionDeltas(numRequired int, requiredIndexes map[int32][]int, slotItems [][2]any) []int { + deltas := make([]int, numRequired) + for _, slotItem := range slotItems { + slot := slotItem[0].(proto.ItemSlot) + generator.addItemToRequiredSetBonusCounts(deltas, requiredIndexes, generator.baseEquipment.GetItemBySlot(slot), -1) + switch option := slotItem[1].(type) { + case *bulkSimCandidateOption: + if option != nil { + generator.addItemToRequiredSetBonusCounts(deltas, requiredIndexes, &option.item, 1) + } + } + } + return deltas +} + +func (generator *bulkSimCandidateGenerator) comboMatchesRequiredSetBonusMatcher(comboIdx int, matcher *bulkSimRequiredSetBonusComboMatcher, scratchCounts []int) bool { + if matcher == nil { + return true + } + counts := scratchCounts + if len(counts) != len(matcher.baseCounts) { + counts = make([]int, len(matcher.baseCounts)) + } + copy(counts, matcher.baseCounts) + for _, dimension := range matcher.dimensions { + if len(dimension.optionDeltas) == 0 { + return false + } + optionIdx := comboIdx % len(dimension.optionDeltas) + comboIdx = comboIdx / len(dimension.optionDeltas) + deltas := dimension.optionDeltas[optionIdx] + for idx, delta := range deltas { + counts[idx] += delta + } + } + for idx, count := range counts { + if count < matcher.requiredPieces[idx] { + return false + } + } + return true +} + +type bulkSimRequiredSetBonusComboMatcher struct { + baseCounts []int + requiredPieces []int + dimensions []bulkSimRequiredSetBonusDimension +} + +type bulkSimRequiredSetBonusDimension struct { + optionDeltas [][]int +} + +const maxRequiredSetBonusStates = 1 << 12 + +// Walks the dimensions once carrying a distribution over piece-count vectors, rather than +// testing each combination: the raw space is bounded only by MaxInt32. Counts stay unclamped +// because swapping a base-gear piece out produces negative deltas. ok=false means the state +// space was too large to pay off. +func (matcher *bulkSimRequiredSetBonusComboMatcher) countMatchingCombos() (int, bool) { + numRequired := len(matcher.requiredPieces) + + // Envelope of counts reachable at any point of the walk, including before it starts. + lo := make([]int, numRequired) + hi := make([]int, numRequired) + copy(lo, matcher.baseCounts) + copy(hi, matcher.baseCounts) + runningLo := slices.Clone(matcher.baseCounts) + runningHi := slices.Clone(matcher.baseCounts) + groupsByDimension := make([][]requiredSetBonusDeltaGroup, 0, len(matcher.dimensions)) + for _, dimension := range matcher.dimensions { + if len(dimension.optionDeltas) == 0 { + return 0, true + } + for idx := range numRequired { + minDelta, maxDelta := dimension.optionDeltas[0][idx], dimension.optionDeltas[0][idx] + for _, deltas := range dimension.optionDeltas[1:] { + minDelta = min(minDelta, deltas[idx]) + maxDelta = max(maxDelta, deltas[idx]) + } + runningLo[idx] += minDelta + runningHi[idx] += maxDelta + lo[idx] = min(lo[idx], runningLo[idx]) + hi[idx] = max(hi[idx], runningHi[idx]) + } + groupsByDimension = append(groupsByDimension, groupRequiredSetBonusDeltas(dimension.optionDeltas)) + } + + strides := make([]int, numRequired) + numStates := 1 + for idx := range numRequired { + strides[idx] = numStates + span := hi[idx] - lo[idx] + 1 + if numStates > maxRequiredSetBonusStates/span { + return 0, false + } + numStates *= span + } + + dp := make([]int, numStates) + next := make([]int, numStates) + counts := make([]int, numRequired) + baseState := 0 + for idx, count := range matcher.baseCounts { + baseState += (count - lo[idx]) * strides[idx] + } + dp[baseState] = 1 + + for _, groups := range groupsByDimension { + clear(next) + for stateIdx, combos := range dp { + if combos == 0 { + continue + } + remainder := stateIdx + for idx := numRequired - 1; idx >= 0; idx-- { + counts[idx] = lo[idx] + remainder/strides[idx] + remainder %= strides[idx] + } + for _, group := range groups { + targetState := 0 + for idx, delta := range group.deltas { + targetState += (counts[idx] + delta - lo[idx]) * strides[idx] + } + next[targetState] = saturatingCombinationsAdd(next[targetState], saturatingCombinationsMul(combos, group.options)) + } + } + dp, next = next, dp + } + + matching := 0 + for stateIdx, combos := range dp { + if combos == 0 { + continue + } + remainder := stateIdx + satisfied := true + for idx := numRequired - 1; idx >= 0; idx-- { + count := lo[idx] + remainder/strides[idx] + remainder %= strides[idx] + if count < matcher.requiredPieces[idx] { + satisfied = false + break + } + } + if satisfied { + matching = saturatingCombinationsAdd(matching, combos) + } + } + return matching, true +} + +type requiredSetBonusDeltaGroup struct { + deltas []int + options int +} + +// Most selected items belong to no required set, so their delta vectors are identical; this +// keeps the inner loop proportional to distinct outcomes, not item count. +func groupRequiredSetBonusDeltas(optionDeltas [][]int) []requiredSetBonusDeltaGroup { + groups := make([]requiredSetBonusDeltaGroup, 0, 4) + indexByKey := make(map[string]int, 4) + var key []byte + for _, deltas := range optionDeltas { + key = key[:0] + for _, delta := range deltas { + key = strconv.AppendInt(key, int64(delta), 10) + key = append(key, ',') + } + if idx, ok := indexByKey[string(key)]; ok { + groups[idx].options++ + continue + } + indexByKey[string(key)] = len(groups) + groups = append(groups, requiredSetBonusDeltaGroup{deltas: deltas, options: 1}) + } + return groups +} diff --git a/sim/core/bulk/slots.go b/sim/core/bulk/slots.go new file mode 100644 index 0000000000..2e22bd8184 --- /dev/null +++ b/sim/core/bulk/slots.go @@ -0,0 +1,127 @@ +package bulk + +import ( + "github.com/wowsims/mop/sim/core/proto" +) + +type BulkSimItemSlot int + +const ( + BulkSimItemSlotHead BulkSimItemSlot = iota + BulkSimItemSlotNeck + BulkSimItemSlotShoulder + BulkSimItemSlotBack + BulkSimItemSlotChest + BulkSimItemSlotWrist + BulkSimItemSlotHands + BulkSimItemSlotWaist + BulkSimItemSlotLegs + BulkSimItemSlotFeet + BulkSimItemSlotFinger + BulkSimItemSlotTrinket + BulkSimItemSlotMainHand + BulkSimItemSlotOffHand + BulkSimItemSlotHandWeapon +) + +var BulkSimItemSlotToSingleItemSlot = map[BulkSimItemSlot]proto.ItemSlot{ + BulkSimItemSlotHead: proto.ItemSlot_ItemSlotHead, + BulkSimItemSlotNeck: proto.ItemSlot_ItemSlotNeck, + BulkSimItemSlotShoulder: proto.ItemSlot_ItemSlotShoulder, + BulkSimItemSlotBack: proto.ItemSlot_ItemSlotBack, + BulkSimItemSlotChest: proto.ItemSlot_ItemSlotChest, + BulkSimItemSlotWrist: proto.ItemSlot_ItemSlotWrist, + BulkSimItemSlotHands: proto.ItemSlot_ItemSlotHands, + BulkSimItemSlotWaist: proto.ItemSlot_ItemSlotWaist, + BulkSimItemSlotLegs: proto.ItemSlot_ItemSlotLegs, + BulkSimItemSlotFeet: proto.ItemSlot_ItemSlotFeet, + BulkSimItemSlotMainHand: proto.ItemSlot_ItemSlotMainHand, + BulkSimItemSlotOffHand: proto.ItemSlot_ItemSlotOffHand, +} + +var BulkSimItemSlotToItemSlotPairs = map[BulkSimItemSlot][2]proto.ItemSlot{ + BulkSimItemSlotFinger: {proto.ItemSlot_ItemSlotFinger1, proto.ItemSlot_ItemSlotFinger2}, + BulkSimItemSlotTrinket: {proto.ItemSlot_ItemSlotTrinket1, proto.ItemSlot_ItemSlotTrinket2}, + BulkSimItemSlotHandWeapon: {proto.ItemSlot_ItemSlotMainHand, proto.ItemSlot_ItemSlotOffHand}, +} + +var ItemSlotToBulkSimItemSlot = map[proto.ItemSlot]BulkSimItemSlot{ + proto.ItemSlot_ItemSlotHead: BulkSimItemSlotHead, + proto.ItemSlot_ItemSlotNeck: BulkSimItemSlotNeck, + proto.ItemSlot_ItemSlotShoulder: BulkSimItemSlotShoulder, + proto.ItemSlot_ItemSlotBack: BulkSimItemSlotBack, + proto.ItemSlot_ItemSlotChest: BulkSimItemSlotChest, + proto.ItemSlot_ItemSlotWrist: BulkSimItemSlotWrist, + proto.ItemSlot_ItemSlotHands: BulkSimItemSlotHands, + proto.ItemSlot_ItemSlotWaist: BulkSimItemSlotWaist, + proto.ItemSlot_ItemSlotLegs: BulkSimItemSlotLegs, + proto.ItemSlot_ItemSlotFeet: BulkSimItemSlotFeet, + proto.ItemSlot_ItemSlotFinger1: BulkSimItemSlotFinger, + proto.ItemSlot_ItemSlotFinger2: BulkSimItemSlotFinger, + proto.ItemSlot_ItemSlotTrinket1: BulkSimItemSlotTrinket, + proto.ItemSlot_ItemSlotTrinket2: BulkSimItemSlotTrinket, + proto.ItemSlot_ItemSlotMainHand: BulkSimItemSlotMainHand, + proto.ItemSlot_ItemSlotOffHand: BulkSimItemSlotOffHand, +} + +var BulkSimItemSlotNames = map[BulkSimItemSlot]string{ + BulkSimItemSlotHead: "ItemSlotHead", + BulkSimItemSlotNeck: "ItemSlotNeck", + BulkSimItemSlotShoulder: "ItemSlotShoulder", + BulkSimItemSlotBack: "ItemSlotBack", + BulkSimItemSlotChest: "ItemSlotChest", + BulkSimItemSlotWrist: "ItemSlotWrist", + BulkSimItemSlotHands: "ItemSlotHands", + BulkSimItemSlotWaist: "ItemSlotWaist", + BulkSimItemSlotLegs: "ItemSlotLegs", + BulkSimItemSlotFeet: "ItemSlotFeet", + BulkSimItemSlotFinger: "ItemSlotFinger", + BulkSimItemSlotTrinket: "ItemSlotTrinket", + BulkSimItemSlotMainHand: "ItemSlotMainHand", + BulkSimItemSlotOffHand: "ItemSlotOffHand", + BulkSimItemSlotHandWeapon: "ItemSlotHandWeapon", +} + +var bulkSimSelectedOrder = [...]BulkSimItemSlot{ + BulkSimItemSlotHead, + BulkSimItemSlotNeck, + BulkSimItemSlotShoulder, + BulkSimItemSlotBack, + BulkSimItemSlotChest, + BulkSimItemSlotWrist, + BulkSimItemSlotHands, + BulkSimItemSlotWaist, + BulkSimItemSlotLegs, + BulkSimItemSlotFeet, + BulkSimItemSlotFinger, + BulkSimItemSlotTrinket, + BulkSimItemSlotMainHand, + BulkSimItemSlotOffHand, + BulkSimItemSlotHandWeapon, +} + +var itemTypeToSlotsMap = map[proto.ItemType][]proto.ItemSlot{ + proto.ItemType_ItemTypeHead: {proto.ItemSlot_ItemSlotHead}, + proto.ItemType_ItemTypeNeck: {proto.ItemSlot_ItemSlotNeck}, + proto.ItemType_ItemTypeShoulder: {proto.ItemSlot_ItemSlotShoulder}, + proto.ItemType_ItemTypeBack: {proto.ItemSlot_ItemSlotBack}, + proto.ItemType_ItemTypeChest: {proto.ItemSlot_ItemSlotChest}, + proto.ItemType_ItemTypeWrist: {proto.ItemSlot_ItemSlotWrist}, + proto.ItemType_ItemTypeHands: {proto.ItemSlot_ItemSlotHands}, + proto.ItemType_ItemTypeWaist: {proto.ItemSlot_ItemSlotWaist}, + proto.ItemType_ItemTypeLegs: {proto.ItemSlot_ItemSlotLegs}, + proto.ItemType_ItemTypeFeet: {proto.ItemSlot_ItemSlotFeet}, + proto.ItemType_ItemTypeFinger: {proto.ItemSlot_ItemSlotFinger1, proto.ItemSlot_ItemSlotFinger2}, + proto.ItemType_ItemTypeTrinket: {proto.ItemSlot_ItemSlotTrinket1, proto.ItemSlot_ItemSlotTrinket2}, + proto.ItemType_ItemTypeRanged: {proto.ItemSlot_ItemSlotMainHand}, +} + +func getBulkItemSlotFromSlot(slot proto.ItemSlot, playerCanDualWield bool) BulkSimItemSlot { + if playerCanDualWield && (slot == proto.ItemSlot_ItemSlotMainHand || slot == proto.ItemSlot_ItemSlotOffHand) { + return BulkSimItemSlotHandWeapon + } + if bulkSlot, ok := ItemSlotToBulkSimItemSlot[slot]; ok { + return bulkSlot + } + return BulkSimItemSlotHead +} diff --git a/sim/core/bulk/spec.go b/sim/core/bulk/spec.go new file mode 100644 index 0000000000..d3c1486c77 --- /dev/null +++ b/sim/core/bulk/spec.go @@ -0,0 +1,86 @@ +package bulk + +import ( + "fmt" + + "github.com/wowsims/mop/sim/core/proto" +) + +func getPlayerSpec(player *proto.Player) (proto.Spec, error) { + if player == nil { + return proto.Spec_SpecUnknown, fmt.Errorf("unsupported player spec for backend bulk candidate generation") + } + + switch player.GetSpec().(type) { + case *proto.Player_BloodDeathKnight: + return proto.Spec_SpecBloodDeathKnight, nil + case *proto.Player_FrostDeathKnight: + return proto.Spec_SpecFrostDeathKnight, nil + case *proto.Player_UnholyDeathKnight: + return proto.Spec_SpecUnholyDeathKnight, nil + case *proto.Player_BalanceDruid: + return proto.Spec_SpecBalanceDruid, nil + case *proto.Player_FeralDruid: + return proto.Spec_SpecFeralDruid, nil + case *proto.Player_GuardianDruid: + return proto.Spec_SpecGuardianDruid, nil + case *proto.Player_RestorationDruid: + return proto.Spec_SpecRestorationDruid, nil + case *proto.Player_BeastMasteryHunter: + return proto.Spec_SpecBeastMasteryHunter, nil + case *proto.Player_MarksmanshipHunter: + return proto.Spec_SpecMarksmanshipHunter, nil + case *proto.Player_SurvivalHunter: + return proto.Spec_SpecSurvivalHunter, nil + case *proto.Player_ArcaneMage: + return proto.Spec_SpecArcaneMage, nil + case *proto.Player_FireMage: + return proto.Spec_SpecFireMage, nil + case *proto.Player_FrostMage: + return proto.Spec_SpecFrostMage, nil + case *proto.Player_BrewmasterMonk: + return proto.Spec_SpecBrewmasterMonk, nil + case *proto.Player_MistweaverMonk: + return proto.Spec_SpecMistweaverMonk, nil + case *proto.Player_WindwalkerMonk: + return proto.Spec_SpecWindwalkerMonk, nil + case *proto.Player_HolyPaladin: + return proto.Spec_SpecHolyPaladin, nil + case *proto.Player_ProtectionPaladin: + return proto.Spec_SpecProtectionPaladin, nil + case *proto.Player_RetributionPaladin: + return proto.Spec_SpecRetributionPaladin, nil + case *proto.Player_DisciplinePriest: + return proto.Spec_SpecDisciplinePriest, nil + case *proto.Player_HolyPriest: + return proto.Spec_SpecHolyPriest, nil + case *proto.Player_ShadowPriest: + return proto.Spec_SpecShadowPriest, nil + case *proto.Player_AssassinationRogue: + return proto.Spec_SpecAssassinationRogue, nil + case *proto.Player_CombatRogue: + return proto.Spec_SpecCombatRogue, nil + case *proto.Player_SubtletyRogue: + return proto.Spec_SpecSubtletyRogue, nil + case *proto.Player_ElementalShaman: + return proto.Spec_SpecElementalShaman, nil + case *proto.Player_EnhancementShaman: + return proto.Spec_SpecEnhancementShaman, nil + case *proto.Player_RestorationShaman: + return proto.Spec_SpecRestorationShaman, nil + case *proto.Player_AfflictionWarlock: + return proto.Spec_SpecAfflictionWarlock, nil + case *proto.Player_DemonologyWarlock: + return proto.Spec_SpecDemonologyWarlock, nil + case *proto.Player_DestructionWarlock: + return proto.Spec_SpecDestructionWarlock, nil + case *proto.Player_ArmsWarrior: + return proto.Spec_SpecArmsWarrior, nil + case *proto.Player_FuryWarrior: + return proto.Spec_SpecFuryWarrior, nil + case *proto.Player_ProtectionWarrior: + return proto.Spec_SpecProtectionWarrior, nil + default: + return proto.Spec_SpecUnknown, fmt.Errorf("unsupported player spec for backend bulk candidate generation") + } +} diff --git a/sim/core/bulk/stage.go b/sim/core/bulk/stage.go new file mode 100644 index 0000000000..d76f5ee50d --- /dev/null +++ b/sim/core/bulk/stage.go @@ -0,0 +1,298 @@ +package bulk + +import ( + "log" + "math" + "runtime" + "time" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/simsignals" +) + +type BulkSimStageConfig struct { + Stage proto.BulkSimStage + MinIterations int32 + TargetErrorPct float64 + MinSurvivors int + MaxSurvivors int + CullingCoefficient float64 + UseConcurrentSim bool +} + +var bulkSimStageConfigs = []BulkSimStageConfig{ + { + Stage: proto.BulkSimStage_BulkSimStageLow, + MinIterations: 100, + TargetErrorPct: 1, + MinSurvivors: 20, + MaxSurvivors: 100, + CullingCoefficient: bulkSimCullingCoefficient, + }, + { + Stage: proto.BulkSimStage_BulkSimStageMedium, + MinIterations: 1000, + TargetErrorPct: 0.2, + MinSurvivors: 5, + MaxSurvivors: 25, + CullingCoefficient: bulkSimCullingCoefficient, + }, + { + Stage: proto.BulkSimStage_BulkSimStageHigh, + MinIterations: 1000, + TargetErrorPct: 0.05, + UseConcurrentSim: true, + }, +} + +type BulkSimStageResult struct { + Baseline *BulkSimCandidateResult + Results []*BulkSimCandidateResult + Iterations int32 + Metrics *proto.BulkSimStageMetrics +} + +func shouldRunBulkSimStage(config BulkSimStageConfig, candidateCount int) bool { + maxSurvivors := getBulkSimStageMaxSurvivors(config, candidateCount) + return maxSurvivors == 0 || candidateCount > maxSurvivors || candidateCount < bulkSimMinCombinations && config.Stage == proto.BulkSimStage_BulkSimStageHigh +} + +func GetBulkSimStageConcurrency(request *proto.BulkSimRequest, config BulkSimStageConfig) int { + if config.UseConcurrentSim { + return 1 + } + if request.BaseRequest.SimOptions.IsTest { + return 3 + } + if config.Stage == proto.BulkSimStage_BulkSimStageLow { + return runtime.NumCPU() * bulkSimLowStageConcurrencyFactor + } + return runtime.NumCPU() +} + +// Runs one low/medium/high refinement stage. Each stage first probes the +// baseline to estimate variance, then uses that variance to choose a +// per-candidate iteration count before simming every candidate. After the first +// pass, the stage may add more iterations if the observed error is still above +// the configured target. +// +// Iterations already simmed by the previous stage are carried over instead of +// being re-run: the stage only sims the delta with a seed offset and merges. That +// is exactly equivalent to running the full count from scratch, because iteration +// N always uses seed RandomSeed+N. +func runBulkSimStage(request *proto.BulkSimRequest, candidates []BulkSimCandidate, config BulkSimStageConfig, carry *bulkSimStageCarryOver, progress chan *proto.ProgressMetrics, signals simsignals.Signals) BulkSimStageResult { + startedAt := time.Now() + minIterations := getBulkSimStageMinIterations(request.HighStageIterations, config) + concurrency := GetBulkSimStageConcurrency(request, config) + concurrency = max(1, min(concurrency, len(candidates))) + if !carry.covers(candidates) { + carry = nil + } + carriedIterations := carry.carriedIterations() + log.Printf("[Bulk Sim] %s", formatBulkSimStageStart(config, len(candidates), concurrency, minIterations, carriedIterations)) + maxBaselineSims := 2 + maxTotalSims := len(candidates) + maxBaselineSims + probeDelta := max(0, minIterations-carriedIterations) + probeEmitter := bulkSimStageProgressEmitter{progress: progress, stage: config.Stage, totalSims: maxTotalSims, totalIterations: int32(maxTotalSims) * probeDelta} + probeEmitter.report(0, 0, 0) + + // Run the baseline gear up to the stage minimum to estimate DPS variance. + // That variance is used to calculate how many iterations are needed for the + // stage target error; user-provided high-stage iterations are treated as a + // floor and may be raised if the probe shows more iterations are required. + baselineProbe := carry.baselineResult() + probeIterations := carriedIterations + if probeDelta > 0 { + baselineProbe = runBulkSimBaselineSegment(request, config, baselineProbe, probeDelta, carriedIterations, probeEmitter, 0, 0, signals) + if baselineProbe.Error != nil { + return BulkSimStageResult{Baseline: baselineProbe} + } + probeIterations = minIterations + } + probeEmitter.report(1, probeDelta, baselineProbe.DpsMetrics.Avg) + + iterations := max(getBulkSimStageIterations(request, config, baselineProbe.DpsMetrics, len(candidates)), probeIterations) + baselineDelta := iterations - probeIterations + candidateDelta := iterations - carriedIterations + probeSims := core.TernaryInt(probeDelta > 0, 1, 0) + baselineSims := probeSims + core.TernaryInt(baselineDelta > 0, 1, 0) + candidateSims := core.TernaryInt(candidateDelta > 0, len(candidates), 0) + totalSims := candidateSims + baselineSims + completedBaselineIterations := probeDelta + baseline := baselineProbe + + emitter := bulkSimStageProgressEmitter{progress: progress, stage: config.Stage, totalSims: totalSims, totalIterations: int32(candidateSims)*candidateDelta + probeDelta + baselineDelta} + emitter.report(probeSims, completedBaselineIterations, baselineProbe.DpsMetrics.Avg) + if baselineDelta > 0 { + baseline = runBulkSimBaselineSegment(request, config, baselineProbe, baselineDelta, probeIterations, emitter, probeSims, probeDelta, signals) + if baseline.Error != nil { + return BulkSimStageResult{Baseline: baseline, Iterations: iterations} + } + completedBaselineIterations = probeDelta + baselineDelta + emitter.report(baselineSims, completedBaselineIterations, baseline.DpsMetrics.Avg) + } + + // Everything this stage needs is already covered by the carried iterations. + if candidateDelta <= 0 { + collected := carry.results(candidates) + return BulkSimStageResult{ + Baseline: baseline, + Results: collected, + Iterations: iterations, + Metrics: bulkSimStageMetrics(config, candidates, collected, baseline, iterations, concurrency, startedAt), + } + } + + collected := runBulkSimCandidateBatch(request, candidates, config, bulkSimCandidateBatchConfig{ + iterations: candidateDelta, + seedOffset: carriedIterations, + concurrency: concurrency, + completedSimsBase: baselineSims, + completedIterationsBase: completedBaselineIterations, + emitter: emitter, + carried: carry, + }, signals) + baseline, collected, iterations = adaptBulkSimStageIterations(request, candidates, config, progress, signals, concurrency, baseline, collected, iterations) + if baseline.Error != nil { + return BulkSimStageResult{Baseline: baseline, Results: collected, Iterations: iterations} + } + + return BulkSimStageResult{ + Baseline: baseline, + Results: collected, + Iterations: iterations, + Metrics: bulkSimStageMetrics(config, candidates, collected, baseline, iterations, concurrency, startedAt), + } +} + +// Runs `iterations` of the baseline gear at `seedOffset` and folds the result into +// `carried` (nil when there is nothing carried yet). Progress is reported as +// completedSimsBase sims done plus this segment's iterations on top of +// completedIterationsBase. An errored segment is returned as-is for the caller to check. +func runBulkSimBaselineSegment(request *proto.BulkSimRequest, config BulkSimStageConfig, carried *BulkSimCandidateResult, iterations int32, seedOffset int32, emitter bulkSimStageProgressEmitter, completedSimsBase int, completedIterationsBase int32, signals simsignals.Signals) *BulkSimCandidateResult { + segment := runSingleBulkSimCandidate(request, BulkSimCandidate{Index: -1, Gear: getBulkSimBaselineGear(request)}, iterations, seedOffset, signals, config.UseConcurrentSim, func(progressMetrics *proto.ProgressMetrics) { + if progressMetrics.TotalIterations == 0 { + return + } + emitter.report(completedSimsBase, completedIterationsBase+min(progressMetrics.CompletedIterations, iterations), progressMetrics.Dps) + }) + if segment.Error != nil { + return segment + } + return mergeBulkSimCandidateResults(carried, segment) +} + +func bulkSimStageMetrics(config BulkSimStageConfig, candidates []BulkSimCandidate, results []*BulkSimCandidateResult, baseline *BulkSimCandidateResult, iterations int32, concurrency int, startedAt time.Time) *proto.BulkSimStageMetrics { + return &proto.BulkSimStageMetrics{ + Stage: config.Stage, + InputGearSets: int32(len(candidates)), + Survivors: int32(len(results)), + Iterations: iterations, + Concurrency: int32(concurrency), + DurationSeconds: time.Since(startedAt).Seconds(), + TargetErrorPct: config.TargetErrorPct, + ObservedErrorPct: bulkSimObservedStageErrorPct(baseline, results, iterations, len(candidates)), + BaselineAvgDps: baseline.DpsMetrics.Avg, + BestCandidateAvgDps: bestBulkSimDps(results), + } +} + +// The user-provided high-stage iteration count acts as the floor for the high stage; +// every other stage uses its own configured minimum. +func getBulkSimStageMinIterations(highStageIterations int32, config BulkSimStageConfig) int32 { + if config.Stage == proto.BulkSimStage_BulkSimStageHigh && highStageIterations > 0 { + return highStageIterations + } + return config.MinIterations +} + +func getBulkSimStageIterations(request *proto.BulkSimRequest, config BulkSimStageConfig, baselineMetrics *proto.DistributionMetrics, candidateCount int) int32 { + minIterations := getBulkSimStageMinIterations(request.HighStageIterations, config) + // The user-defined high-stage iteration count is a floor, not a cap. Every + // stage still uses enough iterations to satisfy its target error when needed. + targetIterations := getBulkSimTargetIterations(config.TargetErrorPct, baselineMetrics, candidateCount) + return max(minIterations, targetIterations) +} + +func getBulkSimStageMaxSurvivors(config BulkSimStageConfig, candidateCount int) int { + if config.MaxSurvivors == 0 { + return config.MaxSurvivors + } + + var scaleReference int + switch config.Stage { + case proto.BulkSimStage_BulkSimStageLow: + scaleReference = bulkSimLowStageSurvivorScaleReference + case proto.BulkSimStage_BulkSimStageMedium: + scaleReference = bulkSimMediumStageSurvivorScaleReference + default: + return config.MaxSurvivors + } + + if candidateCount <= scaleReference { + return config.MaxSurvivors + } + + scale := math.Sqrt(float64(candidateCount) / float64(scaleReference)) + return max(config.MaxSurvivors, int(math.Ceil(float64(config.MaxSurvivors)*scale))) +} + +// Adds bounded extra iterations when the completed stage missed its target +// error. Extra sims use seed offsets and are merged into the existing metrics, +// avoiding a full rerun while still reducing standard error for the same +// baseline/candidate set. +func adaptBulkSimStageIterations(request *proto.BulkSimRequest, candidates []BulkSimCandidate, config BulkSimStageConfig, progress chan *proto.ProgressMetrics, signals simsignals.Signals, concurrency int, baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult, iterations int32) (*BulkSimCandidateResult, []*BulkSimCandidateResult, int32) { + maxAdaptiveIterations := int32(math.Ceil(float64(iterations) * bulkSimAdaptiveMaxIterationMultiplier)) + for adaptivePass := 1; adaptivePass <= bulkSimMaxAdaptivePasses; adaptivePass++ { + if signals.Abort.IsTriggered() || hasBulkSimStageError(baseline, results) { + return baseline, results, iterations + } + + observedErrorPct := bulkSimObservedStageErrorPct(baseline, results, iterations, len(candidates)) + if observedErrorPct <= config.TargetErrorPct { + return baseline, results, iterations + } + + targetIterations := getBulkSimStageTargetIterations(config.TargetErrorPct, baseline, results, len(candidates)) + targetIterations = min(maxAdaptiveIterations, max(iterations+1, targetIterations)) + if targetIterations <= iterations { + return baseline, results, iterations + } + + additionalIterations := targetIterations - iterations + log.Printf("[Bulk Sim] - Stage: %s - Adaptive pass %d\nResults:\n Current iterations: %d\n Additional iterations: %d\n Target iterations: %d\n Target error: %.2f%%\n Observed error: %.2f%%", bulkSimStageLogName(config.Stage), adaptivePass, iterations, additionalIterations, targetIterations, config.TargetErrorPct, observedErrorPct) + baseline, results = rerunBulkSimStageAdditionalIterations(request, candidates, config, progress, signals, concurrency, baseline, results, iterations, additionalIterations) + iterations = targetIterations + } + return baseline, results, iterations +} + +// Runs only the delta required by an adaptive pass. The seed offset prevents +// reusing the same random sequence as the previous pass, and the returned +// metrics are merged with the existing stage results by candidate index. +func rerunBulkSimStageAdditionalIterations(request *proto.BulkSimRequest, candidates []BulkSimCandidate, config BulkSimStageConfig, progress chan *proto.ProgressMetrics, signals simsignals.Signals, concurrency int, baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult, currentIterations int32, additionalIterations int32) (*BulkSimCandidateResult, []*BulkSimCandidateResult) { + totalSims := len(candidates) + 1 + emitter := bulkSimStageProgressEmitter{progress: progress, stage: config.Stage, totalSims: totalSims, totalIterations: int32(totalSims) * additionalIterations} + emitter.report(0, 0, 0) + + baselineExtra := runBulkSimBaselineSegment(request, config, baseline, additionalIterations, currentIterations, emitter, 0, 0, signals) + if baselineExtra.Error != nil { + return baselineExtra, results + } + baseline = baselineExtra + emitter.report(1, additionalIterations, baseline.DpsMetrics.Avg) + + // The pass so far is the carry-over for this batch, so the extra iterations are + // merged into each candidate as they complete - exactly like a stage carrying its + // predecessor's iterations. + return baseline, runBulkSimCandidateBatch(request, candidates, config, bulkSimCandidateBatchConfig{ + iterations: additionalIterations, + seedOffset: currentIterations, + concurrency: concurrency, + completedSimsBase: 1, + completedIterationsBase: additionalIterations, + emitter: emitter, + carried: bulkSimCarryOverFromResults(currentIterations, baseline, results), + }, signals) +} diff --git a/sim/core/bulk/statistics.go b/sim/core/bulk/statistics.go new file mode 100644 index 0000000000..b055328255 --- /dev/null +++ b/sim/core/bulk/statistics.go @@ -0,0 +1,260 @@ +package bulk + +import ( + "cmp" + "container/heap" + "math" + "slices" + + "github.com/wowsims/mop/sim/core/proto" +) + +type bulkSimResultMinHeap []*BulkSimCandidateResult + +func (h bulkSimResultMinHeap) Len() int { return len(h) } + +func (h bulkSimResultMinHeap) Less(i, j int) bool { + return h[i].DpsMetrics.Avg < h[j].DpsMetrics.Avg +} + +func (h bulkSimResultMinHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] } + +func (h *bulkSimResultMinHeap) Push(x any) { + *h = append(*h, x.(*BulkSimCandidateResult)) +} + +func (h *bulkSimResultMinHeap) Pop() any { + old := *h + n := len(old) + result := old[n-1] + *h = old[:n-1] + return result +} + +// Converts a target relative error into an iteration count using standard +// error: stdev / sqrt(iterations). The combination multiplier is a practical +// multiple-candidate adjustment so large candidate sets use more iterations +// without paying the full Bonferroni cost. +func getBulkSimTargetIterations(targetErrorPct float64, metrics *proto.DistributionMetrics, candidateCount int) int32 { + if metrics == nil || metrics.Avg <= 0 { + return 0 + } + + targetError := metrics.Avg * (targetErrorPct / 100) + if targetError <= 0 { + return 0 + } + + combinationMultiplier := bulkSimCombinationErrorMultiplier(candidateCount) + return int32(math.Ceil(math.Pow((metrics.Stdev*combinationMultiplier)/targetError, 2))) +} + +// Keeps candidates that could still plausibly be the best result after +// accounting for sim variance. The top MinSurvivors by mean are always +// retained, then any candidate whose upper interval overlaps the best +// candidate's lower interval is kept. A soft cap prevents pathological stages +// from forwarding the entire candidate set when many results are tied. +func selectBulkSimSurvivors(results []*BulkSimCandidateResult, baseline *BulkSimCandidateResult, iterations int32, config BulkSimStageConfig, originalCandidateCount int) []BulkSimCandidate { + maxSurvivors := getBulkSimStageMaxSurvivors(config, len(results)) + if maxSurvivors == 0 || len(results) <= maxSurvivors { + return bulkSimResultsToCandidates(results) + } + + bestMetrics := baseline.DpsMetrics + for _, result := range results { + if result == nil || result.DpsMetrics == nil { + continue + } + if result.DpsMetrics.Avg > bestMetrics.Avg { + bestMetrics = result.DpsMetrics + } + } + intervalMultiplier := bulkSimSurvivorIntervalMultiplier(originalCandidateCount, config.CullingCoefficient) + bestLowerBound := bestMetrics.Avg - bulkSimDpsError(bestMetrics, iterations)*intervalMultiplier + + meanSurvivors := topBulkSimResults(results, config.MinSurvivors) + survivors := make([]*BulkSimCandidateResult, 0, maxSurvivors) + seen := make(map[int32]bool) + for _, result := range meanSurvivors { + survivors = append(survivors, result) + seen[result.Candidate.Index] = true + } + for _, result := range results { + if result == nil || result.DpsMetrics == nil || seen[result.Candidate.Index] { + continue + } + + if bulkSimCandidateIsCulled(result.DpsMetrics, bestMetrics, bestLowerBound, iterations, intervalMultiplier) { + continue + } + survivors = append(survivors, result) + seen[result.Candidate.Index] = true + } + + softMaxSurvivors := maxSurvivors * bulkSimSurvivorSoftCapMultiplier + if len(survivors) > softMaxSurvivors { + survivors = topBulkSimResults(survivors, softMaxSurvivors) + } + + return bulkSimResultsToCandidates(survivors) +} + +// The marginal cull test compares the sum of both candidates' half-widths, which is +// sqrt(2) wider than the standard error of the difference it is really testing. Keeping +// that factor when switching to the paired estimate means pairing only removes the +// variance the shared seeds already cancel - it does not additionally tighten the +// interval. +const bulkSimPairedIntervalConservatism = math.Sqrt2 + +// Decides whether a candidate is far enough behind the leader to drop out. +// +// Every candidate is simmed on the same seed sequence, so most of the per-iteration +// noise is shared between any two of them. Comparing marginal standard errors throws +// that away; differencing the paired per-iteration values keeps it, which resolves the +// same gap with fewer iterations. Falls back to the marginal comparison when the values +// are unavailable or not aligned (different iteration counts). +func bulkSimCandidateIsCulled(metrics *proto.DistributionMetrics, bestMetrics *proto.DistributionMetrics, bestLowerBound float64, iterations int32, intervalMultiplier float64) bool { + if pairedError, ok := bulkSimPairedDpsError(metrics, bestMetrics); ok { + return bestMetrics.Avg-metrics.Avg > pairedError*intervalMultiplier*bulkSimPairedIntervalConservatism + } + + candidateUpperBound := metrics.Avg + bulkSimDpsError(metrics, iterations)*intervalMultiplier + return candidateUpperBound < bestLowerBound +} + +// Standard error of the mean per-iteration difference between a candidate and the +// leader. Reports false when the two runs cannot be paired; a zero error is a valid +// result - it means the candidate trailed the leader by the same amount every +// iteration, which is the strongest evidence pairing can give. +func bulkSimPairedDpsError(metrics *proto.DistributionMetrics, bestMetrics *proto.DistributionMetrics) (float64, bool) { + if metrics == nil || bestMetrics == nil { + return 0, false + } + values, bestValues := metrics.AllValues, bestMetrics.AllValues + if len(values) == 0 || len(values) != len(bestValues) { + return 0, false + } + + var sum, sumSq float64 + for idx, value := range values { + difference := value - bestValues[idx] + sum += difference + sumSq += difference * difference + } + count := float64(len(values)) + mean := sum / count + variance := math.Max(0, sumSq/count-mean*mean) + return math.Sqrt(variance / count), true +} + +func bulkSimDpsError(metrics *proto.DistributionMetrics, iterations int32) float64 { + if metrics == nil || iterations <= 0 { + return 0 + } + return metrics.Stdev / math.Sqrt(float64(iterations)) +} + +// Intentionally much lighter than a strict Bonferroni correction. Bulk Sim +// needs to avoid false culls among many candidates, but absolute proof of the +// full ordering would require infeasible iteration counts for near-tied gear +// sets. +func bulkSimCombinationErrorMultiplier(candidateCount int) float64 { + return math.Sqrt(math.Max(1, math.Log10(math.Max(float64(candidateCount), bulkSimCombinationLogMin)))) +} + +func bulkSimSurvivorIntervalMultiplier(candidateCount int, cullingCoefficient float64) float64 { + return cullingCoefficient * bulkSimCombinationErrorMultiplier(candidateCount) +} + +func bulkSimObservedErrorPct(metrics *proto.DistributionMetrics, iterations int32, candidateCount int) float64 { + if metrics == nil || metrics.Avg <= 0 || iterations <= 0 { + return 0 + } + return bulkSimDpsError(metrics, iterations) * bulkSimCombinationErrorMultiplier(candidateCount) / metrics.Avg * 100 +} + +// Reports the worst relative error across the baseline and every candidate. +// Using the max is intentionally conservative: one noisy candidate can still +// affect culling or final top-result confidence. +func bulkSimObservedStageErrorPct(baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult, iterations int32, candidateCount int) float64 { + observedErrorPct := 0.0 + if baseline != nil { + observedErrorPct = bulkSimObservedErrorPct(baseline.DpsMetrics, iterations, candidateCount) + } + for _, result := range results { + if result == nil { + continue + } + observedErrorPct = math.Max(observedErrorPct, bulkSimObservedErrorPct(result.DpsMetrics, iterations, candidateCount)) + } + return observedErrorPct +} + +func getBulkSimStageTargetIterations(targetErrorPct float64, baseline *BulkSimCandidateResult, results []*BulkSimCandidateResult, candidateCount int) int32 { + targetIterations := int32(0) + if baseline != nil { + targetIterations = max(targetIterations, getBulkSimTargetIterations(targetErrorPct, baseline.DpsMetrics, candidateCount)) + } + for _, result := range results { + if result == nil { + continue + } + targetIterations = max(targetIterations, getBulkSimTargetIterations(targetErrorPct, result.DpsMetrics, candidateCount)) + } + return targetIterations +} + +func topBulkSimResults(results []*BulkSimCandidateResult, limit int) []*BulkSimCandidateResult { + if limit <= 0 || len(results) == 0 { + return nil + } + // Both branches sort on DpsMetrics.Avg, so both drop entries that cannot supply one. + // The filter is inline rather than a shared pre-pass so the heap branch below keeps + // streaming over results within its bounded `limit` allocation. + if len(results) <= limit { + topResults := make([]*BulkSimCandidateResult, 0, len(results)) + for _, result := range results { + if result == nil || result.DpsMetrics == nil { + continue + } + topResults = append(topResults, result) + } + sortBulkSimResultsByDps(topResults) + return topResults + } + + topResults := make(bulkSimResultMinHeap, 0, limit) + for _, result := range results { + if result == nil || result.DpsMetrics == nil { + continue + } + if topResults.Len() < limit { + heap.Push(&topResults, result) + continue + } + if result.DpsMetrics.Avg > topResults[0].DpsMetrics.Avg { + topResults[0] = result + heap.Fix(&topResults, 0) + } + } + + result := []*BulkSimCandidateResult(topResults) + sortBulkSimResultsByDps(result) + return result +} + +func sortBulkSimResultsByDps(results []*BulkSimCandidateResult) { + slices.SortFunc(results, func(a, b *BulkSimCandidateResult) int { + return cmp.Compare(b.DpsMetrics.Avg, a.DpsMetrics.Avg) + }) +} + +func bestBulkSimDps(results []*BulkSimCandidateResult) float64 { + best := 0.0 + for _, result := range results { + if result != nil && result.DpsMetrics != nil { + best = math.Max(best, result.DpsMetrics.Avg) + } + } + return best +} diff --git a/sim/core/bulk/weapons.go b/sim/core/bulk/weapons.go new file mode 100644 index 0000000000..19e3f0871d --- /dev/null +++ b/sim/core/bulk/weapons.go @@ -0,0 +1,160 @@ +package bulk + +import ( + "slices" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +func (generator *bulkSimCandidateGenerator) getAllWeaponCombos() [][2]*bulkSimCandidateOption { + if generator.weaponCombosReady { + return generator.weaponCombosCached + } + + allWeaponCombos := make([][2]*bulkSimCandidateOption, 0) + all2HWeapons := make([]bulkSimCandidateOption, 0) + for _, bulkSlot := range []BulkSimItemSlot{BulkSimItemSlotMainHand, BulkSimItemSlotHandWeapon} { + options := generator.selectedByBulkSlot[bulkSlot] + for _, option := range options { + if occupiesBothHands(&option.item) || option.item.HandType == proto.HandType_HandTypeTwoHand { + all2HWeapons = append(all2HWeapons, option) + } + } + } + if generator.playerIsFuryWarrior { + for i := range all2HWeapons { + if optionsContainEquivalent(all2HWeapons[:i], &all2HWeapons[i], generator.inheritUpgrades) { + continue + } + allWeaponCombos = append(allWeaponCombos, [2]*bulkSimCandidateOption{&all2HWeapons[i], nil}) + for j := i + 1; j < len(all2HWeapons); j++ { + if optionsContainEquivalent(all2HWeapons[i+1:j], &all2HWeapons[j], generator.inheritUpgrades) { + continue + } + if occupiesBothHands(&all2HWeapons[i].item) || occupiesBothHands(&all2HWeapons[j].item) { + continue + } + allWeaponCombos = generator.appendWearableOrders(allWeaponCombos, &all2HWeapons[i], &all2HWeapons[j]) + } + } + } else { + for i := range all2HWeapons { + allWeaponCombos = append(allWeaponCombos, [2]*bulkSimCandidateOption{&all2HWeapons[i], nil}) + } + } + mhOptions := generator.selectedByBulkSlot[BulkSimItemSlotMainHand] + ohOptions := generator.selectedByBulkSlot[BulkSimItemSlotOffHand] + if len(mhOptions) > 0 { + for i := range mhOptions { + if optionsContainEquivalent(all2HWeapons, &mhOptions[i], generator.inheritUpgrades) { + continue + } + if len(ohOptions) > 0 { + for j := range ohOptions { + allWeaponCombos = append(allWeaponCombos, [2]*bulkSimCandidateOption{&mhOptions[i], &ohOptions[j]}) + } + } else { + allWeaponCombos = append(allWeaponCombos, [2]*bulkSimCandidateOption{&mhOptions[i], nil}) + } + } + } else if len(ohOptions) > 0 { + for i := range ohOptions { + allWeaponCombos = append(allWeaponCombos, [2]*bulkSimCandidateOption{nil, &ohOptions[i]}) + } + } + oneHandOptions := generator.selectedByBulkSlot[BulkSimItemSlotHandWeapon] + if len(oneHandOptions) > 0 { + // Everything that fills both hands is in all2HWeapons by construction, so dropping the + // options equivalent to one of those also drops every ranged weapon here. + filtered := make([]bulkSimCandidateOption, 0, len(oneHandOptions)) + for _, option := range oneHandOptions { + if optionsContainEquivalent(all2HWeapons, &option, generator.inheritUpgrades) { + continue + } + filtered = append(filtered, option) + } + for i := range filtered { + if optionsContainEquivalent(filtered[:i], &filtered[i], generator.inheritUpgrades) { + continue + } + // Only wield the same 1H weapon in both hands when at least two copies exist. + copyCount := generator.weaponCopyCounts[buildItemSpecKey(filtered[i].spec, generator.inheritUpgrades)] + if copyCount >= 2 && itemCanBeDoubled(&filtered[i].item) { + allWeaponCombos = generator.appendWearablePair(allWeaponCombos, &filtered[i], &filtered[i]) + } + for j := i + 1; j < len(filtered); j++ { + if optionsContainEquivalent(filtered[i+1:j], &filtered[j], generator.inheritUpgrades) { + continue + } + if !pairIsEquippable(&filtered[i].item, &filtered[j].item) { + continue + } + allWeaponCombos = generator.appendWearableOrders(allWeaponCombos, &filtered[i], &filtered[j]) + } + } + } + filteredCombos := make([][2]*bulkSimCandidateOption, 0, len(allWeaponCombos)) + for _, combo := range allWeaponCombos { + if generator.weaponComboMatchesSettings(combo[0], combo[1]) { + filteredCombos = append(filteredCombos, combo) + } + } + + generator.weaponCombosCached = filteredCombos + generator.weaponCombosReady = true + return generator.weaponCombosCached +} + +// The hand bucket holds anything wieldable in either hand, so a mainhand-only weapon still has to +// be kept out of the offhand and vice versa. +func (generator *bulkSimCandidateGenerator) appendWearablePair(combos [][2]*bulkSimCandidateOption, mhItem *bulkSimCandidateOption, ohItem *bulkSimCandidateOption) [][2]*bulkSimCandidateOption { + if canWearWeaponInHand(&mhItem.item, generator.playerClass, generator.playerSpec, proto.ItemSlot_ItemSlotMainHand) && + canWearWeaponInHand(&ohItem.item, generator.playerClass, generator.playerSpec, proto.ItemSlot_ItemSlotOffHand) { + combos = append(combos, [2]*bulkSimCandidateOption{mhItem, ohItem}) + } + return combos +} + +// Both hand orders of a pair, minus the mirror image when the two options are the same item. +func (generator *bulkSimCandidateGenerator) appendWearableOrders(combos [][2]*bulkSimCandidateOption, first *bulkSimCandidateOption, second *bulkSimCandidateOption) [][2]*bulkSimCandidateOption { + combos = generator.appendWearablePair(combos, first, second) + if candidateOptionsEqual(first, second, generator.inheritUpgrades) { + return combos + } + return generator.appendWearablePair(combos, second, first) +} + +func (generator *bulkSimCandidateGenerator) weaponComboMatchesSettings(mhItem *bulkSimCandidateOption, ohItem *bulkSimCandidateOption) bool { + frozenWeaponItem := generator.getFrozenWeaponItem() + if generator.frozenWeaponSlot == proto.ItemSlot_ItemSlotMainHand && frozenWeaponItem != nil && !candidateOptionEqualsItemPtr(mhItem, frozenWeaponItem, generator.inheritUpgrades) { + return false + } + if generator.frozenWeaponSlot == proto.ItemSlot_ItemSlotOffHand && frozenWeaponItem != nil && !candidateOptionEqualsItemPtr(ohItem, frozenWeaponItem, generator.inheritUpgrades) { + return false + } + return generator.matchesWeaponTypeFilter(mhItem, proto.ItemSlot_ItemSlotMainHand) && generator.matchesWeaponTypeFilter(ohItem, proto.ItemSlot_ItemSlotOffHand) +} + +func (generator *bulkSimCandidateGenerator) matchesWeaponTypeFilter(option *bulkSimCandidateOption, slot proto.ItemSlot) bool { + filter := generator.weaponTypeFilters[slot] + if len(filter) == 0 { + return true + } + if option == nil { + return false + } + return option.item.WeaponType > proto.WeaponType_WeaponTypeUnknown && slices.Contains(filter, option.item.WeaponType) +} + +func (generator *bulkSimCandidateGenerator) getFrozenWeaponItem() *core.Item { + if generator.frozenWeaponSlot != proto.ItemSlot_ItemSlotMainHand && generator.frozenWeaponSlot != proto.ItemSlot_ItemSlotOffHand { + return nil + } + item := generator.baseEquipment.GetItemBySlot(generator.frozenWeaponSlot) + if item == nil || item.ID == 0 { + return nil + } + itemCopy := *item + return &itemCopy +} diff --git a/sim/core/character_constants.go b/sim/core/character_constants.go new file mode 100644 index 0000000000..389d2b4e95 --- /dev/null +++ b/sim/core/character_constants.go @@ -0,0 +1,279 @@ +package core + +import ( + "github.com/wowsims/mop/sim/core/proto" +) + +// EligibleWeaponType describes whether a weapon type can be used as a two-hand weapon. +type EligibleWeaponType struct { + CanUseTwoHand bool +} + +var ClassArmorTypeCapabilities = map[proto.Class][]proto.ArmorType{ + proto.Class_ClassWarrior: {proto.ArmorType_ArmorTypePlate, proto.ArmorType_ArmorTypeMail, proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassPaladin: {proto.ArmorType_ArmorTypePlate, proto.ArmorType_ArmorTypeMail, proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassHunter: {proto.ArmorType_ArmorTypeMail}, + proto.Class_ClassRogue: {proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassPriest: {proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassDeathKnight: {proto.ArmorType_ArmorTypePlate, proto.ArmorType_ArmorTypeMail, proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassShaman: {proto.ArmorType_ArmorTypeMail, proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassMage: {proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassWarlock: {proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassMonk: {proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, + proto.Class_ClassDruid: {proto.ArmorType_ArmorTypeLeather, proto.ArmorType_ArmorTypeCloth}, +} + +var ClassWeaponTypeCapabilities = map[proto.Class]map[proto.WeaponType]EligibleWeaponType{ + proto.Class_ClassWarrior: { + proto.WeaponType_WeaponTypeAxe: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeFist: {}, + proto.WeaponType_WeaponTypeMace: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypePolearm: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeShield: {}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeSword: {CanUseTwoHand: true}, + }, + proto.Class_ClassPaladin: { + proto.WeaponType_WeaponTypeAxe: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeMace: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypePolearm: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeShield: {}, + proto.WeaponType_WeaponTypeSword: {CanUseTwoHand: true}, + }, + proto.Class_ClassHunter: {}, + proto.Class_ClassRogue: { + proto.WeaponType_WeaponTypeAxe: {}, + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeFist: {}, + proto.WeaponType_WeaponTypeMace: {}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypeSword: {}, + }, + proto.Class_ClassPriest: { + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeMace: {}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + }, + proto.Class_ClassDeathKnight: { + proto.WeaponType_WeaponTypeAxe: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeMace: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypePolearm: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeSword: {CanUseTwoHand: true}, + }, + proto.Class_ClassShaman: { + proto.WeaponType_WeaponTypeAxe: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeFist: {}, + proto.WeaponType_WeaponTypeMace: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypeShield: {}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + }, + proto.Class_ClassMage: { + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeSword: {}, + }, + proto.Class_ClassWarlock: { + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeSword: {}, + }, + proto.Class_ClassMonk: { + proto.WeaponType_WeaponTypeAxe: {}, + proto.WeaponType_WeaponTypeFist: {}, + proto.WeaponType_WeaponTypeMace: {}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypePolearm: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeSword: {}, + }, + proto.Class_ClassDruid: { + proto.WeaponType_WeaponTypeDagger: {}, + proto.WeaponType_WeaponTypeFist: {}, + proto.WeaponType_WeaponTypeMace: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeOffHand: {}, + proto.WeaponType_WeaponTypePolearm: {CanUseTwoHand: true}, + proto.WeaponType_WeaponTypeStaff: {CanUseTwoHand: true}, + }, +} + +var ClassRangedWeaponTypeCapabilities = map[proto.Class][]proto.RangedWeaponType{ + proto.Class_ClassWarrior: {proto.RangedWeaponType_RangedWeaponTypeBow, proto.RangedWeaponType_RangedWeaponTypeCrossbow, proto.RangedWeaponType_RangedWeaponTypeGun, proto.RangedWeaponType_RangedWeaponTypeThrown}, + proto.Class_ClassPaladin: {}, + proto.Class_ClassHunter: {proto.RangedWeaponType_RangedWeaponTypeBow, proto.RangedWeaponType_RangedWeaponTypeCrossbow, proto.RangedWeaponType_RangedWeaponTypeGun}, + proto.Class_ClassRogue: {}, + proto.Class_ClassPriest: {proto.RangedWeaponType_RangedWeaponTypeWand}, + proto.Class_ClassDeathKnight: {}, + proto.Class_ClassShaman: {}, + proto.Class_ClassMage: {proto.RangedWeaponType_RangedWeaponTypeWand}, + proto.Class_ClassWarlock: {proto.RangedWeaponType_RangedWeaponTypeWand}, + proto.Class_ClassMonk: {}, + proto.Class_ClassDruid: {}, +} + +var ClassRaceCapabilities = map[proto.Class][]proto.Race{ + proto.Class_ClassWarrior: { + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceGnome, + proto.Race_RaceDraenei, + proto.Race_RaceWorgen, + proto.Race_RaceAlliancePandaren, + proto.Race_RaceOrc, + proto.Race_RaceUndead, + proto.Race_RaceTauren, + proto.Race_RaceTroll, + proto.Race_RaceBloodElf, + proto.Race_RaceGoblin, + proto.Race_RaceHordePandaren, + }, + proto.Class_ClassPaladin: { + proto.Race_RaceBloodElf, + proto.Race_RaceTauren, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceDraenei, + }, + proto.Class_ClassHunter: { + proto.Race_RaceWorgen, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceDraenei, + proto.Race_RaceAlliancePandaren, + proto.Race_RaceOrc, + proto.Race_RaceUndead, + proto.Race_RaceTauren, + proto.Race_RaceTroll, + proto.Race_RaceBloodElf, + proto.Race_RaceGoblin, + proto.Race_RaceHordePandaren, + }, + proto.Class_ClassRogue: { + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceGnome, + proto.Race_RaceWorgen, + proto.Race_RaceAlliancePandaren, + proto.Race_RaceOrc, + proto.Race_RaceUndead, + proto.Race_RaceTroll, + proto.Race_RaceBloodElf, + proto.Race_RaceGoblin, + proto.Race_RaceHordePandaren, + }, + proto.Class_ClassPriest: { + proto.Race_RaceTroll, + proto.Race_RaceUndead, + proto.Race_RaceTauren, + proto.Race_RaceBloodElf, + proto.Race_RaceGoblin, + proto.Race_RaceHordePandaren, + proto.Race_RaceWorgen, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceGnome, + proto.Race_RaceDraenei, + proto.Race_RaceAlliancePandaren, + }, + proto.Class_ClassShaman: { + proto.Race_RaceTroll, + proto.Race_RaceOrc, + proto.Race_RaceTauren, + proto.Race_RaceGoblin, + proto.Race_RaceHordePandaren, + proto.Race_RaceDwarf, + proto.Race_RaceDraenei, + proto.Race_RaceAlliancePandaren, + }, + proto.Class_ClassMage: { + proto.Race_RaceTroll, + proto.Race_RaceGoblin, + proto.Race_RaceOrc, + proto.Race_RaceUndead, + proto.Race_RaceBloodElf, + proto.Race_RaceHordePandaren, + proto.Race_RaceWorgen, + proto.Race_RaceGnome, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceDraenei, + proto.Race_RaceAlliancePandaren, + }, + proto.Class_ClassWarlock: { + proto.Race_RaceOrc, + proto.Race_RaceUndead, + proto.Race_RaceTroll, + proto.Race_RaceBloodElf, + proto.Race_RaceGoblin, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceGnome, + proto.Race_RaceWorgen, + }, + proto.Class_ClassMonk: { + proto.Race_RaceAlliancePandaren, + proto.Race_RaceDraenei, + proto.Race_RaceDwarf, + proto.Race_RaceGnome, + proto.Race_RaceHuman, + proto.Race_RaceNightElf, + proto.Race_RaceWorgen, + proto.Race_RaceHordePandaren, + proto.Race_RaceBloodElf, + proto.Race_RaceOrc, + proto.Race_RaceTauren, + proto.Race_RaceTroll, + proto.Race_RaceUndead, + proto.Race_RaceGoblin, + }, + proto.Class_ClassDruid: { + proto.Race_RaceTroll, + proto.Race_RaceTauren, + proto.Race_RaceWorgen, + proto.Race_RaceNightElf, + }, + proto.Class_ClassDeathKnight: { + proto.Race_RaceOrc, + proto.Race_RaceTroll, + proto.Race_RaceGoblin, + proto.Race_RaceBloodElf, + proto.Race_RaceUndead, + proto.Race_RaceTauren, + proto.Race_RaceWorgen, + proto.Race_RaceDraenei, + proto.Race_RaceHuman, + proto.Race_RaceDwarf, + proto.Race_RaceNightElf, + proto.Race_RaceGnome, + }, +} + +var SpecCanDualWieldCapabilities = map[proto.Spec]bool{ + proto.Spec_SpecBloodDeathKnight: true, + proto.Spec_SpecFrostDeathKnight: true, + proto.Spec_SpecUnholyDeathKnight: true, + proto.Spec_SpecBeastMasteryHunter: true, + proto.Spec_SpecMarksmanshipHunter: true, + proto.Spec_SpecSurvivalHunter: true, + proto.Spec_SpecAssassinationRogue: true, + proto.Spec_SpecCombatRogue: true, + proto.Spec_SpecSubtletyRogue: true, + proto.Spec_SpecEnhancementShaman: true, + proto.Spec_SpecArmsWarrior: true, + proto.Spec_SpecFuryWarrior: true, + proto.Spec_SpecProtectionWarrior: true, + proto.Spec_SpecBrewmasterMonk: true, + proto.Spec_SpecWindwalkerMonk: true, +} diff --git a/sim/core/consumes.go b/sim/core/consumes.go index a0f0116d4c..919aa0b371 100644 --- a/sim/core/consumes.go +++ b/sim/core/consumes.go @@ -16,7 +16,7 @@ func applyConsumeEffects(agent Agent) { } if consumables.FoodId != 0 { - food := ConsumablesByID[consumables.FoodId] + food := GetConsumableByID(consumables.FoodId) isPanda := character.Race == proto.Race_RaceHordePandaren || character.Race == proto.Race_RaceAlliancePandaren var foodBuffStats stats.Stats if food.BuffsMainStat { @@ -57,7 +57,7 @@ func registerNonCombatPotions(agent Agent, consumables *proto.ConsumesSpec) { func registerNonCombatPotion(agent Agent, elixirOrFlaskId int32) *Spell { character := agent.GetCharacter() - item := ConsumablesByID[elixirOrFlaskId] + item := GetConsumableByID(elixirOrFlaskId) // All non combat potions require a buff duration to create a buff aura if item.BuffDuration == 0 { @@ -208,7 +208,7 @@ func (character *Character) HasAlchStone() bool { } func makePotionActivationSpell(potionId int32, character *Character) MajorCooldown { - potion := ConsumablesByID[potionId] + potion := GetConsumableByID(potionId) categoryCooldownDuration := TernaryDuration(potion.CategoryCooldownDuration > 0, potion.CategoryCooldownDuration, time.Minute*1) mcd := makePotionActivationSpellInternal(potion, character) @@ -269,7 +269,7 @@ func makePotionActivationSpellInternal(potion Consumable, character *Character) resourceMetrics := make(map[proto.ResourceType]*ResourceMetrics) for _, effectID := range potion.EffectIds { - e := SpellEffectsById[effectID] + e := GetSpellEffectByID(effectID) resourceType := e.GetResourceType() if e.Type == proto.EffectType_EffectTypeResourceGain && resourceType != 0 { if resourceType == proto.ResourceType_ResourceTypeMana && mcd.Type != CooldownTypeSurvival { diff --git a/sim/core/database.go b/sim/core/database.go index f0079dcca5..c1d9200970 100644 --- a/sim/core/database.go +++ b/sim/core/database.go @@ -14,69 +14,90 @@ import ( var WITH_DB = false -var ItemsByID = map[int32]Item{} -var GemsByID = map[int32]Gem{} -var RandomSuffixesByID = map[int32]RandomSuffix{} -var EnchantsByEffectID = map[int32]Enchant{} -var ReforgeStatsByID = map[int32]ReforgeStat{} -var ItemEffectRandPropPointsByIlvl = map[int32]ItemEffectRandPropPoints{} -var ConsumablesByID = map[int32]Consumable{} -var SpellEffectsById = map[int32]*proto.SpellEffect{} - -var mutex = &sync.Mutex{} +var itemsByID = map[int32]Item{} +var gemsByID = map[int32]Gem{} +var randomSuffixesByID = map[int32]RandomSuffix{} +var enchantsByEffectID = map[int32]Enchant{} +var reforgeStatsByID = map[int32]ReforgeStat{} +var itemEffectRandPropPointsByIlvl = map[int32]ItemEffectRandPropPoints{} +var consumablesByID = map[int32]Consumable{} +var spellEffectsById = map[int32]*proto.SpellEffect{} + +// These maps are written at request time by AddToDatabase while other requests are +// mid-flight, and a concurrent map read/write is an unrecoverable fatal error rather than +// a panic something can recover from. They are unexported so every access has to go +// through an accessor below that holds dbMu; do not export them. +var dbMu sync.RWMutex + +// The only bulk scan of the item map - everything else looks items up by ID. Runs fn for +// every item that belongs to a set, under the read lock, stopping early if fn returns false. +func forEachSetItem(fn func(item Item) bool) { + dbMu.RLock() + defer dbMu.RUnlock() + for _, item := range itemsByID { + if item.SetName == "" { + continue + } + if !fn(item) { + return + } + } +} func addToDatabase(newDB *proto.SimDatabase) { - // create mutex lock here and lock it - // defer unlock it - mutex.Lock() - defer mutex.Unlock() + dbMu.Lock() + defer dbMu.Unlock() for _, v := range newDB.Items { - if _, ok := ItemsByID[v.Id]; !ok { - ItemsByID[v.Id] = ItemFromProto(v) + if _, ok := itemsByID[v.Id]; !ok { + itemsByID[v.Id] = ItemFromProto(v) } } for _, v := range newDB.RandomSuffixes { - if _, ok := RandomSuffixesByID[v.Id]; !ok { - RandomSuffixesByID[v.Id] = RandomSuffixFromProto(v) + if _, ok := randomSuffixesByID[v.Id]; !ok { + randomSuffixesByID[v.Id] = RandomSuffixFromProto(v) } } for _, v := range newDB.Enchants { - if _, ok := EnchantsByEffectID[v.EffectId]; !ok { - EnchantsByEffectID[v.EffectId] = EnchantFromProto(v) + if _, ok := enchantsByEffectID[v.EffectId]; !ok { + enchantsByEffectID[v.EffectId] = EnchantFromProto(v) } } for _, v := range newDB.Gems { - if _, ok := GemsByID[v.Id]; !ok { - GemsByID[v.Id] = GemFromProto(v) + if _, ok := gemsByID[v.Id]; !ok { + gemsByID[v.Id] = GemFromProto(v) } } for _, v := range newDB.ReforgeStats { - if _, ok := ReforgeStatsByID[v.Id]; !ok { - ReforgeStatsByID[v.Id] = ReforgeStatFromProto(v) + if _, ok := reforgeStatsByID[v.Id]; !ok { + reforgeStatsByID[v.Id] = ReforgeStatFromProto(v) } } for _, v := range newDB.ItemEffectRandPropPoints { - if _, ok := ItemEffectRandPropPointsByIlvl[v.Ilvl]; !ok { - ItemEffectRandPropPointsByIlvl[v.Ilvl] = ItemEffectRandPropPointsFromProto(v) + if _, ok := itemEffectRandPropPointsByIlvl[v.Ilvl]; !ok { + itemEffectRandPropPointsByIlvl[v.Ilvl] = ItemEffectRandPropPointsFromProto(v) } } for _, v := range newDB.Consumables { - if _, ok := ConsumablesByID[v.Id]; !ok { - ConsumablesByID[v.Id] = ConsumableFromProto(v) + if _, ok := consumablesByID[v.Id]; !ok { + consumablesByID[v.Id] = ConsumableFromProto(v) } } for _, v := range newDB.SpellEffects { - if _, ok := SpellEffectsById[v.Id]; !ok { - SpellEffectsById[v.Id] = v + if _, ok := spellEffectsById[v.Id]; !ok { + spellEffectsById[v.Id] = v } } } +func AddToDatabase(newDB *proto.SimDatabase) { + addToDatabase(newDB) +} + type ReforgeStat struct { ID int32 FromStat proto.Stat @@ -166,11 +187,15 @@ type Item struct { Name string Stats stats.Stats // Stats applied to wearer Quality proto.ItemQuality - SetName string // Empty string if not part of a set. - SetID int32 // 0 if not part of a set. + Unique bool + + LimitCategory int32 + SetName string // Empty string if not part of a set. + SetID int32 // 0 if not part of a set. - GemSockets []proto.GemColor - SocketBonus stats.Stats + EotbGemSocket bool + GemSockets []proto.GemColor + SocketBonus stats.Stats // Modified for each instance of the item. RandomSuffix RandomSuffix @@ -204,6 +229,9 @@ func ItemFromProto(pData *proto.SimItem) Item { SetID: pData.SetId, ScalingOptions: pData.ScalingOptions, ItemEffects: pData.ItemEffects, + Unique: pData.Unique, + LimitCategory: pData.LimitCategory, + EotbGemSocket: pData.EotbGemSocket, } } @@ -225,6 +253,7 @@ func (item *Item) ToItemSpecProto() *proto.ItemSpec { Id: item.ID, RandomSuffix: item.RandomSuffix.ID, Enchant: item.Enchant.EffectID, + Tinker: item.Tinker.EffectID, Gems: MapSlice(item.Gems, func(gem Gem) int32 { return gem.ID }), UpgradeStep: item.UpgradeStep, ChallengeMode: item.ChallengeMode, @@ -261,6 +290,8 @@ type Enchant struct { EnchantEffects []*proto.ItemEffect Name string // Only needed for unit tests Type proto.ItemType // Only needed for unit tests + EnchantType proto.EnchantType + ExtraTypes []proto.ItemType } func EnchantFromProto(pData *proto.SimEnchant) Enchant { @@ -270,6 +301,8 @@ func EnchantFromProto(pData *proto.SimEnchant) Enchant { EnchantEffects: pData.EnchantEffects, Name: pData.Name, Type: pData.Type, + EnchantType: pData.EnchantType, + ExtraTypes: append([]proto.ItemType(nil), pData.ExtraTypes...), } } @@ -450,10 +483,62 @@ func (equipment *Equipment) containsGemInSlot(itemID int32, slot proto.ItemSlot) } func GetEnchantByEffectID(effectID int32) *Enchant { - if enchant, ok := EnchantsByEffectID[effectID]; ok { - return &enchant + dbMu.RLock() + enchant, ok := enchantsByEffectID[effectID] + dbMu.RUnlock() + if !ok { + return nil } - return nil + return &enchant +} + +func GetGemByID(id int32) (Gem, bool) { + dbMu.RLock() + gem, ok := gemsByID[id] + dbMu.RUnlock() + return gem, ok +} + +func GetReforgeStatByID(id int32) ReforgeStat { + dbMu.RLock() + r := reforgeStatsByID[id] + dbMu.RUnlock() + return r +} + +func GetSortedReforgeStatIDs() []int32 { + dbMu.RLock() + defer dbMu.RUnlock() + ids := make([]int32, 0, len(reforgeStatsByID)) + for id := range reforgeStatsByID { + ids = append(ids, id) + } + slices.Sort(ids) + return ids +} + +func GetConsumableByID(id int32) Consumable { + dbMu.RLock() + c := consumablesByID[id] + dbMu.RUnlock() + return c +} + +func GetSpellEffectByID(id int32) *proto.SpellEffect { + dbMu.RLock() + e := spellEffectsById[id] + dbMu.RUnlock() + return e +} + +func GetItemEffectRandPropPointsByIlvl(ilvl int32) *ItemEffectRandPropPoints { + dbMu.RLock() + p, ok := itemEffectRandPropPointsByIlvl[ilvl] + dbMu.RUnlock() + if !ok { + return nil + } + return &p } func (equipment *Equipment) ToEquipmentSpecProto() *proto.EquipmentSpec { @@ -485,21 +570,43 @@ func ProtoToEquipmentSpec(es *proto.EquipmentSpec) EquipmentSpec { } func (item *Item) GetScalingState() proto.ItemLevelState { - if !item.ChallengeMode || item.ScalingOptions[int32(item.UpgradeStep)].Ilvl <= MaxChallengeModeIlvl { + if !item.ChallengeMode { return item.UpgradeStep - } else { - return proto.ItemLevelState_ChallengeMode } + option := item.ScalingOptions[int32(item.UpgradeStep)] + if option == nil || option.Ilvl <= MaxChallengeModeIlvl { + return item.UpgradeStep + } + return proto.ItemLevelState_ChallengeMode } -// Returns the current scaling options for the item based on challenge mode and upgrade level +// Returns the current scaling options for the item based on challenge mode and upgrade level. +// If the exact upgrade step is not present, falls back to the highest available step below it. func (item *Item) GetEffectiveScalingOptions() *proto.ScalingItemProperties { - return item.ScalingOptions[int32(item.GetScalingState())] + target := int32(item.GetScalingState()) + if option, ok := item.ScalingOptions[target]; ok { + return option + } + var bestKey int32 = math.MinInt32 + var bestOpt *proto.ScalingItemProperties + for k, v := range item.ScalingOptions { + if k <= target && k > bestKey { + bestKey = k + bestOpt = v + } + } + return bestOpt } func NewItem(itemSpec ItemSpec) Item { + // AddToDatabase writes these maps while other requests are mid-flight, so every + // lookup below has to be under the lock. Held across the whole function rather + // than reacquired per lookup; nothing in here takes dbMu again. + dbMu.RLock() + defer dbMu.RUnlock() + item := Item{} - if foundItem, ok := ItemsByID[itemSpec.ID]; ok { + if foundItem, ok := itemsByID[itemSpec.ID]; ok { item = foundItem } else { panic(fmt.Sprintf("No item with id: %d", itemSpec.ID)) @@ -515,7 +622,7 @@ func NewItem(itemSpec ItemSpec) Item { item.RandPropPoints = scalingOptions.RandPropPoints if itemSpec.RandomSuffix != 0 { - if randomSuffix, ok := RandomSuffixesByID[itemSpec.RandomSuffix]; ok { + if randomSuffix, ok := randomSuffixesByID[itemSpec.RandomSuffix]; ok { item.RandomSuffix = randomSuffix } else { panic(fmt.Sprintf("No random suffix with id: %d", itemSpec.RandomSuffix)) @@ -523,7 +630,7 @@ func NewItem(itemSpec ItemSpec) Item { } if itemSpec.Enchant != 0 { - if enchant, ok := EnchantsByEffectID[itemSpec.Enchant]; ok { + if enchant, ok := enchantsByEffectID[itemSpec.Enchant]; ok { item.Enchant = enchant } // else { @@ -531,13 +638,13 @@ func NewItem(itemSpec ItemSpec) Item { // } } if itemSpec.Tinker != 0 { - if tinker, ok := EnchantsByEffectID[itemSpec.Tinker]; ok { + if tinker, ok := enchantsByEffectID[itemSpec.Tinker]; ok { item.Tinker = tinker } } if itemSpec.Reforging > 112 { // There is no id below 113 - reforge := ReforgeStatsByID[itemSpec.Reforging] + reforge := reforgeStatsByID[itemSpec.Reforging] if validateReforging(&item, reforge) { item.Reforging = &reforge @@ -555,7 +662,7 @@ func NewItem(itemSpec ItemSpec) Item { item.Gems = make([]Gem, numGems) for gemIdx, gemID := range itemSpec.Gems { - if gem, ok := GemsByID[gemID]; ok { + if gem, ok := gemsByID[gemID]; ok { item.Gems[gemIdx] = gem } else { if gemID != 0 { @@ -567,6 +674,10 @@ func NewItem(itemSpec ItemSpec) Item { return item } +func ValidateReforging(item *Item, reforging ReforgeStat) bool { + return validateReforging(item, reforging) +} + func validateReforging(item *Item, reforging ReforgeStat) bool { // Validate that the item can reforge these to stats reforgeableStats := stats.Stats{} @@ -753,10 +864,13 @@ func ItemEquipmentGemAndEnchantStats(item Item) stats.Stats { } func GetItemByID(id int32) *Item { - if item, ok := ItemsByID[id]; ok { - return &item + dbMu.RLock() + item, ok := itemsByID[id] + dbMu.RUnlock() + if !ok { + return nil } - return nil + return &item } func ItemTypeToSlot(it proto.ItemType) proto.ItemSlot { @@ -838,6 +952,42 @@ func eligibleSlotsForItem(item *Item, isFuryWarrior bool) []proto.ItemSlot { return nil } +// GemEligibleForSocket reports whether a gem of the given color class may be placed in a socket +// of the given color (meta, cogwheel, and Sha-Touched sockets each take only their own class). +func GemEligibleForSocket(gemColor proto.GemColor, socketColor proto.GemColor) bool { + switch socketColor { + case proto.GemColor_GemColorMeta: + return gemColor == proto.GemColor_GemColorMeta + case proto.GemColor_GemColorCogwheel: + return gemColor == proto.GemColor_GemColorCogwheel + case proto.GemColor_GemColorShaTouched: + return gemColor == proto.GemColor_GemColorShaTouched + default: + return gemColor != proto.GemColor_GemColorMeta && gemColor != proto.GemColor_GemColorCogwheel && gemColor != proto.GemColor_GemColorShaTouched + } +} + +// GemMatchesSocket reports whether a gem's color counts as a match for the socket's color (for +// the purpose of earning the item's socket bonus). +func GemMatchesSocket(gemColor proto.GemColor, socketColor proto.GemColor) bool { + if gemColor == socketColor { + return true + } + switch socketColor { + case proto.GemColor_GemColorBlue: + return gemColor == proto.GemColor_GemColorPurple || gemColor == proto.GemColor_GemColorGreen || gemColor == proto.GemColor_GemColorPrismatic + case proto.GemColor_GemColorRed: + return gemColor == proto.GemColor_GemColorPurple || gemColor == proto.GemColor_GemColorOrange || gemColor == proto.GemColor_GemColorPrismatic + case proto.GemColor_GemColorYellow: + return gemColor == proto.GemColor_GemColorOrange || gemColor == proto.GemColor_GemColorGreen || gemColor == proto.GemColor_GemColorPrismatic + case proto.GemColor_GemColorPrismatic: + return gemColor == proto.GemColor_GemColorRed || gemColor == proto.GemColor_GemColorOrange || gemColor == proto.GemColor_GemColorYellow || + gemColor == proto.GemColor_GemColorGreen || gemColor == proto.GemColor_GemColorBlue || gemColor == proto.GemColor_GemColorPurple + default: + return false + } +} + func ColorIntersects(g proto.GemColor, o proto.GemColor) bool { if g == o { return true diff --git a/sim/core/database_load.go b/sim/core/database_load.go index f34347238f..897562bc0f 100644 --- a/sim/core/database_load.go +++ b/sim/core/database_load.go @@ -40,6 +40,9 @@ func init() { SetId: item.SetId, ScalingOptions: item.ScalingOptions, ItemEffects: item.ItemEffects, + Unique: item.Unique, + LimitCategory: item.LimitCategory, + EotbGemSocket: item.EotbGemSocket, } } @@ -58,6 +61,8 @@ func init() { EnchantEffects: enchant.EnchantEffects, Name: enchant.Name, Type: enchant.Type, + EnchantType: enchant.EnchantType, + ExtraTypes: enchant.ExtraTypes, } } diff --git a/sim/core/environment.go b/sim/core/environment.go index 3e618145ba..423b09c3bd 100644 --- a/sim/core/environment.go +++ b/sim/core/environment.go @@ -54,14 +54,14 @@ type Environment struct { IsChallengeMode bool } -func NewEnvironment(raidProto *proto.Raid, encounterProto *proto.Encounter, runFakePrepull bool) (*Environment, *proto.RaidStats, *proto.EncounterStats) { +func NewEnvironment(raidProto *proto.Raid, encounterProto *proto.Encounter, runFakePrepull bool, skipRotation bool) (*Environment, *proto.RaidStats, *proto.EncounterStats) { env := &Environment{ State: Created, } env.construct(raidProto, encounterProto) raidStats := env.initialize(raidProto, encounterProto) - env.finalize(raidProto, encounterProto, raidStats, runFakePrepull) + env.finalize(raidProto, encounterProto, raidStats, runFakePrepull, skipRotation) encounterStats := &proto.EncounterStats{} for _, target := range env.Encounter.AllTargets { @@ -155,7 +155,7 @@ func (env *Environment) initialize(raidProto *proto.Raid, encounterProto *proto. } // The finalization phase. -func (env *Environment) finalize(raidProto *proto.Raid, _ *proto.Encounter, raidStats *proto.RaidStats, runFakePrepull bool) { +func (env *Environment) finalize(raidProto *proto.Raid, _ *proto.Encounter, raidStats *proto.RaidStats, runFakePrepull bool, skipRotation bool) { for _, finalizeEffect := range env.preFinalizeEffects { finalizeEffect() } @@ -179,16 +179,18 @@ func (env *Environment) finalize(raidProto *proto.Raid, _ *proto.Encounter, raid } } - for partyIdx, party := range env.Raid.Parties { - partyProto := raidProto.Parties[partyIdx] - for playerIdx, player := range party.Players { - if playerIdx >= len(partyProto.Players) { - // This happens for target dummies. - continue + if !skipRotation { + for partyIdx, party := range env.Raid.Parties { + partyProto := raidProto.Parties[partyIdx] + for playerIdx, player := range party.Players { + if playerIdx >= len(partyProto.Players) { + // This happens for target dummies. + continue + } + playerProto := partyProto.Players[playerIdx] + char := player.GetCharacter() + char.Rotation = char.newAPLRotation(playerProto.Rotation) } - playerProto := partyProto.Players[playerIdx] - char := player.GetCharacter() - char.Rotation = char.newAPLRotation(playerProto.Rotation) } } @@ -199,7 +201,9 @@ func (env *Environment) finalize(raidProto *proto.Raid, _ *proto.Encounter, raid } env.postFinalizeEffects = nil - env.setupAttackTables() + if !skipRotation { + env.setupAttackTables() + } env.State = Finalized @@ -210,7 +214,7 @@ func (env *Environment) finalize(raidProto *proto.Raid, _ *proto.Encounter, raid } } - if runFakePrepull { + if !skipRotation && runFakePrepull { // Runs prepull only, for a single iteration. This lets us detect misconfigured // prepull spells (e.g. GCD not available) in APL. sim := newSimWithEnv(env, &proto.SimOptions{ diff --git a/sim/core/item_effects.go b/sim/core/item_effects.go index 49e346bf24..75357db495 100644 --- a/sim/core/item_effects.go +++ b/sim/core/item_effects.go @@ -54,8 +54,8 @@ func HasEnchantEffect(id int32) bool { // starts, for any Agent that is wearing the item. func NewItemEffect(id int32, itemEffect ApplyEffect) { if WITH_DB { - if _, hasItem := ItemsByID[id]; !hasItem { - if _, hasGem := GemsByID[id]; !hasGem { + if GetItemByID(id) == nil { + if _, hasGem := GetGemByID(id); !hasGem { panic(fmt.Sprintf("No item with ID: %d", id)) } } @@ -73,7 +73,7 @@ func NewItemEffect(id int32, itemEffect ApplyEffect) { func NewEnchantEffect(id int32, enchantEffect ApplyEffect) { if WITH_DB { - if _, ok := EnchantsByEffectID[id]; !ok { + if GetEnchantByEffectID(id) == nil { panic(fmt.Sprintf("No enchant with ID: %d", id)) } } diff --git a/sim/core/item_sets.go b/sim/core/item_sets.go index 902000f0d8..3f3c9e5fbe 100644 --- a/sim/core/item_sets.go +++ b/sim/core/item_sets.go @@ -37,14 +37,12 @@ func DefaultItemSetSlots() []proto.ItemSlot { func (set ItemSet) Items() []Item { var items []Item - for _, item := range ItemsByID { - if item.SetName == "" { - continue - } + forEachSetItem(func(item Item) bool { if item.SetName == set.Name || item.SetName == set.AlternativeName { items = append(items, item) } - } + return true + }) // Sort so the order of IDs is always consistent, for tests. slices.SortFunc(items, func(a, b Item) int { return int(a.ID - b.ID) @@ -64,17 +62,12 @@ func NewItemSet(set ItemSet) *ItemSet { set.Slots = DefaultItemSetSlots() } - for _, item := range ItemsByID { - if item.SetName == "" { - continue - } + forEachSetItem(func(item Item) bool { foundID = foundID || (item.SetID > 0 && item.SetID == set.ID) foundName = foundName || item.SetName == set.Name foundAlternativeName = foundAlternativeName || item.SetName == set.AlternativeName - if foundID && foundName && foundAlternativeName { - break - } - } + return !(foundID && foundName && foundAlternativeName) + }) if WITH_DB { if !foundID { @@ -283,8 +276,7 @@ func NewPvPGloveEffect(itemIDs []int32, config SpellModConfig) { if !WITH_DB { return false } - _, ok := ItemsByID[itemID] - return !ok + return GetItemByID(itemID) == nil }) if len(missing) > 0 { fmt.Printf("WARN: PvP glove effect has no database item for %v, bonus not registered for those\n", missing) diff --git a/sim/core/presim.go b/sim/core/presim.go index ccae14ccc9..8bca105aeb 100644 --- a/sim/core/presim.go +++ b/sim/core/presim.go @@ -61,6 +61,13 @@ func (sim *Simulation) runPresims(request *proto.RaidSimRequest) *proto.RaidSimR } } + // Nothing to presim: skip before cloning the request, which is otherwise paid + // by every sim (including every bulk sim candidate) for no reason. + doOne := sim.Encounter.EndFightAtHealth > 0 + if !doOne && remainingAgents == 0 { + return nil + } + // Base presim request. // Define this outside the loop so that, as Agents iteratively update their // settings, we keep the most recent settings even after that Agent is @@ -74,7 +81,6 @@ func (sim *Simulation) runPresims(request *proto.RaidSimRequest) *proto.RaidSimR var lastResult *proto.RaidSimResult - doOne := sim.Encounter.EndFightAtHealth > 0 for doOne || remainingAgents > 0 { // ** Run a presim round. ** diff --git a/sim/core/reforge_optimizer/caps.go b/sim/core/reforge_optimizer/caps.go new file mode 100644 index 0000000000..1b7f5657bf --- /dev/null +++ b/sim/core/reforge_optimizer/caps.go @@ -0,0 +1,220 @@ +package reforgeoptimizer + +import ( + "slices" + "strings" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" +) + +// reforgeSoftCap represents a soft cap or threshold expressed in reforge-relative (gap-to-cap) +// breakpoints. breakpoints/postCapEPs are mutated in place across solver passes as breakpoints +// are consumed. +type reforgeSoftCap struct { + unitStat stats.UnitStat + breakpoints []float64 + capType proto.StatCapType + postCapEPs []float64 +} + +// computeReforgeSoftCaps converts each configured soft cap's absolute breakpoints into +// reforge-relative gap-to-cap deltas. For TypeThreshold caps the breakpoints are reversed +// (largest gap evaluated first) and every post-cap EP is set to the FIRST configured value, +// which is interpreted as the residual stat value just after passing a threshold discontinuity. +// +// configs should be the (already breakpoint-limited) request soft caps when the optimizer is +// using soft-cap breakpoints, and nil/empty otherwise; the decision of which soft caps are +// allowed to override is made upstream and baked into the request. +func computeReforgeSoftCaps(baseStats core.UnitStats, configs []*proto.StatCapConfig) []*reforgeSoftCap { + result := make([]*reforgeSoftCap, 0, len(configs)) + for _, config := range configs { + unitStat, ok := unitStatFromUIStat(config.GetUnitStat()) + if !ok { + continue + } + + weights := slices.Clone(config.GetPostCap_EPs()) + relativeBreakpoints := make([]float64, 0, len(config.GetBreakpoints())) + for _, breakpoint := range config.GetBreakpoints() { + relativeBreakpoints = append(relativeBreakpoints, computeGapToCap(baseStats, unitStat, breakpoint)) + } + + if config.GetCapType() == proto.StatCapType_TypeThreshold { + slices.Reverse(relativeBreakpoints) + first := 0.0 + if len(weights) > 0 { + first = weights[0] + } + weights = make([]float64, len(relativeBreakpoints)) + for i := range weights { + weights[i] = first + } + } + + result = append(result, &reforgeSoftCap{ + unitStat: unitStat, + breakpoints: relativeBreakpoints, + capType: config.GetCapType(), + postCapEPs: weights, + }) + } + return result +} + +// checkWeights: for each of Hit/Crit/Haste rating stats, route the pure-rating EP into the +// school-specific percent pseudo-stat when a cap is configured for that pseudo-stat, and zero +// the parent rating EP to avoid double counting. +func checkWeights(weights core.UnitStats, reforgeCaps core.UnitStats, reforgeSoftCaps []*reforgeSoftCap) core.UnitStats { + validated := weights + for _, parent := range []stats.Stat{stats.HitRating, stats.CritRating, stats.HasteRating} { + children := childPseudoStats(parent) + if len(children) == 0 { + continue + } + + hasSchoolWeight := false + for _, child := range children { + if getUnitStat(validated, stats.UnitStatFromPseudoStat(child)) != 0 { + hasSchoolWeight = true + break + } + } + if hasSchoolWeight { + validated.Stats[parent] = 0 + continue + } + + parentWeight := validated.Stats[parent] + if parentWeight == 0 { + continue + } + for _, child := range children { + if pseudoStatHasCap(child, reforgeCaps, reforgeSoftCaps) { + validated = setUnitStat(validated, stats.UnitStatFromPseudoStat(child), parentWeight*ratingPerPseudoStatPercent(child)) + validated.Stats[parent] = 0 + break + } + } + } + return validated +} + +// --------------------------------------------------------------------------- +// Cap-detection helpers: statHasCap / pseudoStatHasCap / statIsCapped / pseudoStatIsCapped. +// reforgeCaps is a gap-to-cap vector (the remaining rating room before each hard cap). +// --------------------------------------------------------------------------- + +func pseudoStatHasCap(pseudoStat proto.PseudoStat, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + unitStat := stats.UnitStatFromPseudoStat(pseudoStat) + if getUnitStat(reforgeCaps, unitStat) != 0 { + return true + } + for _, softCap := range softCaps { + if softCap.unitStat == unitStat { + return true + } + } + return false +} + +func statHasCap(stat stats.Stat, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + unitStat := stats.UnitStatFromStat(stat) + if getUnitStat(reforgeCaps, unitStat) != 0 { + return true + } + for _, softCap := range softCaps { + if softCap.unitStat == unitStat { + return true + } + } + return false +} + +func pseudoStatIsCapped(pseudoStat proto.PseudoStat, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + unitStat := stats.UnitStatFromPseudoStat(pseudoStat) + if getUnitStat(reforgeCaps, unitStat) < 0 { + return true + } + for _, softCap := range softCaps { + if softCap.unitStat == unitStat { + // A soft-capped pseudo-stat is treated as capped only when its hard-cap gap is + // negative; the soft-cap branch itself never flags it, since a pseudo-stat index is + // never negative and this comparison is therefore always false. + return unitStat.PseudoStatIdx() < 0 + } + } + return false +} + +func statIsCapped(stat stats.Stat, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + unitStat := stats.UnitStatFromStat(stat) + if getUnitStat(reforgeCaps, unitStat) < 0 { + return true + } + for _, softCap := range softCaps { + if softCap.unitStat == unitStat { + return unitStat.StatIdx() < 0 // effectively always false (see pseudoStatIsCapped) + } + } + return false +} + +// includesStatWithCap reports whether any key in the coefficient map names a stat that has a +// configured cap. +func includesStatWithCap(coeffs map[string]float64, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + for key := range coeffs { + if unitStat, ok := unitStatFromCoeffKey(key); ok { + if unitStat.IsPseudoStat() { + if pseudoStatHasCap(proto.PseudoStat(unitStat.PseudoStatIdx()), reforgeCaps, softCaps) { + return true + } + } else if statHasCap(stats.Stat(unitStat.StatIdx()), reforgeCaps, softCaps) { + return true + } + } else if strings.Contains(key, "Minus") { + return true + } + } + return false +} + +// includesCappedStat reports whether any key in the coefficient map names a stat that is already +// capped. +func includesCappedStat(coeffs map[string]float64, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) bool { + for key := range coeffs { + if unitStat, ok := unitStatFromCoeffKey(key); ok { + if unitStat.IsPseudoStat() { + if pseudoStatIsCapped(proto.PseudoStat(unitStat.PseudoStatIdx()), reforgeCaps, softCaps) { + return true + } + } else if statIsCapped(stats.Stat(unitStat.StatIdx()), reforgeCaps, softCaps) { + return true + } + } else if strings.Contains(key, "Minus") { + return true + } + } + return false +} + +// getCappedStatKeys returns the coefficient keys whose stat has a configured cap (hard or soft). +// Order is irrelevant to callers (used only for per-stat quota counting in gem selection). +func getCappedStatKeys(coeffs map[string]float64, reforgeCaps core.UnitStats, softCaps []*reforgeSoftCap) []string { + var keys []string + for key := range coeffs { + unitStat, ok := unitStatFromCoeffKey(key) + if !ok { + continue + } + if unitStat.IsPseudoStat() { + if pseudoStatHasCap(proto.PseudoStat(unitStat.PseudoStatIdx()), reforgeCaps, softCaps) { + keys = append(keys, key) + } + } else if statHasCap(stats.Stat(unitStat.StatIdx()), reforgeCaps, softCaps) { + keys = append(keys, key) + } + } + return keys +} diff --git a/sim/core/reforge_optimizer/gear.go b/sim/core/reforge_optimizer/gear.go new file mode 100644 index 0000000000..75686325c5 --- /dev/null +++ b/sim/core/reforge_optimizer/gear.go @@ -0,0 +1,351 @@ +package reforgeoptimizer + +import ( + "math" + "strconv" + "strings" + + "github.com/wowsims/mop/sim/common/mop" + "github.com/wowsims/mop/sim/common/shared" + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" + googleProto "google.golang.org/protobuf/proto" +) + +// gear.go holds the gear/gem/reforge sim-facility wrappers — these are not "the algorithm", +// just adapters over sim/core — plus applyLPSolution and minimizeRegems (which turn a solved +// LP back into an equipment spec) and the Amplification-trinket detection/modifier helpers. + +type reforgeSocketKey struct { + slot proto.ItemSlot + socketIdx int +} + +func cloneEquipmentSpec(equipment *proto.EquipmentSpec) *proto.EquipmentSpec { + if equipment == nil { + return &proto.EquipmentSpec{} + } + return googleProto.Clone(equipment).(*proto.EquipmentSpec) +} + +func equipmentFromProto(equipment *proto.EquipmentSpec) *core.Equipment { + if equipment == nil { + return &core.Equipment{} + } + coreEquipment := core.ProtoToEquipment(equipment) + return &coreEquipment +} + +func gemIDAt(item *core.Item, socketIdx int) int32 { + if item == nil || socketIdx >= len(item.Gems) { + return 0 + } + return item.Gems[socketIdx].ID +} + +func setGemIDAt(item *core.Item, socketIdx int, gemID int32) { + if item == nil { + return + } + for len(item.Gems) <= socketIdx { + item.Gems = append(item.Gems, core.Gem{}) + } + item.Gems[socketIdx] = gemFromID(gemID) +} + +// gemFromID returns the gem for the given ID, falling back to a stub {ID} if not in the DB so +// the proto round-trip preserves the ID. +func gemFromID(gemID int32) core.Gem { + if gemID == 0 { + return core.Gem{} + } + if gem, ok := core.GetGemByID(gemID); ok { + return gem + } + return core.Gem{ID: gemID} +} + +// clearReforges strips reforge assignments from all unfrozen slots. +func clearReforges(equipment *proto.EquipmentSpec, settings *proto.ReforgeSettings) { + frozen := frozenItemSlots(settings) + for slotIdx, item := range equipment.Items { + if item != nil && !frozen[proto.ItemSlot(slotIdx)] { + item.Reforging = 0 + } + } +} + +// clearGems removes all non-meta gems from unfrozen slots (the head meta socket is preserved — +// the optimizer never changes meta gems). +func clearGems(equipment *proto.EquipmentSpec, settings *proto.ReforgeSettings) { + frozen := frozenItemSlots(settings) + for slotIdx, item := range equipment.Items { + slot := proto.ItemSlot(slotIdx) + if item == nil || frozen[slot] { + continue + } + for gemIdx, gemID := range item.Gems { + if gemID == 0 { + continue + } + if isHeadMetaSocket(item, slot, gemIdx) { + continue + } + if gem, ok := core.GetGemByID(gemID); !ok || gem.Color != proto.GemColor_GemColorMeta { + item.Gems[gemIdx] = 0 + } + } + } +} + +func isHeadMetaSocket(item *proto.ItemSpec, slot proto.ItemSlot, gemIdx int) bool { + if slot != proto.ItemSlot_ItemSlotHead { + return false + } + if dbItem := core.GetItemByID(item.GetId()); dbItem != nil && gemIdx < len(dbItem.GemSockets) { + return dbItem.GemSockets[gemIdx] == proto.GemColor_GemColorMeta + } + return gemIdx == 0 +} + +func frozenItemSlots(settings *proto.ReforgeSettings) map[proto.ItemSlot]bool { + frozen := map[proto.ItemSlot]bool{} + if settings == nil || !settings.GetFreezeItemSlots() { + return frozen + } + for _, item := range settings.GetFrozenItemSlots() { + frozen[item] = true + } + return frozen +} + +// currentSocketColors returns the item's effective socket colors: it drops the end-of-tier +// bonus socket when disabled and appends a prismatic socket for Blacksmithing wrists/hands. +func currentSocketColors(item core.Item, isBlacksmithing bool, settings *proto.ReforgeSettings) []proto.GemColor { + socketColors := append([]proto.GemColor(nil), item.GemSockets...) + if !settings.GetIncludeEotbGemSocket() && item.EotbGemSocket && len(socketColors) > 0 { + socketColors = socketColors[:len(socketColors)-1] + } + if isBlacksmithing && (item.Type == proto.ItemType_ItemTypeWrist || item.Type == proto.ItemType_ItemTypeHands) { + socketColors = append(socketColors, proto.GemColor_GemColorPrismatic) + } + return socketColors +} + +// reforgeRawStats computes the stat change a reforge produces on an item (a fraction of the +// fromStat moved to the toStat). Random-suffix items use their scaled suffix stats as source. +func reforgeRawStats(item core.Item, reforge core.ReforgeStat) stats.Stats { + itemStats := item.Stats + if item.RandomSuffix.ID != 0 { + itemStats = item.ScaledRandomSuffixStats() + } + fromStat := stats.Stat(int32(reforge.FromStat)) + reduction := math.Floor(itemStats[fromStat] * reforge.Multiplier) + delta := stats.Stats{} + delta[fromStat] -= reduction + delta[stats.Stat(int32(reforge.ToStat))] += reduction + return delta +} + +// applyLPSolution turns the solver's selected variables into an equipment spec: it rebuilds gear +// from the stripped base gear, applies each selected reforge/gem variable, then runs +// minimizeRegems. +func (o *reforgeOptimizer) applyLPSolution(selectedVars []string) *proto.EquipmentSpec { + gear := equipmentFromProto(o.baseStrippedGear) + + for _, variableKey := range selectedVars { + parts := strings.Split(variableKey, "_") + slotIdx, err := strconv.Atoi(parts[0]) + if err != nil || slotIdx < 0 || slotIdx >= int(core.NumItemSlots) { + continue + } + item := gear.GetItemBySlot(proto.ItemSlot(slotIdx)) + if item.ID == 0 { + continue + } + if len(parts) > 2 { + socketIdx, err1 := strconv.Atoi(parts[1]) + gemID, err2 := strconv.Atoi(parts[2]) + if err1 != nil || err2 != nil { + continue + } + setGemIDAt(item, socketIdx, int32(gemID)) + continue + } + reforgeID, err := strconv.Atoi(parts[1]) + if err != nil { + continue + } + reforge := core.GetReforgeStatByID(int32(reforgeID)) + item.Reforging = &reforge + } + + if o.includeGems { + o.minimizeRegems(gear) + } + return gear.ToEquipmentSpecProto() +} + +// minimizeRegems cuts the number of gems the player must actually buy. For each socket the +// solver changed, it locates where that socket's original gem now lives (via findGem) and swaps +// the two gems back — reusing a gem the player already owns instead of buying a new one — unless +// doing so would drop a socket-color match the solver found. +func (o *reforgeOptimizer) minimizeRegems(newGear *core.Equipment) { + originalGear := o.originalEquipment + if originalGear == nil { + return + } + + finalizedSocketKeys := map[reforgeSocketKey]bool{} + for slotIdx := 0; slotIdx < int(core.NumItemSlots); slotIdx++ { + slot := proto.ItemSlot(slotIdx) + newItem := newGear.GetItemBySlot(slot) + originalItem := originalGear.GetItemBySlot(slot) + if newItem.ID == 0 || originalItem.ID == 0 { + continue + } + + for socketIdx, socketColor := range currentSocketColors(*newItem, o.isBlacksmithing, o.settings) { + socketKey := reforgeSocketKey{slot: slot, socketIdx: socketIdx} + if finalizedSocketKeys[socketKey] { + continue + } + finalizedSocketKeys[socketKey] = true + + newGemID := gemIDAt(newItem, socketIdx) + originalGemID := gemIDAt(originalItem, socketIdx) + if newGemID == 0 || originalGemID == 0 || newGemID == originalGemID { + continue + } + newGem, newOk := core.GetGemByID(newGemID) + originalGem, originalOk := core.GetGemByID(originalGemID) + if !newOk || !originalOk { + continue + } + // The decision to keep or undo this swap is left entirely to the net-match comparison + // below, which weighs both sockets together. A per-socket short-circuit here — keeping + // the swap merely because the solver's gem matches this socket — would wrongly leave a + // match-neutral same-color swap in place (the brm-weapon-gem-desync scenario). + + for _, loc := range o.findGem(newGear, originalGemID) { + if o.frozenSlots[loc.slot] { + continue + } + matchedKey := reforgeSocketKey{slot: loc.slot, socketIdx: loc.socketIdx} + if finalizedSocketKeys[matchedKey] { + continue + } + matchedItem := newGear.GetItemBySlot(loc.slot) + matchedColors := currentSocketColors(*matchedItem, o.isBlacksmithing, o.settings) + if loc.socketIdx >= len(matchedColors) { + continue + } + matchedSocketColor := matchedColors[loc.socketIdx] + // Restore the original gem here only if it does not reduce the total socket-color + // matches across BOTH sockets involved. Weighing both sockets (not just the one the + // gem moved to) preserves a genuine color-match upgrade the solver found while still + // undoing a match-neutral shuffle (e.g. two same-color MH/OH weapon sockets) that + // would otherwise be a pointless regem. + matchesIfSwapped := boolToInt(core.GemMatchesSocket(originalGem.Color, socketColor)) + boolToInt(core.GemMatchesSocket(newGem.Color, matchedSocketColor)) + matchesIfKept := boolToInt(core.GemMatchesSocket(newGem.Color, socketColor)) + boolToInt(core.GemMatchesSocket(originalGem.Color, matchedSocketColor)) + if matchesIfSwapped < matchesIfKept { + continue + } + + finalizedSocketKeys[matchedKey] = true + setGemIDAt(newItem, socketIdx, originalGemID) + setGemIDAt(matchedItem, loc.socketIdx, newGemID) + break + } + } + } +} + +type gemLocation struct { + slot proto.ItemSlot + socketIdx int +} + +// findGem returns every socket into which the SOLVER moved gemID — i.e. a socket now holding +// gemID whose own original gem was something else. Sockets the solver never changed (original +// gem already == gemID) are skipped: they hold their rightful gem and must not be disturbed. +// Skipping them keeps minimizeRegems from grabbing an untouched socket as the swap partner (the +// crit-softcap decoy scenario, where an unchanged socket happens to hold the same gem). +func (o *reforgeOptimizer) findGem(equipment *core.Equipment, gemID int32) []gemLocation { + var locations []gemLocation + for slotIdx := 0; slotIdx < int(core.NumItemSlots); slotIdx++ { + slot := proto.ItemSlot(slotIdx) + item := equipment.GetItemBySlot(slot) + if item.ID == 0 { + continue + } + var originalItem *core.Item + if o.originalEquipment != nil { + originalItem = o.originalEquipment.GetItemBySlot(slot) + } + for socketIdx := range currentSocketColors(*item, o.isBlacksmithing, o.settings) { + if gemIDAt(item, socketIdx) != gemID { + continue + } + if originalItem != nil && gemIDAt(originalItem, socketIdx) == gemID { + continue + } + locations = append(locations, gemLocation{slot: slot, socketIdx: socketIdx}) + } + } + return locations +} + +func boolToInt(b bool) int { + if b { + return 1 + } + return 0 +} + +var amplificationTrinketItemIDs = buildAmplificationTrinketItemIDSet() + +// Returns the combined Haste/Mastery/Spirit multiplier granted by any Amplification Trinkets +// in the player's trinket slots (e.g. Purified Bindings of Immerseus). The two slots +// compound, so wearing two amp trinkets multiplies their modifiers together. Returns 1.0 +// (a no-op) when none are equipped. +func amplificationStatModifier(equipment *proto.EquipmentSpec) float64 { + modifier := 1.0 + for _, slot := range core.TrinketSlots() { + if int(slot) >= len(equipment.Items) || equipment.Items[slot] == nil { + continue + } + itemSpec := equipment.Items[slot] + itemID := itemSpec.GetId() + if !isAmplificationTrinket(itemID) { + continue + } + // Amp trinket percentages read the float scaling curve, matching the sim's own stat + // multiplier (see NewDynamicMultiplyStat in sim/common/mop/trinkets_phase_4_54.go) — + // NOT the integer RandPropPoints table GetItemEffectScaling uses. + modifier *= 1 + core.GetItemEffectAmpScaling(itemID, 0.00176999997, itemSpec.GetUpgradeStep())/100 + } + return modifier +} + +func isAmplificationTrinket(itemID int32) bool { + _, ok := amplificationTrinketItemIDs[itemID] + return ok +} + +// Merges the melee, caster, and healer Amplification Trinket item ID maps into a single set +// for O(1) membership testing at runtime. +func buildAmplificationTrinketItemIDSet() map[int32]struct{} { + itemIDs := map[int32]struct{}{} + for _, itemVersionMap := range []shared.ItemVersionMap{ + mop.MeleeAmplificationTrinketItemIDs, + mop.CasterAmplificationTrinketItemIDs, + mop.HealerAmplificationTrinketItemIDs, + } { + for _, itemID := range itemVersionMap { + itemIDs[itemID] = struct{}{} + } + } + return itemIDs +} diff --git a/sim/core/reforge_optimizer/gear_test.go b/sim/core/reforge_optimizer/gear_test.go new file mode 100644 index 0000000000..5dfaec0c9a --- /dev/null +++ b/sim/core/reforge_optimizer/gear_test.go @@ -0,0 +1,90 @@ +//go:build with_db + +package reforgeoptimizer + +import ( + "testing" + + "github.com/wowsims/mop/sim" + "github.com/wowsims/mop/sim/core/proto" +) + +// minimizeRegemsHarness builds a reforgeOptimizer wired for the minimizeRegems gem-swap tests: +// the original (pre-optimize) gems on originalEquipment, gems enabled, nothing frozen. +func minimizeRegemsHarness(original *proto.EquipmentSpec) *reforgeOptimizer { + return &reforgeOptimizer{ + settings: &proto.ReforgeSettings{IncludeGems: true}, + frozenSlots: map[proto.ItemSlot]bool{}, + originalEquipment: equipmentFromProto(original), + } +} + +// A stat-neutral swap of gems between two identical (Red) weapon sockets must be undone by +// minimizeRegems, since it is a pointless regem (the brm-weapon-gem-desync scenario). MH 105430 +// and OH 105581 both have a single Red socket; Crafty (76659, Orange) matches Red, Smooth +// (76697, Yellow) does not, so either arrangement matches exactly one socket and yields +// identical stats — undoing the swap must be preferred. +func TestMinimizeRegemsUndoesSameColorWeaponSwap(t *testing.T) { + sim.RegisterAll() + + const mhSlot, ohSlot = 14, 15 + const smooth, crafty = int32(76697), int32(76659) + + mkSpec := func(mhGem, ohGem int32) *proto.EquipmentSpec { + items := make([]*proto.ItemSpec, 16) + for i := range items { + items[i] = &proto.ItemSpec{} + } + items[mhSlot] = &proto.ItemSpec{Id: 105430, Gems: []int32{mhGem}} + items[ohSlot] = &proto.ItemSpec{Id: 105581, Gems: []int32{ohGem}} + return &proto.EquipmentSpec{Items: items} + } + + original := mkSpec(smooth, crafty) // original placement: MH=Smooth, OH=Crafty + solved := mkSpec(crafty, smooth) // solver's stat-neutral swap: MH=Crafty, OH=Smooth + newGear := equipmentFromProto(solved) + + minimizeRegemsHarness(original).minimizeRegems(newGear) + + gotMH := gemIDAt(newGear.GetItemBySlot(proto.ItemSlot(mhSlot)), 0) + gotOH := gemIDAt(newGear.GetItemBySlot(proto.ItemSlot(ohSlot)), 0) + if gotMH != smooth || gotOH != crafty { + t.Fatalf("pointless same-color swap not undone: got MH=%d OH=%d, want MH=%d OH=%d", gotMH, gotOH, smooth, crafty) + } +} + +// When the gem being chased also sits in an UNCHANGED socket, minimizeRegems must ignore that +// decoy and undo the swap against the socket the solver actually changed (the crit-softcap +// scenario). The chest (99419, 3 Red sockets) starts all Deadly; the solver swaps its socket 0 +// with the hands' (105635) Red socket 0 which started Crafty — a stat-neutral cross-slot swap. +// The chest's other two Deadly gems are untouched decoys: matching one of them as the partner +// would corrupt an untouched socket and leave the real swap half-undone. +func TestMinimizeRegemsIgnoresUnchangedSocketDecoy(t *testing.T) { + sim.RegisterAll() + + const chestSlot, handsSlot = 4, 7 + const deadly, crafty = int32(76658), int32(76659) // both Red gems, match the Red sockets + + mkSpec := func(chestGems []int32, handsSock0 int32) *proto.EquipmentSpec { + items := make([]*proto.ItemSpec, 16) + for i := range items { + items[i] = &proto.ItemSpec{} + } + items[chestSlot] = &proto.ItemSpec{Id: 99419, Gems: chestGems} + items[handsSlot] = &proto.ItemSpec{Id: 105635, Gems: []int32{handsSock0, 76697, 76699}} + return &proto.EquipmentSpec{Items: items} + } + + original := mkSpec([]int32{deadly, deadly, deadly}, crafty) // decoys: chest sockets 1,2 stay Deadly + solved := mkSpec([]int32{crafty, deadly, deadly}, deadly) // solver swapped chest sock0 <-> hands sock0 + newGear := equipmentFromProto(solved) + + minimizeRegemsHarness(original).minimizeRegems(newGear) + + chest := newGear.GetItemBySlot(proto.ItemSlot(chestSlot)) + hands := newGear.GetItemBySlot(proto.ItemSlot(handsSlot)) + if gemIDAt(chest, 0) != deadly || gemIDAt(chest, 1) != deadly || gemIDAt(chest, 2) != deadly || gemIDAt(hands, 0) != crafty { + t.Fatalf("swap not cleanly undone (matched an unchanged decoy socket): chest=[%d %d %d] hands[0]=%d, want chest=[%d %d %d] hands[0]=%d", + gemIDAt(chest, 0), gemIDAt(chest, 1), gemIDAt(chest, 2), gemIDAt(hands, 0), deadly, deadly, deadly, crafty) + } +} diff --git a/sim/core/reforge_optimizer/highs_js.go b/sim/core/reforge_optimizer/highs_js.go new file mode 100644 index 0000000000..ca891afafa --- /dev/null +++ b/sim/core/reforge_optimizer/highs_js.go @@ -0,0 +1,73 @@ +//go:build js && wasm + +package reforgeoptimizer + +import ( + "encoding/json" + "fmt" + "strings" + "syscall/js" + "time" +) + +type highsJSSolution struct { + Status string `json:"status"` + Values map[string]float64 `json:"values"` + Error string `json:"error"` +} + +// runHiGHSLP runs the given CPLEX LP text through the browser's highs.wasm via the +// __wowsimsSolveHiGHSLP bridge the host page exposes. Solver options: presolve on, a time limit, +// and no relative MIP gap (HiGHS default). Returns per-variable primal values (indexed by x{i}), +// the HiGHS model status, and any error. +func runHiGHSLP(lpString string, numVars int, timeout time.Duration, mipRelGap float64) ([]float64, int32, error) { + solve := js.Global().Get("__wowsimsSolveHiGHSLP") + if solve.Type() != js.TypeFunction { + return nil, 0, fmt.Errorf("HiGHS JavaScript solver bridge is not available") + } + + // The bridge signature is (lpString, timeoutSeconds, mipRelGap); 0 leaves the gap at the HiGHS + // default (every non-relative-cap solve). + result := solve.Invoke(lpString, timeout.Seconds(), mipRelGap) + if result.Type() != js.TypeString { + return nil, 0, fmt.Errorf("HiGHS JavaScript solver bridge returned %s, expected string", result.Type().String()) + } + + var highsSolution highsJSSolution + if err := json.Unmarshal([]byte(result.String()), &highsSolution); err != nil { + return nil, 0, fmt.Errorf("parsing HiGHS JavaScript solver result: %w", err) + } + if highsSolution.Error != "" { + return nil, 0, fmt.Errorf("HiGHS JavaScript solve failed: %s", highsSolution.Error) + } + + var modelStatus int32 + switch { + case highsSolution.Status == "Optimal": + modelStatus = highsModelStatusOptimal + case strings.EqualFold(highsSolution.Status, "Time limit reached"): + modelStatus = highsModelStatusTimeLimit + case highsSolution.Status == "Infeasible": + return nil, highsModelStatusInfeasible, nil + default: + return nil, 0, nil + } + + values := make([]float64, numVars) + for variableIdx := range values { + value, ok := highsSolution.Values[fmt.Sprintf("x%d", variableIdx)] + if !ok { + if modelStatus == highsModelStatusTimeLimit { + return nil, modelStatus, nil + } + return nil, 0, fmt.Errorf("HiGHS JavaScript solution missing variable x%d", variableIdx) + } + values[variableIdx] = value + } + return values, modelStatus, nil +} + +// WarmUp is a no-op on js/wasm: the browser compiles the HiGHS solver lazily, and there is no +// Go server startup to pre-warm. Present so the exported symbol matches the native build (see +// highswasm.go). +func WarmUp() error { return nil } diff --git a/sim/core/reforge_optimizer/highs_version_test.go b/sim/core/reforge_optimizer/highs_version_test.go new file mode 100644 index 0000000000..0533e43d48 --- /dev/null +++ b/sim/core/reforge_optimizer/highs_version_test.go @@ -0,0 +1,100 @@ +package reforgeoptimizer + +import ( + "bytes" + "encoding/json" + "os" + "path/filepath" + "strings" + "testing" + + worker "github.com/wowsims/mop/ui/worker" +) + +// repoRoot is this package's path back to the repository root, where package.json lives. +const repoRoot = "../../.." + +const updateHiGHSHint = "run `make update-highs` and commit the result" + +// TestHiGHSArtifactsMatchPinnedVersion guards the one thing that cannot be checked at compile +// time: that ui/worker/highs.wasm and ui/worker/highs_names_gen.go were generated from the `highs` +// version package.json pins. Bumping the pin without regenerating leaves the Go host looking up +// minified names from the wrong build, which fails in confusing ways at solve time (or, worse, +// leaves the backend solving on a different HiGHS than the browser). +func TestHiGHSArtifactsMatchPinnedVersion(t *testing.T) { + pinned := pinnedHiGHSVersion(t) + + if worker.HighsVersion != pinned { + t.Errorf("package.json pins highs %s but ui/worker/highs_names_gen.go was generated from %s; %s", + pinned, worker.HighsVersion, updateHiGHSHint) + } +} + +// TestHiGHSArtifactsMatchInstalledPackage checks the committed wasm against the one in +// node_modules, so a stale artifact is caught even when the version number happens to line up. +// It skips when the package is not installed: `go build` and `go test` must keep working on a +// fresh clone with no npm. +func TestHiGHSArtifactsMatchInstalledPackage(t *testing.T) { + npmDir := filepath.Join(repoRoot, "node_modules", "highs") + if _, err := os.Stat(npmDir); os.IsNotExist(err) { + t.Skip("node_modules/highs is not installed") + } + + installed := npmPackageVersion(t, filepath.Join(npmDir, "package.json")) + if pinned := pinnedHiGHSVersion(t); installed != pinned { + t.Fatalf("package.json pins highs %s but node_modules has %s; run `npm install`", pinned, installed) + } + + installedWASM, err := os.ReadFile(filepath.Join(npmDir, "build", "highs.wasm")) + if err != nil { + t.Fatalf("reading node_modules/highs/build/highs.wasm: %v", err) + } + if !bytes.Equal(installedWASM, worker.HighsWASM) { + t.Errorf("ui/worker/highs.wasm (%d bytes) does not match node_modules/highs/build/highs.wasm (%d bytes); %s", + len(worker.HighsWASM), len(installedWASM), updateHiGHSHint) + } +} + +// pinnedHiGHSVersion returns the `highs` version from package.json, which must be an exact +// version rather than a range: the generated name map only describes one upstream build, so +// allowing npm to resolve a newer one would silently invalidate it. +func pinnedHiGHSVersion(t *testing.T) string { + t.Helper() + + path := filepath.Join(repoRoot, "package.json") + raw, err := os.ReadFile(path) + if err != nil { + t.Fatalf("reading %s: %v", path, err) + } + var manifest struct { + Dependencies map[string]string `json:"dependencies"` + } + if err := json.Unmarshal(raw, &manifest); err != nil { + t.Fatalf("parsing %s: %v", path, err) + } + + pinned, ok := manifest.Dependencies["highs"] + if !ok { + t.Fatalf("%s has no highs dependency", path) + } + if strings.ContainsAny(pinned, "^~*<>= |x") { + t.Fatalf("package.json must pin highs to an exact version, got %q", pinned) + } + return pinned +} + +func npmPackageVersion(t *testing.T, path string) string { + t.Helper() + + raw, err := os.ReadFile(path) + if err != nil { + t.Fatalf("reading %s: %v", path, err) + } + var manifest struct { + Version string `json:"version"` + } + if err := json.Unmarshal(raw, &manifest); err != nil { + t.Fatalf("parsing %s: %v", path, err) + } + return manifest.Version +} diff --git a/sim/core/reforge_optimizer/highswasm.go b/sim/core/reforge_optimizer/highswasm.go new file mode 100644 index 0000000000..36da8882ba --- /dev/null +++ b/sim/core/reforge_optimizer/highswasm.go @@ -0,0 +1,718 @@ +//go:build !(js && wasm) + +package reforgeoptimizer + +import ( + "bytes" + "context" + "encoding/binary" + "fmt" + "math" + "os" + goruntime "runtime" + "strconv" + "strings" + "sync" + "time" + + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/api" + worker "github.com/wowsims/mop/ui/worker" +) + +const ( + highsStatusOK = 0 + highsStatusWarning = 1 +) + +type highsWasmModule struct { + runtime wazero.Runtime + module wazero.CompiledModule +} + +var ( + highsWasmModuleOnce sync.Once + highsWasmModuleValue *highsWasmModule + highsWasmModuleErr error + highsWasmRuntimeSlots = make(chan struct{}, getHiGHSWasmRuntimeConcurrency()) + highsWasmRuntimePool = make(chan *highsWasmRuntime, getHiGHSWasmRuntimeConcurrency()) +) + +type highsWasmRuntime struct { + ctx context.Context + instance api.Module + memory api.Memory + + nextFD int32 + files map[int32]*highsWasmFile + paths map[string][]byte + lpScratch []byte // reused LP-text buffer, one owner per pooled runtime + stdout bytes.Buffer + stderr bytes.Buffer + + runtimeInit api.Function + runtimeInitialized bool + highsCreate api.Function + highsDestroy api.Function + highsRun api.Function + highsReadModel api.Function + highsWriteSolutionPretty api.Function + highsSetIntOption api.Function + highsSetDoubleOption api.Function + highsSetStringOption api.Function + highsGetModelStatus api.Function + // stackAlloc is emscripten's __emscripten_stack_alloc. The npm build exports no malloc, so + // this is the only allocator available for the C strings the Highs_* entry points take. + stackAlloc api.Function + // stackSave and stackRestore are emscripten's _emscripten_stack_get_current and + // __emscripten_stack_restore. Nothing frees a stackAlloc, so each solve brackets its + // allocations between these two the way emscripten's own ccall does. + stackSave api.Function + stackRestore api.Function +} + +type highsWasmRuntimeContextKey struct{} + +type highsWasmFile struct { + path string + contents []byte + position int64 +} + +// runHiGHSLP runs the given CPLEX LP text through the embedded HiGHS wasm (via the pooled +// wazero runtime) and returns the per-variable primal values (indexed by x{i}), the HiGHS model +// status, and any error. Solver options: presolve on, a time limit, and no relative MIP gap +// (HiGHS default). For infeasible/other terminal statuses no solution is parsed and values is +// nil. +func runHiGHSLP(lpString string, numVars int, timeout time.Duration, mipRelGap float64) ([]float64, int32, error) { + wasmRuntime, err := acquireHiGHSWasmRuntime() + if err != nil { + return nil, 0, err + } + defer releaseHiGHSWasmRuntime(wasmRuntime) + + // Reuse a per-runtime buffer for the LP text; single owner between acquire/release and the + // wasm fully reads it within this call. + // Keyed by the absolute path only: openAt normalizes every lookup to a leading "/". + wasmRuntime.lpScratch = append(wasmRuntime.lpScratch[:0], lpString...) + wasmRuntime.paths["/m.lp"] = wasmRuntime.lpScratch + + if !wasmRuntime.runtimeInitialized { + if _, err := wasmRuntime.runtimeInit.Call(wasmRuntime.ctx); err != nil { + return nil, 0, fmt.Errorf("initializing HiGHS wasm runtime: %w", err) + } + wasmRuntime.runtimeInitialized = true + } + + // Every C string this solve hands to the Highs_* entry points is allocated on emscripten's + // stack and never freed, so snapshot the stack pointer and put it back on the way out. Without + // this the pointer only ever advances, and a pooled runtime overflows its stack after enough + // solves. + stackBase, err := callI32(wasmRuntime.ctx, wasmRuntime.stackSave) + if err != nil { + return nil, 0, fmt.Errorf("reading HiGHS wasm stack pointer: %w", err) + } + defer wasmRuntime.stackRestore.Call(wasmRuntime.ctx, wasmI32(stackBase)) + + highs, err := callI32(wasmRuntime.ctx, wasmRuntime.highsCreate) + if err != nil { + return nil, 0, fmt.Errorf("creating HiGHS wasm instance: %w", err) + } + if highs == 0 { + return nil, 0, fmt.Errorf("failed to create HiGHS wasm instance") + } + defer wasmRuntime.highsDestroy.Call(wasmRuntime.ctx, uint64(uint32(highs))) + + modelPath, err := wasmRuntime.writeCString("m.lp") + if err != nil { + return nil, 0, err + } + if status, err := callI32(wasmRuntime.ctx, wasmRuntime.highsReadModel, wasmI32(highs), wasmI32(modelPath)); err != nil { + return nil, 0, fmt.Errorf("reading HiGHS LP model: %w", err) + } else if !isHighsSuccess(status) { + return nil, 0, fmt.Errorf("failed reading HiGHS LP model: %d", status) + } + + if err := wasmRuntime.setStringOption(highs, "presolve", "on"); err != nil { + return nil, 0, err + } + // HiGHS rejects a non-positive time_limit; skip it (run unbounded) rather than erroring when the + // caller's budget is already spent. + if secs := timeout.Seconds(); secs > 0 { + if err := wasmRuntime.setDoubleOption(highs, "time_limit", secs); err != nil { + return nil, 0, err + } + } + if mipRelGap > 0 { + if err := wasmRuntime.setDoubleOption(highs, "mip_rel_gap", mipRelGap); err != nil { + return nil, 0, err + } + } + + if status, err := callI32(wasmRuntime.ctx, wasmRuntime.highsRun, wasmI32(highs)); err != nil { + return nil, 0, fmt.Errorf("running HiGHS wasm solve: %w", err) + } else if !isHighsSuccess(status) { + return nil, 0, fmt.Errorf("HiGHS wasm solve failed: %d", status) + } + + modelStatus, err := callI32(wasmRuntime.ctx, wasmRuntime.highsGetModelStatus, wasmI32(highs)) + if err != nil { + return nil, 0, fmt.Errorf("reading HiGHS wasm model status: %w", err) + } + if modelStatus != highsModelStatusOptimal && modelStatus != highsModelStatusTimeLimit { + // Infeasible or another terminal status: no solution to parse. + return nil, modelStatus, nil + } + + wasmRuntime.stdout.Reset() + wasmRuntime.stderr.Reset() + emptyPath, err := wasmRuntime.writeCString("") + if err != nil { + return nil, 0, err + } + if status, err := callI32(wasmRuntime.ctx, wasmRuntime.highsWriteSolutionPretty, wasmI32(highs), wasmI32(emptyPath)); err != nil { + return nil, 0, fmt.Errorf("writing HiGHS wasm solution: %w", err) + } else if !isHighsSuccess(status) { + return nil, 0, fmt.Errorf("failed writing HiGHS wasm solution: %d", status) + } + + values, err := parseHiGHSWasmSolution(wasmRuntime.stdout.String(), numVars) + if err != nil { + if modelStatus == highsModelStatusTimeLimit { + return nil, modelStatus, nil + } + return nil, 0, err + } + return values, modelStatus, nil +} + +func getHiGHSWasmRuntimeConcurrency() int { + if rawCap := os.Getenv("WOWSIMS_HIGHS_WASM_RUNTIME_CONCURRENCY"); rawCap != "" { + if cap, err := strconv.Atoi(rawCap); err == nil && cap > 0 { + return cap + } + } + return defaultHiGHSWasmRuntimeConcurrency(goruntime.NumCPU()) +} + +func defaultHiGHSWasmRuntimeConcurrency(numCPU int) int { + return max(1, numCPU) +} + +func acquireHiGHSWasmRuntime() (*highsWasmRuntime, error) { + highsWasmRuntimeSlots <- struct{}{} + select { + case runtime := <-highsWasmRuntimePool: + return runtime, nil + default: + runtime, err := newHiGHSWasmRuntime() + if err != nil { + <-highsWasmRuntimeSlots + return nil, err + } + return runtime, nil + } +} + +func releaseHiGHSWasmRuntime(runtime *highsWasmRuntime) { + if runtime != nil { + runtime.resetForNextSolve() + select { + case highsWasmRuntimePool <- runtime: + default: + _ = runtime.instance.Close(runtime.ctx) + } + } + <-highsWasmRuntimeSlots +} + +func newHiGHSWasmRuntime() (*highsWasmRuntime, error) { + module, err := getHiGHSWasmModule() + if err != nil { + return nil, err + } + + runtime := &highsWasmRuntime{ + nextFD: 3, + files: map[int32]*highsWasmFile{}, + paths: map[string][]byte{}, + } + runtime.ctx = context.WithValue(context.Background(), highsWasmRuntimeContextKey{}, runtime) + + instance, err := module.runtime.InstantiateModule(runtime.ctx, module.module, wazero.NewModuleConfig().WithName("").WithStartFunctions()) + if err != nil { + return nil, fmt.Errorf("instantiating HiGHS wasm: %w", err) + } + runtime.instance = instance + runtime.memory = instance.ExportedMemory(worker.HighsWASMMemoryExport) + if runtime.memory == nil { + return nil, fmt.Errorf("HiGHS wasm export %s is not memory", worker.HighsWASMMemoryExport) + } + + // Every name below is emscripten's symbolic one; highsExportedFunc translates it through the + // generated map to whatever letter this build of highs.wasm actually exports it under. + var lookupErr error + lookup := func(symbol string) api.Function { + fn, err := highsExportedFunc(instance, symbol) + if err != nil && lookupErr == nil { + lookupErr = err + } + return fn + } + runtime.runtimeInit = lookup("__wasm_call_ctors") + runtime.highsCreate = lookup("_Highs_create") + runtime.highsDestroy = lookup("_Highs_destroy") + runtime.highsRun = lookup("_Highs_run") + runtime.highsReadModel = lookup("_Highs_readModel") + runtime.highsWriteSolutionPretty = lookup("_Highs_writeSolutionPretty") + runtime.highsSetIntOption = lookup("_Highs_setIntOptionValue") + runtime.highsSetDoubleOption = lookup("_Highs_setDoubleOptionValue") + runtime.highsSetStringOption = lookup("_Highs_setStringOptionValue") + runtime.highsGetModelStatus = lookup("_Highs_getModelStatus") + runtime.stackAlloc = lookup("__emscripten_stack_alloc") + runtime.stackSave = lookup("_emscripten_stack_get_current") + runtime.stackRestore = lookup("__emscripten_stack_restore") + if lookupErr != nil { + return nil, lookupErr + } + return runtime, nil +} + +// highsExportedFunc resolves an emscripten export symbol to the function highs.wasm exports it +// under. The npm build minifies its export names, so the mapping comes from the generated +// ui/worker/highs_names_gen.go rather than being spelled out here. +func highsExportedFunc(instance api.Module, symbol string) (api.Function, error) { + minified, ok := worker.HighsWASMExports[symbol] + if !ok { + return nil, fmt.Errorf("HiGHS wasm name map has no export %s; run `make update-highs`", symbol) + } + fn := instance.ExportedFunction(minified) + if fn == nil { + return nil, fmt.Errorf("HiGHS wasm export %s (%s) is not a function", symbol, minified) + } + return fn, nil +} + +func (runtime *highsWasmRuntime) resetForNextSolve() { + runtime.nextFD = 3 + for fd := range runtime.files { + delete(runtime.files, fd) + } + for path := range runtime.paths { + delete(runtime.paths, path) + } + runtime.stdout.Reset() + runtime.stderr.Reset() +} + +func getHiGHSWasmModule() (*highsWasmModule, error) { + highsWasmModuleOnce.Do(func() { + ctx := context.Background() + runtime := wazero.NewRuntimeWithConfig(ctx, wazero.NewRuntimeConfigCompiler()) + if err := instantiateHiGHSWasmHostModule(ctx, runtime); err != nil { + highsWasmModuleErr = err + return + } + module, err := runtime.CompileModule(ctx, worker.HighsWASM) + if err != nil { + highsWasmModuleErr = fmt.Errorf("compiling embedded highs.wasm: %w", err) + return + } + highsWasmModuleValue = &highsWasmModule{runtime: runtime, module: module} + }) + return highsWasmModuleValue, highsWasmModuleErr +} + +// WarmUp eagerly compiles the embedded HiGHS WASM module, instantiates a runtime, runs its +// one-time init and a trivial solve, then returns the runtime to the pool ready for reuse. +// This moves the ~1s+ module-compile/instantiate/init cost to server startup instead of the +// first reforge-optimize request. It only primes shared lazy state (the compiled module and +// the runtime pool) and never affects solve results, so it is safe to call at any time, +// concurrently, and more than once. +func WarmUp() error { + const trivialLP = "Maximize\n obj: 1 x0\nBinary\n x0\nEnd" + _, _, err := runHiGHSLP(trivialLP, 1, 5*time.Second, 0) + return err +} + +// highsWasmHostFuncs is the emscripten runtime HiGHS expects to be given, keyed by emscripten's +// symbolic import name. The npm build minifies the names highs.wasm actually imports, so +// instantiateHiGHSWasmHostModule translates through the generated ui/worker/highs_names_gen.go +// rather than hardcoding letters that change with every upstream build. +// +// The handlers use wazero's stack-based (GoModuleFunction) dispatch rather than reflection-based +// WithFunc. HiGHS calls these imports (file I/O, clock, heap growth) many times per solve; +// reflection dispatch boxed every argument via reflect.New/reflect.Value.Call, which dominated +// allocations in bulk reforge runs. The stack convention passes params as a []uint64 and writes +// results back in place, eliminating that per-call reflection. +var highsWasmHostFuncs = map[string]api.GoModuleFunc{ + "___cxa_throw": func(context.Context, api.Module, []uint64) { + panic("HiGHS wasm exception handling import was called") + }, + "__abort_js": func(context.Context, api.Module, []uint64) { panic("HiGHS wasm abort") }, + "_exit": func(_ context.Context, _ api.Module, stack []uint64) { + panic(fmt.Sprintf("HiGHS wasm exited with code %d", api.DecodeU32(stack[0]))) + }, + "_proc_exit": func(_ context.Context, _ api.Module, stack []uint64) { + panic(fmt.Sprintf("HiGHS wasm exited with code %d", api.DecodeU32(stack[0]))) + }, + "_emscripten_get_now": highsWasmNowMillis, + "_emscripten_date_now": highsWasmNowMillis, + // fcntl64 and ioctl only ever reach the in-memory files below, where every operation is a + // no-op, so report success without inspecting the request. + "___syscall_fcntl64": highsWasmReturnZero, + "___syscall_ioctl": highsWasmReturnZero, + // HiGHS never sets a timer or reads the local timezone in a way that reaches the solution + // text, and the wasm's memory is zeroed, so leaving these unimplemented is safe. + "__setitimer_js": highsWasmReturnZero, + "__tzset_js": func(context.Context, api.Module, []uint64) {}, + "__emscripten_runtime_keepalive_clear": func(context.Context, api.Module, []uint64) {}, + "___syscall_openat": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).openAt(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[1])), int32(api.DecodeU32(stack[2])), int32(api.DecodeU32(stack[3]))))) + }, + "_fd_close": func(ctx context.Context, _ api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).fdClose(int32(api.DecodeU32(stack[0]))))) + }, + "_fd_read": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).fdRead(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[1])), int32(api.DecodeU32(stack[2])), int32(api.DecodeU32(stack[3]))))) + }, + "_fd_write": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).fdWrite(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[1])), int32(api.DecodeU32(stack[2])), int32(api.DecodeU32(stack[3]))))) + }, + "_fd_seek": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).fdSeek(module, int32(api.DecodeU32(stack[0])), int64(stack[1]), int32(api.DecodeU32(stack[2])), int32(api.DecodeU32(stack[3]))))) + }, + "_environ_get": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).environGet(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[1]))))) + }, + "_environ_sizes_get": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).environSizesGet(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[1]))))) + }, + "_clock_time_get": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).clockTimeGet(module, int32(api.DecodeU32(stack[0])), int32(api.DecodeU32(stack[2]))))) + }, + "_emscripten_resize_heap": func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeU32(uint32(highsWasmRuntimeFromContext(ctx).resizeHeap(module, int32(api.DecodeU32(stack[0]))))) + }, +} + +func highsWasmNowMillis(_ context.Context, _ api.Module, stack []uint64) { + stack[0] = api.EncodeF64(float64(time.Now().UnixNano()) / float64(time.Millisecond)) +} + +func highsWasmReturnZero(_ context.Context, _ api.Module, stack []uint64) { + stack[0] = 0 +} + +// instantiateHiGHSWasmHostModule registers highsWasmHostFuncs under the minified names and +// signatures the embedded highs.wasm imports. An upstream build that adds an import fails here, +// naming the symbol, rather than at solve time. +func instantiateHiGHSWasmHostModule(ctx context.Context, runtime wazero.Runtime) error { + builder := runtime.NewHostModuleBuilder(worker.HighsWASMImportModule) + for _, wasmImport := range worker.HighsWASMImports { + hostFunc, ok := highsWasmHostFuncs[wasmImport.Symbol] + if !ok { + return fmt.Errorf("HiGHS wasm imports %s, which has no host implementation", wasmImport.Symbol) + } + builder.NewFunctionBuilder(). + WithGoModuleFunction(hostFunc, wasmImport.Params, wasmImport.Results). + Export(wasmImport.Minified) + } + + if _, err := builder.Instantiate(ctx); err != nil { + return fmt.Errorf("instantiating HiGHS wasm host imports: %w", err) + } + return nil +} + +func highsWasmRuntimeFromContext(ctx context.Context) *highsWasmRuntime { + runtime, _ := ctx.Value(highsWasmRuntimeContextKey{}).(*highsWasmRuntime) + if runtime == nil { + panic("missing HiGHS wasm runtime context") + } + return runtime +} + +func (runtime *highsWasmRuntime) memoryBytes() []byte { + if runtime.memory == nil { + return nil + } + memory, _ := runtime.memory.Read(0, runtime.memory.Size()) + return memory +} + +func moduleMemoryBytes(module api.Module) []byte { + memory := module.Memory() + if memory == nil { + return nil + } + bytes, _ := memory.Read(0, memory.Size()) + return bytes +} + +func (runtime *highsWasmRuntime) openAt(module api.Module, _ int32, pathPtr int32, _ int32, _ int32) int32 { + path := runtime.readCString(moduleMemoryBytes(module), pathPtr) + if !strings.HasPrefix(path, "/") { + path = "/" + path + } + contents, ok := runtime.paths[path] + if !ok { + return -44 + } + fd := runtime.nextFD + runtime.nextFD++ + runtime.files[fd] = &highsWasmFile{path: path, contents: contents} + return fd +} + +func (runtime *highsWasmRuntime) fdClose(fd int32) int32 { + if fd <= 2 { + return 0 + } + delete(runtime.files, fd) + return 0 +} + +func (runtime *highsWasmRuntime) fdRead(module api.Module, fd int32, iovsPtr int32, iovsLen int32, nreadPtr int32) int32 { + file := runtime.files[fd] + if file == nil { + return 8 + } + memory := moduleMemoryBytes(module) + bytesRead := int32(0) + for iovIdx := int32(0); iovIdx < iovsLen; iovIdx++ { + iovPtr := int(iovsPtr + 8*iovIdx) + bufferPtr := int32(binary.LittleEndian.Uint32(memory[iovPtr:])) + bufferLen := int32(binary.LittleEndian.Uint32(memory[iovPtr+4:])) + if bufferLen <= 0 || file.position >= int64(len(file.contents)) { + continue + } + remaining := int32(len(file.contents) - int(file.position)) + copyLen := min(bufferLen, remaining) + copy(memory[bufferPtr:bufferPtr+copyLen], file.contents[file.position:file.position+int64(copyLen)]) + file.position += int64(copyLen) + bytesRead += copyLen + if copyLen < bufferLen { + break + } + } + binary.LittleEndian.PutUint32(memory[nreadPtr:], uint32(bytesRead)) + return 0 +} + +func (runtime *highsWasmRuntime) fdWrite(module api.Module, fd int32, iovsPtr int32, iovsLen int32, nwrittenPtr int32) int32 { + memory := moduleMemoryBytes(module) + bytesWritten := int32(0) + for iovIdx := int32(0); iovIdx < iovsLen; iovIdx++ { + iovPtr := int(iovsPtr + 8*iovIdx) + bufferPtr := int32(binary.LittleEndian.Uint32(memory[iovPtr:])) + bufferLen := int32(binary.LittleEndian.Uint32(memory[iovPtr+4:])) + if bufferLen <= 0 { + continue + } + switch fd { + case 1: + runtime.stdout.Write(memory[bufferPtr : bufferPtr+bufferLen]) + case 2: + runtime.stderr.Write(memory[bufferPtr : bufferPtr+bufferLen]) + } + bytesWritten += bufferLen + } + binary.LittleEndian.PutUint32(memory[nwrittenPtr:], uint32(bytesWritten)) + return 0 +} + +func (runtime *highsWasmRuntime) fdSeek(module api.Module, fd int32, offset int64, whence int32, newOffsetPtr int32) int32 { + file := runtime.files[fd] + if file == nil { + return 8 + } + var nextOffset int64 + switch whence { + case 0: + nextOffset = offset + case 1: + nextOffset = file.position + offset + case 2: + nextOffset = int64(len(file.contents)) + offset + default: + return 28 + } + if nextOffset < 0 { + return 28 + } + file.position = nextOffset + memory := moduleMemoryBytes(module) + binary.LittleEndian.PutUint64(memory[newOffsetPtr:], uint64(nextOffset)) + return 0 +} + +func (runtime *highsWasmRuntime) environSizesGet(module api.Module, countPtr int32, sizePtr int32) int32 { + memory := moduleMemoryBytes(module) + binary.LittleEndian.PutUint32(memory[countPtr:], 0) + binary.LittleEndian.PutUint32(memory[sizePtr:], 0) + return 0 +} + +func (runtime *highsWasmRuntime) environGet(_ api.Module, _ int32, _ int32) int32 { + return 0 +} + +func (runtime *highsWasmRuntime) clockTimeGet(module api.Module, _ int32, timePtr int32) int32 { + memory := moduleMemoryBytes(module) + binary.LittleEndian.PutUint64(memory[timePtr:], uint64(time.Now().UnixNano())) + return 0 +} + +func (runtime *highsWasmRuntime) resizeHeap(module api.Module, requestedSize int32) int32 { + memory := module.Memory() + if memory == nil { + return 0 + } + currentBytes := uint64(memory.Size()) + if uint64(requestedSize) <= currentBytes { + return 1 + } + const pageSize = 64 * 1024 + neededPages := uint32((uint64(requestedSize) - currentBytes + pageSize - 1) / pageSize) + if _, ok := memory.Grow(neededPages); !ok { + return 0 + } + return 1 +} + +func (runtime *highsWasmRuntime) readCString(memory []byte, ptr int32) string { + if ptr <= 0 || int(ptr) >= len(memory) { + return "" + } + end := int(ptr) + for end < len(memory) && memory[end] != 0 { + end++ + } + return string(memory[ptr:end]) +} + +func (runtime *highsWasmRuntime) writeCString(value string) (int32, error) { + ptr, err := callI32(runtime.ctx, runtime.stackAlloc, wasmI32(int32(len(value)+1))) + if err != nil { + return 0, fmt.Errorf("allocating HiGHS wasm string: %w", err) + } + memory := runtime.memoryBytes() + copy(memory[ptr:], value) + memory[int(ptr)+len(value)] = 0 + return ptr, nil +} + +func (runtime *highsWasmRuntime) setDoubleOption(highs int32, name string, value float64) error { + namePtr, err := runtime.writeCString(name) + if err != nil { + return err + } + status, err := callI32(runtime.ctx, runtime.highsSetDoubleOption, wasmI32(highs), wasmI32(namePtr), api.EncodeF64(value)) + if err != nil { + return fmt.Errorf("setting HiGHS wasm option %q: %w", name, err) + } + if !isHighsSuccess(status) { + return fmt.Errorf("failed setting HiGHS wasm option %q: %d", name, status) + } + return nil +} + +func (runtime *highsWasmRuntime) setStringOption(highs int32, name string, value string) error { + namePtr, err := runtime.writeCString(name) + if err != nil { + return err + } + valuePtr, err := runtime.writeCString(value) + if err != nil { + return err + } + status, err := callI32(runtime.ctx, runtime.highsSetStringOption, wasmI32(highs), wasmI32(namePtr), wasmI32(valuePtr)) + if err != nil { + return fmt.Errorf("setting HiGHS wasm option %q: %w", name, err) + } + if !isHighsSuccess(status) { + return fmt.Errorf("failed setting HiGHS wasm option %q: %d", name, status) + } + return nil +} + +func callI32(ctx context.Context, fn api.Function, args ...uint64) (int32, error) { + results, err := fn.Call(ctx, args...) + if err != nil { + return 0, err + } + if len(results) == 0 { + return 0, fmt.Errorf("expected i32 result, got no results") + } + return int32(uint32(results[0])), nil +} + +func wasmI32(value int32) uint64 { + return uint64(uint32(value)) +} + +func isHighsSuccess(status int32) bool { + return status == highsStatusOK || status == highsStatusWarning +} + +func parseHiGHSWasmSolution(output string, variableCount int) ([]float64, error) { + lines := strings.Split(output, "\n") + values := make([]float64, variableCount) + inColumns := false + parsedColumns := 0 + for _, line := range lines { + trimmed := strings.TrimSpace(line) + if trimmed == "Columns" { + inColumns = true + continue + } + if trimmed == "Rows" { + break + } + if !inColumns || trimmed == "" || strings.HasPrefix(trimmed, "Index ") { + continue + } + fields := strings.Fields(trimmed) + if len(fields) < 5 { + continue + } + name := fields[len(fields)-1] + if !strings.HasPrefix(name, "x") { + continue + } + variableIdx, err := strconv.Atoi(strings.TrimPrefix(name, "x")) + if err != nil || variableIdx < 0 || variableIdx >= variableCount { + continue + } + offset := 1 + if _, err := strconv.ParseFloat(fields[1], 64); err != nil { + offset = 2 + } + primalIdx := offset + 2 + if primalIdx >= len(fields)-1 { + continue + } + primal, err := parseHiGHSNumber(fields[primalIdx]) + if err != nil { + return nil, fmt.Errorf("parsing HiGHS wasm solution value for %s: %w", name, err) + } + values[variableIdx] = primal + parsedColumns++ + } + if parsedColumns == 0 && variableCount > 0 { + return nil, fmt.Errorf("HiGHS wasm solution did not include any columns") + } + return values, nil +} + +func parseHiGHSNumber(value string) (float64, error) { + switch value { + case "inf": + return math.Inf(1), nil + case "-inf": + return math.Inf(-1), nil + default: + return strconv.ParseFloat(value, 64) + } +} diff --git a/sim/core/reforge_optimizer/highswasm_test.go b/sim/core/reforge_optimizer/highswasm_test.go new file mode 100644 index 0000000000..13195ac448 --- /dev/null +++ b/sim/core/reforge_optimizer/highswasm_test.go @@ -0,0 +1,101 @@ +//go:build !(js && wasm) + +package reforgeoptimizer + +import ( + "strconv" + "testing" + "time" +) + +func TestHiGHSWasmRuntimeConcurrencyUsesEnvOverride(t *testing.T) { + t.Setenv("WOWSIMS_HIGHS_WASM_RUNTIME_CONCURRENCY", "7") + + if got := getHiGHSWasmRuntimeConcurrency(); got != 7 { + t.Fatalf("runtime concurrency = %d, want env override 7", got) + } +} + +func TestDefaultHiGHSWasmRuntimeConcurrency(t *testing.T) { + testCases := []struct { + numCPU int + want int + }{ + {numCPU: 1, want: 1}, + {numCPU: 2, want: 2}, + {numCPU: 4, want: 4}, + {numCPU: 18, want: 18}, + } + + for _, testCase := range testCases { + t.Run(strconv.Itoa(testCase.numCPU), func(t *testing.T) { + if got := defaultHiGHSWasmRuntimeConcurrency(testCase.numCPU); got != testCase.want { + t.Fatalf("default concurrency for %d CPUs = %d, want %d", testCase.numCPU, got, testCase.want) + } + }) + } +} + +// tinyHiGHSWasmLP maximizes x0 + 2 x1 subject to x0 + x1 <= 1 (binary), whose optimum is +// x0=0, x1=1. +const tinyHiGHSWasmLP = "Maximize\n obj: 1 x0 + 2 x1\nSubject To\n c0: 1 x0 + 1 x1 <= 1\nBinary\n x0\n x1\nEnd" + +func TestRunHiGHSLPWASM(t *testing.T) { + values, modelStatus, err := runHiGHSLP(tinyHiGHSWasmLP, 2, 5*time.Second, 0) + if err != nil { + t.Fatalf("runHiGHSLP returned error: %v", err) + } + if modelStatus != highsModelStatusOptimal { + t.Fatalf("expected optimal model status %d, got %d", highsModelStatusOptimal, modelStatus) + } + if len(values) != 2 || values[0] >= 0.5 || values[1] < 0.5 { + t.Fatalf("expected optimum x0=0, x1=1; got %v", values) + } +} + +// TestHiGHSWasmStackDoesNotGrowAcrossSolves pins the stackAlloc bracketing in runHiGHSLP. The C +// strings each solve passes to the Highs_* entry points are allocated on emscripten's stack and +// never freed, so a runtime coming back out of the pool must have the same stack pointer it went +// in with; otherwise a long-lived pool overflows its stack after enough solves. +func TestHiGHSWasmStackDoesNotGrowAcrossSolves(t *testing.T) { + // Prime the pool so the loop below reuses one runtime rather than instantiating new ones. + if _, _, err := runHiGHSLP(tinyHiGHSWasmLP, 2, 5*time.Second, 0); err != nil { + t.Fatalf("runHiGHSLP warmup returned error: %v", err) + } + + pooledStackPointer := func() int32 { + t.Helper() + runtime := <-highsWasmRuntimePool + defer func() { highsWasmRuntimePool <- runtime }() + stackPointer, err := callI32(runtime.ctx, runtime.stackSave) + if err != nil { + t.Fatalf("reading HiGHS wasm stack pointer: %v", err) + } + return stackPointer + } + + before := pooledStackPointer() + for range 20 { + if _, _, err := runHiGHSLP(tinyHiGHSWasmLP, 2, 5*time.Second, 0); err != nil { + t.Fatalf("runHiGHSLP returned error: %v", err) + } + } + if after := pooledStackPointer(); after != before { + t.Errorf("HiGHS wasm stack pointer moved %d bytes over 20 solves (%d -> %d); each solve is leaking its stackAlloc'd strings", + before-after, before, after) + } +} + +func BenchmarkRunHiGHSLPWASM(b *testing.B) { + b.ReportAllocs() + if _, _, err := runHiGHSLP(tinyHiGHSWasmLP, 2, 5*time.Second, 0); err != nil { + b.Fatalf("runHiGHSLP warmup returned error: %v", err) + } + b.ResetTimer() + + for range b.N { + if _, _, err := runHiGHSLP(tinyHiGHSWasmLP, 2, 5*time.Second, 0); err != nil { + b.Fatalf("runHiGHSLP returned error: %v", err) + } + } +} diff --git a/sim/core/reforge_optimizer/lp.go b/sim/core/reforge_optimizer/lp.go new file mode 100644 index 0000000000..652371e378 --- /dev/null +++ b/sim/core/reforge_optimizer/lp.go @@ -0,0 +1,306 @@ +package reforgeoptimizer + +import ( + "math" + "strconv" + "strings" +) + +// This file produces a stable, exact CPLEX LP text encoding of the model for the HiGHS solver. +// The serialization is fully deterministic down to the byte level (including the quirk that the +// leading space is dropped on the first wrapped line), so an unchanged model always yields the +// same LP text and therefore the same HiGHS tie-breaking among equal-objective solutions. + +// maxLPLineLength is the maximum length of an emitted LP line before it is wrapped. +const maxLPLineLength = 200 + +// lpConstraint represents an optional bound row: an equality, a lower bound (min), or an upper +// bound (max). lessEq builds a "<=" row (max) and greaterEq builds a ">=" row (min). +type lpConstraint struct { + equal, min, max float64 + hasEqual, hasMin, hasMax bool +} + +func lessEq(n float64) lpConstraint { return lpConstraint{max: n, hasMax: true} } +func greaterEq(n float64) lpConstraint { return lpConstraint{min: n, hasMin: true} } + +// lpVariables is an insertion-ordered map name -> coefficients. Order is load-bearing: it +// determines x-index assignment and therefore HiGHS's tie-breaking among equal-EP solutions. +// +// Each variable carries coefficients in TWO parallel spaces: +// - byName holds the CAP coefficients (fully stat-dependency-resolved via resolveStatDelta) +// plus the structural/constraint keys (slot, socket, SocketBonusLink_*, ShaTouchedGem, +// JewelcraftingGem, cogwheel IDs, relative-cap Minus keys). modelToLPFormat's constraint +// rows and checkCaps read byName, so every dependency counts toward caps. +// - objByName holds the OBJECTIVE coefficients (the EP-calibrated applyReforgeStat output). +// updateReforgeScores reads objByName to compute each variable's 'score' coefficient, so +// the LP objective stays exactly as calibrated. +type lpVariables struct { + order []string + byName map[string]map[string]float64 + objByName map[string]map[string]float64 +} + +func newLPVariables() *lpVariables { + return &lpVariables{ + byName: map[string]map[string]float64{}, + objByName: map[string]map[string]float64{}, + } +} + +// set appends a new key to the insertion order; overwriting an existing key keeps its +// original position. coeffs are the CAP coefficients (byName). +func (v *lpVariables) set(name string, coeffs map[string]float64) { + if _, ok := v.byName[name]; !ok { + v.order = append(v.order, name) + } + v.byName[name] = coeffs +} + +// setObj stores a variable's OBJECTIVE coefficients (objByName). It never touches the insertion +// order, which is owned by set. +func (v *lpVariables) setObj(name string, coeffs map[string]float64) { + v.objByName[name] = coeffs +} + +func (v *lpVariables) get(name string) (map[string]float64, bool) { + c, ok := v.byName[name] + return c, ok +} + +func (v *lpVariables) getObj(name string) map[string]float64 { + return v.objByName[name] +} + +func (v *lpVariables) each(fn func(name string, coeffs map[string]float64)) { + for _, name := range v.order { + fn(name, v.byName[name]) + } +} + +func (v *lpVariables) len() int { return len(v.order) } + +// lpConstraints is an insertion-ordered map name -> constraint. +type lpConstraints struct { + order []string + byName map[string]lpConstraint +} + +func newLPConstraints() *lpConstraints { + return &lpConstraints{byName: map[string]lpConstraint{}} +} + +func (c *lpConstraints) set(name string, con lpConstraint) { + if _, ok := c.byName[name]; !ok { + c.order = append(c.order, name) + } + c.byName[name] = con +} + +func (c *lpConstraints) has(name string) bool { + _, ok := c.byName[name] + return ok +} + +// clone makes a shallow copy that can be extended without mutating the original; checkCaps uses +// it to tighten the constraint set for the next refinement pass. +func (c *lpConstraints) clone() *lpConstraints { + out := &lpConstraints{ + order: append([]string(nil), c.order...), + byName: make(map[string]lpConstraint, len(c.byName)), + } + for k, v := range c.byName { + out.byName[k] = v + } + return out +} + +func (c *lpConstraints) each(fn func(name string, con lpConstraint)) { + for _, name := range c.order { + fn(name, c.byName[name]) + } +} + +type lpModel struct { + direction string // "maximize" | "minimize" + objective string + variables *lpVariables + constraints *lpConstraints + binaries bool +} + +// lpSolution holds the parts of a solved LP the algorithm consumes. variables holds the +// ORIGINAL names of the variables selected by the solver (column primal >= 0.5), in x-index +// (variable insertion) order. +type lpSolution struct { + status string // "optimal" | "infeasible" | "unbounded" | "timedout" | "unknown" + result float64 + variables []string +} + +// modelToLPFormat serializes the model to CPLEX LP text for the HiGHS solver. It returns the LP +// text and reverseNames, where reverseNames[i] is the original variable name mapped to "x{i}". +func modelToLPFormat(model *lpModel) (string, []string) { + varNameMap := make(map[string]string, model.variables.len()) + reverseNames := make([]string, 0, model.variables.len()) + idx := 0 + model.variables.each(func(name string, _ map[string]float64) { + escaped := "x" + strconv.Itoa(idx) + varNameMap[name] = escaped + reverseNames = append(reverseNames, name) + idx++ + }) + + lines := make([]string, 0, 8+idx) + if model.direction == "maximize" { + lines = append(lines, "Maximize") + } else { + lines = append(lines, "Minimize") + } + lines = append(lines, buildLPObjective(model, varNameMap)...) + + constraintLines := buildLPConstraints(model, varNameMap) + if len(constraintLines) > 0 { + lines = append(lines, "Subject To") + lines = append(lines, constraintLines...) + } + + // buildBounds emits nothing for binary variables; the "Bounds" header is only written + // when there are bound lines. + if !model.binaries && idx > 0 { + lines = append(lines, "Bounds") + for i := 0; i < idx; i++ { + lines = append(lines, " 0 <= x"+strconv.Itoa(i)) + } + } + + if model.binaries { + lines = append(lines, "Binary") + for i := 0; i < idx; i++ { + lines = append(lines, " x"+strconv.Itoa(i)) + } + } + + lines = append(lines, "End") + return strings.Join(lines, "\n"), reverseNames +} + +func buildLPObjective(model *lpModel, varNameMap map[string]string) []string { + var terms []string + model.variables.each(func(name string, coeffs map[string]float64) { + score, ok := coeffs[model.objective] + if !ok || score == 0 { + return + } + escaped := varNameMap[name] + if len(terms) == 0 { + terms = append(terms, formatLPNumber(score)+" "+escaped) + } else if score >= 0 { + terms = append(terms, "+ "+formatLPNumber(score)+" "+escaped) + } else { + terms = append(terms, "- "+formatLPNumber(math.Abs(score))+" "+escaped) + } + }) + + if len(terms) == 0 { + return []string{" obj: 0"} + } + return wrapLPExpression(" obj: "+strings.Join(terms, " "), maxLPLineLength) +} + +func buildLPConstraints(model *lpModel, varNameMap map[string]string) []string { + var lines []string + constraintIndex := 0 + + model.constraints.each(func(cname string, c lpConstraint) { + if !c.hasEqual && !c.hasMin && !c.hasMax { + return + } + + var terms []string + model.variables.each(func(vname string, coeffs map[string]float64) { + coeff, ok := coeffs[cname] + if !ok || coeff == 0 { + return + } + escaped := varNameMap[vname] + if len(terms) == 0 { + terms = append(terms, formatLPNumber(coeff)+" "+escaped) + } else if coeff >= 0 { + terms = append(terms, "+ "+formatLPNumber(coeff)+" "+escaped) + } else { + terms = append(terms, "- "+formatLPNumber(math.Abs(coeff))+" "+escaped) + } + }) + + if len(terms) == 0 { + return + } + lhs := strings.Join(terms, " ") + + if c.hasEqual { + label := "c" + strconv.Itoa(constraintIndex) + constraintIndex++ + lines = append(lines, wrapLPExpression(" "+label+": "+lhs+" = "+formatLPNumber(c.equal), maxLPLineLength)...) + return + } + if c.hasMax { + label := "c" + strconv.Itoa(constraintIndex) + constraintIndex++ + lines = append(lines, wrapLPExpression(" "+label+": "+lhs+" <= "+formatLPNumber(c.max), maxLPLineLength)...) + } + if c.hasMin { + label := "c" + strconv.Itoa(constraintIndex) + constraintIndex++ + lines = append(lines, wrapLPExpression(" "+label+": "+lhs+" >= "+formatLPNumber(c.min), maxLPLineLength)...) + } + }) + + return lines +} + +// wrapLPExpression splits a long LP expression across multiple lines at token boundaries so no +// line exceeds maxLength. The first wrapped line drops its leading space (an empty currentLine +// has length 0, so the next token replaces it without the leading space). +func wrapLPExpression(expression string, maxLength int) []string { + if len(expression) <= maxLength { + return []string{expression} + } + + var lines []string + currentLine := "" + for _, token := range strings.Split(expression, " ") { + if len(currentLine) == 0 { + currentLine = token + } else if len(currentLine)+1+len(token) <= maxLength { + currentLine += " " + token + } else { + lines = append(lines, currentLine) + currentLine = " " + token + } + } + if len(currentLine) > 0 { + lines = append(lines, currentLine) + } + return lines +} + +// formatLPNumber renders a coefficient as LP text: fixed 10 decimal places, then strip trailing +// zeros and an optional trailing dot; ±Inf -> ±1e30; NaN -> 0. +func formatLPNumber(num float64) string { + if math.IsInf(num, 1) { + return "1e30" + } + if math.IsInf(num, -1) { + return "-1e30" + } + if math.IsNaN(num) { + return "0" + } + s := strconv.FormatFloat(num, 'f', 10, 64) + if strings.ContainsRune(s, '.') { + s = strings.TrimRight(s, "0") + s = strings.TrimRight(s, ".") + } + return s +} diff --git a/sim/core/reforge_optimizer/model.go b/sim/core/reforge_optimizer/model.go new file mode 100644 index 0000000000..5e9aaddb3c --- /dev/null +++ b/sim/core/reforge_optimizer/model.go @@ -0,0 +1,579 @@ +package reforgeoptimizer + +import ( + "cmp" + "maps" + "slices" + "strconv" + "strings" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" +) + +// This file builds the LP model: buildYalpsVariables, buildGemOptions, applyReforgeStat, +// buildYalpsConstraints, updateReforgeScores. Variable/constraint INSERTION ORDER is +// load-bearing, because it drives x-index assignment and therefore HiGHS tie-breaking. + +// gemData bundles a gem with the data the LP needs: the gem, whether it's a JC gem, its +// OBJECTIVE stat coefficients (applyReforgeStat output; LP coefficient map, no 'score' key — +// the score is recomputed per solver pass), the gem's RAW stats (fed to resolveStatDelta to +// build the cap-space coefficients), the CAP coefficients resolved once from those raw stats +// (a gem's stats are fixed, so this is reused for every socket instead of re-resolving), and +// the pre-computed sort score (from the pre-cap weights). +type gemData struct { + gem *proto.ReforgeGemOption + isJC bool + coeffs map[string]float64 + rawStats stats.Stats + capCoeffs map[string]float64 + score float64 +} + +var gemBuildSocketColors = []proto.GemColor{ + proto.GemColor_GemColorPrismatic, + proto.GemColor_GemColorShaTouched, + proto.GemColor_GemColorCogwheel, + proto.GemColor_GemColorRed, + proto.GemColor_GemColorBlue, + proto.GemColor_GemColorYellow, +} + +// buildGemOptions builds the candidate gem pool for each socket color. +func (o *reforgeOptimizer) buildGemOptions(preCapEPs core.UnitStats, reforgeCaps core.UnitStats, reforgeSoftCaps []*reforgeSoftCap) map[proto.GemColor][]gemData { + gemsToInclude := map[proto.GemColor][]gemData{} + if !o.includeGems { + return gemsToInclude + } + + for _, socketColor := range gemBuildSocketColors { + allGemsOfColor := o.gemsForColorKey(socketColor) + filtered := make([]gemData, 0, len(allGemsOfColor)) + + weightsForSorting := preCapEPs + if o.relativeCap != nil { + constrained0 := stats.UnitStatFromStat(stats.Stat(int32(o.relativeCap.constrainedStats[0]))) + weightsForSorting = setUnitStat(weightsForSorting, o.relativeCap.forcedUnitStat, getUnitStat(weightsForSorting, constrained0)) + } + + for _, gem := range allGemsOfColor { + isJC := gem.GetRequiredProfession() == proto.Profession_Jewelcrafting + if (isJC && !o.hasJC) || + // Force non-tank specs to use exclusively primary-stat JC gems to speed up calculations. + (isJC && !o.isTankSpec && !gemHasAnyStat(gem, stats.Strength, stats.Agility, stats.Intellect)) || + // Hybrid casters use Spirit instead of hit gems. + (o.isHybridCaster && gemStatValue(gem, stats.HitRating) != 0) || + strings.Contains(gem.GetName(), "Perfect") || + !core.GemMatchesSocket(gem.GetColor(), socketColor) { + continue + } + + allStatsValid := true + coeffs := map[string]float64{} + var rawStats stats.Stats + for statIdx, statValue := range gem.GetStats() { + if statValue == 0 { + continue + } + stat := stats.Stat(statIdx) + if !o.epStatsSet[proto.Stat(statIdx)] && stat != stats.ExpertiseRating { + allStatsValid = false + break + } + rawStats[statIdx] = statValue + o.applyReforgeStat(coeffs, proto.Stat(statIdx), statValue, weightsForSorting) + } + if !allStatsValid { + continue + } + + filtered = append(filtered, gemData{ + gem: gem, + isJC: isJC, + coeffs: coeffs, + rawStats: rawStats, + capCoeffs: o.resolveCapCoeffs(rawStats), + score: computeCoeffScore(coeffs, weightsForSorting), + }) + } + + // Sort from highest to lowest pre-cap EP. The sort is stable so tied gems keep their + // candidate-pool order. + slices.SortStableFunc(filtered, func(a, b gemData) int { + return cmp.Compare(b.score, a.score) + }) + + maxGemOptionsForStat := 4 + if o.isTankSpec { + maxGemOptionsForStat = 3 + } + if socketColor == proto.GemColor_GemColorYellow && o.relativeCap == nil { + foundCritOrHasteCap := false + for _, parent := range []stats.Stat{stats.CritRating, stats.HasteRating} { + for _, child := range childPseudoStats(parent) { + if pseudoStatHasCap(child, reforgeCaps, reforgeSoftCaps) { + foundCritOrHasteCap = true + } + } + } + if !foundCritOrHasteCap { + maxGemOptionsForStat = 1 + } + } + + included := make([]gemData, 0, len(filtered)) + foundUncappedJCGem := false + foundUncappedNormalGem := false + numUncappedNormalGems := 0 + numGemOptionsForStat := map[string]int{} + + for _, gd := range filtered { + cappedStatKeys := getCappedStatKeys(gd.coeffs, reforgeCaps, reforgeSoftCaps) + isRedundantGem := false + for _, statKey := range cappedStatKeys { + if numGemOptionsForStat[statKey] == maxGemOptionsForStat { + isRedundantGem = true + break + } + } + + if (!gd.isJC || !foundUncappedJCGem) && !isRedundantGem && (len(cappedStatKeys) == 0 || !foundUncappedNormalGem) { + included = append(included, gd) + // Only gems that actually made it into the candidate list consume per-stat + // option slots. + if !gd.isJC { + for _, statKey := range cappedStatKeys { + numGemOptionsForStat[statKey]++ + } + } + } + + if len(cappedStatKeys) == 0 && socketColor != proto.GemColor_GemColorCogwheel { + if gd.isJC { + foundUncappedJCGem = true + } else { + foundUncappedNormalGem = true + numUncappedNormalGems++ + if o.relativeCap == nil || numUncappedNormalGems == 3 { + break + } + } + } + } + + gemsToInclude[socketColor] = included + } + + return gemsToInclude +} + +// gemsForColorKey returns the request's gems that are eligible to be socketed into socketColor +// (via gemEligibleForSocket); buildGemOptions then applies the stricter gemMatchesSocket filter. +func (o *reforgeOptimizer) gemsForColorKey(socketColor proto.GemColor) []*proto.ReforgeGemOption { + var out []*proto.ReforgeGemOption + for _, gem := range o.gemOptions { + if core.GemEligibleForSocket(gem.GetColor(), socketColor) { + out = append(out, gem) + } + } + return out +} + +// applyReforgeStat applies stat dependencies (Human Spirit, Amplification Trinket, Guardian +// Crit/Agility, hybrid Spirit->SpellHit, Expertise->SpellHit) then sets the LP coefficients, +// routing a rating stat to its school-specific percent pseudo-stats when the root rating has no +// direct EP weight. +func (o *reforgeOptimizer) applyReforgeStat(coeffs map[string]float64, stat proto.Stat, amount float64, preCapEPs core.UnitStats) { + // Character-specific self-multipliers + stat expansions not baked into the calibrated EP + // (amplification trinket, racial Spirit, Guardian Bear Form crit + Agility->AP/crit). Applied + // in rule order; a rule with expandTo re-expresses the stat and stops here. + for _, rule := range o.statRules { + if !slices.Contains(rule.stats, stat) { + continue + } + amount *= rule.mult + if len(rule.expandTo) > 0 { + for _, term := range rule.expandTo { + coeffs[coeffKeyForUnitStat(term.target)] += amount * term.factor + } + return + } + } + + // Spirit->SpellHit (hybrid casters) and Expertise->SpellHit conversions. + spellHitPseudo := proto.PseudoStat_PseudoStatSpellHitPercent + if getUnitStat(preCapEPs, stats.UnitStatFromPseudoStat(spellHitPseudo)) != 0 && + ((stat == proto.Stat_StatSpirit && o.isHybridCaster) || stat == proto.Stat_StatExpertiseRating) { + o.setPseudoStatCoefficient(coeffs, spellHitPseudo, amount/core.SpellHitRatingPerHitPercent) + } + + if o.relativeCap != nil { + o.relativeCap.updateCoefficients(coeffs, stat, amount) + } + + // If the root stat has a direct EP weight, apply it directly and don't expand children. + if preCapEPs.Stats[stat] != 0 { + o.setStatCoefficient(coeffs, stat, amount) + return + } + + // Otherwise expand into any child pseudo-stat that carries an EP weight. + for _, child := range childPseudoStats(stats.Stat(int32(stat))) { + if getUnitStat(preCapEPs, stats.UnitStatFromPseudoStat(child)) != 0 { + o.setPseudoStatCoefficient(coeffs, child, convertRatingToPercent(child, amount)) + } + } +} + +func (o *reforgeOptimizer) setStatCoefficient(coeffs map[string]float64, stat proto.Stat, amount float64) { + coeffs[statCoeffKey(stat)] += amount +} + +func (o *reforgeOptimizer) setPseudoStatCoefficient(coeffs map[string]float64, pseudoStat proto.PseudoStat, amount float64) { + coeffs[pseudoStatCoeffKey(pseudoStat)] += amount +} + +// resolveCapCoeffs builds a variable's cap-space coefficient map from a raw stat delta by +// resolving it through the full stat-dependency graph (resolveStatDelta) and keying every +// nonzero resolved stat/pseudo-stat by its coefficient-key name. These feed the LP cap +// constraint rows and checkCaps, so every dependency (e.g. Intellect -> SpellCrit%, a Guardian's +// Agility -> Crit%, the haste speed multiplier) counts toward the caps. +func (o *reforgeOptimizer) resolveCapCoeffs(rawDelta stats.Stats) map[string]float64 { + resolved := resolveStatDelta(o.statDeps, o.baseStats, rawUnitStatsFromStats(rawDelta)) + coeffs := map[string]float64{} + eachUnitStat(resolved, func(unitStat stats.UnitStat, value float64) { + if value != 0 { + coeffs[coeffKeyForUnitStat(unitStat)] = value + } + }) + return coeffs +} + +// buildYalpsVariables builds the LP decision variables. Insertion order per slot: reforge +// variables, then (if gems) per-socket gem variables, then the socket-bonus variable. +// +// Each variable is built in two coefficient spaces: capCoeffs (fully SDM-resolved, plus the +// structural/constraint keys) go into byName; objCoeffs (the EP-calibrated applyReforgeStat +// output) go into objByName. See lpVariables for how the two are consumed. +func (o *reforgeOptimizer) buildYalpsVariables(equipment core.Equipment, preCapEPs core.UnitStats, reforgeCaps core.UnitStats, reforgeSoftCaps []*reforgeSoftCap) *lpVariables { + variables := newLPVariables() + gemsToInclude := o.buildGemOptions(preCapEPs, reforgeCaps, reforgeSoftCaps) + reforgeIDs := core.GetSortedReforgeStatIDs() + + // setVar stores a variable's cap and objective coefficients. It first carries any non-stat + // constraint key applyReforgeStat emits (the relative-cap "*Minus*" ordering keys) from the + // objective map into the cap map, where the LP constraint rows read them; every other + // objective key is a stat/pseudo-stat coefficient that belongs only to the score. + setVar := func(key string, capCoeffs, objCoeffs map[string]float64) { + for k, v := range objCoeffs { + if _, isStat := unitStatFromCoeffKey(k); !isStat { + capCoeffs[k] += v + } + } + variables.set(key, capCoeffs) + variables.setObj(key, objCoeffs) + } + + for slotIdx := 0; slotIdx < int(core.NumItemSlots); slotIdx++ { + slot := proto.ItemSlot(slotIdx) + item := equipment.GetItemBySlot(slot) + if item.ID == 0 || o.frozenSlots[slot] { + continue + } + + // Prefer Hit over Expertise for true casters: when the same source stat can reforge to + // Hit, drop its Expertise-target reforge. Hit strictly dominates Expertise's spell-hit + // proxy, so keeping the Expertise variable only lets the solver settle a strictly worse tie + // (mirrors the old backend's preferHitOverExpertiseReforges). + var hitReforgeSources map[proto.Stat]bool + if o.isTrueCaster { + hitReforgeSources = map[proto.Stat]bool{} + for _, reforgeID := range reforgeIDs { + reforge := core.GetReforgeStatByID(reforgeID) + if stats.Stat(int32(reforge.ToStat)) == stats.HitRating && core.ValidateReforging(item, reforge) { + hitReforgeSources[reforge.FromStat] = true + } + } + } + + // Reforge variables. + for _, reforgeID := range reforgeIDs { + reforge := core.GetReforgeStatByID(reforgeID) + toStat := stats.Stat(int32(reforge.ToStat)) + if !o.epStatsSet[reforge.ToStat] && toStat != stats.ExpertiseRating { + continue + } + if !core.ValidateReforging(item, reforge) { + continue + } + if toStat == stats.ExpertiseRating && hitReforgeSources[reforge.FromStat] { + continue + } + delta := reforgeRawStats(*item, reforge) + variableKey := strconv.Itoa(slotIdx) + "_" + strconv.Itoa(int(reforge.ID)) + objCoeffs := map[string]float64{} + o.applyReforgeStat(objCoeffs, reforge.FromStat, delta[stats.Stat(int32(reforge.FromStat))], preCapEPs) + o.applyReforgeStat(objCoeffs, reforge.ToStat, delta[toStat], preCapEPs) + capCoeffs := o.resolveCapCoeffs(delta) + capCoeffs[slotCoeffKey(slot)] = 1 + setVar(variableKey, capCoeffs, objCoeffs) + } + + if !o.includeGems { + continue + } + + socketColors := currentSocketColors(*item, o.isBlacksmithing, o.settings) + + socketBonusNormalization := len(socketColors) + if socketBonusNormalization == 0 { + socketBonusNormalization = 1 + } + if socketBonusNormalization > 1 && len(socketColors) > 0 && socketColors[0] == proto.GemColor_GemColorMeta { + socketBonusNormalization-- + } + + distributedSocketBonus := item.SocketBonus.Multiply(1.0 / float64(socketBonusNormalization)) + fullSocketBonus := item.SocketBonus + + // Determine whether the socket bonus should be force-matched. + forceSocketBonus := false + socketBonusAsCoeff := map[string]float64{} + eachBuffedStat(distributedSocketBonus, func(stat stats.Stat, value float64) { + o.applyReforgeStat(socketBonusAsCoeff, proto.Stat(int32(stat)), value, preCapEPs) + }) + + if len(socketBonusAsCoeff) > 0 { + if includesStatWithCap(socketBonusAsCoeff, reforgeCaps, reforgeSoftCaps) && + !includesCappedStat(socketBonusAsCoeff, reforgeCaps, reforgeSoftCaps) && + socketBonusNormalization > 1 { + forceSocketBonus = true + } + + matchedCoeffs := map[string]float64{} + unmatchedCoeffs := map[string]float64{} + for _, socketColor := range socketColors { + if !isColoredSocket(socketColor) { + break + } + matchedPool := gemsToInclude[socketColor] + if len(matchedPool) > 0 { + worstMatched := matchedPool[len(matchedPool)-1] + for key, value := range worstMatched.coeffs { + matchedCoeffs[key] += value + } + } + for key, value := range socketBonusAsCoeff { + matchedCoeffs[key] += value + } + prismaticPool := gemsToInclude[proto.GemColor_GemColorPrismatic] + if len(prismaticPool) > 0 { + worstUnmatched := prismaticPool[0] + for key, value := range worstUnmatched.coeffs { + unmatchedCoeffs[key] += value + } + } + } + + matchedScore := computeCoeffScore(matchedCoeffs, preCapEPs) + unmatchedScore := computeCoeffScore(unmatchedCoeffs, preCapEPs) + if matchedScore > unmatchedScore && + (socketBonusNormalization > 1 || + (includesStatWithCap(socketBonusAsCoeff, reforgeCaps, reforgeSoftCaps) && + !includesCappedStat(socketBonusAsCoeff, reforgeCaps, reforgeSoftCaps))) { + forceSocketBonus = true + } + } + + for socketIdx, socketColor := range socketColors { + var gemColorKeys []proto.GemColor + switch { + case socketColor == proto.GemColor_GemColorPrismatic || socketColor == proto.GemColor_GemColorCogwheel || socketColor == proto.GemColor_GemColorShaTouched: + gemColorKeys = []proto.GemColor{socketColor} + case socketColor == proto.GemColor_GemColorRed || socketColor == proto.GemColor_GemColorBlue || socketColor == proto.GemColor_GemColorYellow: + gemColorKeys = []proto.GemColor{socketColor} + if !forceSocketBonus { + gemColorKeys = append(gemColorKeys, proto.GemColor_GemColorPrismatic) + } + default: + continue + } + + constraintKey := strconv.Itoa(slotIdx) + "_" + strconv.Itoa(socketIdx) + + for _, gemColorKey := range gemColorKeys { + for _, gd := range gemsToInclude[gemColorKey] { + variableKey := constraintKey + "_" + strconv.Itoa(int(gd.gem.GetId())) + objCoeffs := make(map[string]float64, len(gd.coeffs)+2) + for key, value := range gd.coeffs { + objCoeffs[key] = value + } + rawStats := gd.rawStats + socketBonusAdded := false + + useSocketBonusLink := false + if core.GemMatchesSocket(gd.gem.GetColor(), socketColor) { + if forceSocketBonus { + eachBuffedStat(distributedSocketBonus, func(stat stats.Stat, value float64) { + o.applyReforgeStat(objCoeffs, proto.Stat(int32(stat)), value, preCapEPs) + }) + rawStats = rawStats.Add(distributedSocketBonus) + socketBonusAdded = true + } else { + useSocketBonusLink = true + } + } else if gd.isJC { + // Force socket-bonus matching for Jewelcrafting gems. + continue + } + + // A gem's stats are fixed, so its cap coefficients are resolved once in + // buildGemOptions; clone them here. Only the (rare) force-socket-bonus case mutates + // rawStats, so it re-resolves. + var capCoeffs map[string]float64 + if socketBonusAdded { + capCoeffs = o.resolveCapCoeffs(rawStats) + } else { + capCoeffs = maps.Clone(gd.capCoeffs) + } + capCoeffs[constraintKey] = 1 + if useSocketBonusLink { + capCoeffs["SocketBonusLink_"+constraintKey] = -1 + } + if gemColorKey == proto.GemColor_GemColorCogwheel { + capCoeffs[strconv.Itoa(int(gd.gem.GetId()))] = 1 + } + if gemColorKey == proto.GemColor_GemColorShaTouched { + capCoeffs["ShaTouchedGem"] = 1 + } + if gd.isJC { + capCoeffs["JewelcraftingGem"] = 1 + } + + setVar(variableKey, capCoeffs, objCoeffs) + } + } + } + + if !forceSocketBonus && socketBonusNormalization > 0 { + socketBonusKey := "SocketBonus_" + strconv.Itoa(slotIdx) + objCoeffs := map[string]float64{} + eachBuffedStat(fullSocketBonus, func(stat stats.Stat, value float64) { + o.applyReforgeStat(objCoeffs, proto.Stat(int32(stat)), value, preCapEPs) + }) + capCoeffs := o.resolveCapCoeffs(fullSocketBonus) + for socketIdx, socketColor := range socketColors { + if isColoredSocket(socketColor) { + capCoeffs["SocketBonusLink_"+strconv.Itoa(slotIdx)+"_"+strconv.Itoa(socketIdx)] = 1 + } + } + setVar(socketBonusKey, capCoeffs, objCoeffs) + } + } + + return variables +} + +// isColoredSocket returns true for Red/Blue/Yellow/Prismatic (the sockets that participate in +// socket-bonus matching). +func isColoredSocket(socketColor proto.GemColor) bool { + switch socketColor { + case proto.GemColor_GemColorRed, proto.GemColor_GemColorBlue, proto.GemColor_GemColorYellow, proto.GemColor_GemColorPrismatic: + return true + default: + return false + } +} + +// buildYalpsConstraints builds the LP constraints. +func (o *reforgeOptimizer) buildYalpsConstraints(equipment core.Equipment, baseStats core.UnitStats) *lpConstraints { + constraints := newLPConstraints() + + var allCogwheelGems []*proto.ReforgeGemOption + if o.includeGems { + allCogwheelGems = o.gemsForColorKey(proto.GemColor_GemColorCogwheel) + } + + for slotIdx := 0; slotIdx < int(core.NumItemSlots); slotIdx++ { + slot := proto.ItemSlot(slotIdx) + item := equipment.GetItemBySlot(slot) + if item.ID == 0 || o.frozenSlots[slot] { + continue + } + + constraints.set(slotCoeffKey(slot), lessEq(1)) + + if o.includeGems { + for socketIdx := range currentSocketColors(*item, o.isBlacksmithing, o.settings) { + constraints.set(strconv.Itoa(slotIdx)+"_"+strconv.Itoa(socketIdx), lessEq(1)) + } + constraints.set("ShaTouchedGem", lessEq(1)) + constraints.set("JewelcraftingGem", lessEq(2)) + for _, cogwheelGem := range allCogwheelGems { + if !cogwheelGem.GetUnique() { + continue + } + constraints.set(strconv.Itoa(int(cogwheelGem.GetId())), lessEq(1)) + } + } + } + + if o.relativeCap != nil { + o.relativeCap.updateConstraints(constraints, equipment, baseStats, o.raidBuffs()) + } + + return constraints +} + +// updateReforgeScores returns a copy of the variables (cap coefficients + a fresh 'score' +// coefficient) with each variable's 'score' set to its EP under weights. The score is computed +// from the OBJECTIVE coefficients (objByName), not the cap coefficients, so the LP objective +// stays exactly as calibrated while the constraint rows read the SDM-resolved cap coefficients. +func (o *reforgeOptimizer) updateReforgeScores(variables *lpVariables, weights core.UnitStats) *lpVariables { + updated := newLPVariables() + variables.each(func(name string, coeffs map[string]float64) { + out := make(map[string]float64, len(coeffs)+1) + for key, value := range coeffs { + out[key] = value + } + objCoeffs := variables.getObj(name) + out["score"] = computeCoeffScore(objCoeffs, weights) + updated.set(name, out) + // Carry the objective coefficients forward so the cap-refinement recursion (which + // re-invokes updateReforgeScores on this returned value) can re-score against the + // tightened weights instead of collapsing every score to zero. + updated.setObj(name, objCoeffs) + }) + return updated +} + +// computeCoeffScore sums weight*value over the stat/pseudo-stat coefficient keys. Non-stat keys +// (slot, SocketBonusLink, ShaTouchedGem, JewelcraftingGem, cogwheel IDs, *Minus*, score) +// contribute nothing. +func computeCoeffScore(coeffs map[string]float64, weights core.UnitStats) float64 { + score := 0.0 + for key, value := range coeffs { + if unitStat, ok := unitStatFromCoeffKey(key); ok { + score += getUnitStat(weights, unitStat) * value + } + } + return score +} + +func gemStatValue(gem *proto.ReforgeGemOption, stat stats.Stat) float64 { + gemStats := gem.GetStats() + if int(stat) >= len(gemStats) { + return 0 + } + return gemStats[stat] +} + +func gemHasAnyStat(gem *proto.ReforgeGemOption, candidates ...stats.Stat) bool { + for _, stat := range candidates { + if gemStatValue(gem, stat) > 0 { + return true + } + } + return false +} diff --git a/sim/core/reforge_optimizer/optimizer.go b/sim/core/reforge_optimizer/optimizer.go new file mode 100644 index 0000000000..03db3e29f4 --- /dev/null +++ b/sim/core/reforge_optimizer/optimizer.go @@ -0,0 +1,445 @@ +package reforgeoptimizer + +import ( + "context" + "errors" + "log" + "strings" + "sync/atomic" + "time" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/simsignals" + "github.com/wowsims/mop/sim/core/stats" + googleProto "google.golang.org/protobuf/proto" +) + +var reforgeOptimizeRequestID atomic.Uint64 + +// reforgeOptimizer holds the player/settings-derived state that the model-building methods read. +// Built once per request by newReforgeOptimizer. +type reforgeOptimizer struct { + request *proto.ReforgeOptimizeRequest + settings *proto.ReforgeSettings + player *proto.Player + signals simsignals.Signals + + includeGems bool + isBlacksmithing bool + isGuardianDruid bool + isHybridCaster bool + isTrueCaster bool + isTankSpec bool + hasJC bool + + ampModifier float64 + // bearFormMult scales a Guardian Druid's crit and haste (1.0 otherwise). Kept as a field + // because epDivisor (EP internalization) reads it alongside ampModifier. + bearFormMult float64 + + // statRules re-apply, per reforge/gem stat, the character-specific self-multipliers and stat + // expansions that are NOT baked into the calibrated EP — the amplification trinket, the + // Human-racial Spirit multiplier, and Guardian Bear Form (crit mult + Agility -> AP/crit%). + // See reforgeStatRule; assembled in newReforgeOptimizer. + statRules []reforgeStatRule + + epStatsSet map[proto.Stat]bool + frozenSlots map[proto.ItemSlot]bool + undershootCaps core.UnitStats + relativeCap *relativeStatCap + gemOptions []*proto.ReforgeGemOption + + // statDeps is the player's build-phase StatDependencyManager (ComputeStatDependencies). It + // resolves every stat conversion the sim models and is used by resolveStatDelta to compute + // each LP variable's cap-space coefficients (the FULL dependency graph), separately from the + // EP-calibrated objective coefficients produced by applyReforgeStat. + statDeps *stats.StatDependencyManager + + baseRaidProto *proto.Raid + baseStrippedGear *proto.EquipmentSpec + originalEquipment *core.Equipment + baseStats core.UnitStats +} + +// reforgeStatRule is a configurable per-optimize modifier applied in applyReforgeStat. A +// reforge/gem amount of any stat in `stats` is multiplied by `mult`. Rules are applied in list +// order, and a stat may match several (e.g. Spirit gets both the racial and the amp rule) — +// order is load-bearing because reassociating the float multiplies would change the LP text. +// If `expandTo` is non-empty, the multiplied amount is distributed to those coefficients and +// processing stops (the stat's own coefficient is not set) — this models Guardian Agility -> +// AttackPower + PhysicalCrit%. +type reforgeStatRule struct { + stats []proto.Stat + mult float64 + expandTo []reforgeExpandTerm +} + +// reforgeExpandTerm adds amount*factor to one objective coefficient (stat or pseudo-stat). +type reforgeExpandTerm struct { + target stats.UnitStat + factor float64 +} + +func (o *reforgeOptimizer) raidBuffs() *proto.RaidBuffs { + return o.baseRaidProto.GetBuffs() +} + +func Optimize(request *proto.ReforgeOptimizeRequest) *proto.ReforgeOptimizeResult { + return OptimizeAsync(request, simsignals.CreateSignals()) +} + +func OptimizeAsync(request *proto.ReforgeOptimizeRequest, signals simsignals.Signals) *proto.ReforgeOptimizeResult { + requestID := reforgeOptimizeRequestID.Add(1) + startedAt := time.Now() + isBulk := request.GetMode() == proto.ReforgeOptimizeMode_ReforgeOptimizeModeBulk + debug := request.GetDebug() + logAbort := !isBulk || debug + + if request.Raid == nil || len(request.Raid.Parties) == 0 || len(request.Raid.Parties[0].Players) == 0 { + return optimizeError("Reforge optimizer requires a raid with player 0.") + } + if request.Raid.Parties[0].Players[0].Equipment == nil { + return optimizeError("Reforge optimizer requires baseline gear.") + } + if signals.Abort.IsTriggered() { + return optimizeAborted() + } + + optimizer, err := newReforgeOptimizer(request, signals) + if err != nil { + if errors.Is(err, context.Canceled) { + if logAbort { + log.Printf("[reforgeOptimize:%d] aborted initializing after %s", requestID, time.Since(startedAt)) + } + return optimizeAborted() + } + return optimizeError(err.Error()) + } + + optimizedGear, score, err := optimizer.optimizeReforges() + if err != nil { + if errors.Is(err, context.Canceled) { + if logAbort { + log.Printf("[reforgeOptimize:%d] aborted solving after %s", requestID, time.Since(startedAt)) + } + return optimizeAborted() + } + return optimizeError(err.Error()) + } + if signals.Abort.IsTriggered() { + return optimizeAborted() + } + + // Skip the final stats computation in bulk mode — callers only use OptimizedGear. + var optimizedPlayerStats *proto.PlayerStats + if !isBulk || debug { + optimizedRaid := googleProto.Clone(request.Raid).(*proto.Raid) + optimizedRaid.Parties[0].Players[0].Equipment = optimizedGear + optimizedResult := computeReforgeStats(&proto.ComputeStatsRequest{Raid: optimizedRaid}) + if optimizedResult.ErrorResult != "" { + return optimizeError(optimizedResult.ErrorResult) + } + optimizedPlayerStats = optimizedResult.RaidStats.Parties[0].Players[0] + } + if !isBulk { + log.Printf("[Reforge Optimizer] completed requestID=%d total=%s score=%.3f", requestID, time.Since(startedAt), score) + } + + return &proto.ReforgeOptimizeResult{ + OptimizedGear: optimizedGear, + OptimizedPlayerStats: optimizedPlayerStats, + Score: score, + PassesDone: 1, + } +} + +// newReforgeOptimizer builds the optimizer context from the request: strips reforges/gems for +// the baseline, computes base stats, and derives the player/settings flags (including whether a +// Guardian Druid has Heart of the Wild). +func newReforgeOptimizer(request *proto.ReforgeOptimizeRequest, signals simsignals.Signals) (*reforgeOptimizer, error) { + settings := request.GetSettings() + if settings == nil { + settings = &proto.ReforgeSettings{} + } else { + settings = googleProto.Clone(settings).(*proto.ReforgeSettings) + } + + player := request.Raid.Parties[0].Players[0] + + originalGear := cloneEquipmentSpec(player.Equipment) + baseStrippedGear := cloneEquipmentSpec(originalGear) + clearReforges(baseStrippedGear, settings) + if settings.GetIncludeGems() { + clearGems(baseStrippedGear, settings) + } + + baseRaid := googleProto.Clone(request.Raid).(*proto.Raid) + baseRaid.Parties[0].Players[0].Equipment = baseStrippedGear + + // One environment build yields both FinalStats and the finalized StatDependencyManager + // (ComputeStatsAndDeps uses the same skip-rotation NewEnvironment as computeReforgeStats), + // instead of building the character twice for the same base raid. + baseResult, baseSDM := core.ComputeStatsAndDeps(&proto.ComputeStatsRequest{Raid: baseRaid}) + if baseResult.ErrorResult != "" { + return nil, errors.New(baseResult.ErrorResult) + } + if signals.Abort.IsTriggered() { + return nil, context.Canceled + } + + // Base stats = FinalStats plus the 8 free base-mastery points every character has. + baseStats := protoToCoreUnitStats(baseResult.RaidStats.Parties[0].Players[0].FinalStats) + baseStats.Stats[stats.MasteryRating] += 8 * core.MasteryRatingPerMasteryPoint + + originalEquipment := equipmentFromProto(originalGear) + isGuardian := playerIsGuardianDruid(player) + + // Resolve the stat conversions the reforge model needs (Human Spirit, Bear Form crit/haste, + // Guardian Agility) from the player's real stat-dependency graph instead of hardcoded + // constants. resolveStatMultiplier returns the self-multiplier the dependency graph applies to + // one unit of a stat (e.g. Bear Form's CritRating×1.5, Mark-of-the-Wild×Heart-of-the-Wild + // Agility×1.113). baseSDM (from ComputeStatsAndDeps above) already has the build-phase auras + // re-activated, so these multiplicative deps are live in the manager. + resolveStatMultiplier := func(s stats.Stat) float64 { + in := stats.Stats{} + in[s] = 1 + return baseSDM.ApplyStatDependencies(in)[s] + } + ampModifier := amplificationStatModifier(baseStrippedGear) + // The Spirit self-multiplier (the Human racial is the only source in practice), isolated from the + // Amplification Trinket multiplier (which the graph also folds into Spirit but the model re-applies + // separately). 1.0 when there is no such racial. + spiritSelfMult := resolveStatMultiplier(stats.Spirit) / ampModifier + bearFormMult := 1.0 + guardianAgilityMult := 1.0 + if isGuardian { + bearFormMult = resolveStatMultiplier(stats.CritRating) + guardianAgilityMult = resolveStatMultiplier(stats.Agility) + } + + // Self-mult / expansion rules for applyReforgeStat. Order matches the historical apply order + // (racial Spirit, then amp trinket, then Bear Form crit, then the Guardian Agility expansion) + // so the LP coefficients stay byte-identical. + statRules := []reforgeStatRule{ + {stats: []proto.Stat{proto.Stat_StatSpirit}, mult: spiritSelfMult}, + {stats: []proto.Stat{proto.Stat_StatHasteRating, proto.Stat_StatMasteryRating, proto.Stat_StatSpirit}, mult: ampModifier}, + } + if isGuardian { + statRules = append(statRules, + reforgeStatRule{stats: []proto.Stat{proto.Stat_StatCritRating}, mult: bearFormMult}, + reforgeStatRule{stats: []proto.Stat{proto.Stat_StatAgility}, mult: guardianAgilityMult, expandTo: []reforgeExpandTerm{ + {target: stats.UnitStatFromStat(stats.AttackPower), factor: 2}, + {target: stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatPhysicalCritPercent), factor: core.CritPerAgiMaxLevel[proto.Class_ClassDruid]}, + }}, + ) + } + + optimizer := &reforgeOptimizer{ + request: request, + settings: settings, + player: player, + signals: signals, + includeGems: settings.GetIncludeGems(), + isBlacksmithing: playerHasProfession(player, proto.Profession_Blacksmithing), + isGuardianDruid: isGuardian, + isHybridCaster: playerIsHybridCaster(player), + isTrueCaster: playerIsTrueCaster(player), + isTankSpec: playerIsTankSpec(player), + hasJC: playerHasProfession(player, proto.Profession_Jewelcrafting), + ampModifier: ampModifier, + bearFormMult: bearFormMult, + statRules: statRules, + epStatsSet: buildEPStatsSet(request.GetSettings().GetEpStats(), request.GetPreCapEpWeights()), + frozenSlots: frozenItemSlots(settings), + undershootCaps: protoToCoreUnitStats(request.GetUndershootCaps()), + gemOptions: request.GetGemOptions(), + statDeps: baseSDM, + baseRaidProto: baseRaid, + baseStrippedGear: baseStrippedGear, + originalEquipment: originalEquipment, + baseStats: baseStats, + } + + // Relative stat cap (forced RoRo proc), if configured and RoRo is equipped. + if uiStat := settings.GetRelativeStatCapStat(); uiStat != nil { + if unitStat, ok := unitStatFromUIStat(uiStat); ok && unitStat.IsStat() { + forcedStat := proto.Stat(unitStat.StatIdx()) + if isRelevantRelativeStat(forcedStat) && relativeStatCapHasRoRo(*originalEquipment) { + optimizer.relativeCap = newRelativeStatCap(forcedStat, playerIsFeralDruid(player)) + } + } + } + + return optimizer, nil +} + +// rootRatingStat maps a unit stat to the rating stat whose Amplification/Bear-Form multiplier +// governs it: a percent pseudo-stat resolves to its parent rating (SpellHaste% -> HasteRating, +// PhysicalCrit% -> CritRating, ...); a rating stat maps to itself; anything else returns an +// out-of-range sentinel that matches no case in epDivisor. +func rootRatingStat(unitStat stats.UnitStat) stats.Stat { + if unitStat.IsStat() { + return stats.Stat(unitStat.StatIdx()) + } + switch proto.PseudoStat(unitStat.PseudoStatIdx()) { + case proto.PseudoStat_PseudoStatSpellHastePercent, + proto.PseudoStat_PseudoStatMeleeHastePercent, + proto.PseudoStat_PseudoStatRangedHastePercent: + return stats.HasteRating + case proto.PseudoStat_PseudoStatPhysicalCritPercent, + proto.PseudoStat_PseudoStatSpellCritPercent: + return stats.CritRating + } + return stats.Stat(stats.ProtoStatsLen) // out-of-range sentinel: matches no case in epDivisor +} + +// epDivisor returns the self-multiplier applyReforgeStat re-applies to a stat's reforge coefficient +// and that must therefore be divided back out of the EP weight so the objective stays calibrated: +// the Amplification-trinket modifier on Haste/Mastery (mapped from their percent pseudo-stats too), +// and a Guardian Druid's Bear Form multiplier on crit. Every other stat returns 1. This is the ONE +// place the "which multipliers does the backend own" question is answered; it is deliberately NOT +// the full StatDependencyManager self-multiplier, which would wrongly fold in spec-inherent effects +// (e.g. Fury's 1.5x haste, already baked into the calibrated EP weights). +func (o *reforgeOptimizer) epDivisor(unitStat stats.UnitStat) float64 { + switch rootRatingStat(unitStat) { + case stats.HasteRating, stats.MasteryRating: + return o.ampModifier + case stats.CritRating: + if o.isGuardianDruid { + return o.bearFormMult + } + } + return 1 +} + +// internalizeEPOffset divides an EP weight by the multiplier applyReforgeStat re-applies to the +// stat's coefficient (Amplification Haste/Mastery, a Guardian's Bear Form crit). The ×mult +// and ÷mult cancel in the objective (coeff*mult * ep/mult = coeff*ep) while the caps still see the +// amplified contribution, so EP weights can be supplied un-offset. epDivisor is 1 for every other +// stat, making this a no-op. Applied to both pre-cap weights and soft-cap post-cap EPs; without it +// the ×mult is uncancelled (e.g. a Guardian's 79% crit soft cap would never halt crit stacking). +// +// Spirit is deliberately absent: applyReforgeStat amplifies it, but its EP weights are supplied +// already amplified, so cancelling here would double-correct. +func (o *reforgeOptimizer) internalizeEPOffset(unitStat stats.UnitStat, value float64) float64 { + return value / o.epDivisor(unitStat) +} + +func (o *reforgeOptimizer) internalizeEPOffsets(weights core.UnitStats) core.UnitStats { + eachUnitStat(weights, func(unitStat stats.UnitStat, value float64) { + if o.epDivisor(unitStat) != 1 { + weights = setUnitStat(weights, unitStat, o.internalizeEPOffset(unitStat, value)) + } + }) + return weights +} + +func (o *reforgeOptimizer) internalizeSoftCapEPOffsets(softCaps []*reforgeSoftCap) { + for _, softCap := range softCaps { + for i, ep := range softCap.postCapEPs { + softCap.postCapEPs[i] = o.internalizeEPOffset(softCap.unitStat, ep) + } + } +} + +// optimizeReforges runs the full optimization: it derives the effective reforge-only stat caps +// and soft caps, validates the EP weights against them, builds the LP variables and constraints, +// solves the model, and applies the solution. Returns the optimized gear and the LP objective +// score. The pre-cap EP weights, processed stat caps, and soft-cap configs arrive ready-to-use +// on the request. +func (o *reforgeOptimizer) optimizeReforges() (*proto.EquipmentSpec, float64, error) { + // Effective stat caps for just the reforge contribution. Caps live in resolved sheet-stat + // space (see computeGapToCap): a Guardian's Bear Form melee-haste scaling is already folded + // into each variable's haste cap coefficient by resolveStatDelta (via the melee speed + // multiplier read from baseStats), so no separate Bear-Form cap adjustment is applied here. + reforgeCaps := computeStatCapsDelta(o.baseStats, protoToCoreUnitStats(o.settings.GetStatCaps())) + + var softCapConfigs []*proto.StatCapConfig + if o.settings.GetUseSoftCapBreakpoints() { + softCapConfigs = o.request.GetSoftCaps() + } + reforgeSoftCaps := computeReforgeSoftCaps(o.baseStats, softCapConfigs) + o.internalizeSoftCapEPOffsets(reforgeSoftCaps) + + rawWeights := o.internalizeEPOffsets(protoToCoreUnitStats(o.request.GetPreCapEpWeights())) + validatedWeights := checkWeights(rawWeights, reforgeCaps, reforgeSoftCaps) + if o.relativeCap != nil { + validatedWeights = o.relativeCap.updateWeights(validatedWeights) + } + + baseEquipment := equipmentFromProto(o.baseStrippedGear) + variables := o.buildYalpsVariables(*baseEquipment, validatedWeights, reforgeCaps, reforgeSoftCaps) + constraints := o.buildYalpsConstraints(*baseEquipment, o.baseStats) + + // Add all-or-nothing SocketBonusLink constraints for any link key that isn't already a + // constraint. + variables.each(func(_ string, coeffs map[string]float64) { + for key := range coeffs { + if strings.HasPrefix(key, "SocketBonusLink_") && !constraints.has(key) { + constraints.set(key, lessEq(0)) + } + } + }) + + timeoutSeconds := 30.0 + mipRelGap := 0.0 + if o.relativeCap != nil { + timeoutSeconds = 120.0 + // The relative-stat-cap MIP is slow to prove optimal; a looser gap accepts a solution + // within a relative gap of the bound for a large speedup. Configurable per request + // (ReforgeSettings.relative_stat_cap_mip_gap); 0 leaves the HiGHS default (~1e-4, "Precise"). + mipRelGap = o.settings.GetRelativeStatCapMipGap() + } + if o.request.GetMode() == proto.ReforgeOptimizeMode_ReforgeOptimizeModeBulk { + timeoutSeconds /= 4 + } + + selectedVars, score, err := o.solveModel(validatedWeights, reforgeCaps, reforgeSoftCaps, variables, constraints, timeoutSeconds, mipRelGap) + if err != nil { + return nil, 0, err + } + + return o.applyLPSolution(selectedVars), score, nil +} + +// Valid reforge destinations and gem stats. The non-zero-weight fallback is an approximation: +// it also drops the expertise reforge paired with a zero-weight hit. +func buildEPStatsSet(epStats []proto.Stat, weights *proto.UnitStats) map[proto.Stat]bool { + set := map[proto.Stat]bool{} + if len(epStats) > 0 { + for _, stat := range epStats { + set[stat] = true + } + return set + } + if weights == nil { + return set + } + for statIdx, value := range weights.GetStats() { + if value != 0 { + set[proto.Stat(statIdx)] = true + } + } + return set +} + +func computeReforgeStats(request *proto.ComputeStatsRequest) *proto.ComputeStatsResult { + request.SkipRotation = true + return core.ComputeStats(request) +} + +func optimizeError(message string) *proto.ReforgeOptimizeResult { + return &proto.ReforgeOptimizeResult{ + Error: &proto.ErrorOutcome{Message: message}, + } +} + +func optimizeAborted() *proto.ReforgeOptimizeResult { + return &proto.ReforgeOptimizeResult{ + Error: &proto.ErrorOutcome{ + Type: proto.ErrorOutcomeType_ErrorOutcomeAborted, + Message: "Reforge optimization aborted.", + }, + } +} diff --git a/sim/core/reforge_optimizer/optimizer_test.go b/sim/core/reforge_optimizer/optimizer_test.go new file mode 100644 index 0000000000..ec43d3d689 --- /dev/null +++ b/sim/core/reforge_optimizer/optimizer_test.go @@ -0,0 +1,178 @@ +//go:build with_db + +package reforgeoptimizer + +import ( + "fmt" + "os" + "path/filepath" + "sort" + "strings" + "sync" + "testing" + + "github.com/wowsims/mop/assets/database" + "github.com/wowsims/mop/sim" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" + "google.golang.org/protobuf/encoding/protojson" + protopkg "google.golang.org/protobuf/proto" +) + +func TestReforgerOptimizer(t *testing.T) { + sim.RegisterAll() + + // Runs every committed fixture in test-fixtures/. Enumerating by glob keeps this suite + // self-contained: it does not depend on the fixture_*_test.go generators (not committed). If no + // fixtures are present, skip rather than fail so the package's other tests (gear, highswasm) + // still run. + paths, err := filepath.Glob(filepath.Join(fixturesDir, "*.test.json")) + if err != nil { + t.Fatalf("globbing fixtures: %v", err) + } + if len(paths) == 0 { + t.Skip("no fixtures in " + fixturesDir) + } + sort.Strings(paths) + + for _, path := range paths { + fileName := filepath.Base(path) + t.Run(strings.TrimSuffix(fileName, ".test.json"), func(t *testing.T) { + request := loadPreset(t, fileName) + expectedGear := request.GetRaid().GetParties()[0].GetPlayers()[0].GetEquipment() + if expectedGear == nil { + t.Fatal("preset has no player equipment to compare against") + } + + result := Optimize(request) + if err := result.GetError(); err != nil { + t.Fatalf("Optimize returned error: %s", err.GetMessage()) + } + optimizedGear := result.GetOptimizedGear() + if optimizedGear == nil { + t.Fatal("Optimize returned no optimized gear") + } + + expectedRaid := protopkg.Clone(request.Raid).(*proto.Raid) + expectedRaid.Parties[0].Players[0].Equipment = expectedGear + expectedResult := computeReforgeStats(&proto.ComputeStatsRequest{Raid: expectedRaid}) + if expectedResult.ErrorResult != "" { + t.Fatalf("ComputeStats on expected gear failed: %s", expectedResult.ErrorResult) + } + expStats := protoToCoreUnitStats(expectedResult.RaidStats.Parties[0].Players[0].FinalStats) + optStats := protoToCoreUnitStats(result.GetOptimizedPlayerStats().GetFinalStats()) + diff := subtractUnitStats(optStats, expStats) + statsDiffer := !isEmptyUnitStats(diff) + if statsDiffer { + for i, expItem := range expectedGear.GetItems() { + var optItem *proto.ItemSpec + if i < len(optimizedGear.GetItems()) { + optItem = optimizedGear.GetItems()[i] + } + if !protopkg.Equal(expItem, optItem) { + expJSON, _ := protojson.Marshal(expItem) + optJSON, _ := protojson.Marshal(optItem) + t.Logf("slot %d: expected %s", i, expJSON) + t.Logf("slot %d: got %s", i, optJSON) + } + } + for statIdx, d := range diff.Stats { + if d != 0 { + t.Logf("stat %-24s expected=%8.2f got=%8.2f diff=%+.2f", stats.Stat(statIdx).StatName(), expStats.Stats[statIdx], optStats.Stats[statIdx], d) + } + } + for psIdx, d := range diff.PseudoStats { + if d != 0 { + name := proto.PseudoStat_name[int32(psIdx)] + if name == "" { + name = fmt.Sprintf("PseudoStat(%d)", psIdx) + } + t.Logf("stat %-24s expected=%8.4f got=%8.4f diff=%+.4f", name, expStats.PseudoStats[psIdx], optStats.PseudoStats[psIdx], d) + } + } + t.Fatal("optimized stats do not match expected stats") + } + }) + } +} + +var ( + reforgeGemOptionsOnce sync.Once + reforgeGemOptions []*proto.ReforgeGemOption +) + +// loadReforgeGemOptionsFromDB builds the reforge gem pool from the DB: all gems eligible for the +// 6 reforge socket colors, quality >= Rare, excluding "Perfect" gems. +func loadReforgeGemOptionsFromDB() []*proto.ReforgeGemOption { + reforgeGemOptionsOnce.Do(func() { + db := database.Load() + seen := make(map[int32]bool) + for _, socketColor := range []proto.GemColor{ + proto.GemColor_GemColorPrismatic, + proto.GemColor_GemColorShaTouched, + proto.GemColor_GemColorCogwheel, + proto.GemColor_GemColorRed, + proto.GemColor_GemColorBlue, + proto.GemColor_GemColorYellow, + } { + for _, gem := range db.Gems { + if seen[gem.Id] || gem.Quality < proto.ItemQuality_ItemQualityRare || strings.Contains(gem.Name, "Perfect") { + continue + } + if !uiGemEligibleForSocket(gem.Color, socketColor) { + continue + } + seen[gem.Id] = true + reforgeGemOptions = append(reforgeGemOptions, &proto.ReforgeGemOption{ + Id: gem.Id, + Name: gem.Name, + Color: gem.Color, + Stats: gem.Stats, + Quality: gem.Quality, + Unique: gem.Unique, + RequiredProfession: gem.RequiredProfession, + }) + } + } + }) + return reforgeGemOptions +} + +// uiGemEligibleForSocket reports whether a gem color may be socketed into the given socket color. +func uiGemEligibleForSocket(gemColor, socketColor proto.GemColor) bool { + switch socketColor { + case proto.GemColor_GemColorMeta: + return gemColor == proto.GemColor_GemColorMeta + case proto.GemColor_GemColorCogwheel: + return gemColor == proto.GemColor_GemColorCogwheel + case proto.GemColor_GemColorShaTouched: + return gemColor == proto.GemColor_GemColorShaTouched + default: + return gemColor != proto.GemColor_GemColorMeta && + gemColor != proto.GemColor_GemColorCogwheel && + gemColor != proto.GemColor_GemColorShaTouched + } +} + +// fixturesDir holds the committed coverage fixtures (.test.json) that TestReforgerOptimizer +// runs. It is defined here (not in the uncommitted fixture_*_test.go generators) so this suite +// compiles and runs standalone. +const fixturesDir = "test-fixtures" + +func loadPreset(t testing.TB, fileName string) *proto.ReforgeOptimizeRequest { + t.Helper() + + data, err := os.ReadFile(filepath.Join(fixturesDir, fileName)) + if err != nil { + t.Fatalf("failed reading preset %s: %v", fileName, err) + } + + request := &proto.ReforgeOptimizeRequest{} + if err := (protojson.UnmarshalOptions{DiscardUnknown: true}).Unmarshal(data, request); err != nil { + t.Fatalf("failed unmarshalling fixture %s: %v", fileName, err) + } + if len(request.GemOptions) == 0 && request.GetSettings().GetIncludeGems() { + request.GemOptions = loadReforgeGemOptionsFromDB() + } + return request +} diff --git a/sim/core/reforge_optimizer/reforge_stats.go b/sim/core/reforge_optimizer/reforge_stats.go new file mode 100644 index 0000000000..de5821f88a --- /dev/null +++ b/sim/core/reforge_optimizer/reforge_stats.go @@ -0,0 +1,327 @@ +package reforgeoptimizer + +import ( + "slices" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" +) + +// This file implements the stat/UnitStat math the reforge optimizer relies on. Stat vectors use +// core.UnitStats (a Stats array plus a PseudoStats slice); the LP coefficient maps in model.go +// are string-keyed by the proto enum names so a coefficient key can be mapped back to its stat. + +// --------------------------------------------------------------------------- +// core.UnitStats helpers +// --------------------------------------------------------------------------- + +func protoToCoreUnitStats(protoStats *proto.UnitStats) core.UnitStats { + if protoStats == nil { + return core.NewUnitStats() + } + return core.UnitStats{ + Stats: stats.FromUnitStatsProto(protoStats), + PseudoStats: slices.Clone(protoStats.PseudoStats), + } +} + +func getUnitStat(unitStats core.UnitStats, unitStat stats.UnitStat) float64 { + if unitStat.IsStat() { + return unitStats.Stats[unitStat.StatIdx()] + } + pseudoStatIdx := unitStat.PseudoStatIdx() + if pseudoStatIdx >= len(unitStats.PseudoStats) { + return 0 + } + return unitStats.PseudoStats[pseudoStatIdx] +} + +// setUnitStat returns a copy of unitStats with unitStat set to value. Note: the Stats array is +// a value type (copied), but PseudoStats is a slice; we reallocate it so callers never alias. +func setUnitStat(unitStats core.UnitStats, unitStat stats.UnitStat, value float64) core.UnitStats { + result := unitStats + result.PseudoStats = slices.Clone(unitStats.PseudoStats) + if unitStat.IsStat() { + result.Stats[unitStat.StatIdx()] = value + return result + } + pseudoStatIdx := unitStat.PseudoStatIdx() + for len(result.PseudoStats) <= pseudoStatIdx { + result.PseudoStats = append(result.PseudoStats, 0) + } + result.PseudoStats[pseudoStatIdx] = value + return result +} + +func subtractUnitStats(a core.UnitStats, b core.UnitStats) core.UnitStats { + result := a + result.Stats = a.Stats.Subtract(b.Stats) + maxLen := max(len(a.PseudoStats), len(b.PseudoStats)) + result.PseudoStats = make([]float64, maxLen) + copy(result.PseudoStats, a.PseudoStats) + for idx, value := range b.PseudoStats { + result.PseudoStats[idx] -= value + } + return result +} + +func isEmptyUnitStats(unitStats core.UnitStats) bool { + for statIdx := 0; statIdx < int(stats.ProtoStatsLen); statIdx++ { + if unitStats.Stats[statIdx] != 0 { + return false + } + } + for _, value := range unitStats.PseudoStats { + if value != 0 { + return false + } + } + return true +} + +// hasteRatingSpeedMultiplierPairs maps each haste% pseudo-stat to the speed multiplier +// pseudo-stat stored by GetPseudoStatsProto (MeleeSpeedMult * AttackSpeedMult, etc.). +var hasteRatingSpeedMultiplierPairs = [3]struct { + hastePS proto.PseudoStat + speedMultPS proto.PseudoStat +}{ + {proto.PseudoStat_PseudoStatMeleeHastePercent, proto.PseudoStat_PseudoStatMeleeSpeedMultiplier}, + {proto.PseudoStat_PseudoStatRangedHastePercent, proto.PseudoStat_PseudoStatRangedSpeedMultiplier}, + {proto.PseudoStat_PseudoStatSpellHastePercent, proto.PseudoStat_PseudoStatCastSpeedMultiplier}, +} + +// rawUnitStatsFromStats converts stats.Stats to UnitStats without expanding ratings into +// percent pseudo-stats. Used for deltas that feed resolveStatDelta (the cap-constraint +// space), not the EP objective. +func rawUnitStatsFromStats(statValues stats.Stats) core.UnitStats { + unitStats := core.NewUnitStats() + for statIdx := 0; statIdx < int(stats.ProtoStatsLen); statIdx++ { + if statValues[statIdx] != 0 { + unitStats.Stats[statIdx] = statValues[statIdx] + } + } + return unitStats +} + +// resolveStatDelta applies the character's full stat dependency graph (SDM) to delta, +// resolving every conversion the sim models — Agility/Intellect -> Crit%, Strength -> AP/Parry, +// rating -> % (Crit/Hit/Haste), Bear Form's crit multiplier, the Amplification Trinket, etc. — +// so that cap constraints see EVERY contribution toward a capped stat (e.g. a caster's +// Intellect toward its Crit% softcap). It mirrors the dual-stored resolved Stats +// (PhysicalCritPercent, SpellCritPercent, PhysicalHitPercent, SpellHitPercent, BlockPercent) +// back into their PseudoStats so LP constraint evaluation, which reads PseudoStat indices, +// sees the resolved values. +// +// Haste% is multiplicative with a speed multiplier that the dependency manager does not model, +// so it is read from baseStats.PseudoStats (populated by GetPseudoStatsProto): +// +// Δhaste% = speedMult * ΔHasteRating / HasteRatingPerHastePercent +func resolveStatDelta(sdm *stats.StatDependencyManager, baseStats core.UnitStats, delta core.UnitStats) core.UnitStats { + if isEmptyUnitStats(delta) { + return delta + } + delta.Stats = sdm.ApplyStatDependencies(delta.Stats) + + // Mirror dual-stored stats from Stats back to PseudoStats so cap constraints that evaluate + // via PseudoStat indices see the resolved values. + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatPhysicalCritPercent), delta.Stats[stats.PhysicalCritPercent]) + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatSpellCritPercent), delta.Stats[stats.SpellCritPercent]) + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatPhysicalHitPercent), delta.Stats[stats.PhysicalHitPercent]) + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatSpellHitPercent), delta.Stats[stats.SpellHitPercent]) + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(proto.PseudoStat_PseudoStatBlockPercent), delta.Stats[stats.BlockPercent]) + + // Haste% pseudo-stats: Δhaste% = speedMult * ΔHasteRating / HasteRatingPerHastePercent, with + // speedMult read from baseStats.PseudoStats. + if hasteRatingDelta := delta.Stats[stats.HasteRating]; hasteRatingDelta != 0 { + for _, p := range hasteRatingSpeedMultiplierPairs { + speedMult := getUnitStat(baseStats, stats.UnitStatFromPseudoStat(p.speedMultPS)) + delta = setUnitStat(delta, stats.UnitStatFromPseudoStat(p.hastePS), speedMult*hasteRatingDelta/core.HasteRatingPerHastePercent) + } + } + + return delta +} + +// eachUnitStat iterates every stat first, then every pseudo-stat, in that order. +func eachUnitStat(vec core.UnitStats, fn func(unitStat stats.UnitStat, value float64)) { + for statIdx := 0; statIdx < int(stats.ProtoStatsLen); statIdx++ { + fn(stats.UnitStatFromStat(stats.Stat(statIdx)), vec.Stats[statIdx]) + } + for pseudoStatIdx := 0; pseudoStatIdx < int(stats.PseudoStatsLen); pseudoStatIdx++ { + value := 0.0 + if pseudoStatIdx < len(vec.PseudoStats) { + value = vec.PseudoStats[pseudoStatIdx] + } + fn(stats.UnitStatFromPseudoStat(proto.PseudoStat(pseudoStatIdx)), value) + } +} + +// eachBuffedStat iterates the base Stats array (NOT pseudo-stats) and yields only strictly +// positive entries, in stat-index order. +func eachBuffedStat(s stats.Stats, fn func(stat stats.Stat, value float64)) { + for statIdx := 0; statIdx < int(stats.ProtoStatsLen); statIdx++ { + if s[statIdx] > 0 { + fn(stats.Stat(statIdx), s[statIdx]) + } + } +} + +// --------------------------------------------------------------------------- +// UnitStat children + rating <-> percent conversions +// --------------------------------------------------------------------------- + +// childPseudoStats maps a rating stat to its percent pseudo-stat children, e.g. +// HitRating -> {PhysicalHit%, SpellHit%}. +func childPseudoStats(parent stats.Stat) []proto.PseudoStat { + switch parent { + case stats.HitRating: + return []proto.PseudoStat{proto.PseudoStat_PseudoStatPhysicalHitPercent, proto.PseudoStat_PseudoStatSpellHitPercent} + case stats.CritRating: + return []proto.PseudoStat{proto.PseudoStat_PseudoStatPhysicalCritPercent, proto.PseudoStat_PseudoStatSpellCritPercent} + case stats.HasteRating: + return []proto.PseudoStat{proto.PseudoStat_PseudoStatMeleeHastePercent, proto.PseudoStat_PseudoStatRangedHastePercent, proto.PseudoStat_PseudoStatSpellHastePercent} + default: + return nil + } +} + +// ratingPerPseudoStatPercent is the amount of rating equal to 1% of the given pseudo-stat, i.e. +// the divisor used to convert rating into percent. +func ratingPerPseudoStatPercent(pseudoStat proto.PseudoStat) float64 { + switch pseudoStat { + case proto.PseudoStat_PseudoStatPhysicalHitPercent: + return core.PhysicalHitRatingPerHitPercent + case proto.PseudoStat_PseudoStatSpellHitPercent: + return core.SpellHitRatingPerHitPercent + case proto.PseudoStat_PseudoStatPhysicalCritPercent, proto.PseudoStat_PseudoStatSpellCritPercent: + return core.CritRatingPerCritPercent + case proto.PseudoStat_PseudoStatMeleeHastePercent, proto.PseudoStat_PseudoStatRangedHastePercent, proto.PseudoStat_PseudoStatSpellHastePercent: + return core.HasteRatingPerHastePercent + default: + return 1 + } +} + +// convertRatingToPercent converts a rating value into the pseudo-stat child's percent. +func convertRatingToPercent(pseudoStat proto.PseudoStat, ratingValue float64) float64 { + return ratingValue / ratingPerPseudoStatPercent(pseudoStat) +} + +// --------------------------------------------------------------------------- +// Gap-to-cap math +// --------------------------------------------------------------------------- + +// computeGapToCap returns the delta needed to reach cap, expressed in the same resolved +// sheet-stat space that resolveStatDelta produces the variable cap coefficients in. For haste% +// that means it is NOT divided by the speed multiplier: resolveStatDelta already scales a +// variable's haste-rating contribution by the speed multiplier, so both sides of the cap +// comparison live in resolved percent space. Returns 1e-12 (not 0) when already at cap so the +// resulting constraint stays active. +func computeGapToCap(baseStats core.UnitStats, unitStat stats.UnitStat, cap float64) float64 { + statDelta := cap - getUnitStat(baseStats, unitStat) + if statDelta == 0 { + return 1e-12 + } + return statDelta +} + +// computeStatCapsDelta returns the per-unit-stat gap-to-cap, but only for caps whose configured +// value is > 0 (a cap of 0 maps to 0 and means "no cap"). +func computeStatCapsDelta(baseStats core.UnitStats, statCaps core.UnitStats) core.UnitStats { + result := core.NewUnitStats() + for statIdx := 0; statIdx < int(stats.ProtoStatsLen); statIdx++ { + if cap := statCaps.Stats[statIdx]; cap > 0 { + unitStat := stats.UnitStatFromStat(stats.Stat(statIdx)) + result = setUnitStat(result, unitStat, computeGapToCap(baseStats, unitStat, cap)) + } + } + for pseudoStatIdx := 0; pseudoStatIdx < int(stats.PseudoStatsLen); pseudoStatIdx++ { + cap := 0.0 + if pseudoStatIdx < len(statCaps.PseudoStats) { + cap = statCaps.PseudoStats[pseudoStatIdx] + } + if cap > 0 { + unitStat := stats.UnitStatFromPseudoStat(proto.PseudoStat(pseudoStatIdx)) + result = setUnitStat(result, unitStat, computeGapToCap(baseStats, unitStat, cap)) + } + } + return result +} + +// --------------------------------------------------------------------------- +// proto helpers +// --------------------------------------------------------------------------- + +// unitStatFromUIStat converts the proto.UIStat oneof (Stat or PseudoStat) to stats.UnitStat. +func unitStatFromUIStat(uiStat *proto.UIStat) (stats.UnitStat, bool) { + if uiStat == nil { + return 0, false + } + switch unitStat := uiStat.UnitStat.(type) { + case *proto.UIStat_Stat: + return stats.UnitStatFromStat(stats.Stat(unitStat.Stat)), true + case *proto.UIStat_PseudoStat: + return stats.UnitStatFromPseudoStat(unitStat.PseudoStat), true + default: + return 0, false + } +} + +// --------------------------------------------------------------------------- +// LP coefficient-key scheme +// --------------------------------------------------------------------------- +// +// Coefficients are keyed by the proto enum NAME (e.g. "StatMasteryRating", +// "PseudoStatSpellHitPercent", "ItemSlotHead") so checkCaps can recover the stat from a key +// (a key containing "PseudoStat" -> pseudo-stat, else one containing "Stat" -> stat). Slot keys +// ("ItemSlot...") and special keys (SocketBonusLink_*, ShaTouchedGem, JewelcraftingGem, cogwheel +// IDs, score, *Minus*) are not stat names and parse to (_, false). + +func statCoeffKey(stat proto.Stat) string { + return proto.Stat_name[int32(stat)] +} + +func pseudoStatCoeffKey(pseudoStat proto.PseudoStat) string { + return proto.PseudoStat_name[int32(pseudoStat)] +} + +func slotCoeffKey(slot proto.ItemSlot) string { + return proto.ItemSlot_name[int32(slot)] +} + +// unitStatFromCoeffKey recovers the stat from a coefficient key, or (_, false) for non-stat +// keys. PseudoStat and Stat names occupy disjoint namespaces so lookup order is irrelevant. +func unitStatFromCoeffKey(key string) (stats.UnitStat, bool) { + if value, ok := proto.PseudoStat_value[key]; ok { + return stats.UnitStatFromPseudoStat(proto.PseudoStat(value)), true + } + if value, ok := proto.Stat_value[key]; ok { + return stats.UnitStatFromStat(stats.Stat(value)), true + } + return 0, false +} + +// coeffKeyForUnitStat returns the coefficient/constraint key for a unit stat: its proto enum +// name. +func coeffKeyForUnitStat(unitStat stats.UnitStat) string { + if unitStat.IsStat() { + return statCoeffKey(proto.Stat(unitStat.StatIdx())) + } + return pseudoStatCoeffKey(proto.PseudoStat(unitStat.PseudoStatIdx())) +} + +// relativeStatShortName returns the short, "Stat"-free label used to build relative-stat-cap +// constraint keys for Crit, Haste, and Mastery. +func relativeStatShortName(stat proto.Stat) string { + switch stat { + case proto.Stat_StatCritRating: + return "Crit" + case proto.Stat_StatHasteRating: + return "Haste" + case proto.Stat_StatMasteryRating: + return "Mastery" + default: + return proto.Stat_name[int32(stat)] + } +} diff --git a/sim/core/reforge_optimizer/relative_stat_cap.go b/sim/core/reforge_optimizer/relative_stat_cap.go new file mode 100644 index 0000000000..9967bff8d5 --- /dev/null +++ b/sim/core/reforge_optimizer/relative_stat_cap.go @@ -0,0 +1,156 @@ +package reforgeoptimizer + +import ( + "math" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" +) + +// relativeStatCap forces a particular proc from trinkets like Rune of Re-Origination (RoRo): the +// reforge solution must keep the "forced highest" secondary stat above the others so RoRo procs +// the intended stat. + +var relativeStatCapRelevantStats = []proto.Stat{ + proto.Stat_StatCritRating, + proto.Stat_StatHasteRating, + proto.Stat_StatMasteryRating, +} + +// relativeStatCapProcOffsets records how much rating a forced-proc trinket contributes to a +// constrained stat; that contribution must be added to the ordering margin. +var relativeStatCapProcOffsets = map[proto.Stat]map[int32]float64{ + proto.Stat_StatCritRating: {69167: 460, 68995: 410}, // Vessel of Acceleration (H/N) + proto.Stat_StatHasteRating: {69112: 1730, 68927: 1532}, // The Hungerer (H/N) + proto.Stat_StatMasteryRating: {}, +} + +var relativeStatCapRoRoTrinkets = []int32{95802, 94532, 96546, 96174, 96918} + +type relativeStatCap struct { + forcedStat proto.Stat + forcedUnitStat stats.UnitStat + constrainedStats []proto.Stat // relevantStats minus the forced stat, in relevantStats order + constraintKeys []string // "Minus" + isFeralDruid bool +} + +func relativeStatCapHasRoRo(equipment core.Equipment) bool { + for _, slot := range core.TrinketSlots() { + item := equipment.GetItemBySlot(slot) + if item == nil { + continue + } + for _, id := range relativeStatCapRoRoTrinkets { + if item.ID == id { + return true + } + } + } + return false +} + +func isRelevantRelativeStat(stat proto.Stat) bool { + for _, s := range relativeStatCapRelevantStats { + if s == stat { + return true + } + } + return false +} + +// newRelativeStatCap constructs a relativeStatCap. Returns nil if forcedStat is not one of +// Crit/Haste/Mastery. +func newRelativeStatCap(forcedStat proto.Stat, isFeralDruid bool) *relativeStatCap { + if !isRelevantRelativeStat(forcedStat) { + return nil + } + rsc := &relativeStatCap{ + forcedStat: forcedStat, + forcedUnitStat: stats.UnitStatFromStat(stats.Stat(int32(forcedStat))), + isFeralDruid: isFeralDruid, + } + for _, stat := range relativeStatCapRelevantStats { + if stat == forcedStat { + continue + } + rsc.constrainedStats = append(rsc.constrainedStats, stat) + rsc.constraintKeys = append(rsc.constraintKeys, relativeStatShortName(forcedStat)+"Minus"+relativeStatShortName(stat)) + } + return rsc +} + +// updateCoefficients accumulates the forced stat positively and each constrained stat negatively +// into the ordering constraint's coefficient. +func (rsc *relativeStatCap) updateCoefficients(coeffs map[string]float64, stat proto.Stat, amount float64) { + if !isRelevantRelativeStat(stat) { + return + } + + for idx, constrained := range rsc.constrainedStats { + key := rsc.constraintKeys[idx] + if rsc.forcedStat == stat { + coeffs[key] += amount + } else if constrained == stat { + coeffs[key] -= amount + } + } + + // Feral Druid with Mastery forced additionally requires Haste > Crit. + if stat != proto.Stat_StatMasteryRating && rsc.forcedStat == proto.Stat_StatMasteryRating && rsc.isFeralDruid { + if stat == proto.Stat_StatHasteRating { + coeffs["HasteMinusCrit"] += amount + } else { + coeffs["HasteMinusCrit"] -= amount + } + } +} + +// updateConstraints adds the ">= minReforge" ordering constraints, using base stats (with the +// free base mastery and any mastery raid buff removed) plus any forced-proc trinket offset. +func (rsc *relativeStatCap) updateConstraints(constraints *lpConstraints, equipment core.Equipment, baseStats core.UnitStats, raidBuffs *proto.RaidBuffs) { + masteryUnitStat := stats.UnitStatFromStat(stats.MasteryRating) + adjusted := setUnitStat(baseStats, masteryUnitStat, getUnitStat(baseStats, masteryUnitStat)-8*core.MasteryRatingPerMasteryPoint) + // The Mastery raid buff does not count toward the RoRo calculation. + if raidBuffs != nil && (raidBuffs.GetRoarOfCourage() || raidBuffs.GetBlessingOfMight() || raidBuffs.GetSpiritBeastBlessing() || raidBuffs.GetGraceOfAir()) { + adjusted = setUnitStat(adjusted, masteryUnitStat, getUnitStat(adjusted, masteryUnitStat)-core.MasteryRaidBuffStrength) + } + + forcedVal := getUnitStat(adjusted, rsc.forcedUnitStat) + for idx, constrained := range rsc.constrainedStats { + constrainedVal := getUnitStat(adjusted, stats.UnitStatFromStat(stats.Stat(int32(constrained)))) + minReforgeContribution := 1 - (forcedVal - constrainedVal) + + offsets := relativeStatCapProcOffsets[constrained] + for _, slot := range core.TrinketSlots() { + item := equipment.GetItemBySlot(slot) + if item == nil { + continue + } + if offset, ok := offsets[item.ID]; ok { + minReforgeContribution += offset + break + } + } + + constraints.set(rsc.constraintKeys[idx], greaterEq(minReforgeContribution)) + } + + if rsc.forcedStat == proto.Stat_StatMasteryRating && rsc.isFeralDruid { + critVal := getUnitStat(adjusted, stats.UnitStatFromStat(stats.CritRating)) + hasteVal := getUnitStat(adjusted, stats.UnitStatFromStat(stats.HasteRating)) + constraints.set("HasteMinusCrit", greaterEq(critVal-hasteVal+1)) + } +} + +// updateWeights clamps the forced stat's EP weight to just below the smallest constrained stat's +// weight so the LP objective does not itself prefer stacking the forced stat past the ordering +// requirement. +func (rsc *relativeStatCap) updateWeights(weights core.UnitStats) core.UnitStats { + c0 := getUnitStat(weights, stats.UnitStatFromStat(stats.Stat(int32(rsc.constrainedStats[0])))) + c1 := getUnitStat(weights, stats.UnitStatFromStat(stats.Stat(int32(rsc.constrainedStats[1])))) + smallest := math.Min(c0, c1) + forcedWeight := getUnitStat(weights, rsc.forcedUnitStat) + return setUnitStat(weights, rsc.forcedUnitStat, math.Min(forcedWeight, smallest-0.01)) +} diff --git a/sim/core/reforge_optimizer/solver.go b/sim/core/reforge_optimizer/solver.go new file mode 100644 index 0000000000..b7212c2fc1 --- /dev/null +++ b/sim/core/reforge_optimizer/solver.go @@ -0,0 +1,223 @@ +package reforgeoptimizer + +import ( + "context" + "errors" + "math" + "time" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" + "github.com/wowsims/mop/sim/core/stats" +) + +// solver.go implements solveModel + checkCaps (the cap-refinement loop) and the thin adapter +// that runs the LP text through the shared HiGHS runtime. The loop is pure LP: caps are checked +// against the summed LP coefficients of the selected variables, so no sim recompute happens +// between passes. + +// HiGHS model-status codes, shared by both runtime backends (the native wazero runner and the +// wasm bridge). +const ( + highsModelStatusOptimal int32 = 7 + highsModelStatusInfeasible int32 = 8 + highsModelStatusTimeLimit int32 = 13 +) + +// solveLPModel serializes model to LP text, runs HiGHS, and returns the selected variables +// (column primal >= 0.5), in x-index order. +func solveLPModel(model *lpModel, timeout time.Duration, mipRelGap float64) (lpSolution, error) { + lpString, reverseNames := modelToLPFormat(model) + values, modelStatus, err := runHiGHSLP(lpString, len(reverseNames), timeout, mipRelGap) + if err != nil { + return lpSolution{}, err + } + + status := "unknown" + switch modelStatus { + case highsModelStatusOptimal: + status = "optimal" + case highsModelStatusTimeLimit: + status = "timedout" + case highsModelStatusInfeasible: + status = "infeasible" + } + + var selected []string + for i := 0; i < len(values) && i < len(reverseNames); i++ { + if values[i] >= 0.5 { + selected = append(selected, reverseNames[i]) + } + } + + result := math.NaN() + if len(values) > 0 { + result = 0 + for _, name := range selected { + if coeffs, ok := model.variables.get(name); ok { + result += coeffs["score"] + } + } + } + + return lpSolution{ + status: status, + result: result, + variables: selected, + }, nil +} + +// minSolveSeconds is the per-pass time_limit floor for cap-refinement re-solves, so an exhausted +// budget never yields a non-positive HiGHS time_limit. Tightened re-solves finish well under this. +const minSolveSeconds = 1.0 + +// solveModel scores the variables, solves, then checks caps and recurses with tightened +// constraints/weights until no cap is exceeded. Returns the selected variable names of the final +// solution and its objective value. +func (o *reforgeOptimizer) solveModel( + weights core.UnitStats, + reforgeCaps core.UnitStats, + reforgeSoftCaps []*reforgeSoftCap, + variables *lpVariables, + constraints *lpConstraints, + maxSeconds float64, + mipRelGap float64, +) ([]string, float64, error) { + if o.signals.Abort.IsTriggered() { + return nil, 0, context.Canceled + } + + updatedVariables := o.updateReforgeScores(variables, weights) + model := &lpModel{ + direction: "maximize", + objective: "score", + constraints: constraints, + variables: updatedVariables, + binaries: true, + } + + startedAt := time.Now() + solution, err := solveLPModel(model, time.Duration(maxSeconds*float64(time.Second)), mipRelGap) + if err != nil { + return nil, 0, err + } + + if math.IsNaN(solution.result) || math.IsInf(solution.result, 1) { + switch solution.status { + case "infeasible": + return nil, 0, errors.New("The specified stat caps are impossible to achieve. Consider changing any upper bound stat caps to lower bounds instead.") + case "timedout": + return nil, 0, errors.New("Solver timed out before finding a feasible solution.") + default: + return nil, 0, errors.New(solution.status) + } + } + + elapsedSeconds := time.Since(startedAt).Seconds() + + anyCapsExceeded, updatedConstraints, updatedWeights, updatedSoftCaps := o.checkCaps(solution, reforgeCaps, reforgeSoftCaps, updatedVariables, constraints, weights) + if !anyCapsExceeded { + return solution.variables, solution.result, nil + } + // Cap refinement consumed part of the budget; keep a positive floor so the tightened re-solve + // still gets a valid (non-negative) HiGHS time_limit even once the budget is spent. + remainingSeconds := math.Max(maxSeconds-elapsedSeconds, minSolveSeconds) + return o.solveModel(updatedWeights, reforgeCaps, updatedSoftCaps, updatedVariables, updatedConstraints, remainingSeconds, mipRelGap) +} + +// checkCaps sums the selected variables' stat contributions, then adds a hard-cap constraint for +// the first unconstrained stat that exceeds its cap, or a soft-cap breakpoint constraint +// otherwise. Returns whether any cap was newly enforced along with the tightened +// constraints/weights/soft-caps for the next pass. +func (o *reforgeOptimizer) checkCaps( + solution lpSolution, + reforgeCaps core.UnitStats, + reforgeSoftCaps []*reforgeSoftCap, + variables *lpVariables, + constraints *lpConstraints, + currentWeights core.UnitStats, +) (bool, *lpConstraints, core.UnitStats, []*reforgeSoftCap) { + reforgeStatContribution := core.NewUnitStats() + for _, variableKey := range solution.variables { + coeffs, ok := variables.get(variableKey) + if !ok { + continue + } + for key, value := range coeffs { + if unitStat, ok := unitStatFromCoeffKey(key); ok { + reforgeStatContribution = setUnitStat(reforgeStatContribution, unitStat, getUnitStat(reforgeStatContribution, unitStat)+value) + } + } + } + + anyCapsExceeded := false + updatedConstraints := constraints.clone() + updatedWeights := currentWeights + + eachUnitStat(reforgeStatContribution, func(unitStat stats.UnitStat, value float64) { + cap := getUnitStat(reforgeCaps, unitStat) + statName := coeffKeyForUnitStat(unitStat) + if cap != 0 && value > cap && !constraints.has(statName) { + anyCapsExceeded = true + if getUnitStat(o.undershootCaps, unitStat) != 0 { + updatedConstraints.set(statName, lessEq(cap)) + } else { + updatedConstraints.set(statName, greaterEq(cap)) + updatedWeights = setUnitStat(updatedWeights, unitStat, 0) + } + } + }) + + updatedSoftCaps := reforgeSoftCaps + if !anyCapsExceeded && len(reforgeSoftCaps) > 0 { + remaining := make([]*reforgeSoftCap, 0, len(reforgeSoftCaps)) + for _, softCap := range reforgeSoftCaps { + if anyCapsExceeded { + remaining = append(remaining, softCap) + continue + } + + unitStat := softCap.unitStat + statName := coeffKeyForUnitStat(unitStat) + currentValue := getUnitStat(reforgeStatContribution, unitStat) + + exceededBreakpointIdx := -1 + for i, breakpoint := range softCap.breakpoints { + if currentValue > breakpoint { + exceededBreakpointIdx = i + break + } + } + if exceededBreakpointIdx == -1 { + remaining = append(remaining, softCap) + continue + } + + // A request may send fewer post-cap EPs than breakpoints; the missing ones score 0. + postCapEP := 0.0 + if exceededBreakpointIdx < len(softCap.postCapEPs) { + postCapEP = softCap.postCapEPs[exceededBreakpointIdx] + } + updatedConstraints.set(statName, greaterEq(softCap.breakpoints[exceededBreakpointIdx])) + updatedWeights = setUnitStat(updatedWeights, unitStat, postCapEP) + anyCapsExceeded = true + + // True soft caps (ascending) drop the consumed breakpoints and stay in play; + // threshold caps (descending) are removed entirely after the first pass. + if softCap.capType == proto.StatCapType_TypeSoftCap { + softCap.breakpoints = softCap.breakpoints[exceededBreakpointIdx+1:] + if exceededBreakpointIdx+1 <= len(softCap.postCapEPs) { + softCap.postCapEPs = softCap.postCapEPs[exceededBreakpointIdx+1:] + } else { + softCap.postCapEPs = nil + } + if len(softCap.breakpoints) > 0 { + remaining = append(remaining, softCap) + } + } + } + updatedSoftCaps = remaining + } + + return anyCapsExceeded, updatedConstraints, updatedWeights, updatedSoftCaps +} diff --git a/sim/core/reforge_optimizer/test-fixtures/haste-thresholds.test.json b/sim/core/reforge_optimizer/test-fixtures/haste-thresholds.test.json new file mode 100644 index 0000000000..e78073d225 --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/haste-thresholds.test.json @@ -0,0 +1,177 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceTroll", + "class": "ClassWarlock", + "equipment": { + "items": [ + { + "id": 105647, + "gems": [95347, 76671], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105465, + "reforging": 138, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99417, + "enchant": 4806, + "gems": [76671, 76671], + "reforging": 147, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 102246, + "enchant": 4423, + "gems": [76671], + "reforging": 144, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105592, + "enchant": 4419, + "gems": [76671, 76671, 76699], + "reforging": 147, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105591, + "enchant": 4414, + "gems": [0], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99424, + "enchant": 4433, + "gems": [76671, 76671, 0], + "upgradeStep": "UpgradeStepTwo", + "tinker": 4898 + }, + { + "id": 105515, + "gems": [76671, 76643, 76699], + "reforging": 138, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105516, + "enchant": 4825, + "gems": [76643, 76636], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105493, + "enchant": 4429, + "gems": [76699], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105606, + "gems": [76671], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105628, + "reforging": 138, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105422, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105648, + "reforging": 154, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105594, + "enchant": 4442, + "gems": [76671], + "reforging": 145, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105650, + "enchant": 4434, + "gems": [76681], + "upgradeStep": "UpgradeStepTwo" + } + ] + }, + "consumables": { + "prepotId": 76093, + "potId": 76093, + "flaskId": 76085, + "foodId": 74650 + }, + "afflictionWarlock": { + "options": { + "classOptions": { + "summon": "Felhunter" + } + } + }, + "talentsString": "231211", + "glyphs": { + "major1": 42455, + "major2": 42472, + "major3": 50077 + }, + "profession1": "Engineering" + } + ], + "buffs": {} + } + ], + "buffs": { + "unholyAura": true, + "arcaneBrilliance": true, + "moonkinAura": true, + "leaderOfThePack": true, + "blessingOfMight": true, + "blessingOfKings": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "physicalVulnerability": true, + "weakenedArmor": true, + "curseOfElements": true + } + }, + "preCapEpWeights": { + "stats": [0, 0, 0, 1.38, 0, 1.89, 1.07, 1.38, 0, 0, 0, 1.2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "useSoftCapBreakpoints": true, + "includeGems": true, + "includeEotbGemSocket": true, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0] + }, + "epStats": ["StatIntellect", "StatSpellPower", "StatHitRating", "StatCritRating", "StatHasteRating", "StatMasteryRating"] + }, + "softCaps": [ + { + "unitStat": { + "pseudoStat": "PseudoStatSpellHastePercent" + }, + "breakpoints": [27.75472, 29.15726, 35.73126, 37.50431, 38.93714, 45.82575, 49.98126], + "capType": "TypeThreshold", + "postCapEPs": [501.5, 501.5, 501.5, 501.5, 501.5, 501.5, 501.5] + } + ] +} diff --git a/sim/core/reforge_optimizer/test-fixtures/hybrid-caster.test.json b/sim/core/reforge_optimizer/test-fixtures/hybrid-caster.test.json new file mode 100644 index 0000000000..8f4f4475ff --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/hybrid-caster.test.json @@ -0,0 +1,101 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceTroll", + "class": "ClassPriest", + "equipment": { + "items": [ + { "id": 105420, "gems": [95347, 76640], "reforging": 167, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105473, "reforging": 116, "upgradeStep": "UpgradeStepTwo" }, + { "id": 99363, "enchant": 4806, "gems": [76667, 76667], "upgradeStep": "UpgradeStepTwo" }, + { "id": 102246, "enchant": 4892, "gems": [76668], "upgradeStep": "UpgradeStepTwo" }, + { "id": 99362, "enchant": 4419, "gems": [76667, 76667, 76667], "reforging": 145, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105626, "enchant": 4414, "gems": [0], "reforging": 147, "upgradeStep": "UpgradeStepTwo" }, + { "id": 99359, "enchant": 4430, "gems": [76667, 76667, 0], "upgradeStep": "UpgradeStepTwo", "tinker": 4898 }, + { "id": 105646, "gems": [76667, 76699, 76699], "reforging": 116, "upgradeStep": "UpgradeStepTwo" }, + { "id": 99361, "enchant": 4825, "gems": [76699, 76699], "reforging": 167, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105493, "enchant": 4426, "gems": [76699], "upgradeStep": "UpgradeStepTwo" }, + { "id": 105606, "gems": [76667], "reforging": 166, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105520, "gems": [76699], "reforging": 119, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105422, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105540, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105649, "enchant": 4442, "gems": [76667], "reforging": 119, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105650, "enchant": 4434, "gems": [76671], "reforging": 148, "upgradeStep": "UpgradeStepTwo" } + ] + }, + "consumables": { + "prepotId": 76093, + "potId": 76093, + "flaskId": 76085, + "foodId": 74650 + }, + "shadowPriest": { + "options": { + "classOptions": { + "armor": "InnerFire" + } + } + }, + "talentsString": "223113", + "glyphs": {}, + "profession1": "Engineering" + } + ], + "buffs": {} + } + ], + "buffs": { + "unholyAura": true, + "arcaneBrilliance": true, + "mindQuickening": true, + "leaderOfThePack": true, + "blessingOfMight": true, + "blessingOfKings": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "curseOfElements": true + } + }, + "preCapEpWeights": { + "stats": [0, 0, 0, 1, 0.01, 1.45, 0.74, 1, 0, 0, 0, 0.75, 0, 0, 0.73, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "useSoftCapBreakpoints": true, + "includeGems": true, + "includeEotbGemSocket": true, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0] + }, + "epStats": ["StatIntellect", "StatSpirit", "StatSpellPower", "StatHitRating", "StatCritRating", "StatHasteRating", "StatMasteryRating"] + }, + "softCaps": [ + { + "unitStat": { + "pseudoStat": "PseudoStatSpellHastePercent" + }, + "breakpoints": [47.50353], + "capType": "TypeThreshold", + "postCapEPs": [310.25] + }, + { + "unitStat": { + "stat": "StatMasteryRating" + }, + "breakpoints": [20000], + "capType": "TypeSoftCap", + "postCapEPs": [0.72] + } + ] +} diff --git a/sim/core/reforge_optimizer/test-fixtures/relative-stat-cap.test.json b/sim/core/reforge_optimizer/test-fixtures/relative-stat-cap.test.json new file mode 100644 index 0000000000..e1f349963c --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/relative-stat-cap.test.json @@ -0,0 +1,90 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceWorgen", + "class": "ClassDruid", + "equipment": { + "items": [ + { "id": 99328, "gems": [95346, 76658], "reforging": 167, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105407, "reforging": 152, "upgradeStep": "UpgradeStepTwo" }, + { "id": 99322, "enchant": 4804, "gems": [76670, 76666], "reforging": 161, "upgradeStep": "UpgradeStepTwo" }, + { "id": 102248, "enchant": 4421, "gems": [76666], "reforging": 165, "upgradeStep": "UpgradeStepTwo" }, + { "id": 99326, "enchant": 4419, "gems": [76666, 76659, 76680], "reforging": 167, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105616, "enchant": 4416, "gems": [0], "upgradeStep": "UpgradeStepTwo" }, + { "id": 99327, "enchant": 4433, "gems": [76659, 76681, 0], "reforging": 144, "upgradeStep": "UpgradeStepTwo", "tinker": 4898 }, + { "id": 105635, "gems": [76681, 76671, 76658], "upgradeStep": "UpgradeStepTwo" }, + { "id": 105529, "enchant": 4880, "gems": [76641, 76643], "reforging": 167, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105582, "enchant": 4428, "gems": [76643], "reforging": 168, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105483, "gems": [76700], "reforging": 158, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105624, "gems": [76681], "reforging": 166, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105527, "upgradeStep": "UpgradeStepTwo" }, + { "id": 96546, "upgradeStep": "UpgradeStepTwo" }, + { "id": 105560, "enchant": 4444, "gems": [76697], "reforging": 166, "upgradeStep": "UpgradeStepTwo" }, + {} + ] + }, + "consumables": { + "prepotId": 76089, + "potId": 76089, + "flaskId": 76084, + "foodId": 74648 + }, + "feralDruid": { + "options": { + "assumeBleedActive": true + } + }, + "talentsString": "100302", + "glyphs": { + "major1": 40923, + "major2": 40914, + "major3": 40897 + }, + "profession1": "Engineering" + } + ], + "buffs": {} + } + ], + "buffs": { + "trueshotAura": true, + "unholyAura": true, + "arcaneBrilliance": true, + "moonkinAura": true, + "graceOfAir": true, + "markOfTheWild": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "physicalVulnerability": true, + "weakenedArmor": true, + "lightningBreath": true + } + }, + "preCapEpWeights": { + "stats": [0.37, 1, 0, 0, 0, 0.62, 0.57, 0.53, 0.58, 0, 0, 0.41, 0.35, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0.54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "includeGems": true, + "includeEotbGemSocket": true, + "relativeStatCapStat": { + "stat": "StatMasteryRating" + }, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 2550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.5, 0, 0, 0] + }, + "relativeStatCapMipGap": 0.005, + "epStats": ["StatStrength", "StatAgility", "StatAttackPower", "StatHitRating", "StatExpertiseRating", "StatCritRating", "StatHasteRating", "StatMasteryRating"] + } +} diff --git a/sim/core/reforge_optimizer/test-fixtures/soft-caps-multi.test.json b/sim/core/reforge_optimizer/test-fixtures/soft-caps-multi.test.json new file mode 100644 index 0000000000..25bef19b4b --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/soft-caps-multi.test.json @@ -0,0 +1,183 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceOrc", + "class": "ClassMage", + "equipment": { + "items": [ + { + "id": 105647, + "gems": [95347, 76667], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105465, + "reforging": 138, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99401, + "enchant": 4806, + "gems": [76667, 76667], + "reforging": 147, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 102246, + "enchant": 4892, + "gems": [76667], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99400, + "enchant": 4419, + "gems": [76667, 76667, 76667], + "reforging": 144, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105591, + "enchant": 4414, + "gems": [0], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99397, + "enchant": 4430, + "gems": [76667, 76667, 0], + "reforging": 147, + "upgradeStep": "UpgradeStepTwo", + "tinker": 4898 + }, + { + "id": 105515, + "gems": [76672, 76636, 76700], + "reforging": 138, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99399, + "enchant": 4895, + "gems": [76700, 76700], + "reforging": 145, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105493, + "enchant": 4429, + "gems": [76700], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105498, + "reforging": 140, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105606, + "gems": [76672], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105422, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105540, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105627, + "enchant": 4442, + "gems": [76672], + "reforging": 147, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105650, + "enchant": 4434, + "gems": [76672], + "reforging": 152, + "upgradeStep": "UpgradeStepTwo" + } + ] + }, + "consumables": { + "prepotId": 76093, + "potId": 76093, + "flaskId": 76085, + "foodId": 74650 + }, + "frostMage": { + "options": { + "classOptions": { + "defaultMageArmor": "MageArmorFrostArmor" + } + } + }, + "talentsString": "111122", + "glyphs": { + "major1": 42753, + "major2": 42745 + }, + "profession1": "Engineering" + } + ], + "buffs": {} + } + ], + "buffs": { + "unholyAura": true, + "arcaneBrilliance": true, + "mindQuickening": true, + "leaderOfThePack": true, + "blessingOfMight": true, + "blessingOfKings": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "curseOfElements": true + } + }, + "preCapEpWeights": { + "stats": [0, 0, 0, 1.31, 0, 2.15, 0.77, 0.75, 0, 0, 0, 0.71, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "useSoftCapBreakpoints": true, + "includeGems": true, + "includeEotbGemSocket": true, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0] + }, + "epStats": ["StatIntellect", "StatSpellPower", "StatHitRating", "StatCritRating", "StatHasteRating", "StatMasteryRating"] + }, + "softCaps": [ + { + "unitStat": { + "pseudoStat": "PseudoStatSpellCritPercent" + }, + "breakpoints": [23, 26, 28], + "capType": "TypeSoftCap", + "postCapEPs": [456, 408.00000000000006, 341.99999999999994] + }, + { + "unitStat": { + "pseudoStat": "PseudoStatSpellHastePercent" + }, + "breakpoints": [37.520061, 50, 62.469546, 87.441436], + "capType": "TypeSoftCap", + "postCapEPs": [306, 221, 221, 221] + } + ] +} diff --git a/sim/core/reforge_optimizer/test-fixtures/stat-conversions.test.json b/sim/core/reforge_optimizer/test-fixtures/stat-conversions.test.json new file mode 100644 index 0000000000..8544932240 --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/stat-conversions.test.json @@ -0,0 +1,178 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceTroll", + "class": "ClassDruid", + "equipment": { + "items": [ + { + "id": 99421, + "gems": [95344, 76680], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105602, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105506, + "enchant": 4805, + "gems": [76641, 76641], + "reforging": 167, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 102245, + "enchant": 4422, + "gems": [76658], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99419, + "enchant": 4420, + "gems": [76659, 76658, 76658], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105505, + "enchant": 4416, + "gems": [76699], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99420, + "enchant": 4431, + "gems": [76658, 76658, 76697], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo", + "tinker": 4898 + }, + { + "id": 105635, + "gems": [76658, 76642, 76699], + "reforging": 144, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99422, + "enchant": 4824, + "gems": [76699, 76699], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 104488, + "enchant": 4428, + "gems": [76699], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 104455, + "gems": [76641], + "reforging": 145, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105483, + "gems": [76699], + "reforging": 159, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105568, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105527, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105408, + "enchant": 4444, + "gems": [76641], + "reforging": 160, + "upgradeStep": "UpgradeStepTwo" + }, + {} + ] + }, + "consumables": { + "prepotId": 76090, + "potId": 76090, + "flaskId": 76087, + "foodId": 74656, + "conjuredId": 5512 + }, + "guardianDruid": { + "options": { + "symbiosisTarget": "ClassMonk" + } + }, + "talentsString": "010101", + "glyphs": { + "major1": 45603, + "major2": 40897 + }, + "profession1": "Engineering", + "profession2": "Blacksmithing" + } + ], + "buffs": {} + } + ], + "buffs": { + "trueshotAura": true, + "unholyAura": true, + "leaderOfThePack": true, + "graceOfAir": true, + "markOfTheWild": true, + "powerWordFortitude": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "physicalVulnerability": true, + "lightningBreath": true + }, + "tanks": [ + { + "type": "Player" + } + ] + }, + "preCapEpWeights": { + "stats": [0.19, 1, 1.77, 0, 0, 3.31, 1.36, 1.35, 3.31, 0.22, 0, 0.36, 0.18, 0, 0, 0, 0, 0.73, 0.17, 0.08, 0, 0], + "pseudoStats": [0.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "useSoftCapBreakpoints": true, + "includeGems": true, + "includeEotbGemSocket": true, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 5100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.5, 0, 0, 0] + }, + "epStats": ["StatHealth", "StatStamina", "StatAgility", "StatArmor", "StatBonusArmor", "StatDodgeRating", "StatMasteryRating", "StatStrength", "StatAttackPower", "StatHitRating", "StatExpertiseRating", "StatCritRating", "StatHasteRating"] + }, + "softCaps": [ + { + "unitStat": { + "pseudoStat": "PseudoStatPhysicalCritPercent" + }, + "breakpoints": [79], + "capType": "TypeSoftCap", + "postCapEPs": [696] + } + ] +} diff --git a/sim/core/reforge_optimizer/test-fixtures/tank-caps.test.json b/sim/core/reforge_optimizer/test-fixtures/tank-caps.test.json new file mode 100644 index 0000000000..6c8bb740f6 --- /dev/null +++ b/sim/core/reforge_optimizer/test-fixtures/tank-caps.test.json @@ -0,0 +1,181 @@ +{ + "raid": { + "parties": [ + { + "players": [ + { + "race": "RaceBloodElf", + "class": "ClassDeathKnight", + "equipment": { + "items": [ + { + "id": 99323, + "gems": [95346, 76695], + "reforging": 163, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105480, + "reforging": 136, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99325, + "enchant": 4805, + "gems": [76695, 76695], + "reforging": 157, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 102249, + "enchant": 4422, + "gems": [76695], + "reforging": 143, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105512, + "enchant": 4420, + "gems": [76695, 76664, 76683], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105564, + "enchant": 4415, + "gems": [76695], + "reforging": 156, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99331, + "enchant": 4430, + "gems": [76695, 76683, 76695], + "reforging": 157, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105587, + "gems": [76695, 76663, 76695], + "reforging": 165, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 99324, + "enchant": 4824, + "gems": [76664, 76683], + "reforging": 164, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105414, + "enchant": 4426, + "gems": [76695], + "reforging": 135, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105492, + "gems": [76683], + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105620, + "gems": [76695], + "reforging": 157, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105632, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105645, + "upgradeStep": "UpgradeStepTwo" + }, + { + "id": 105692, + "enchant": 3368, + "gems": [76695, 76695], + "reforging": 150 + }, + {} + ] + }, + "consumables": { + "prepotId": 76095, + "potId": 76095, + "flaskId": 76087, + "foodId": 74656 + }, + "bloodDeathKnight": { + "options": { + "classOptions": {} + } + }, + "talentsString": "231111", + "glyphs": { + "major1": 104047, + "major2": 104048, + "major3": 43536, + "minor1": 104101 + }, + "profession1": "Engineering", + "profession2": "Blacksmithing" + } + ], + "buffs": {} + } + ], + "buffs": { + "trueshotAura": true, + "serpentsSwiftness": true, + "elementalOath": true, + "leaderOfThePack": true, + "blessingOfMight": true, + "blessingOfKings": true, + "powerWordFortitude": true, + "bloodlust": true, + "stormlashTotemCount": 4, + "skullBannerCount": 2 + }, + "debuffs": { + "weakenedBlows": true, + "physicalVulnerability": true, + "weakenedArmor": true, + "curseOfElements": true + }, + "tanks": [ + { + "type": "Player" + } + ] + }, + "preCapEpWeights": { + "stats": [1, 0, 1.46, 0, 0, 1.7, 1.06, 1.08, 1.93, 1.18, 1.22, 1.14, 0.21, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "undershootCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "settings": { + "useSoftCapBreakpoints": true, + "includeGems": true, + "includeEotbGemSocket": true, + "statCaps": { + "stats": [0, 0, 0, 0, 0, 0, 0, 0, 5100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "pseudoStats": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.5, 0, 0, 0] + }, + "epStats": ["StatStamina", "StatStrength", "StatAgility", "StatAttackPower", "StatExpertiseRating", "StatHitRating", "StatCritRating", "StatHasteRating", "StatHealth", "StatArmor", "StatBonusArmor", "StatDodgeRating", "StatParryRating", "StatMasteryRating"] + }, + "softCaps": [ + { + "unitStat": { + "stat": "StatExpertiseRating" + }, + "breakpoints": [2550, 5100], + "capType": "TypeSoftCap", + "postCapEPs": [0.53, 0] + } + ] +} diff --git a/sim/core/reforge_optimizer/utils.go b/sim/core/reforge_optimizer/utils.go new file mode 100644 index 0000000000..aa3a03c137 --- /dev/null +++ b/sim/core/reforge_optimizer/utils.go @@ -0,0 +1,74 @@ +package reforgeoptimizer + +import ( + "github.com/wowsims/mop/sim/core/proto" +) + +// Player spec/profession predicates used by the optimizer. + +// playerIsHybridCaster: Boomkin, Shadow, Elemental, Mistweaver route Spirit -> SpellHit and +// exclude hit-rating gems (Spirit already covers hit). +func playerIsHybridCaster(player *proto.Player) bool { + switch player.GetSpec().(type) { + case *proto.Player_BalanceDruid, + *proto.Player_ShadowPriest, + *proto.Player_ElementalShaman, + *proto.Player_MistweaverMonk: + return true + default: + return false + } +} + +// playerIsTrueCaster: every spellcaster spec. These have zero Expertise EP, so an Expertise +// reforge is only ever a spell-hit proxy — strictly dominated by a Hit reforge from the same +// source stat (see the prefer-Hit pruning in buildYalpsVariables). +func playerIsTrueCaster(player *proto.Player) bool { + switch player.GetSpec().(type) { + case *proto.Player_ArcaneMage, + *proto.Player_FireMage, + *proto.Player_FrostMage, + *proto.Player_AfflictionWarlock, + *proto.Player_DemonologyWarlock, + *proto.Player_DestructionWarlock, + *proto.Player_DisciplinePriest, + *proto.Player_HolyPriest, + *proto.Player_ShadowPriest, + *proto.Player_BalanceDruid, + *proto.Player_RestorationDruid, + *proto.Player_ElementalShaman, + *proto.Player_RestorationShaman, + *proto.Player_HolyPaladin, + *proto.Player_MistweaverMonk: + return true + default: + return false + } +} + +func playerIsTankSpec(player *proto.Player) bool { + switch player.GetSpec().(type) { + case *proto.Player_BloodDeathKnight, + *proto.Player_GuardianDruid, + *proto.Player_BrewmasterMonk, + *proto.Player_ProtectionPaladin, + *proto.Player_ProtectionWarrior: + return true + default: + return false + } +} + +func playerIsGuardianDruid(player *proto.Player) bool { + _, ok := player.GetSpec().(*proto.Player_GuardianDruid) + return ok +} + +func playerIsFeralDruid(player *proto.Player) bool { + _, ok := player.GetSpec().(*proto.Player_FeralDruid) + return ok +} + +func playerHasProfession(player *proto.Player, profession proto.Profession) bool { + return player.GetProfession1() == profession || player.GetProfession2() == profession +} diff --git a/sim/core/rppm_test.go b/sim/core/rppm_test.go index 542dcedb25..795fd5408e 100644 --- a/sim/core/rppm_test.go +++ b/sim/core/rppm_test.go @@ -313,7 +313,7 @@ func GetFakeCharacter(slots []proto.ItemSlot, withRangedWeapon bool) *Character } character.Equipment[slots[idx]] = item - ItemsByID[int32(idx+1)] = item + itemsByID[int32(idx+1)] = item } return character diff --git a/sim/core/sim.go b/sim/core/sim.go index 9e17cc9763..e2972f1ad9 100644 --- a/sim/core/sim.go +++ b/sim/core/sim.go @@ -188,7 +188,7 @@ func runSim(rsr *proto.RaidSimRequest, progress chan *proto.ProgressMetrics, ski } func NewSim(rsr *proto.RaidSimRequest, signals simsignals.Signals) *Simulation { - env, _, _ := NewEnvironment(rsr.Raid, rsr.Encounter, false) + env, _, _ := NewEnvironment(rsr.Raid, rsr.Encounter, false, false) return newSimWithEnv(env, rsr.SimOptions, signals) } @@ -370,7 +370,7 @@ func (sim *Simulation) run() *proto.RaidSimResult { } if d := sim.Options.Iterations; d > 3000 { - log.Printf("running %d iterations took %s", d, time.Since(t0)) + log.Printf("Running %d iterations took %s", d, time.Since(t0)) } return result diff --git a/sim/core/sim_concurrent.go b/sim/core/sim_concurrent.go index b73b9b4fb4..e7be432d7c 100644 --- a/sim/core/sim_concurrent.go +++ b/sim/core/sim_concurrent.go @@ -1,7 +1,6 @@ package core import ( - "fmt" "log" "math" "reflect" @@ -55,6 +54,41 @@ func SplitSimRequestForConcurrency(request *proto.RaidSimRequest, splitCount int type raidSimResultCombiner struct { Debug bool Combined *proto.RaidSimResult + + // Per-unit lookup indexes for the combined result. Without these, matching an + // incoming action/resource against the combined unit is a linear scan that + // renders every proto.ActionID to text, which dominates the merge cost. + actionIndexByUnit map[*proto.UnitMetrics]map[actionMetricsKey]*proto.ActionMetrics + resourceIndexByUnit map[*proto.UnitMetrics]map[resourceMetricsKey]*proto.ResourceMetrics +} + +// actionIDKey is a comparable stand-in for proto.ActionID.String(). kind +// distinguishes the oneof case so a zero-valued id in one case can never alias +// an unset id in another. +type actionIDKey struct { + kind uint8 + id int32 + tag int32 +} + +type actionMetricsKey = actionIDKey + +type resourceMetricsKey struct { + action actionIDKey + resourceType proto.ResourceType +} + +func newActionIDKey(id *proto.ActionID) actionIDKey { + key := actionIDKey{tag: id.GetTag()} + switch rawID := id.GetRawId().(type) { + case *proto.ActionID_SpellId: + key.kind, key.id = 1, rawID.SpellId + case *proto.ActionID_ItemId: + key.kind, key.id = 2, rawID.ItemId + case *proto.ActionID_OtherId: + key.kind, key.id = 3, int32(rawID.OtherId) + } + return key } func (rsrc *raidSimResultCombiner) newDistMetrics() *proto.DistributionMetrics { @@ -112,6 +146,14 @@ func (rsrc *raidSimResultCombiner) newPartyMetrics(baseParty *proto.PartyMetrics } func (rsrc *raidSimResultCombiner) combineDistMetrics(base *proto.DistributionMetrics, add *proto.DistributionMetrics, isLast bool, weight float64) { + CombineDistributionMetrics(base, add, isLast, weight) +} + +// CombineDistributionMetrics folds `add` into `base` as a weighted contribution. +// AggregatorData carries the sample count and sum of squares, so the standard +// deviation can be recomputed once the last contribution is in - pass isLast on the +// final call. `base` must be initialised with a non-nil Hist and AggregatorData. +func CombineDistributionMetrics(base *proto.DistributionMetrics, add *proto.DistributionMetrics, isLast bool, weight float64) { base.Avg += add.Avg * weight if add.Max > base.Max { @@ -140,16 +182,21 @@ func (rsrc *raidSimResultCombiner) combineDistMetrics(base *proto.DistributionMe } func (rsrc *raidSimResultCombiner) addActionMetrics(unit *proto.UnitMetrics, add *proto.ActionMetrics) { - var am *proto.ActionMetrics - - addKey := add.Id.String() - for _, baseAction := range unit.Actions { - if baseAction.Id.String() == addKey { - am = baseAction - break + actionIndex, ok := rsrc.actionIndexByUnit[unit] + if !ok { + actionIndex = make(map[actionMetricsKey]*proto.ActionMetrics, len(unit.Actions)) + for _, baseAction := range unit.Actions { + actionIndex[newActionIDKey(baseAction.Id)] = baseAction + } + if rsrc.actionIndexByUnit == nil { + rsrc.actionIndexByUnit = make(map[*proto.UnitMetrics]map[actionMetricsKey]*proto.ActionMetrics) } + rsrc.actionIndexByUnit[unit] = actionIndex } + addKey := newActionIDKey(add.Id) + am := actionIndex[addKey] + if am == nil { am = &proto.ActionMetrics{ Id: add.Id, @@ -164,6 +211,7 @@ func (rsrc *raidSimResultCombiner) addActionMetrics(unit *proto.UnitMetrics, add } } unit.Actions = append(unit.Actions, am) + actionIndex[addKey] = am } for i, baseTgt := range am.Targets { @@ -211,25 +259,32 @@ func (rsrc *raidSimResultCombiner) combineAuraMetrics(base *proto.AuraMetrics, a } func (rsrc *raidSimResultCombiner) addResourceMetrics(unit *proto.UnitMetrics, add *proto.ResourceMetrics) { - var rm *proto.ResourceMetrics - - rkey := func(r *proto.ResourceMetrics) string { - return fmt.Sprintf("%s-%d", r.Id.String(), r.Type) + rkey := func(r *proto.ResourceMetrics) resourceMetricsKey { + return resourceMetricsKey{action: newActionIDKey(r.Id), resourceType: r.Type} } - for _, baseResource := range unit.Resources { - if rkey(baseResource) == rkey(add) { - rm = baseResource - break + resourceIndex, ok := rsrc.resourceIndexByUnit[unit] + if !ok { + resourceIndex = make(map[resourceMetricsKey]*proto.ResourceMetrics, len(unit.Resources)) + for _, baseResource := range unit.Resources { + resourceIndex[rkey(baseResource)] = baseResource } + if rsrc.resourceIndexByUnit == nil { + rsrc.resourceIndexByUnit = make(map[*proto.UnitMetrics]map[resourceMetricsKey]*proto.ResourceMetrics) + } + rsrc.resourceIndexByUnit[unit] = resourceIndex } + addKey := rkey(add) + rm := resourceIndex[addKey] + if rm == nil { rm = &proto.ResourceMetrics{ Id: add.Id, Type: add.Type, } unit.Resources = append(unit.Resources, rm) + resourceIndex[addKey] = rm } rm.Events += add.Events diff --git a/sim/core/test_generators.go b/sim/core/test_generators.go index 157ed246d2..13e4ebee04 100644 --- a/sim/core/test_generators.go +++ b/sim/core/test_generators.go @@ -282,7 +282,9 @@ func (filter *ItemFilter) Matches(item Item, equipChecksOnly bool) bool { func (filter *ItemFilter) FindAllItems() []Item { var filteredItems []Item - for _, item := range ItemsByID { + dbMu.RLock() + defer dbMu.RUnlock() + for _, item := range itemsByID { if filter.Matches(item, false) { filteredItems = append(filteredItems, item) } @@ -308,7 +310,9 @@ func (filter *ItemFilter) FindAllSets() []*ItemSet { func (filter *ItemFilter) FindAllMetaGems() []Gem { var filteredGems []Gem - for _, gem := range GemsByID { + dbMu.RLock() + defer dbMu.RUnlock() + for _, gem := range gemsByID { if gem.Color == proto.GemColor_GemColorMeta { if !strings.Contains(gem.Name, "Skyfire") && !strings.Contains(gem.Name, "Earthstorm") && @@ -328,13 +332,12 @@ func (filter *ItemFilter) FindAllEnchants() []Enchant { }) return MapSlice(filteredEnchantIDs, func(id int32) Enchant { - enchant, ok := EnchantsByEffectID[id] - - if !ok { + enchant := GetEnchantByEffectID(id) + if enchant == nil { panic(fmt.Sprintf("No DB data for enchant with id: %d", id)) } - return enchant + return *enchant }) } diff --git a/sim/core/utils.go b/sim/core/utils.go index 59d4889dbc..d8d3c78f3b 100644 --- a/sim/core/utils.go +++ b/sim/core/utils.go @@ -313,7 +313,15 @@ func GetItemEffectRandomPropPointsForItem(itemID int32, state proto.ItemLevelSta } func (item *Item) GetItemEffectRandomPropPoints(state proto.ItemLevelState) float64 { - return float64(ItemEffectRandPropPointsByIlvl[item.ScalingOptions[int32(state)].Ilvl].RandPropPoints) + scaling := item.ScalingOptions[int32(state)] + if scaling == nil { + return 0 + } + p := GetItemEffectRandPropPointsByIlvl(scaling.Ilvl) + if p == nil { + return 0 + } + return float64(p.RandPropPoints) } type aggregator struct { diff --git a/sim/death_knight/blood/TestBlood.results b/sim/death_knight/blood/TestBlood.results index 396e5266c2..b1bf483f8b 100644 --- a/sim/death_knight/blood/TestBlood.results +++ b/sim/death_knight/blood/TestBlood.results @@ -33,73 +33,73 @@ character_stats_results: { dps_results: { key: "TestBlood-AllItems-AgilePrimalDiamond" value: { - dps: 390283.99161 - tps: 1.92733786276e+06 - dtps: 169366.23469 - hps: 187113.77057 + dps: 392608.74332 + tps: 1.93678725484e+06 + dtps: 168215.07279 + hps: 187500.33171 } } dps_results: { key: "TestBlood-AllItems-AlacrityofXuen-103989" value: { - dps: 402986.07925 - tps: 2.00077037693e+06 - dtps: 147068.65934 - hps: 172221.19003 + dps: 403664.32021 + tps: 2.00363567782e+06 + dtps: 145540.70477 + hps: 171103.43298 } } dps_results: { key: "TestBlood-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 386766.87282 - tps: 1.91036268062e+06 - dtps: 150503.39076 - hps: 170529.34537 + dps: 389061.42089 + tps: 1.92415099646e+06 + dtps: 147884.6611 + hps: 168832.6604 } } dps_results: { key: "TestBlood-AllItems-ArrowflightMedallion-93258" value: { - dps: 392086.20553 - tps: 1.93920425697e+06 - dtps: 154406.7249 - hps: 176015.43035 + dps: 393955.05845 + tps: 1.94907626169e+06 + dtps: 152614.0459 + hps: 175150.25402 } } dps_results: { key: "TestBlood-AllItems-AssuranceofConsequence-105472" value: { - dps: 384703.38983 - tps: 1.91325828389e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385256.6756 + tps: 1.92219854471e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-AusterePrimalDiamond" value: { - dps: 385847.07845 - tps: 1.90545240733e+06 - dtps: 167580.93775 - hps: 187526.12495 + dps: 387696.296 + tps: 1.91350240684e+06 + dtps: 166266.46818 + hps: 187690.6202 } } dps_results: { key: "TestBlood-AllItems-BadJuju-96781" value: { - dps: 383550.72705 - tps: 1.89391885569e+06 - dtps: 154089.94326 - hps: 181174.46385 + dps: 386252.14117 + tps: 1.91107418706e+06 + dtps: 153294.02583 + hps: 180118.86024 } } dps_results: { key: "TestBlood-AllItems-BadgeofKypariZar-84079" value: { - dps: 388858.26337 - tps: 1.92785515321e+06 - dtps: 153831.8875 - hps: 178825.77354 + dps: 390202.26621 + tps: 1.94216369681e+06 + dtps: 152988.21568 + hps: 179020.37988 } } dps_results: { @@ -132,1513 +132,1513 @@ dps_results: { dps_results: { key: "TestBlood-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 397639.1164 - tps: 1.96297711272e+06 - dtps: 150436.32938 - hps: 173715.15252 + dps: 397926.54891 + tps: 1.9681154354e+06 + dtps: 149854.714 + hps: 172691.84485 } } dps_results: { key: "TestBlood-AllItems-BlossomofPureSnow-89081" value: { - dps: 390672.01011 - tps: 1.93299898796e+06 - dtps: 154718.71447 - hps: 176493.58487 + dps: 391979.15743 + tps: 1.93894431389e+06 + dtps: 153079.57739 + hps: 175876.11946 } } dps_results: { key: "TestBlood-AllItems-BottleofInfiniteStars-87057" value: { - dps: 383605.01843 - tps: 1.91108655979e+06 - dtps: 151829.8215 - hps: 178033.9918 + dps: 385563.26638 + tps: 1.92349240544e+06 + dtps: 150891.05174 + hps: 177560.74917 } } dps_results: { key: "TestBlood-AllItems-BraidofTenSongs-84072" value: { - dps: 389515.42848 - tps: 1.93490461812e+06 - dtps: 149537.18179 - hps: 172885.11452 + dps: 391930.58596 + tps: 1.94393145722e+06 + dtps: 151198.61782 + hps: 173761.64078 } } dps_results: { key: "TestBlood-AllItems-Brawler'sStatue-282039" value: { - dps: 391645.12099 - tps: 1.94335536678e+06 - dtps: 149641.82514 - hps: 171980.92041 + dps: 393283.50747 + tps: 1.95577802999e+06 + dtps: 148575.43037 + hps: 171686.78828 } } dps_results: { key: "TestBlood-AllItems-BreathoftheHydra-96827" value: { - dps: 393383.89026 - tps: 1.94460443633e+06 - dtps: 151072.29042 - hps: 173726.52921 + dps: 391738.32472 + tps: 1.93998557449e+06 + dtps: 151665.32177 + hps: 174402.17674 } } dps_results: { key: "TestBlood-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 383955.43888 - tps: 1.91334514227e+06 - dtps: 153662.59563 - hps: 176705.3857 + dps: 384002.9141 + tps: 1.92202067314e+06 + dtps: 152013.97561 + hps: 175473.20971 } } dps_results: { key: "TestBlood-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 400309.6364 - tps: 1.97034828979e+06 - dtps: 147505.13074 - hps: 173136.857 + dps: 400290.05739 + tps: 1.97740434405e+06 + dtps: 146816.54827 + hps: 172588.54467 } } dps_results: { key: "TestBlood-AllItems-BurningPrimalDiamond" value: { - dps: 390224.52512 - tps: 1.92696787091e+06 - dtps: 169366.23469 - hps: 187113.77057 + dps: 392549.27682 + tps: 1.936417263e+06 + dtps: 168215.07279 + hps: 187500.33171 } } dps_results: { key: "TestBlood-AllItems-CapacitivePrimalDiamond" value: { - dps: 409592.65832 - tps: 2.07151118352e+06 - dtps: 170324.96387 - hps: 188056.07201 + dps: 411118.6859 + tps: 2.07695520397e+06 + dtps: 169778.20183 + hps: 187992.64544 } } dps_results: { key: "TestBlood-AllItems-CarbonicCarbuncle-81138" value: { - dps: 392588.86739 - tps: 1.93400953517e+06 - dtps: 151623.76895 - hps: 172978.02821 + dps: 394368.7454 + tps: 1.95210725294e+06 + dtps: 150434.70031 + hps: 172132.58305 } } dps_results: { key: "TestBlood-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 393432.8412 - tps: 1.955779101e+06 - dtps: 153030.85793 - hps: 174361.0807 + dps: 393245.96505 + tps: 1.96049260291e+06 + dtps: 151772.93822 + hps: 173504.94514 } } dps_results: { key: "TestBlood-AllItems-CharmofTenSongs-84071" value: { - dps: 393933.33899 - tps: 1.93759567103e+06 - dtps: 152083.48039 - hps: 170912.62073 + dps: 395134.03756 + tps: 1.94621641217e+06 + dtps: 151325.4805 + hps: 171110.13718 } } dps_results: { key: "TestBlood-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 393541.97906 - tps: 1.92918277409e+06 - dtps: 151709.35202 - hps: 178584.54099 + dps: 394889.15874 + tps: 1.93302273015e+06 + dtps: 150800.17096 + hps: 178655.7925 } } dps_results: { key: "TestBlood-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 383681.56958 - tps: 1.89744295798e+06 - dtps: 150951.38732 - hps: 176610.97428 + dps: 385549.88528 + tps: 1.90882919786e+06 + dtps: 149885.74754 + hps: 177338.19825 } } dps_results: { key: "TestBlood-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 395993.83496 - tps: 1.95995715347e+06 - dtps: 152443.8817 - hps: 174292.14301 + dps: 396174.85242 + tps: 1.96747604129e+06 + dtps: 151326.71189 + hps: 173279.76932 } } dps_results: { key: "TestBlood-AllItems-CoreofDecency-87497" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-CourageousPrimalDiamond" value: { - dps: 387137.13991 - tps: 1.90692682374e+06 - dtps: 169366.23469 - hps: 187029.93512 + dps: 389431.00134 + tps: 1.91621992519e+06 + dtps: 168215.07279 + hps: 187415.81457 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 384431.27653 - tps: 1.91370014712e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385988.7041 + tps: 1.92698016179e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 387764.48574 - tps: 1.91995704532e+06 - dtps: 151803.08199 - hps: 174141.22113 + dps: 389630.2327 + tps: 1.93685402602e+06 + dtps: 149957.77481 + hps: 172504.65878 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 388209.81879 - tps: 1.93438715685e+06 - dtps: 153526.39762 - hps: 174454.55898 + dps: 388731.63748 + tps: 1.94325459769e+06 + dtps: 152216.67655 + hps: 173733.93271 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 383743.87642 - tps: 1.91229167674e+06 - dtps: 153526.39762 - hps: 174411.11971 + dps: 384726.9616 + tps: 1.92423550647e+06 + dtps: 152216.67655 + hps: 173688.12757 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 384227.51163 - tps: 1.91355496699e+06 - dtps: 153662.59563 - hps: 177169.78731 + dps: 384954.98813 + tps: 1.92215780078e+06 + dtps: 152487.85511 + hps: 176180.12767 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 384634.60048 - tps: 1.91377124846e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385151.10378 + tps: 1.92245403197e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 388384.72139 - tps: 1.92211555302e+06 - dtps: 151471.32646 - hps: 173765.06998 + dps: 388866.18252 + tps: 1.93188132018e+06 + dtps: 150249.90702 + hps: 173559.03067 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 384470.89919 - tps: 1.91370014712e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 386028.32676 + tps: 1.92698016179e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 388372.91989 - tps: 1.92348894294e+06 - dtps: 151611.42217 - hps: 174170.04738 + dps: 390047.62103 + tps: 1.93793904612e+06 + dtps: 150036.24658 + hps: 172561.65861 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 388786.51611 - tps: 1.93752529514e+06 - dtps: 153526.39762 - hps: 174529.70646 + dps: 389621.16132 + tps: 1.94543130039e+06 + dtps: 152353.51756 + hps: 174171.18746 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 383743.87642 - tps: 1.91229167674e+06 - dtps: 153526.39762 - hps: 174473.69669 + dps: 385092.3763 + tps: 1.92379815866e+06 + dtps: 152353.51756 + hps: 174112.81182 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 385399.49492 - tps: 1.92101551989e+06 - dtps: 153822.86345 - hps: 177017.12629 + dps: 386056.00099 + tps: 1.92921794959e+06 + dtps: 152648.12294 + hps: 176004.34617 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 384629.18501 - tps: 1.91377124846e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385148.60386 + tps: 1.92245403197e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 388754.7562 - tps: 1.9267744066e+06 - dtps: 149648.95326 - hps: 173530.9679 + dps: 389797.54156 + tps: 1.93981534941e+06 + dtps: 148949.47507 + hps: 173444.35814 } } dps_results: { key: "TestBlood-AllItems-CurseofHubris-105645" value: { - dps: 406476.7949 - tps: 2.00566127867e+06 - dtps: 154472.73785 - hps: 177433.66863 + dps: 408629.23818 + tps: 2.01524977804e+06 + dtps: 153543.2283 + hps: 177116.15895 } } dps_results: { key: "TestBlood-AllItems-CutstitcherMedallion-93255" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-Daelo'sFinalWords-87496" value: { - dps: 389089.86501 - tps: 1.9266419987e+06 - dtps: 150917.61977 - hps: 171990.61657 + dps: 389684.3566 + tps: 1.9313338505e+06 + dtps: 150138.99338 + hps: 172722.08674 } } dps_results: { key: "TestBlood-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 386751.56137 - tps: 1.91750401379e+06 - dtps: 152322.96525 - hps: 176939.24014 + dps: 387088.88987 + tps: 1.92282844392e+06 + dtps: 151639.01252 + hps: 176019.40499 } } dps_results: { key: "TestBlood-AllItems-DarkmistVortex-87172" value: { - dps: 393828.53489 - tps: 1.93479043691e+06 - dtps: 147929.48766 - hps: 169114.6149 + dps: 394167.98475 + tps: 1.93983131376e+06 + dtps: 147020.4032 + hps: 168774.3718 } } dps_results: { key: "TestBlood-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 384253.79098 - tps: 1.91405711609e+06 - dtps: 153440.91106 - hps: 175205.43018 + dps: 385615.2248 + tps: 1.92708396436e+06 + dtps: 151772.93822 + hps: 174053.83738 } } dps_results: { key: "TestBlood-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 390982.7945 - tps: 1.94015432591e+06 - dtps: 149757.1689 - hps: 174755.9933 + dps: 392090.10629 + tps: 1.95043833525e+06 + dtps: 148926.59151 + hps: 174107.11127 } } dps_results: { key: "TestBlood-AllItems-DestructivePrimalDiamond" value: { - dps: 389134.13758 - tps: 1.91614240385e+06 - dtps: 169366.23469 - hps: 187058.40191 + dps: 391172.53598 + tps: 1.92381077977e+06 + dtps: 168215.07279 + hps: 187444.28136 } } dps_results: { key: "TestBlood-AllItems-DisciplineofXuen-103986" value: { - dps: 387930.61072 - tps: 1.91350883252e+06 - dtps: 152277.62458 - hps: 180671.75336 + dps: 387166.53395 + tps: 1.91288745589e+06 + dtps: 152048.57202 + hps: 180958.1111 } } dps_results: { key: "TestBlood-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 386766.87282 - tps: 1.91036268062e+06 - dtps: 150503.39076 - hps: 170529.34537 + dps: 389061.42089 + tps: 1.92415099646e+06 + dtps: 147884.6611 + hps: 168832.6604 } } dps_results: { key: "TestBlood-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 384253.79098 - tps: 1.91405711609e+06 - dtps: 153440.91106 - hps: 175205.43018 + dps: 385615.2248 + tps: 1.92708396436e+06 + dtps: 151772.93822 + hps: 174053.83738 } } dps_results: { key: "TestBlood-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 386309.03466 - tps: 1.91549835737e+06 - dtps: 151472.13829 - hps: 173626.3502 + dps: 387988.94873 + tps: 1.92634040496e+06 + dtps: 150066.3244 + hps: 172267.24572 } } dps_results: { key: "TestBlood-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 385377.24428 - tps: 1.91251779748e+06 - dtps: 151730.76872 - hps: 174028.51479 + dps: 387874.67191 + tps: 1.93542969319e+06 + dtps: 150174.47258 + hps: 172957.66462 } } dps_results: { key: "TestBlood-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 384431.27653 - tps: 1.91370014712e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385988.7041 + tps: 1.92698016179e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 387764.48574 - tps: 1.91995704532e+06 - dtps: 151803.08199 - hps: 174141.22113 + dps: 389630.2327 + tps: 1.93685402602e+06 + dtps: 149957.77481 + hps: 172504.65878 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 388209.81879 - tps: 1.93438715685e+06 - dtps: 153526.39762 - hps: 174454.55898 + dps: 388731.63748 + tps: 1.94325459769e+06 + dtps: 152216.67655 + hps: 173733.93271 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 383743.87642 - tps: 1.91229167674e+06 - dtps: 153526.39762 - hps: 174411.11971 + dps: 384726.9616 + tps: 1.92423550647e+06 + dtps: 152216.67655 + hps: 173688.12757 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 384227.51163 - tps: 1.91355496699e+06 - dtps: 153662.59563 - hps: 177169.78731 + dps: 384954.98813 + tps: 1.92215780078e+06 + dtps: 152487.85511 + hps: 176180.12767 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 384628.15061 - tps: 1.91363130687e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385138.38928 + tps: 1.92231409038e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 387836.25952 - tps: 1.92232742751e+06 - dtps: 150881.42898 - hps: 173500.04104 + dps: 388903.36037 + tps: 1.92706142027e+06 + dtps: 149110.83804 + hps: 172233.68922 } } dps_results: { key: "TestBlood-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 386309.03466 - tps: 1.91549835737e+06 - dtps: 151472.13829 - hps: 173626.3502 + dps: 387988.94873 + tps: 1.92634040496e+06 + dtps: 150066.3244 + hps: 172267.24572 } } dps_results: { key: "TestBlood-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-EffulgentPrimalDiamond" value: { - dps: 387448.23628 - tps: 1.91164588605e+06 - dtps: 169130.70471 - hps: 187509.31495 + dps: 389312.10129 + tps: 1.91790044618e+06 + dtps: 167891.5202 + hps: 187526.91665 } } dps_results: { key: "TestBlood-AllItems-EmberPrimalDiamond" value: { - dps: 387137.13991 - tps: 1.90692682374e+06 - dtps: 169366.23469 - hps: 187029.93512 + dps: 389431.00134 + tps: 1.91621992519e+06 + dtps: 168215.07279 + hps: 187415.81457 } } dps_results: { key: "TestBlood-AllItems-EmblemofKypariZar-84077" value: { - dps: 395151.66247 - tps: 1.9519013016e+06 - dtps: 152965.70779 - hps: 174170.23761 + dps: 395978.29616 + tps: 1.95747384392e+06 + dtps: 152553.96133 + hps: 173850.75225 } } dps_results: { key: "TestBlood-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 389797.73837 - tps: 1.92388443309e+06 - dtps: 151419.69128 - hps: 176139.83002 + dps: 390982.24061 + tps: 1.93019186115e+06 + dtps: 150242.58153 + hps: 174393.63221 } } dps_results: { key: "TestBlood-AllItems-EmptyFruitBarrel-81133" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 383321.63183 - tps: 1.90915857172e+06 - dtps: 156038.39673 - hps: 173042.82106 + dps: 383796.10902 + tps: 1.91280466501e+06 + dtps: 154765.58255 + hps: 171820.67323 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 380478.67813 - tps: 1.89454785376e+06 - dtps: 158290.66677 - hps: 172285.00744 + dps: 380553.69021 + tps: 1.89597316622e+06 + dtps: 157616.27872 + hps: 172652.94608 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 382054.13048 - tps: 1.90523626806e+06 - dtps: 156185.62356 - hps: 172057.42889 + dps: 382441.88996 + tps: 1.90646257674e+06 + dtps: 154694.81178 + hps: 170951.19317 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 381592.33682 - tps: 1.90254896783e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380635.02229 + tps: 1.90226490046e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 387205.96548 - tps: 1.93231847354e+06 - dtps: 154775.66781 - hps: 171354.29685 + dps: 389520.6412 + tps: 1.94360292449e+06 + dtps: 154626.33745 + hps: 170918.92079 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 384610.30324 - tps: 1.90330028279e+06 - dtps: 158415.92539 - hps: 174215.79948 + dps: 386108.40465 + tps: 1.91192621716e+06 + dtps: 157943.38788 + hps: 173684.84539 } } dps_results: { key: "TestBlood-AllItems-EnigmaticPrimalDiamond" value: { - dps: 389134.13758 - tps: 1.91614240385e+06 - dtps: 169366.23469 - hps: 187058.40191 + dps: 391172.53598 + tps: 1.92381077977e+06 + dtps: 168215.07279 + hps: 187444.28136 } } dps_results: { key: "TestBlood-AllItems-EssenceofTerror-87175" value: { - dps: 391499.66816 - tps: 1.91903094404e+06 - dtps: 149415.40984 - hps: 173632.65197 + dps: 391581.40633 + tps: 1.92709782299e+06 + dtps: 148323.38298 + hps: 173107.90125 } } dps_results: { key: "TestBlood-AllItems-EternalPrimalDiamond" value: { - dps: 388454.31743 - tps: 1.91503510511e+06 - dtps: 168468.38409 - hps: 187168.19129 + dps: 389753.4921 + tps: 1.92061625738e+06 + dtps: 166785.67225 + hps: 185542.36039 } } dps_results: { key: "TestBlood-AllItems-EvilEyeofGalakras-105491" value: { - dps: 395116.48827 - tps: 1.95759506634e+06 - dtps: 146872.43206 - hps: 170457.54753 + dps: 395486.75146 + tps: 1.96046263937e+06 + dtps: 145163.48184 + hps: 169993.67918 } } dps_results: { key: "TestBlood-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 397601.98304 - tps: 1.94206442438e+06 - dtps: 147201.90302 - hps: 170132.31995 + dps: 398843.51854 + tps: 1.9492944596e+06 + dtps: 146757.8147 + hps: 169883.74777 } } dps_results: { key: "TestBlood-AllItems-FearwurmBadge-84074" value: { - dps: 396644.66139 - tps: 1.95410439402e+06 - dtps: 152403.16601 - hps: 173051.28031 + dps: 395288.96781 + tps: 1.95252272624e+06 + dtps: 151541.36051 + hps: 173127.20182 } } dps_results: { key: "TestBlood-AllItems-FearwurmRelic-84070" value: { - dps: 397526.9787 - tps: 1.96521154056e+06 - dtps: 151014.76867 - hps: 170757.73057 + dps: 399619.7724 + tps: 1.97361261126e+06 + dtps: 149920.83252 + hps: 169196.89301 } } dps_results: { key: "TestBlood-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 390976.62772 - tps: 1.92483304885e+06 - dtps: 152231.92474 - hps: 178644.4729 + dps: 392261.07356 + tps: 1.93333162107e+06 + dtps: 151536.54972 + hps: 179206.4653 } } dps_results: { key: "TestBlood-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 384780.96355 - tps: 1.89944033131e+06 - dtps: 150818.07815 - hps: 177539.02755 + dps: 386231.31165 + tps: 1.9144655392e+06 + dtps: 150585.9587 + hps: 177598.79603 } } dps_results: { key: "TestBlood-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 378635.17334 - tps: 1.87326454024e+06 - dtps: 157456.46232 - hps: 176162.49446 + dps: 380953.97 + tps: 1.88571092096e+06 + dtps: 155225.06132 + hps: 175239.55974 } } dps_results: { key: "TestBlood-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 387314.93863 - tps: 1.9126831236e+06 - dtps: 153258.97571 - hps: 174283.38557 + dps: 387394.90498 + tps: 1.9145872039e+06 + dtps: 151502.78249 + hps: 173745.99426 } } dps_results: { key: "TestBlood-AllItems-FlashingSteelTalisman-81265" value: { - dps: 388789.2547 - tps: 1.91787401111e+06 - dtps: 152862.31244 - hps: 173968.03647 + dps: 388200.46817 + tps: 1.91789182212e+06 + dtps: 151794.9437 + hps: 173774.38169 } } dps_results: { key: "TestBlood-AllItems-FleetPrimalDiamond" value: { - dps: 387106.71997 - tps: 1.90553427681e+06 - dtps: 169500.76146 - hps: 191610.91455 + dps: 387877.94776 + tps: 1.91053320473e+06 + dtps: 168234.34 + hps: 190845.57901 } } dps_results: { key: "TestBlood-AllItems-ForlornPrimalDiamond" value: { - dps: 387137.13991 - tps: 1.90692682374e+06 - dtps: 169366.23469 - hps: 187029.93512 + dps: 389431.00134 + tps: 1.91621992519e+06 + dtps: 168215.07279 + hps: 187415.81457 } } dps_results: { key: "TestBlood-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 383437.06752 - tps: 1.88836284521e+06 - dtps: 154612.11576 - hps: 182695.46662 + dps: 385822.79552 + tps: 1.90510611337e+06 + dtps: 153817.10855 + hps: 181160.4462 } } dps_results: { key: "TestBlood-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Fusion-FireCore-105459" value: { - dps: 397991.15304 - tps: 1.95434776967e+06 - dtps: 145079.26284 - hps: 168392.40107 + dps: 399437.62235 + tps: 1.95868205807e+06 + dtps: 144004.30969 + hps: 168870.28934 } } dps_results: { key: "TestBlood-AllItems-GazeoftheTwins-96915" value: { - dps: 398198.23579 - tps: 1.96249867709e+06 - dtps: 148928.18526 - hps: 172280.99169 + dps: 399213.81499 + tps: 1.97180445265e+06 + dtps: 148145.02837 + hps: 172578.34031 } } dps_results: { key: "TestBlood-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 388331.95361 - tps: 1.93159991575e+06 - dtps: 153030.85793 - hps: 174287.14653 + dps: 388388.97736 + tps: 1.93719441706e+06 + dtps: 151772.93822 + hps: 173418.42405 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 384590.0581 - tps: 1.91325982319e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 386251.93723 + tps: 1.92511156174e+06 + dtps: 151665.15321 + hps: 173371.50681 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 390055.53339 - tps: 1.92871896044e+06 - dtps: 149002.82745 - hps: 172769.35996 + dps: 391156.7552 + tps: 1.93471673666e+06 + dtps: 147326.78319 + hps: 171600.49983 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 392874.61027 - tps: 1.95494087577e+06 - dtps: 153043.58484 - hps: 175264.59367 + dps: 393469.86163 + tps: 1.96278690778e+06 + dtps: 152391.32715 + hps: 175235.64814 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 385171.78865 - tps: 1.91690626929e+06 - dtps: 153043.58484 - hps: 175183.89126 + dps: 386300.28435 + tps: 1.92787190969e+06 + dtps: 152391.32715 + hps: 175152.57985 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 387443.44579 - tps: 1.92554102847e+06 - dtps: 153381.17964 - hps: 177914.30307 + dps: 387996.13447 + tps: 1.92983316308e+06 + dtps: 152767.88361 + hps: 177101.66245 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 384755.44722 - tps: 1.9142848684e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385293.77562 + tps: 1.92289209301e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 391887.87569 - tps: 1.92881303545e+06 - dtps: 148169.83048 - hps: 172252.13629 + dps: 392122.64191 + tps: 1.93420534501e+06 + dtps: 147154.2976 + hps: 171874.48201 } } dps_results: { key: "TestBlood-AllItems-Haromm'sTalisman-105527" value: { - dps: 401524.94841 - tps: 2.03382937255e+06 - dtps: 153030.85793 - hps: 174158.40087 + dps: 402640.3352 + tps: 2.04434109783e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 392708.22613 - tps: 1.93279206726e+06 - dtps: 153468.14257 - hps: 174012.57821 + dps: 393142.99918 + tps: 1.93143493346e+06 + dtps: 151631.86156 + hps: 173254.97125 } } dps_results: { key: "TestBlood-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 389699.4159 - tps: 1.92134722792e+06 - dtps: 151335.42388 - hps: 175136.99586 + dps: 390531.53946 + tps: 1.92842843772e+06 + dtps: 149629.65573 + hps: 173462.71671 } } dps_results: { key: "TestBlood-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 384763.83891 - tps: 1.9016888595e+06 - dtps: 150231.60605 - hps: 178590.70116 + dps: 386663.68558 + tps: 1.91564759033e+06 + dtps: 149850.09855 + hps: 178637.62352 } } dps_results: { key: "TestBlood-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 392693.54548 - tps: 1.94253947937e+06 - dtps: 149634.08871 - hps: 172701.8542 + dps: 393601.74829 + tps: 1.9486436629e+06 + dtps: 148287.46783 + hps: 172255.20525 } } dps_results: { key: "TestBlood-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 386094.95181 - tps: 1.91304248086e+06 - dtps: 148293.02576 - hps: 176160.22191 + dps: 386625.96321 + tps: 1.91373311732e+06 + dtps: 148190.09173 + hps: 176871.14027 } } dps_results: { key: "TestBlood-AllItems-HeartofFire-81181" value: { - dps: 383745.49898 - tps: 1.91259294321e+06 - dtps: 152173.40981 - hps: 176728.8906 + dps: 385200.11128 + tps: 1.92691138667e+06 + dtps: 151361.71571 + hps: 176575.74543 } } dps_results: { key: "TestBlood-AllItems-HeartwarmerMedallion-93260" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-HelmbreakerMedallion-93261" value: { - dps: 393677.54506 - tps: 1.94671499015e+06 - dtps: 150551.81075 - hps: 173964.1965 + dps: 394284.10689 + tps: 1.95142826028e+06 + dtps: 149363.03995 + hps: 173226.96925 } } dps_results: { key: "TestBlood-AllItems-Horridon'sLastGasp-96757" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-ImpassivePrimalDiamond" value: { - dps: 389134.13758 - tps: 1.91614240385e+06 - dtps: 169366.23469 - hps: 187058.40191 + dps: 391172.53598 + tps: 1.92381077977e+06 + dtps: 168215.07279 + hps: 187444.28136 } } dps_results: { key: "TestBlood-AllItems-IndomitablePrimalDiamond" value: { - dps: 386182.14262 - tps: 1.92027776671e+06 - dtps: 152322.96525 - hps: 176373.11937 + dps: 386892.69011 + tps: 1.92728158263e+06 + dtps: 151639.01252 + hps: 175572.11199 } } dps_results: { key: "TestBlood-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 388947.31266 - tps: 1.93411340032e+06 - dtps: 151055.60086 - hps: 172757.83792 + dps: 390389.29162 + tps: 1.9461984383e+06 + dtps: 150123.65234 + hps: 171919.30834 } } dps_results: { key: "TestBlood-AllItems-InsigniaofKypariZar-84078" value: { - dps: 390880.33225 - tps: 1.94353096209e+06 - dtps: 149958.90454 - hps: 172588.50584 + dps: 391128.05968 + tps: 1.95306251873e+06 + dtps: 149217.01728 + hps: 172562.26231 } } dps_results: { key: "TestBlood-AllItems-IronBellyWok-89083" value: { - dps: 396112.59115 - tps: 1.9468639793e+06 - dtps: 150445.14743 - hps: 173803.18014 + dps: 396718.35154 + tps: 1.94345273276e+06 + dtps: 149064.30147 + hps: 172892.53257 } } dps_results: { key: "TestBlood-AllItems-IronProtectorTalisman-85181" value: { - dps: 388449.63283 - tps: 1.93301589473e+06 - dtps: 151248.01926 - hps: 175766.20757 + dps: 388655.58575 + tps: 1.93565959725e+06 + dtps: 149829.76925 + hps: 175201.12969 } } dps_results: { key: "TestBlood-AllItems-JadeBanditFigurine-86772" value: { - dps: 394132.56871 - tps: 1.94834997995e+06 - dtps: 152125.21371 - hps: 172280.75542 + dps: 394841.15722 + tps: 1.94855803621e+06 + dtps: 150137.80864 + hps: 169925.90555 } } dps_results: { key: "TestBlood-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 396898.84884 - tps: 1.9495830464e+06 - dtps: 150373.39088 - hps: 172639.77287 + dps: 396677.49513 + tps: 1.94648313074e+06 + dtps: 148334.90603 + hps: 170767.17256 } } dps_results: { key: "TestBlood-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 390357.77091 - tps: 1.93082912949e+06 - dtps: 154718.71447 - hps: 176408.17646 + dps: 391645.86305 + tps: 1.93668789219e+06 + dtps: 153079.57739 + hps: 175790.71106 } } dps_results: { key: "TestBlood-AllItems-JadeWarlordFigurine-86775" value: { - dps: 385928.46027 - tps: 1.92025544654e+06 - dtps: 153662.21471 - hps: 177762.04221 + dps: 386414.14446 + tps: 1.92805825606e+06 + dtps: 152995.37911 + hps: 177114.84307 } } dps_results: { key: "TestBlood-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 392347.55218 - tps: 1.94078951066e+06 - dtps: 149554.05278 - hps: 172553.61842 + dps: 394031.64974 + tps: 1.95797050632e+06 + dtps: 149521.34548 + hps: 172975.23776 } } dps_results: { key: "TestBlood-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 394089.67414 - tps: 1.95254043743e+06 - dtps: 146845.58605 - hps: 180116.19256 + dps: 394911.29625 + tps: 1.95702796428e+06 + dtps: 146388.32738 + hps: 179721.47523 } } dps_results: { key: "TestBlood-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 400800.15489 - tps: 2.02853737724e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 401672.53 + tps: 2.03971126342e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 385377.24428 - tps: 1.91251779748e+06 - dtps: 151730.76872 - hps: 174028.51479 + dps: 387874.67191 + tps: 1.93542969319e+06 + dtps: 150174.47258 + hps: 172957.66462 } } dps_results: { key: "TestBlood-AllItems-KnotofTenSongs-84073" value: { - dps: 391163.77145 - tps: 1.93507451666e+06 - dtps: 149834.29417 - hps: 172284.19926 + dps: 392004.34392 + tps: 1.94136485205e+06 + dtps: 149095.08206 + hps: 171620.78029 } } dps_results: { key: "TestBlood-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385443.30526 + tps: 1.922601182e+06 + dtps: 151724.14338 + hps: 173177.6501 } } dps_results: { key: "TestBlood-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 386168.99854 - tps: 1.92186918462e+06 - dtps: 153438.14961 - hps: 178168.30532 + dps: 387154.18604 + tps: 1.93096543455e+06 + dtps: 153006.71566 + hps: 177845.34527 } } dps_results: { key: "TestBlood-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 394002.16323 - tps: 1.94474704268e+06 - dtps: 147200.81732 - hps: 170257.26622 + dps: 395949.70779 + tps: 1.95245292321e+06 + dtps: 146253.18272 + hps: 169727.03763 } } dps_results: { key: "TestBlood-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 392208.91851 - tps: 1.9280028778e+06 - dtps: 151913.14383 - hps: 174714.51716 + dps: 394252.18764 + tps: 1.94045148229e+06 + dtps: 150842.90454 + hps: 173449.70524 } } dps_results: { key: "TestBlood-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 382946.58648 - tps: 1.9094960641e+06 - dtps: 152310.37992 - hps: 178180.09973 + dps: 385420.39043 + tps: 1.92740444433e+06 + dtps: 151522.19238 + hps: 178173.22984 } } dps_results: { key: "TestBlood-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 385722.58072 - tps: 1.90421803998e+06 - dtps: 151331.28052 - hps: 178125.67497 + dps: 387396.26693 + tps: 1.91959477494e+06 + dtps: 150414.03085 + hps: 177675.49605 } } dps_results: { key: "TestBlood-AllItems-LightoftheCosmos-87065" value: { - dps: 389796.25761 - tps: 1.93140389958e+06 - dtps: 152750.3963 - hps: 173927.89379 + dps: 390270.46172 + tps: 1.93001041364e+06 + dtps: 150692.39576 + hps: 172780.76768 } } dps_results: { key: "TestBlood-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 386751.56137 - tps: 1.91750401379e+06 - dtps: 152322.96525 - hps: 176939.24014 + dps: 387088.88987 + tps: 1.92282844392e+06 + dtps: 151639.01252 + hps: 176019.40499 } } dps_results: { key: "TestBlood-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 384470.89919 - tps: 1.91370014712e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 386028.32676 + tps: 1.92698016179e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 388372.91989 - tps: 1.92348894294e+06 - dtps: 151611.42217 - hps: 174170.04738 + dps: 390047.62103 + tps: 1.93793904612e+06 + dtps: 150036.24658 + hps: 172561.65861 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 388786.51611 - tps: 1.93752529514e+06 - dtps: 153526.39762 - hps: 174529.70646 + dps: 389621.16132 + tps: 1.94543130039e+06 + dtps: 152353.51756 + hps: 174171.18746 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 383743.87642 - tps: 1.91229167674e+06 - dtps: 153526.39762 - hps: 174473.69669 + dps: 385092.3763 + tps: 1.92379815866e+06 + dtps: 152353.51756 + hps: 174112.81182 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 385399.49492 - tps: 1.92101551989e+06 - dtps: 153822.86345 - hps: 177017.12629 + dps: 386056.00099 + tps: 1.92921794959e+06 + dtps: 152648.12294 + hps: 176004.34617 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 384530.36865 - tps: 1.91299895404e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385114.46805 + tps: 1.92219876262e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 388609.78704 - tps: 1.92541000199e+06 - dtps: 149728.27751 - hps: 173089.36859 + dps: 390000.04675 + tps: 1.9369983036e+06 + dtps: 148665.71909 + hps: 172217.28836 } } dps_results: { key: "TestBlood-AllItems-MarkoftheCatacombs-83731" value: { - dps: 389664.94293 - tps: 1.93714000499e+06 - dtps: 154357.29224 - hps: 180054.53488 + dps: 388487.10865 + tps: 1.93216242193e+06 + dtps: 152375.51972 + hps: 178524.85846 } } dps_results: { key: "TestBlood-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 387711.87799 - tps: 1.92300166732e+06 - dtps: 150198.58181 - hps: 173082.95121 + dps: 388264.49516 + tps: 1.93450154039e+06 + dtps: 149136.97991 + hps: 172107.03363 } } dps_results: { key: "TestBlood-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 389341.04577 - tps: 1.92742977484e+06 - dtps: 152620.07351 - hps: 176630.40131 + dps: 391155.85849 + tps: 1.94330918531e+06 + dtps: 150682.08459 + hps: 175560.38277 } } dps_results: { key: "TestBlood-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-MirrorScope-4700" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 391370.22678 - tps: 1.9311264044e+06 - dtps: 150363.62665 - hps: 174080.68169 + dps: 392236.37262 + tps: 1.93750599272e+06 + dtps: 149891.92528 + hps: 173878.00943 } } dps_results: { key: "TestBlood-AllItems-MistdancerDefenderStone-101087" value: { - dps: 384778.21482 - tps: 1.90986215103e+06 - dtps: 151048.12864 - hps: 181349.92187 + dps: 386915.26301 + tps: 1.9240995621e+06 + dtps: 150049.57013 + hps: 180414.71609 } } dps_results: { key: "TestBlood-AllItems-MistdancerIdolofRage-101113" value: { - dps: 383410.45129 - tps: 1.91216002663e+06 - dtps: 152175.41857 - hps: 178109.35618 + dps: 385515.38399 + tps: 1.92970721721e+06 + dtps: 151387.23102 + hps: 177917.47016 } } dps_results: { key: "TestBlood-AllItems-MistdancerStoneofRage-101117" value: { - dps: 387376.32347 - tps: 1.91603526981e+06 - dtps: 152113.7365 - hps: 180409.6125 + dps: 387501.3765 + tps: 1.92126081891e+06 + dtps: 150634.12968 + hps: 178772.35133 } } dps_results: { key: "TestBlood-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-MithrilWristwatch-282033" value: { - dps: 392182.41474 - tps: 1.95020775608e+06 - dtps: 153030.85793 - hps: 174324.40968 + dps: 392152.5905 + tps: 1.95615813365e+06 + dtps: 151772.93822 + hps: 173455.68719 } } dps_results: { key: "TestBlood-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 392586.55762 - tps: 1.93912596581e+06 - dtps: 151524.83166 - hps: 179706.91831 + dps: 393349.04635 + tps: 1.94531743948e+06 + dtps: 150917.57423 + hps: 179782.42169 } } dps_results: { key: "TestBlood-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 384303.6044 - tps: 1.9004768625e+06 - dtps: 150740.49667 - hps: 178455.11502 + dps: 385916.16682 + tps: 1.9176051023e+06 + dtps: 150508.37722 + hps: 178470.56005 } } dps_results: { key: "TestBlood-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-NitroBoosts-4223" value: { - dps: 386182.14262 - tps: 1.92027776671e+06 - dtps: 152322.96525 - hps: 176373.11937 + dps: 386892.69011 + tps: 1.92728158263e+06 + dtps: 151639.01252 + hps: 175572.11199 } } dps_results: { key: "TestBlood-AllItems-OathswornDefenderIdol-101303" value: { - dps: 391447.39857 - tps: 1.93305496815e+06 - dtps: 151915.56443 - hps: 176047.61973 + dps: 392830.54858 + tps: 1.94023442869e+06 + dtps: 150904.26395 + hps: 175056.41222 } } dps_results: { key: "TestBlood-AllItems-OathswornDefenderStone-101306" value: { - dps: 384270.81368 - tps: 1.907624015e+06 - dtps: 150288.20894 - hps: 177995.97454 + dps: 386755.50505 + tps: 1.92135522171e+06 + dtps: 149499.08466 + hps: 177293.10162 } } dps_results: { key: "TestBlood-AllItems-OathswornIdolofBattle-101295" value: { - dps: 392797.82929 - tps: 1.9452018479e+06 - dtps: 150752.19608 - hps: 173349.75756 + dps: 393070.66654 + tps: 1.94871686923e+06 + dtps: 150090.69565 + hps: 173404.85215 } } dps_results: { key: "TestBlood-AllItems-OathswornStoneofBattle-101294" value: { - dps: 386280.5911 - tps: 1.91462988601e+06 - dtps: 148534.44886 - hps: 177367.23643 + dps: 386884.68524 + tps: 1.91948545429e+06 + dtps: 147760.02474 + hps: 177081.2785 } } dps_results: { @@ -1680,1000 +1680,1000 @@ dps_results: { dps_results: { key: "TestBlood-AllItems-PouchofWhiteAsh-103639" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385443.30526 + tps: 1.922601182e+06 + dtps: 151724.14338 + hps: 173177.6501 } } dps_results: { key: "TestBlood-AllItems-PowerfulPrimalDiamond" value: { - dps: 387448.23628 - tps: 1.91164588605e+06 - dtps: 169130.70471 - hps: 187509.31495 + dps: 389312.10129 + tps: 1.91790044618e+06 + dtps: 167891.5202 + hps: 187526.91665 } } dps_results: { key: "TestBlood-AllItems-PriceofProgress-81266" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 384690.63551 - tps: 1.91373505454e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 386352.51465 + tps: 1.92558679309e+06 + dtps: 151665.15321 + hps: 173371.50681 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 392004.50953 - tps: 1.93490975245e+06 - dtps: 149240.30926 - hps: 173646.08064 + dps: 392477.34607 + tps: 1.93496289827e+06 + dtps: 146478.6886 + hps: 171561.03027 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 395288.85468 - tps: 1.96516570532e+06 - dtps: 153043.58484 - hps: 175481.11323 + dps: 395726.06809 + tps: 1.97179571742e+06 + dtps: 152391.32715 + hps: 175440.80386 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 385171.78865 - tps: 1.91690626929e+06 - dtps: 153043.58484 - hps: 175363.73979 + dps: 386300.28435 + tps: 1.92787190969e+06 + dtps: 152391.32715 + hps: 175308.47762 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 387548.70182 - tps: 1.92358606016e+06 - dtps: 153290.47489 - hps: 178478.13673 + dps: 387462.92765 + tps: 1.92648183085e+06 + dtps: 152964.14974 + hps: 177292.97859 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 384958.42555 - tps: 1.91546913407e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385424.11203 + tps: 1.92356786526e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 395075.90435 - tps: 1.94223010923e+06 - dtps: 147409.22247 - hps: 174171.70294 + dps: 396367.98622 + tps: 1.94891212534e+06 + dtps: 146870.63272 + hps: 173442.45659 } } dps_results: { key: "TestBlood-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 399056.12119 - tps: 1.96900134467e+06 - dtps: 149540.09938 - hps: 173360.49445 + dps: 399887.70568 + tps: 1.97525185882e+06 + dtps: 147857.4005 + hps: 171968.3076 } } dps_results: { key: "TestBlood-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 394727.22187 - tps: 1.96482548307e+06 - dtps: 151326.7193 - hps: 178808.69458 + dps: 393554.96468 + tps: 1.95584407067e+06 + dtps: 150180.83803 + hps: 176503.64306 } } dps_results: { key: "TestBlood-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 394727.22187 - tps: 1.96482548307e+06 - dtps: 151326.7193 - hps: 178808.69458 + dps: 393554.96468 + tps: 1.95584407067e+06 + dtps: 150180.83803 + hps: 176503.64306 } } dps_results: { key: "TestBlood-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 360842.20869 - tps: 1.75192844476e+06 - dtps: 157318.24368 - hps: 176667.90088 + dps: 361063.89403 + tps: 1.75393010022e+06 + dtps: 157017.52009 + hps: 176090.54047 } } dps_results: { key: "TestBlood-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 363629.60474 - tps: 1.75740466584e+06 - dtps: 151672.78497 - hps: 171846.4392 + dps: 364371.05807 + tps: 1.76334637891e+06 + dtps: 150072.89182 + hps: 171130.98284 } } dps_results: { key: "TestBlood-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-RelicofChi-Ji-79330" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-RelicofKypariZar-84075" value: { - dps: 396477.52911 - tps: 1.96162623992e+06 - dtps: 152623.61381 - hps: 175501.25421 + dps: 395991.21168 + tps: 1.95910055493e+06 + dtps: 151114.18602 + hps: 174571.16938 } } dps_results: { key: "TestBlood-AllItems-RelicofNiuzao-79329" value: { - dps: 386149.28104 - tps: 1.92240005336e+06 - dtps: 153662.21471 - hps: 176713.60437 + dps: 386400.15767 + tps: 1.92837148319e+06 + dtps: 152235.78736 + hps: 175501.25437 } } dps_results: { key: "TestBlood-AllItems-RelicofXuen-79327" value: { - dps: 389613.50002 - tps: 1.92067686821e+06 - dtps: 149829.94442 - hps: 171758.88214 + dps: 390904.6252 + tps: 1.93175332304e+06 + dtps: 148754.10729 + hps: 170946.68677 } } dps_results: { key: "TestBlood-AllItems-RelicofXuen-79328" value: { - dps: 384635.06334 - tps: 1.91443607571e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385225.87829 + tps: 1.9236454924e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-RelicofYu'lon-79331" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 393346.00275 - tps: 1.9389029737e+06 - dtps: 150463.26442 - hps: 173373.62791 + dps: 395949.10333 + tps: 1.95873160622e+06 + dtps: 150715.04082 + hps: 174441.67121 } } dps_results: { key: "TestBlood-AllItems-ResolveofNiuzao-103990" value: { - dps: 382852.33144 - tps: 1.89235212536e+06 - dtps: 153493.03797 - hps: 180691.73104 + dps: 385291.68537 + tps: 1.9073067215e+06 + dtps: 152423.76172 + hps: 178851.93935 } } dps_results: { key: "TestBlood-AllItems-ReverberatingPrimalDiamond" value: { - dps: 391580.95395 - tps: 1.93289180576e+06 - dtps: 168618.82269 - hps: 186835.79536 + dps: 393358.166 + tps: 1.94269399169e+06 + dtps: 167576.02209 + hps: 186293.53345 } } dps_results: { key: "TestBlood-AllItems-RevitalizingPrimalDiamond" value: { - dps: 390224.52512 - tps: 1.92696787091e+06 - dtps: 169366.23469 - hps: 187113.77057 + dps: 392549.27682 + tps: 1.936417263e+06 + dtps: 168215.07279 + hps: 187500.33171 } } dps_results: { key: "TestBlood-AllItems-RuneofCinderglacier-3369" value: { - dps: 386771.65805 - tps: 1.93449490101e+06 - dtps: 157707.12266 - hps: 173396.36873 + dps: 385999.50185 + tps: 1.93581278461e+06 + dtps: 157172.78807 + hps: 173289.36069 } } dps_results: { key: "TestBlood-AllItems-RuneofRazorice-3370" value: { - dps: 389081.48315 - tps: 1.95184568101e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 388212.66678 + tps: 1.95198788305e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-RuneofRe-Origination-96918" value: { - dps: 410362.64882 - tps: 2.04319076033e+06 - dtps: 149711.96864 - hps: 162695.5956 + dps: 413633.51078 + tps: 2.05897123758e+06 + dtps: 148942.85794 + hps: 163074.27086 } } dps_results: { key: "TestBlood-AllItems-RuneofSpellbreaking-3595" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-RuneofSpellshattering-3367" value: { - dps: 381137.50709 - tps: 1.89623784857e+06 - dtps: 158060.4137 - hps: 172748.51118 + dps: 380224.68429 + tps: 1.89607200562e+06 + dtps: 156990.43457 + hps: 172329.02567 } } dps_results: { key: "TestBlood-AllItems-RuneofSwordbreaking-3594" value: { - dps: 380378.43495 - tps: 1.89165062998e+06 - dtps: 152207.17702 - hps: 169836.57529 + dps: 380474.91168 + tps: 1.89394911374e+06 + dtps: 151642.13887 + hps: 168671.76943 } } dps_results: { key: "TestBlood-AllItems-RuneofSwordshattering-3365" value: { - dps: 379993.92003 - tps: 1.88728035431e+06 - dtps: 149079.0215 - hps: 168093.23134 + dps: 380838.62126 + tps: 1.89312214968e+06 + dtps: 147677.56991 + hps: 167314.50493 } } dps_results: { key: "TestBlood-AllItems-RuneoftheNerubianCarapace-3883" value: { - dps: 380308.01706 - tps: 1.89441351971e+06 - dtps: 157373.22946 - hps: 172906.03033 + dps: 380824.02775 + tps: 1.89658320658e+06 + dtps: 156351.17494 + hps: 172286.91469 } } dps_results: { key: "TestBlood-AllItems-RuneoftheStoneskinGargoyle-3847" value: { - dps: 381656.89739 - tps: 1.90296891064e+06 - dtps: 155561.75354 - hps: 172310.78344 + dps: 381796.03029 + tps: 1.9042080054e+06 + dtps: 154395.44492 + hps: 171257.29102 } } dps_results: { key: "TestBlood-AllItems-SI:7Operative'sManual-92784" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385443.30526 + tps: 1.922601182e+06 + dtps: 151724.14338 + hps: 173177.6501 } } dps_results: { key: "TestBlood-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384709.87633 + tps: 1.91990252167e+06 + dtps: 151416.83238 + hps: 173320.21049 } } dps_results: { key: "TestBlood-AllItems-SearingWords-81267" value: { - dps: 389151.29262 - tps: 1.93627300881e+06 - dtps: 153030.85793 - hps: 174287.14653 + dps: 389090.65699 + tps: 1.94109094784e+06 + dtps: 151772.93822 + hps: 173418.42405 } } dps_results: { key: "TestBlood-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 390720.2721 - tps: 1.93572133754e+06 - dtps: 150020.37809 - hps: 172128.82889 + dps: 393508.18502 + tps: 1.94515191592e+06 + dtps: 149724.96091 + hps: 173081.91007 } } dps_results: { key: "TestBlood-AllItems-SigilofCompassion-83736" value: { - dps: 384634.05524 - tps: 1.91414036485e+06 - dtps: 153555.52554 - hps: 177610.93181 + dps: 386184.3294 + tps: 1.92973497207e+06 + dtps: 152408.37779 + hps: 177098.6686 } } dps_results: { key: "TestBlood-AllItems-SigilofDevotion-83740" value: { - dps: 387895.33485 - tps: 1.93514615677e+06 - dtps: 153124.88534 - hps: 177850.38544 + dps: 388855.43667 + tps: 1.93841555972e+06 + dtps: 152038.87051 + hps: 177675.67147 } } dps_results: { key: "TestBlood-AllItems-SigilofFidelity-83737" value: { - dps: 394901.16552 - tps: 1.94194589836e+06 - dtps: 150729.06185 - hps: 171337.12685 + dps: 395946.63361 + tps: 1.9468701006e+06 + dtps: 148738.38932 + hps: 170770.07138 } } dps_results: { key: "TestBlood-AllItems-SigilofGrace-83738" value: { - dps: 388298.94401 - tps: 1.91540143898e+06 - dtps: 151267.1234 - hps: 174575.89693 + dps: 390209.31412 + tps: 1.92808900073e+06 + dtps: 150270.77883 + hps: 173047.08586 } } dps_results: { key: "TestBlood-AllItems-SigilofKypariZar-84076" value: { - dps: 390618.84716 - tps: 1.94506341903e+06 - dtps: 153940.8195 - hps: 178788.06198 + dps: 390403.29586 + tps: 1.94632456717e+06 + dtps: 152861.16216 + hps: 178241.78631 } } dps_results: { key: "TestBlood-AllItems-SigilofPatience-83739" value: { - dps: 386317.31743 - tps: 1.92436734856e+06 - dtps: 153003.62428 - hps: 177808.57541 + dps: 385986.72664 + tps: 1.92897637713e+06 + dtps: 151525.12584 + hps: 176827.32543 } } dps_results: { key: "TestBlood-AllItems-SigilofRampage-105580" value: { - dps: 385077.94302 - tps: 1.91597229028e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385575.4728 + tps: 1.92418029816e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-SigiloftheCatacombs-83732" value: { - dps: 394606.4336 - tps: 1.94638313498e+06 - dtps: 152831.9184 - hps: 172196.20884 + dps: 393869.77325 + tps: 1.94654439864e+06 + dtps: 151116.58707 + hps: 170621.84138 } } dps_results: { key: "TestBlood-AllItems-SinisterPrimalDiamond" value: { - dps: 388495.32647 - tps: 1.91264950786e+06 - dtps: 169366.23469 - hps: 187029.93512 + dps: 390583.34778 + tps: 1.921005857e+06 + dtps: 168215.07279 + hps: 187415.81457 } } dps_results: { key: "TestBlood-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 415543.44458 - tps: 2.0400640978e+06 - dtps: 148254.78029 - hps: 174891.88717 + dps: 415418.83908 + tps: 2.04247106823e+06 + dtps: 147171.24761 + hps: 172288.33392 } } dps_results: { key: "TestBlood-AllItems-SkullrenderMedallion-93256" value: { - dps: 393677.54506 - tps: 1.94671499015e+06 - dtps: 150551.81075 - hps: 173964.1965 + dps: 394284.10689 + tps: 1.95142826028e+06 + dtps: 149363.03995 + hps: 173226.96925 } } dps_results: { key: "TestBlood-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-SoulBarrier-96927" value: { - dps: 386751.56137 - tps: 1.91750401379e+06 - dtps: 152347.46575 - hps: 176946.37281 + dps: 387061.80891 + tps: 1.92267300856e+06 + dtps: 151535.60323 + hps: 175752.32896 } } dps_results: { key: "TestBlood-AllItems-SparkofZandalar-96770" value: { - dps: 395628.53037 - tps: 1.95124730454e+06 - dtps: 147447.1148 - hps: 174428.24694 + dps: 395357.39344 + tps: 1.94524637996e+06 + dtps: 146425.07203 + hps: 172394.27195 } } dps_results: { key: "TestBlood-AllItems-SpiritsoftheSun-87163" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 389431.23365 - tps: 1.9156246228e+06 - dtps: 154953.30036 - hps: 181601.74023 + dps: 388625.79792 + tps: 1.91361406146e+06 + dtps: 154487.0329 + hps: 181243.65815 } } dps_results: { key: "TestBlood-AllItems-SpringrainIdolofRage-101009" value: { - dps: 383211.32504 - tps: 1.90912022539e+06 - dtps: 152310.37992 - hps: 178365.11586 + dps: 385306.94843 + tps: 1.92666741597e+06 + dtps: 151522.19238 + hps: 178173.22984 } } dps_results: { key: "TestBlood-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 383489.47822 - tps: 1.89133519423e+06 - dtps: 150562.61202 - hps: 178709.49502 + dps: 384771.69895 + tps: 1.90595901953e+06 + dtps: 150279.87973 + hps: 177870.41867 } } dps_results: { key: "TestBlood-AllItems-SpringrainStoneofRage-101012" value: { - dps: 385422.75322 - tps: 1.89734273613e+06 - dtps: 150790.40337 - hps: 178641.55524 + dps: 386780.29253 + tps: 1.91220949002e+06 + dtps: 150558.28393 + hps: 178298.24332 } } dps_results: { key: "TestBlood-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 390720.2721 - tps: 1.93572133754e+06 - dtps: 150020.37809 - hps: 172128.82889 + dps: 393508.18502 + tps: 1.94515191592e+06 + dtps: 149724.96091 + hps: 173081.91007 } } dps_results: { key: "TestBlood-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 382728.34009 - tps: 1.8991569982e+06 - dtps: 153291.55738 - hps: 180046.38134 + dps: 386246.59568 + tps: 1.91998825624e+06 + dtps: 151925.07769 + hps: 178141.45734 } } dps_results: { key: "TestBlood-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 394105.69826 - tps: 1.94453939269e+06 - dtps: 150532.85121 - hps: 177260.87764 + dps: 393799.14206 + tps: 1.94818469823e+06 + dtps: 149646.87851 + hps: 176945.30841 } } dps_results: { key: "TestBlood-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 383199.17356 - tps: 1.9089802838e+06 - dtps: 152310.37992 - hps: 178365.11586 + dps: 385364.87612 + tps: 1.92670057363e+06 + dtps: 151522.19238 + hps: 178173.22984 } } dps_results: { key: "TestBlood-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 384132.79657 - tps: 1.90161680438e+06 - dtps: 150631.77099 - hps: 177543.46161 + dps: 386171.07059 + tps: 1.91374560426e+06 + dtps: 150160.46764 + hps: 177051.13533 } } dps_results: { key: "TestBlood-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 385205.42458 - tps: 1.90331445328e+06 - dtps: 151103.96054 - hps: 177327.77925 + dps: 386196.49243 + tps: 1.91861420743e+06 + dtps: 150871.84109 + hps: 177666.98343 } } dps_results: { key: "TestBlood-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-StuffofNightmares-87160" value: { - dps: 392171.31155 - tps: 1.92613812059e+06 - dtps: 149579.65245 - hps: 176605.60087 + dps: 392067.90769 + tps: 1.92728211179e+06 + dtps: 149385.89931 + hps: 176370.04835 } } dps_results: { key: "TestBlood-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 392887.86943 - tps: 1.93391245984e+06 - dtps: 150629.36463 - hps: 174668.46731 + dps: 393187.07304 + tps: 1.93909400149e+06 + dtps: 149706.92222 + hps: 173794.78274 } } dps_results: { key: "TestBlood-AllItems-SunsoulDefenderStone-101163" value: { - dps: 383574.80549 - tps: 1.90179346543e+06 - dtps: 150554.41903 - hps: 179243.58718 + dps: 385643.48609 + tps: 1.91601612124e+06 + dtps: 150122.29869 + hps: 178649.84063 } } dps_results: { key: "TestBlood-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 392958.17869 - tps: 1.94565237765e+06 - dtps: 150220.05022 - hps: 173418.1537 + dps: 393332.23864 + tps: 1.95154237778e+06 + dtps: 149437.1617 + hps: 173280.42749 } } dps_results: { key: "TestBlood-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 389315.70733 - tps: 1.92195205993e+06 - dtps: 148733.92653 - hps: 178493.63165 + dps: 388929.85131 + tps: 1.92236503151e+06 + dtps: 147653.4981 + hps: 176940.11062 } } dps_results: { key: "TestBlood-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 387745.80848 - tps: 1.92199038975e+06 - dtps: 152322.96525 - hps: 176898.69381 + dps: 388435.54408 + tps: 1.92755569289e+06 + dtps: 151639.01252 + hps: 176063.8101 } } dps_results: { key: "TestBlood-AllItems-SymboloftheCatacombs-83735" value: { - dps: 387972.14634 - tps: 1.9239064418e+06 - dtps: 153916.24199 - hps: 178077.0125 + dps: 389788.8634 + tps: 1.93737690505e+06 + dtps: 152769.09424 + hps: 177723.14035 } } dps_results: { key: "TestBlood-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 387152.3882 - tps: 1.92679112535e+06 - dtps: 152662.53731 - hps: 175931.89088 + dps: 387894.84239 + tps: 1.93187885486e+06 + dtps: 152860.28522 + hps: 176576.78711 } } dps_results: { key: "TestBlood-AllItems-TalismanofBloodlust-96864" value: { - dps: 394860.9745 - tps: 1.94173323428e+06 - dtps: 152116.60957 - hps: 174526.88774 + dps: 396843.12954 + tps: 1.95755401742e+06 + dtps: 150605.32859 + hps: 174113.51596 } } dps_results: { key: "TestBlood-AllItems-TerrorintheMists-87167" value: { - dps: 398106.31018 - tps: 1.96245418827e+06 - dtps: 153692.07071 - hps: 177715.24448 + dps: 399773.2895 + tps: 1.97396758416e+06 + dtps: 152860.79996 + hps: 176516.96934 } } dps_results: { key: "TestBlood-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-Thok'sTailTip-105609" value: { - dps: 406422.7845 - tps: 1.98944658075e+06 - dtps: 147136.54039 - hps: 175697.27358 + dps: 406081.56923 + tps: 1.98865972129e+06 + dtps: 146031.76244 + hps: 175312.61216 } } dps_results: { key: "TestBlood-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 390475.7071 - tps: 1.94229354683e+06 - dtps: 151488.13689 - hps: 173456.34485 + dps: 390317.66256 + tps: 1.94243622346e+06 + dtps: 150891.20098 + hps: 172841.51718 } } dps_results: { key: "TestBlood-AllItems-TickingEbonDetonator-105612" value: { - dps: 384541.54882 - tps: 1.89531582549e+06 - dtps: 154836.40484 - hps: 185218.10592 + dps: 385133.63193 + tps: 1.89818230871e+06 + dtps: 153429.5739 + hps: 184391.26497 } } dps_results: { key: "TestBlood-AllItems-Time-LostArtifact-103678" value: { - dps: 389954.80964 - tps: 1.9215985489e+06 - dtps: 153697.63934 - hps: 181991.77508 + dps: 391298.10508 + tps: 1.92879199066e+06 + dtps: 150598.01468 + hps: 179457.17398 } } dps_results: { key: "TestBlood-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 382965.48334 - tps: 1.90963600569e+06 - dtps: 152310.37992 - hps: 178180.09973 + dps: 385490.74784 + tps: 1.92771748516e+06 + dtps: 151522.19238 + hps: 178173.22984 } } dps_results: { key: "TestBlood-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 384969.35227 - tps: 1.89922943748e+06 - dtps: 150333.84928 - hps: 177637.74943 + dps: 385953.98174 + tps: 1.91076055104e+06 + dtps: 150583.75008 + hps: 177707.90418 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 384576.35493 - tps: 1.91325982319e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 386238.23407 + tps: 1.92511156174e+06 + dtps: 151665.15321 + hps: 173371.50681 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 385786.87012 + tps: 1.92582240553e+06 + dtps: 151530.19185 + hps: 173295.54548 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 388697.42279 - tps: 1.92479145361e+06 - dtps: 151033.98511 - hps: 173675.56868 + dps: 390497.9 + tps: 1.93630920224e+06 + dtps: 149328.07185 + hps: 171587.89101 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 390444.26194 - tps: 1.9444492992e+06 - dtps: 153526.39762 - hps: 174858.84115 + dps: 391187.01906 + tps: 1.95177877753e+06 + dtps: 152353.51756 + hps: 174486.08827 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 384015.94917 - tps: 1.91250150146e+06 - dtps: 153526.39762 - hps: 174790.23906 + dps: 385364.44904 + tps: 1.92400798338e+06 + dtps: 152353.51756 + hps: 174415.12031 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 386421.35378 - tps: 1.92260987808e+06 - dtps: 153662.21471 - hps: 177343.03152 + dps: 387181.25182 + tps: 1.9293994605e+06 + dtps: 152777.30102 + hps: 176664.44691 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 384592.08918 - tps: 1.91325982319e+06 - dtps: 153165.81929 - hps: 174316.59822 + dps: 385102.32785 + tps: 1.92194260671e+06 + dtps: 151907.89958 + hps: 173445.50986 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 390337.84147 - tps: 1.92891459869e+06 - dtps: 150119.45967 - hps: 174639.68149 + dps: 391316.90313 + tps: 1.94109451343e+06 + dtps: 149246.7433 + hps: 174581.82102 } } dps_results: { key: "TestBlood-AllItems-TyrannicalPrimalDiamond" value: { - dps: 387137.13991 - tps: 1.90692682374e+06 - dtps: 169366.23469 - hps: 187029.93512 + dps: 389431.00134 + tps: 1.91621992519e+06 + dtps: 168215.07279 + hps: 187415.81457 } } dps_results: { key: "TestBlood-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-VaporshieldMedallion-93262" value: { - dps: 387711.87799 - tps: 1.92300166732e+06 - dtps: 150198.58181 - hps: 173082.95121 + dps: 388264.49516 + tps: 1.93450154039e+06 + dtps: 149136.97991 + hps: 172107.03363 } } dps_results: { key: "TestBlood-AllItems-VialofDragon'sBlood-87063" value: { - dps: 389018.42535 - tps: 1.92202084389e+06 - dtps: 149833.25841 - hps: 177240.85947 + dps: 389569.12432 + tps: 1.92902326517e+06 + dtps: 149334.14387 + hps: 175796.15994 } } dps_results: { key: "TestBlood-AllItems-VialofIchorousBlood-100963" value: { - dps: 384203.15983 - tps: 1.91235841181e+06 - dtps: 153030.85793 - hps: 174243.70726 + dps: 384756.4456 + tps: 1.92129867263e+06 + dtps: 151772.93822 + hps: 173372.6189 } } dps_results: { key: "TestBlood-AllItems-VialofLivingCorruption-105568" value: { - dps: 393696.45667 - tps: 1.9179876431e+06 - dtps: 152899.246 - hps: 179623.4653 + dps: 395522.68097 + tps: 1.93308933917e+06 + dtps: 152429.43642 + hps: 179842.22817 } } dps_results: { key: "TestBlood-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 387504.14391 - tps: 1.91575118263e+06 - dtps: 152014.95422 - hps: 173460.208 + dps: 387477.46982 + tps: 1.91901677317e+06 + dtps: 151264.7807 + hps: 172305.04725 } } dps_results: { key: "TestBlood-AllItems-VisionofthePredator-81192" value: { - dps: 390695.64497 - tps: 1.92734033282e+06 - dtps: 153612.67932 - hps: 174617.1391 + dps: 392097.66863 + tps: 1.94456240766e+06 + dtps: 152345.29199 + hps: 173677.32603 } } dps_results: { key: "TestBlood-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 392857.29552 - tps: 1.94364437244e+06 - dtps: 151175.98134 - hps: 171552.86702 + dps: 391103.17599 + tps: 1.93143630738e+06 + dtps: 149789.03277 + hps: 170679.48831 } } dps_results: { key: "TestBlood-AllItems-WindsweptPages-81125" value: { - dps: 394614.92441 - tps: 1.93732051437e+06 - dtps: 152797.77756 - hps: 174160.0196 + dps: 395794.97707 + tps: 1.94912886475e+06 + dtps: 150154.37587 + hps: 172881.84783 } } dps_results: { key: "TestBlood-AllItems-WoundripperMedallion-93253" value: { - dps: 392086.20553 - tps: 1.93920425697e+06 - dtps: 154406.7249 - hps: 176015.43035 + dps: 393955.05845 + tps: 1.94907626169e+06 + dtps: 152614.0459 + hps: 175150.25402 } } dps_results: { key: "TestBlood-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 386087.12492 - tps: 1.90785788867e+06 - dtps: 151665.1738 - hps: 172813.835 + dps: 387238.53093 + tps: 1.91406898608e+06 + dtps: 150620.74326 + hps: 171718.41828 } } dps_results: { key: "TestBlood-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 361433.22412 - tps: 1.76058422227e+06 - dtps: 156929.56013 - hps: 177689.2749 + dps: 362418.35722 + tps: 1.7707580872e+06 + dtps: 155828.59203 + hps: 176514.09028 } } dps_results: { key: "TestBlood-AllItems-Yu'lon'sBite-103987" value: { - dps: 400283.4228 - tps: 1.96696987818e+06 - dtps: 153303.00395 - hps: 177618.73058 + dps: 401089.89575 + tps: 1.97257815175e+06 + dtps: 152683.39692 + hps: 176170.41739 } } dps_results: { key: "TestBlood-AllItems-ZenAlchemistStone-75274" value: { - dps: 388108.85651 - tps: 1.92384868319e+06 - dtps: 151048.59381 - hps: 175658.83383 + dps: 389514.70856 + tps: 1.93346509576e+06 + dtps: 149765.83029 + hps: 175210.20218 } } dps_results: { diff --git a/sim/death_knight/frost/TestFrostMasterfrost.results b/sim/death_knight/frost/TestFrostMasterfrost.results index f7f18edf2c..5765904d33 100644 --- a/sim/death_knight/frost/TestFrostMasterfrost.results +++ b/sim/death_knight/frost/TestFrostMasterfrost.results @@ -33,64 +33,64 @@ character_stats_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-AgilePrimalDiamond" value: { - dps: 444858.51983 - tps: 411837.71436 + dps: 448501.99376 + tps: 414926.21744 hps: 4660.5886 } } dps_results: { key: "TestFrostMasterfrost-AllItems-AlacrityofXuen-103989" value: { - dps: 416031.67746 - tps: 386764.96103 + dps: 419813.58776 + tps: 389940.90649 hps: 4624.35992 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 395832.83339 - tps: 369667.60561 + dps: 398688.61008 + tps: 372234.09778 hps: 4599.50327 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ArrowflightMedallion-93258" value: { - dps: 397927.67504 - tps: 371583.45514 + dps: 400746.70487 + tps: 374114.21806 hps: 4710.4025 } } dps_results: { key: "TestFrostMasterfrost-AllItems-AssuranceofConsequence-105472" value: { - dps: 393585.28249 - tps: 367656.5421 + dps: 397166.12815 + tps: 370688.20164 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-AusterePrimalDiamond" value: { - dps: 437140.4027 - tps: 404204.54 + dps: 440731.46455 + tps: 407243.46676 hps: 4617.82053 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BadJuju-96781" value: { - dps: 402079.65165 - tps: 376217.64252 + dps: 405720.77333 + tps: 379310.83073 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BadgeofKypariZar-84079" value: { - dps: 399179.78648 - tps: 373056.73894 + dps: 402804.3246 + tps: 376127.5946 hps: 4655.66974 } } @@ -121,304 +121,304 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 399480.2408 - tps: 372825.5227 + dps: 403108.351 + tps: 375900.9995 hps: 4605.75023 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BlossomofPureSnow-89081" value: { - dps: 397404.21966 - tps: 371109.85424 + dps: 400221.97857 + tps: 373639.70875 hps: 4706.23039 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BottleofInfiniteStars-87057" value: { - dps: 399261.26012 - tps: 373429.18747 + dps: 402879.94078 + tps: 376501.28692 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BraidofTenSongs-84072" value: { - dps: 397696.41888 - tps: 371372.9751 + dps: 401363.64739 + tps: 374483.73877 hps: 4522.29926 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Brawler'sStatue-282039" value: { - dps: 392966.04069 - tps: 367174.07564 - hps: 4598.43402 + dps: 394633.80199 + tps: 368825.63142 + hps: 4602.15062 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BreathoftheHydra-96827" value: { - dps: 399494.98162 - tps: 372982.80298 + dps: 403134.3073 + tps: 376072.57617 hps: 4648.50801 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 393053.25188 - tps: 367200.38845 + dps: 394527.87996 + tps: 368656.19941 hps: 4708.35791 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 409970.15172 - tps: 381174.80222 + dps: 413601.97175 + tps: 384258.26514 hps: 4502.863 } } dps_results: { key: "TestFrostMasterfrost-AllItems-BurningPrimalDiamond" value: { - dps: 444839.05776 - tps: 411822.28811 + dps: 448482.38317 + tps: 414910.71021 hps: 4660.5886 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CapacitivePrimalDiamond" value: { - dps: 451291.42087 - tps: 418679.08805 + dps: 455146.85993 + tps: 421983.34232 hps: 4618.24432 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CarbonicCarbuncle-81138" value: { - dps: 404825.34705 - tps: 377594.67845 + dps: 408470.34264 + tps: 380676.80949 hps: 4685.16005 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 400028.89417 - tps: 373702.76454 + dps: 403676.58863 + tps: 376796.12979 hps: 4736.92319 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CharmofTenSongs-84071" value: { - dps: 398096.34223 - tps: 371741.67814 + dps: 401771.22618 + tps: 374860.12142 hps: 4605.51356 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 402402.47561 - tps: 375452.32657 + dps: 406092.5863 + tps: 378581.05836 hps: 4643.72646 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 399378.97583 - tps: 373587.01078 + dps: 403006.89267 + tps: 376669.37563 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 411341.70243 - tps: 383518.06413 + dps: 414981.40419 + tps: 386604.35819 hps: 4733.20658 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CoreofDecency-87497" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CourageousPrimalDiamond" value: { - dps: 437164.33139 - tps: 404227.6089 + dps: 440751.73344 + tps: 407263.19575 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 393079.00831 - tps: 367260.58573 + dps: 393251.69985 + tps: 367428.19687 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 400074.96343 - tps: 373399.91504 + dps: 400247.65496 + tps: 373567.52619 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 396076.20937 - tps: 370051.4141 + dps: 399677.96663 + tps: 373100.10642 hps: 4705.55056 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 392875.26041 - tps: 367108.9524 + dps: 396445.00874 + tps: 370130.54854 hps: 4626.74028 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 393068.7577 - tps: 367162.01873 + dps: 396634.84902 + tps: 370183.71767 hps: 4695.78217 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 393158.49143 - tps: 367334.63175 + dps: 396728.148 + tps: 370357.96318 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 401625.17585 - tps: 374543.41869 + dps: 405262.48275 + tps: 377632.55462 hps: 4581.9533 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 393093.38573 - tps: 367270.85231 + dps: 393266.07727 + tps: 367438.46346 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 401371.96384 - tps: 374535.79698 + dps: 401544.65538 + tps: 374703.40813 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 395996.44576 - tps: 369920.19317 + dps: 399598.70637 + tps: 372968.65715 hps: 4736.73211 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 392372.58501 - tps: 366602.71117 + dps: 395941.52683 + tps: 369623.1268 hps: 4646.25675 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 393522.84417 - tps: 367630.68617 + dps: 397104.52396 + tps: 370666.94084 hps: 4716.36772 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 393152.40432 - tps: 367321.52291 + dps: 396721.92928 + tps: 370344.61466 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 404293.16743 - tps: 376984.40277 + dps: 407942.5515 + tps: 380085.02858 hps: 4576.13439 } } @@ -433,728 +433,728 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-CutstitcherMedallion-93255" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Daelo'sFinalWords-87496" value: { - dps: 403827.33259 - tps: 376468.01109 + dps: 406986.03531 + tps: 379331.13964 hps: 4573.02826 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 450520.46741 - tps: 417983.69088 + dps: 454366.65315 + tps: 421280.2877 hps: 4602.03865 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DarkmistVortex-87172" value: { - dps: 408389.15648 - tps: 379932.81762 + dps: 412085.99443 + tps: 383040.27988 hps: 4639.43788 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 397111.29118 - tps: 371303.53944 + dps: 399929.86803 + tps: 373834.15561 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DestructivePrimalDiamond" value: { - dps: 438652.60603 - tps: 405547.86268 + dps: 442256.89106 + tps: 408597.25467 hps: 4630.61476 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DisciplineofXuen-103986" value: { - dps: 404842.55314 - tps: 379014.64492 + dps: 408639.36975 + tps: 382265.35898 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 395832.83339 - tps: 369667.60561 + dps: 398688.61008 + tps: 372234.09778 hps: 4599.50327 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 397111.29118 - tps: 371303.53944 + dps: 399929.86803 + tps: 373834.15561 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 397020.95251 - tps: 371228.98747 + dps: 399838.71142 + tps: 373758.84197 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 403813.52321 - tps: 377446.17386 + dps: 406631.06467 + tps: 379975.78602 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 393079.00831 - tps: 367260.58573 + dps: 393251.69985 + tps: 367428.19687 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 400074.96343 - tps: 373399.91504 + dps: 400247.65496 + tps: 373567.52619 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 396076.20937 - tps: 370051.4141 + dps: 399677.96663 + tps: 373100.10642 hps: 4705.55056 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 392875.26041 - tps: 367108.9524 + dps: 396445.00874 + tps: 370130.54854 hps: 4626.74028 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 393068.7577 - tps: 367162.01873 + dps: 396634.84902 + tps: 370183.71767 hps: 4695.78217 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 393128.75022 - tps: 367306.01021 + dps: 396697.6576 + tps: 370328.59244 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 401758.65759 - tps: 374683.4266 + dps: 405392.16481 + tps: 377768.91037 hps: 4568.9918 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 397020.95251 - tps: 371228.98747 + dps: 399838.71142 + tps: 373758.84197 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EffulgentPrimalDiamond" value: { - dps: 437140.4027 - tps: 404204.54 + dps: 440731.46455 + tps: 407243.46676 hps: 4617.82053 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EmberPrimalDiamond" value: { - dps: 437164.33139 - tps: 404227.6089 + dps: 440751.73344 + tps: 407263.19575 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EmblemofKypariZar-84077" value: { - dps: 397605.00167 - tps: 371262.24487 + dps: 401296.46256 + tps: 374400.72067 hps: 4635.59641 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 400139.59846 - tps: 373875.98506 + dps: 403797.11905 + tps: 376982.69525 hps: 4596.63386 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EmptyFruitBarrel-81133" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 421532.66968 - tps: 391492.16333 + dps: 424952.47422 + tps: 394410.29158 hps: 18.72958 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 417740.92694 - tps: 388383.66718 + dps: 421171.47836 + tps: 391314.04584 hps: 19.07113 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 422082.61781 - tps: 391994.6472 + dps: 425485.7513 + tps: 394897.81467 hps: 18.13162 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 419044.38601 - tps: 389644.74094 + dps: 422487.44585 + tps: 392585.9002 hps: 18.435 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 416266.5429 - tps: 386946.6495 + dps: 419723.44346 + tps: 389904.48618 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 419915.2716 - tps: 390123.24799 + dps: 423416.38591 + tps: 393116.92798 hps: 18.47317 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EnigmaticPrimalDiamond" value: { - dps: 438652.60603 - tps: 405547.86268 + dps: 442256.89106 + tps: 408597.25467 hps: 4630.61476 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EssenceofTerror-87175" value: { - dps: 398577.03218 - tps: 371188.2446 + dps: 402318.83589 + tps: 374356.78228 hps: 4572.08365 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EternalPrimalDiamond" value: { - dps: 437164.33139 - tps: 404227.6089 + dps: 440751.73344 + tps: 407263.19575 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-EvilEyeofGalakras-105491" value: { - dps: 437749.9965 - tps: 407957.41571 - hps: 5229.34463 + dps: 441260.96994 + tps: 410928.45792 + hps: 5215.96485 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 420770.37344 - tps: 391691.42219 + dps: 424436.81845 + tps: 394812.03355 hps: 4571.66993 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FearwurmBadge-84074" value: { - dps: 396600.04061 - tps: 370121.15365 + dps: 400272.5389 + tps: 373238.58291 hps: 4604.30202 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FearwurmRelic-84070" value: { - dps: 398708.86169 - tps: 372409.52136 + dps: 402380.61995 + tps: 375525.16256 hps: 4644.46299 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 399197.68993 - tps: 372347.4361 + dps: 402894.53627 + tps: 375471.40779 hps: 4580.37593 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 399397.19823 - tps: 373605.23318 + dps: 403030.04521 + tps: 376692.52818 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 428339.381 - tps: 397224.97104 + dps: 432060.51425 + tps: 400395.61125 hps: 4537.99053 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 395826.98737 - tps: 369959.35445 + dps: 398243.13261 + tps: 372310.82932 hps: 4573.02826 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FlashingSteelTalisman-81265" value: { - dps: 395190.82216 - tps: 369360.88838 + dps: 397997.12744 + tps: 371882.16053 hps: 4576.60015 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FleetPrimalDiamond" value: { - dps: 439758.84373 - tps: 406822.12124 + dps: 443365.49216 + tps: 409876.95446 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ForlornPrimalDiamond" value: { - dps: 437164.33139 - tps: 404227.6089 + dps: 440751.73344 + tps: 407263.19575 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 402362.15558 - tps: 376480.28773 + dps: 406024.07393 + tps: 379594.41193 hps: 4687.76867 } } dps_results: { key: "TestFrostMasterfrost-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Fusion-FireCore-105459" value: { - dps: 419795.08448 - tps: 389244.3216 + dps: 423408.527 + tps: 392309.69002 hps: 4542.03672 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GazeoftheTwins-96915" value: { - dps: 414743.5447 - tps: 386838.91564 + dps: 418384.39655 + tps: 389918.12954 hps: 4711.17629 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 396014.2927 - tps: 369971.6102 + dps: 397450.84861 + tps: 371394.32716 hps: 4672.0228 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 393164.05292 - tps: 367330.2371 + dps: 393336.74446 + tps: 367497.84824 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 405875.09697 - tps: 378479.55834 + dps: 406047.7885 + tps: 378647.16948 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 398406.40114 - tps: 372139.4516 + dps: 402042.00192 + tps: 375219.32158 hps: 4776.48176 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 392746.8452 - tps: 366936.0005 + dps: 396325.10912 + tps: 369966.6272 hps: 4653.33641 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 392888.91402 - tps: 367057.92965 + dps: 396464.97669 + tps: 370088.48919 hps: 4792.31567 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 393249.0548 - tps: 367399.68001 + dps: 396820.34724 + tps: 370423.81847 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 410036.56766 - tps: 381984.83206 + dps: 413672.08863 + tps: 385071.8565 hps: 4564.98457 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Haromm'sTalisman-105527" value: { - dps: 413607.36754 - tps: 387707.79737 + dps: 417381.7664 + tps: 390933.46401 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 396437.99403 - tps: 369859.52356 + dps: 399282.84483 + tps: 372417.71915 hps: 4604.12956 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 392391.3809 - tps: 366538.58833 + dps: 395984.67267 + tps: 369583.08045 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 398786.13134 - tps: 372933.33877 + dps: 402444.36419 + tps: 376042.77197 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 406808.12814 - tps: 379354.53591 + dps: 410483.08153 + tps: 382475.58941 hps: 4650.46649 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 408058.19476 - tps: 381540.11865 + dps: 411690.85972 + tps: 384627.22024 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-HeartofFire-81181" value: { - dps: 397211.24601 - tps: 371419.28096 - hps: 4598.43402 + dps: 398897.86888 + tps: 373089.69832 + hps: 4602.15062 } } dps_results: { key: "TestFrostMasterfrost-AllItems-HeartwarmerMedallion-93260" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-HelmbreakerMedallion-93261" value: { - dps: 407520.70011 - tps: 380367.69715 + dps: 410338.22982 + tps: 382897.29781 hps: 4710.4025 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Horridon'sLastGasp-96757" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ImpassivePrimalDiamond" value: { - dps: 438652.60603 - tps: 405547.86268 + dps: 442256.89106 + tps: 408597.25467 hps: 4630.61476 } } dps_results: { key: "TestFrostMasterfrost-AllItems-IndomitablePrimalDiamond" value: { - dps: 437140.4027 - tps: 404204.54 + dps: 440731.46455 + tps: 407243.46676 hps: 4617.82053 } } dps_results: { key: "TestFrostMasterfrost-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 393442.45814 - tps: 367655.51042 + dps: 397040.5831 + tps: 370704.93629 hps: 4605.6786 } } dps_results: { key: "TestFrostMasterfrost-AllItems-InsigniaofKypariZar-84078" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-IronBellyWok-89083" value: { - dps: 405324.03216 - tps: 377980.04266 + dps: 408167.64196 + tps: 380537.15182 hps: 4604.12956 } } dps_results: { key: "TestFrostMasterfrost-AllItems-IronProtectorTalisman-85181" value: { - dps: 391540.74029 - tps: 365763.75735 + dps: 395149.90129 + tps: 368824.11682 hps: 4667.34283 } } dps_results: { key: "TestFrostMasterfrost-AllItems-JadeBanditFigurine-86772" value: { - dps: 396148.8829 - tps: 369708.17293 - hps: 4581.88643 + dps: 399051.58135 + tps: 372339.91964 + hps: 4596.75285 } } dps_results: { key: "TestFrostMasterfrost-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 404049.2603 - tps: 376930.59478 - hps: 4581.88643 + dps: 406955.24666 + tps: 379565.86937 + hps: 4596.75285 } } dps_results: { key: "TestFrostMasterfrost-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 396885.80207 - tps: 370638.40185 + dps: 399703.56097 + tps: 373168.25636 hps: 4689.61998 } } dps_results: { key: "TestFrostMasterfrost-AllItems-JadeWarlordFigurine-86775" value: { - dps: 396222.46283 - tps: 370418.28203 + dps: 399023.9774 + tps: 372933.69746 hps: 4687.99938 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 392960.54658 - tps: 367168.58153 - hps: 16208.62622 + dps: 396526.49315 + tps: 370188.97611 + hps: 16308.41141 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 412883.11833 - tps: 387091.15329 + dps: 416630.39157 + tps: 390292.87454 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 403813.52321 - tps: 377446.17386 + dps: 406631.06467 + tps: 379975.78602 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-KnotofTenSongs-84073" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } @@ -1169,305 +1169,305 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 398788.47225 - tps: 372956.64202 + dps: 401616.54037 + tps: 375500.71261 hps: 4689.08031 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 409192.53596 - tps: 381510.29522 + dps: 412810.54167 + tps: 384580.44511 hps: 4525.10419 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 402830.25874 - tps: 375193.48563 + dps: 404250.37976 + tps: 376599.83975 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 398264.1562 - tps: 372441.7299 + dps: 401874.72873 + tps: 375505.97728 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 399491.38244 - tps: 373676.41114 + dps: 403128.19091 + tps: 376767.16405 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LightoftheCosmos-87065" value: { - dps: 398831.74233 - tps: 372682.9554 + dps: 402473.85367 + tps: 375772.26237 hps: 4558.94859 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 450520.46741 - tps: 417983.69088 + dps: 454366.65315 + tps: 421280.2877 hps: 4602.03865 } } dps_results: { key: "TestFrostMasterfrost-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 393093.38573 - tps: 367270.85231 + dps: 393266.07727 + tps: 367438.46346 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 401371.96384 - tps: 374535.79698 + dps: 401544.65538 + tps: 374703.40813 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 395996.44576 - tps: 369920.19317 + dps: 399598.70637 + tps: 372968.65715 hps: 4736.73211 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 392372.58501 - tps: 366602.71117 + dps: 395941.52683 + tps: 369623.1268 hps: 4646.25675 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 393522.84417 - tps: 367630.68617 + dps: 397104.52396 + tps: 370666.94084 hps: 4716.36772 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 393143.3832 - tps: 367315.03912 + dps: 396712.90816 + tps: 370338.13087 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 404605.37745 - tps: 377259.87946 + dps: 408275.75207 + tps: 380380.9995 hps: 4579.85099 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MarkoftheCatacombs-83731" value: { - dps: 399311.36351 - tps: 373320.47951 + dps: 402947.7117 + tps: 376407.8638 hps: 4668.30619 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 398745.00526 - tps: 372953.04021 + dps: 401562.76416 + tps: 375482.89471 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 396058.47479 - tps: 370266.50974 + dps: 399649.26925 + tps: 373311.75221 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MirrorScope-4700" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 392391.3809 - tps: 366538.58833 + dps: 395984.67267 + tps: 369583.08045 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MistdancerDefenderStone-101087" value: { - dps: 398860.25592 - tps: 373007.46335 + dps: 402518.47815 + tps: 376116.88593 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MistdancerIdolofRage-101113" value: { - dps: 398258.63314 - tps: 372431.61609 + dps: 401869.71017 + tps: 375496.36797 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MistdancerStoneofRage-101117" value: { - dps: 399491.97774 - tps: 373677.00643 + dps: 403120.93644 + tps: 376759.90958 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MithrilWristwatch-282033" value: { - dps: 399314.19375 - tps: 373055.48742 + dps: 402953.89551 + tps: 376141.78148 hps: 4733.20658 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 400703.95608 - tps: 373709.27434 + dps: 404339.10183 + tps: 376779.65729 hps: 4499.91583 } } dps_results: { key: "TestFrostMasterfrost-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 399420.68877 - tps: 373628.72372 + dps: 403049.03427 + tps: 376711.51724 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-NitroBoosts-4223" value: { - dps: 451291.42087 - tps: 418679.08805 + dps: 455146.85993 + tps: 421983.34232 hps: 4618.24432 } } dps_results: { key: "TestFrostMasterfrost-AllItems-OathswornDefenderIdol-101303" value: { - dps: 392391.3809 - tps: 366538.58833 + dps: 395984.67267 + tps: 369583.08045 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-OathswornDefenderStone-101306" value: { - dps: 398864.81846 - tps: 373012.0259 + dps: 402526.84105 + tps: 376125.24883 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-OathswornIdolofBattle-101295" value: { - dps: 407021.85677 - tps: 379542.56563 + dps: 410711.37241 + tps: 382678.66253 hps: 4654.47371 } } dps_results: { key: "TestFrostMasterfrost-AllItems-OathswornStoneofBattle-101294" value: { - dps: 407999.67637 - tps: 381481.60027 + dps: 411631.064 + tps: 384567.42452 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PhaseFingers-4697" value: { - dps: 449806.18063 - tps: 417315.43483 - hps: 4618.24432 + dps: 453239.29458 + tps: 420426.31295 + hps: 4631.47256 } } dps_results: { @@ -1505,280 +1505,280 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-PowerfulPrimalDiamond" value: { - dps: 437140.4027 - tps: 404204.54 + dps: 440731.46455 + tps: 407243.46676 hps: 4617.82053 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PriceofProgress-81266" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 393211.71692 - tps: 367366.44551 + dps: 393384.40846 + tps: 367534.05666 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 409726.72067 - tps: 381852.72222 + dps: 409899.4122 + tps: 382020.33337 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 400742.03483 - tps: 374260.12496 + dps: 404421.25564 + tps: 377380.17052 hps: 4824.44278 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 393558.72446 - tps: 367684.71044 + dps: 397160.33477 + tps: 370738.08118 hps: 4692.34939 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 392428.82058 - tps: 366611.58575 + dps: 396046.62822 + tps: 369681.19046 hps: 4920.49003 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 393433.76619 - tps: 367573.1455 + dps: 397008.10602 + tps: 370600.12227 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 415562.33603 - tps: 386825.70975 + dps: 419199.69067 + tps: 389915.34259 hps: 4562.62695 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 413318.60479 - tps: 385501.05969 + dps: 417013.79945 + tps: 388639.82706 hps: 4663.4857 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 414056.84223 - tps: 388030.69803 + dps: 417846.68166 + tps: 391267.92225 hps: 4623.57984 } } dps_results: { key: "TestFrostMasterfrost-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 414056.84223 - tps: 388030.69803 + dps: 417846.68166 + tps: 391267.92225 hps: 4623.57984 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 417784.13327 - tps: 386846.59199 + dps: 421396.59044 + tps: 389906.93593 hps: 4551.88938 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 427227.50876 - tps: 395556.09145 + dps: 430797.92994 + tps: 398584.60932 hps: 4493.86728 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofChi-Ji-79330" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofKypariZar-84075" value: { - dps: 396831.85616 - tps: 370367.50297 + dps: 400467.54768 + tps: 373446.88554 hps: 4576.85287 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofNiuzao-79329" value: { - dps: 391424.71384 - tps: 365620.53304 + dps: 394586.88469 + tps: 368483.01552 hps: 4687.99938 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofXuen-79327" value: { - dps: 407587.6866 - tps: 379995.52586 + dps: 411236.13086 + tps: 383097.00922 hps: 4558.18725 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofXuen-79328" value: { - dps: 393211.14637 - tps: 367374.3683 + dps: 396781.33221 + tps: 370397.95942 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RelicofYu'lon-79331" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 393275.93266 - tps: 367410.54962 + dps: 396846.11351 + tps: 370432.88757 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ResolveofNiuzao-103990" value: { - dps: 401271.00553 - tps: 375479.04048 + dps: 404903.68297 + tps: 378566.16594 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ReverberatingPrimalDiamond" value: { - dps: 446679.1155 - tps: 413505.51154 + dps: 450322.22421 + tps: 416593.72949 hps: 4660.5886 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RevitalizingPrimalDiamond" value: { - dps: 444839.05776 - tps: 411822.28811 + dps: 448482.38317 + tps: 414910.71021 hps: 4660.5886 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofCinderglacier-3369" value: { - dps: 422144.548 - tps: 392820.08198 + dps: 425651.76534 + tps: 395828.12267 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofRe-Origination-96918" value: { - dps: 408430.69485 - tps: 385116.17032 + dps: 412160.49342 + tps: 388395.65698 hps: 4335.19922 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofSpellbreaking-3595" value: { - dps: 416464.35781 - tps: 387087.57262 + dps: 419915.14195 + tps: 390038.93578 hps: 18.13162 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofSpellshattering-3367" value: { - dps: 416014.59866 - tps: 386634.9922 + dps: 419404.50944 + tps: 389524.97455 hps: 19.4234 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofSwordbreaking-3594" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneofSwordshattering-3365" value: { - dps: 416245.04893 - tps: 386920.58291 + dps: 419699.05567 + tps: 389875.413 hps: 18.97519 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneoftheNerubianCarapace-3883" value: { - dps: 416271.72093 - tps: 386864.33235 + dps: 419744.9007 + tps: 389838.44823 hps: 18.98656 } } dps_results: { key: "TestFrostMasterfrost-AllItems-RuneoftheStoneskinGargoyle-3847" value: { - dps: 416314.29608 - tps: 386956.08048 + dps: 419783.02873 + tps: 389924.28328 hps: 18.29422 } } @@ -1793,312 +1793,312 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 395783.7996 + tps: 369703.93015 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SearingWords-81267" value: { - dps: 396518.45122 - tps: 370433.88253 + dps: 400124.42619 + tps: 373489.24992 hps: 4679.45601 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 397011.81333 - tps: 370809.72244 + dps: 399899.2606 + tps: 373404.27955 hps: 4568.17679 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofCompassion-83736" value: { - dps: 396058.47479 - tps: 370266.50974 + dps: 399649.26925 + tps: 373311.75221 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofDevotion-83740" value: { - dps: 399257.7516 - tps: 373266.8676 + dps: 402884.61874 + tps: 376344.77085 hps: 4668.30619 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofFidelity-83737" value: { - dps: 399519.20817 - tps: 372932.9726 + dps: 403174.71999 + tps: 376028.88602 hps: 4660.97178 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofGrace-83738" value: { - dps: 399418.20474 - tps: 373221.97363 + dps: 403103.58864 + tps: 376349.07968 hps: 4572.78921 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofKypariZar-84076" value: { - dps: 399432.51031 - tps: 373429.56786 + dps: 403061.79831 + tps: 376509.71636 hps: 4668.30619 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofPatience-83739" value: { - dps: 396697.11281 - tps: 370905.14776 + dps: 400297.3705 + tps: 373959.85346 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigilofRampage-105580" value: { - dps: 393367.19731 - tps: 367484.16144 + dps: 396941.78499 + tps: 370510.34955 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SigiloftheCatacombs-83732" value: { - dps: 396378.57662 - tps: 370062.17615 + dps: 400016.61864 + tps: 373142.79608 hps: 4566.50816 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SinisterPrimalDiamond" value: { - dps: 438287.56833 - tps: 405226.25796 + dps: 441889.28139 + tps: 408273.80963 hps: 4622.35576 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 424936.27165 - tps: 395681.45803 + dps: 428723.68924 + tps: 398861.81873 hps: 4836.66367 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SkullrenderMedallion-93256" value: { - dps: 407520.70011 - tps: 380367.69715 + dps: 410338.22982 + tps: 382897.29781 hps: 4710.4025 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SoulBarrier-96927" value: { - dps: 392184.96357 - tps: 366396.94712 + dps: 395749.87412 + tps: 369416.16096 hps: 4776.93918 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SparkofZandalar-96770" value: { - dps: 412454.46242 - tps: 385496.23676 + dps: 416093.7881 + tps: 388586.00995 hps: 4648.50801 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpiritsoftheSun-87163" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 402910.44596 - tps: 375713.80983 + dps: 406630.66521 + tps: 378860.16513 hps: 4558.00218 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpringrainIdolofRage-101009" value: { - dps: 398260.14268 - tps: 372437.83907 + dps: 401870.7152 + tps: 375502.08645 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 399394.82847 - tps: 373602.86342 + dps: 403025.02752 + tps: 376687.51048 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpringrainStoneofRage-101012" value: { - dps: 399522.81883 - tps: 373707.84752 + dps: 403153.23327 + tps: 376792.20641 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 397011.81333 - tps: 370809.72244 + dps: 399899.2606 + tps: 373404.27955 hps: 4568.17679 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 400318.71626 - tps: 374526.75121 + dps: 403943.74201 + tps: 377606.22497 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 403128.3192 - tps: 375662.76715 + dps: 406886.93943 + tps: 378840.57379 hps: 4622.31653 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 398241.66504 - tps: 372415.16502 + dps: 401852.08626 + tps: 375479.26111 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 399421.61119 - tps: 373629.64614 + dps: 403057.12757 + tps: 376719.61054 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 399494.7593 - tps: 373679.788 + dps: 403125.07858 + tps: 376764.05172 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-StuffofNightmares-87160" value: { - dps: 399481.70411 - tps: 373689.73906 + dps: 403100.00442 + tps: 376762.48738 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 392391.3809 - tps: 366538.58833 + dps: 395984.67267 + tps: 369583.08045 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SunsoulDefenderStone-101163" value: { - dps: 398807.17299 - tps: 372954.38042 + dps: 402466.06931 + tps: 376064.47709 hps: 4685.98639 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 406469.99621 - tps: 378994.04588 + dps: 410140.92126 + tps: 382111.53057 hps: 4661.4419 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 407953.64226 - tps: 381435.56616 + dps: 411581.20665 + tps: 384517.56717 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 454459.70864 - tps: 421452.9611 + dps: 458305.89437 + tps: 424749.55792 hps: 4602.03865 } } dps_results: { key: "TestFrostMasterfrost-AllItems-SymboloftheCatacombs-83735" value: { - dps: 398867.54562 - tps: 372744.2286 + dps: 402492.47271 + tps: 375815.39805 hps: 4663.10295 } } @@ -2113,272 +2113,272 @@ dps_results: { dps_results: { key: "TestFrostMasterfrost-AllItems-TalismanofBloodlust-96864" value: { - dps: 399632.91691 - tps: 373166.90125 + dps: 403328.88107 + tps: 376307.55176 hps: 4590.89049 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TerrorintheMists-87167" value: { - dps: 401018.40052 - tps: 373831.75459 + dps: 404788.00148 + tps: 377015.57086 hps: 4784.26212 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Thok'sTailTip-105609" value: { - dps: 449052.1484 - tps: 416964.79346 + dps: 452893.54619 + tps: 420256.86505 hps: 4603.11245 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 396842.67874 - tps: 370295.69991 + dps: 400500.23881 + tps: 373386.6337 hps: 4572.10303 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TickingEbonDetonator-105612" value: { - dps: 405193.77135 - tps: 379322.5993 + dps: 408862.04749 + tps: 382442.50818 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Time-LostArtifact-103678" value: { - dps: 402242.02815 - tps: 375481.27849 + dps: 405948.81462 + tps: 378619.62648 hps: 4609.96789 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 398231.30204 - tps: 372405.38405 + dps: 401841.72327 + tps: 375469.48014 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 399482.22214 - tps: 373667.25084 + dps: 403112.15533 + tps: 376751.12847 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 393124.58018 - tps: 367300.98695 + dps: 393297.27172 + tps: 367468.59809 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 393138.73223 + tps: 367341.68679 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 403099.05647 - tps: 376048.34037 + dps: 403271.74801 + tps: 376215.95152 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 396796.88512 - tps: 370637.99229 + dps: 400389.66512 + tps: 373677.51107 hps: 4734.42988 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 392439.23445 - tps: 366640.541 + dps: 395990.98737 + tps: 369645.3972 hps: 4629.41688 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 393568.22682 - tps: 367719.95471 + dps: 397168.10625 + tps: 370773.45708 hps: 4743.72633 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 393202.85877 - tps: 367364.77398 + dps: 396772.75991 + tps: 370387.97233 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 406856.11579 - tps: 379266.27535 + dps: 410491.79823 + tps: 382354.11962 hps: 4565.08656 } } dps_results: { key: "TestFrostMasterfrost-AllItems-TyrannicalPrimalDiamond" value: { - dps: 437164.33139 - tps: 404227.6089 + dps: 440751.73344 + tps: 407263.19575 hps: 4600.54507 } } dps_results: { key: "TestFrostMasterfrost-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VaporshieldMedallion-93262" value: { - dps: 398745.00526 - tps: 372953.04021 + dps: 401562.76416 + tps: 375482.89471 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VialofDragon'sBlood-87063" value: { - dps: 399070.71611 - tps: 373278.75106 + dps: 402685.7141 + tps: 376348.19707 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VialofIchorousBlood-100963" value: { - dps: 392966.04069 - tps: 367174.07564 + dps: 396531.98726 + tps: 370194.47023 hps: 4598.43402 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VialofLivingCorruption-105568" value: { - dps: 392423.2152 - tps: 366571.48413 + dps: 395988.97627 + tps: 369592.79831 hps: 4904.68535 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 396173.38957 - tps: 370248.06756 + dps: 399827.5538 + tps: 373354.36312 hps: 4620.3025 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VisionofthePredator-81192" value: { - dps: 397524.93864 - tps: 370955.28091 + dps: 401142.07214 + tps: 374013.72487 hps: 4683.17261 } } dps_results: { key: "TestFrostMasterfrost-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 397693.75848 - tps: 370927.46815 + dps: 401377.5422 + tps: 374031.45113 hps: 4579.84692 } } dps_results: { key: "TestFrostMasterfrost-AllItems-WindsweptPages-81125" value: { - dps: 397636.0639 - tps: 371251.24168 + dps: 401283.01026 + tps: 374340.14322 hps: 4620.82524 } } dps_results: { key: "TestFrostMasterfrost-AllItems-WoundripperMedallion-93253" value: { - dps: 397927.67504 - tps: 371583.45514 + dps: 400746.70487 + tps: 374114.21806 hps: 4710.4025 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 396533.22358 - tps: 370744.16566 + dps: 400159.71835 + tps: 373824.9653 hps: 4599.9453 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 414411.32893 - tps: 383418.73474 + dps: 417995.49543 + tps: 386459.04545 hps: 4494.24592 } } dps_results: { key: "TestFrostMasterfrost-AllItems-YaungolFireCarrier-86518" value: { - dps: 451291.42087 - tps: 418679.08805 + dps: 455146.85993 + tps: 421983.34232 hps: 4618.24432 } } dps_results: { key: "TestFrostMasterfrost-AllItems-Yu'lon'sBite-103987" value: { - dps: 402389.31782 - tps: 374796.85525 + dps: 406143.73923 + tps: 377959.06168 hps: 4812.11097 } } dps_results: { key: "TestFrostMasterfrost-AllItems-ZenAlchemistStone-75274" value: { - dps: 407545.55734 - tps: 380174.97944 + dps: 411227.5745 + tps: 383309.95327 hps: 4539.63865 } } diff --git a/sim/death_knight/frost/TestFrostTwoHand.results b/sim/death_knight/frost/TestFrostTwoHand.results index 6589c1ac17..a30687c77f 100644 --- a/sim/death_knight/frost/TestFrostTwoHand.results +++ b/sim/death_knight/frost/TestFrostTwoHand.results @@ -33,2081 +33,2081 @@ character_stats_results: { dps_results: { key: "TestFrostTwoHand-AllItems-AgilePrimalDiamond" value: { - dps: 412184.83068 - tps: 371427.83673 - hps: 7185.23262 + dps: 414647.87243 + tps: 373367.71647 + hps: 7176.56203 } } dps_results: { key: "TestFrostTwoHand-AllItems-AlacrityofXuen-103989" value: { - dps: 396730.02152 - tps: 360929.20046 - hps: 7025.93533 + dps: 399828.75774 + tps: 363378.97449 + hps: 7029.69603 } } dps_results: { key: "TestFrostTwoHand-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 379047.82614 - tps: 346538.17161 - hps: 6933.79522 + dps: 381056.81416 + tps: 348191.32194 + hps: 6935.7266 } } dps_results: { key: "TestFrostTwoHand-AllItems-ArrowflightMedallion-93258" value: { - dps: 381544.37332 - tps: 348818.60503 - hps: 6995.39501 + dps: 383693.54689 + tps: 350623.38314 + hps: 6987.8736 } } dps_results: { key: "TestFrostTwoHand-AllItems-AssuranceofConsequence-105472" value: { - dps: 377614.03663 - tps: 345468.96625 - hps: 6871.29174 + dps: 380668.81204 + tps: 347934.92353 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-AusterePrimalDiamond" value: { - dps: 405196.48422 - tps: 364597.18941 - hps: 7161.78262 + dps: 407835.99571 + tps: 366647.76594 + hps: 7153.52931 } } dps_results: { key: "TestFrostTwoHand-AllItems-BadJuju-96781" value: { - dps: 383020.85926 - tps: 350947.78467 - hps: 6871.29174 + dps: 386087.86235 + tps: 353426.5335 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-BadgeofKypariZar-84079" value: { - dps: 381521.38511 - tps: 349111.40945 - hps: 6939.73657 + dps: 384695.70959 + tps: 351687.18181 + hps: 6924.69375 } } dps_results: { key: "TestFrostTwoHand-AllItems-BattlegearoftheLostCatacomb" value: { - dps: 327870.99956 - tps: 298395.7348 - hps: 4338.72079 + dps: 327979.15081 + tps: 298355.83636 + hps: 4321.95455 } } dps_results: { key: "TestFrostTwoHand-AllItems-BattleplateofCyclopeanDread" value: { - dps: 349089.89072 - tps: 316685.77342 - hps: 5753.42504 + dps: 347670.21465 + tps: 315381.45156 + hps: 5763.18286 } } dps_results: { key: "TestFrostTwoHand-AllItems-BattleplateoftheAll-ConsumingMaw" value: { - dps: 337698.10985 - tps: 298629.23122 - hps: 4646.11308 + dps: 338683.75481 + tps: 299386.51747 + hps: 4657.58512 } } dps_results: { key: "TestFrostTwoHand-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 384276.83856 - tps: 351314.94315 + dps: 387419.07563 + tps: 353851.06177 hps: 7012.23248 } } dps_results: { key: "TestFrostTwoHand-AllItems-BlossomofPureSnow-89081" value: { - dps: 381127.59586 - tps: 348472.81441 - hps: 6975.0872 + dps: 383270.86108 + tps: 350271.99094 + hps: 6967.56579 } } dps_results: { key: "TestFrostTwoHand-AllItems-BottleofInfiniteStars-87057" value: { - dps: 381113.0613 - tps: 349076.48704 - hps: 6871.29174 + dps: 384196.69473 + tps: 351572.56778 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-BraidofTenSongs-84072" value: { - dps: 380449.67468 - tps: 347881.77532 + dps: 383334.10593 + tps: 350170.2619 hps: 6912.71352 } } dps_results: { key: "TestFrostTwoHand-AllItems-Brawler'sStatue-282039" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379142.14456 + tps: 346883.61678 + hps: 6863.58235 } } dps_results: { key: "TestFrostTwoHand-AllItems-BreathoftheHydra-96827" value: { - dps: 382279.89578 - tps: 349531.62283 + dps: 385176.15482 + tps: 351841.71244 hps: 6944.34804 } } dps_results: { key: "TestFrostTwoHand-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 375942.04392 - tps: 344046.54795 - hps: 7036.82906 + dps: 378479.96264 + tps: 346252.71491 + hps: 7053.7468 } } dps_results: { key: "TestFrostTwoHand-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 391234.28993 - tps: 356044.75026 - hps: 6871.29174 + dps: 394275.61276 + tps: 358497.60137 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-BurningPrimalDiamond" value: { - dps: 412171.67818 - tps: 371421.77112 - hps: 7185.23262 + dps: 414634.65238 + tps: 373361.65086 + hps: 7176.56203 } } dps_results: { key: "TestFrostTwoHand-AllItems-CapacitivePrimalDiamond" value: { - dps: 424620.96408 - tps: 384064.57461 - hps: 7105.43185 + dps: 427698.61044 + tps: 386566.76337 + hps: 7113.29204 } } dps_results: { key: "TestFrostTwoHand-AllItems-CarbonicCarbuncle-81138" value: { - dps: 387187.00702 - tps: 353393.31774 - hps: 6989.93428 + dps: 390225.19643 + tps: 355823.80785 + hps: 6971.13075 } } dps_results: { key: "TestFrostTwoHand-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 383315.14047 - tps: 350635.25311 - hps: 7034.10324 + dps: 386448.9699 + tps: 353170.97733 + hps: 7015.29971 } } dps_results: { key: "TestFrostTwoHand-AllItems-CharmofTenSongs-84071" value: { - dps: 380640.86574 - tps: 347970.92439 + dps: 383558.76808 + tps: 350296.60415 hps: 6993.26697 } } dps_results: { key: "TestFrostTwoHand-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 384032.25924 - tps: 350887.93855 - hps: 6913.52255 + dps: 386599.33905 + tps: 352896.73884 + hps: 6902.24044 } } dps_results: { key: "TestFrostTwoHand-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 381038.90305 - tps: 349037.90088 - hps: 6871.29174 + dps: 384123.77104 + tps: 351536.35772 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 391460.12307 - tps: 357156.81569 - hps: 7019.06042 + dps: 394637.01308 + tps: 359732.30698 + hps: 7004.0176 } } dps_results: { key: "TestFrostTwoHand-AllItems-CoreofDecency-87497" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CourageousPrimalDiamond" value: { - dps: 404778.30176 - tps: 364094.08848 - hps: 7084.49403 + dps: 407209.20396 + tps: 366004.43686 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 376991.45641 - tps: 344969.59773 - hps: 6871.29174 + dps: 379106.30862 + tps: 346790.41117 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 382621.10996 - tps: 349565.80775 - hps: 6871.29174 + dps: 384742.40881 + tps: 351393.52289 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 379647.98272 - tps: 347301.07947 + dps: 382616.82677 + tps: 349687.46069 hps: 7032.70135 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 376811.1986 - tps: 344761.24928 + dps: 379756.93414 + tps: 347129.94058 hps: 6940.39148 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 375594.24024 - tps: 343676.20037 - hps: 7114.8557 + dps: 378497.07307 + tps: 346018.59474 + hps: 7112.75841 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 377144.13433 - tps: 345112.36086 - hps: 6871.29174 + dps: 380190.07609 + tps: 347570.97023 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 384911.31195 - tps: 351491.75887 - hps: 6871.29174 + dps: 387971.1243 + tps: 353963.92933 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 377069.66369 - tps: 345042.35344 - hps: 6871.29174 + dps: 379184.5159 + tps: 346863.16688 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 383676.21502 - tps: 350428.27617 - hps: 6871.29174 + dps: 385798.69196 + tps: 352257.25257 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 379865.1618 - tps: 347518.32593 + dps: 382840.44241 + tps: 349910.85706 hps: 7066.78046 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 376560.90651 - tps: 344561.51802 + dps: 379507.51321 + tps: 346931.77212 hps: 6962.54953 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 376815.11979 - tps: 344768.75407 + dps: 379704.32159 + tps: 347087.70546 hps: 7149.60499 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 377068.92537 - tps: 345035.10306 - hps: 6871.29174 + dps: 380112.04984 + tps: 347490.76886 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 386484.28706 - tps: 352777.13691 - hps: 6871.29174 + dps: 389538.69724 + tps: 355245.67119 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-CurseofHubris-105645" value: { - dps: 386826.891 - tps: 353096.97364 - hps: 7650.30108 + dps: 386710.53454 + tps: 352977.66868 + hps: 7632.56541 } } dps_results: { key: "TestFrostTwoHand-AllItems-CutstitcherMedallion-93255" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-Daelo'sFinalWords-87496" value: { - dps: 383525.39433 - tps: 349986.17971 - hps: 6871.29174 + dps: 385585.65944 + tps: 351646.14379 + hps: 6867.11114 } } dps_results: { key: "TestFrostTwoHand-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 423813.47821 - tps: 383339.04847 - hps: 7091.56134 + dps: 426897.78681 + tps: 385849.13532 + hps: 7099.42154 } } dps_results: { key: "TestFrostTwoHand-AllItems-DarkmistVortex-87172" value: { - dps: 389664.40867 - tps: 354856.68121 + dps: 392711.96847 + tps: 357279.11838 hps: 6972.61509 } } dps_results: { key: "TestFrostTwoHand-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 379658.11814 - tps: 347633.94805 - hps: 6871.29174 + dps: 381734.24733 + tps: 349367.39221 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-DestructivePrimalDiamond" value: { - dps: 406064.21025 - tps: 365178.51699 - hps: 7136.99458 + dps: 408522.20641 + tps: 367112.90528 + hps: 7128.7956 } } dps_results: { key: "TestFrostTwoHand-AllItems-DisciplineofXuen-103986" value: { - dps: 384804.28871 - tps: 352767.09371 - hps: 6871.29174 + dps: 387997.6771 + tps: 355373.55403 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 379047.82614 - tps: 346538.17161 - hps: 6933.79522 + dps: 381056.81416 + tps: 348191.32194 + hps: 6935.7266 } } dps_results: { key: "TestFrostTwoHand-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 379658.11814 - tps: 347633.94805 - hps: 6871.29174 + dps: 381734.24733 + tps: 349367.39221 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 379590.73344 - tps: 347589.73127 - hps: 6871.29174 + dps: 381666.55586 + tps: 349323.17543 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 384902.9434 - tps: 352192.84562 - hps: 6871.29174 + dps: 386977.68239 + tps: 353925.99545 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 376991.45641 - tps: 344969.59773 - hps: 6871.29174 + dps: 379106.30862 + tps: 346790.41117 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 382621.10996 - tps: 349565.80775 - hps: 6871.29174 + dps: 384742.40881 + tps: 351393.52289 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 379647.98272 - tps: 347301.07947 + dps: 382616.82677 + tps: 349687.46069 hps: 7032.70135 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 376811.1986 - tps: 344761.24928 + dps: 379756.93414 + tps: 347129.94058 hps: 6940.39148 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 375594.24024 - tps: 343676.20037 - hps: 7114.8557 + dps: 378497.07307 + tps: 346018.59474 + hps: 7112.75841 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 377166.59282 - tps: 345135.17553 - hps: 6871.29174 + dps: 380212.59333 + tps: 347593.7849 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 384988.88738 - tps: 351535.6831 - hps: 6871.29174 + dps: 388042.01961 + tps: 354002.87796 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 379590.73344 - tps: 347589.73127 - hps: 6871.29174 + dps: 381666.55586 + tps: 349323.17543 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-EffulgentPrimalDiamond" value: { - dps: 405196.48422 - tps: 364597.18941 - hps: 7161.78262 + dps: 407835.99571 + tps: 366647.76594 + hps: 7153.52931 } } dps_results: { key: "TestFrostTwoHand-AllItems-EmberPrimalDiamond" value: { - dps: 404778.30176 - tps: 364094.08848 - hps: 7084.49403 + dps: 407209.20396 + tps: 366004.43686 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-EmblemofKypariZar-84077" value: { - dps: 379736.28916 - tps: 347005.94052 + dps: 383020.45488 + tps: 349684.76464 hps: 6895.78607 } } dps_results: { key: "TestFrostTwoHand-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 382277.53891 - tps: 349857.72389 + dps: 385239.69025 + tps: 352240.34247 hps: 6932.72843 } } dps_results: { key: "TestFrostTwoHand-AllItems-EmptyFruitBarrel-81133" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 399295.09579 - tps: 362184.65338 + dps: 401997.18606 + tps: 364367.35782 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 395043.83569 - tps: 358693.34255 + dps: 397729.75158 + tps: 360845.0994 hps: 20.03857 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 399525.61829 - tps: 362363.58975 + dps: 402244.76852 + tps: 364561.50428 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 397064.51752 - tps: 360542.73295 + dps: 399788.74647 + tps: 362726.52603 hps: 19.6758 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 394226.68352 - tps: 357913.59806 + dps: 396962.9819 + tps: 360128.6541 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 396538.31924 - tps: 359700.1726 + dps: 399690.76016 + tps: 362319.45107 hps: 19.08723 } } dps_results: { key: "TestFrostTwoHand-AllItems-EnigmaticPrimalDiamond" value: { - dps: 406064.21025 - tps: 365178.51699 - hps: 7136.99458 + dps: 408522.20641 + tps: 367112.90528 + hps: 7128.7956 } } dps_results: { key: "TestFrostTwoHand-AllItems-EssenceofTerror-87175" value: { - dps: 380499.78077 - tps: 347340.31333 + dps: 383455.74922 + tps: 349686.14603 hps: 6941.84921 } } dps_results: { key: "TestFrostTwoHand-AllItems-EternalPrimalDiamond" value: { - dps: 404778.30176 - tps: 364094.08848 - hps: 7084.49403 + dps: 407209.20396 + tps: 366004.43686 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-EvilEyeofGalakras-105491" value: { - dps: 408506.86901 - tps: 371966.13727 - hps: 7341.06916 + dps: 411565.3888 + tps: 374407.90252 + hps: 7355.68472 } } dps_results: { key: "TestFrostTwoHand-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 393114.2241 - tps: 357391.62456 - hps: 6871.29174 + dps: 396176.14523 + tps: 359858.454 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-FearwurmBadge-84074" value: { - dps: 381026.68052 - tps: 348449.99417 + dps: 383930.98348 + tps: 350766.33935 hps: 7033.63585 } } dps_results: { key: "TestFrostTwoHand-AllItems-FearwurmRelic-84070" value: { - dps: 380423.65049 - tps: 347781.58933 - hps: 6937.31692 + dps: 383548.7764 + tps: 350318.68864 + hps: 6933.55622 } } dps_results: { key: "TestFrostTwoHand-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 383827.84922 - tps: 350451.01286 + dps: 386777.95659 + tps: 352798.71624 hps: 6934.90852 } } dps_results: { key: "TestFrostTwoHand-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 381020.49529 - tps: 349019.49312 - hps: 6871.29174 + dps: 384116.04411 + tps: 351528.63079 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 404827.22877 - tps: 366782.2208 + dps: 407827.57252 + tps: 369207.13742 hps: 6910.89152 } } dps_results: { key: "TestFrostTwoHand-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378700.11742 + tps: 346464.90549 + hps: 6882.15396 } } dps_results: { key: "TestFrostTwoHand-AllItems-FlashingSteelTalisman-81265" value: { - dps: 377014.02475 - tps: 344982.0825 - hps: 6871.29174 + dps: 379415.48335 + tps: 347040.28352 + hps: 6872.60804 } } dps_results: { key: "TestFrostTwoHand-AllItems-FleetPrimalDiamond" value: { - dps: 406426.8782 - tps: 365742.66492 - hps: 7084.49403 + dps: 408867.12761 + tps: 367662.36051 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-ForlornPrimalDiamond" value: { - dps: 404778.30176 - tps: 364094.08848 - hps: 7084.49403 + dps: 407209.20396 + tps: 366004.43686 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 381377.50193 - tps: 349412.0178 - hps: 7008.36056 + dps: 384451.40208 + tps: 351904.50658 + hps: 7012.12126 } } dps_results: { key: "TestFrostTwoHand-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Fusion-FireCore-105459" value: { - dps: 399436.40051 - tps: 362370.27226 - hps: 6871.29174 + dps: 402495.60536 + tps: 364839.85816 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-GazeoftheTwins-96915" value: { - dps: 394453.55112 - tps: 359805.34211 - hps: 7070.17029 + dps: 397593.39838 + tps: 362339.34485 + hps: 7064.15316 } } dps_results: { key: "TestFrostTwoHand-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 379553.76146 - tps: 347259.18976 - hps: 6955.12042 + dps: 381859.06727 + tps: 349304.72208 + hps: 6943.65033 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 377191.7098 - tps: 345154.48557 - hps: 6871.29174 + dps: 379309.03524 + tps: 346977.77225 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 387332.21583 - tps: 353416.66006 - hps: 6871.29174 + dps: 389458.77474 + tps: 355250.00657 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 381782.17107 - tps: 349292.44628 - hps: 7134.80156 + dps: 384783.18746 + tps: 351700.54688 + hps: 7138.56227 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 376760.46038 - tps: 344831.72163 - hps: 6991.29287 + dps: 379755.55476 + tps: 347248.18576 + hps: 6995.05358 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 375981.70716 - tps: 344047.22709 + dps: 379184.44279 + tps: 346649.7234 hps: 7238.34031 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 377313.46004 - tps: 345258.39965 - hps: 6871.29174 + dps: 380361.42846 + tps: 347718.31494 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 391516.89689 - tps: 356963.6223 - hps: 6871.29174 + dps: 394572.25041 + tps: 359433.16518 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Haromm'sTalisman-105527" value: { - dps: 396989.76729 - tps: 364881.2613 - hps: 6871.29174 + dps: 400160.76353 + tps: 367462.2601 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 380016.64999 - tps: 347423.7803 - hps: 6855.95415 + dps: 383012.13411 + tps: 350059.86534 + hps: 6889.97164 } } dps_results: { key: "TestFrostTwoHand-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 375990.98547 - tps: 344004.20849 + dps: 378894.23004 + tps: 346329.19538 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 380277.08959 - tps: 348290.31261 + dps: 383222.83172 + tps: 350657.79706 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 389312.18716 - tps: 355386.61143 - hps: 6974.1813 + dps: 392461.48615 + tps: 357943.06071 + hps: 6959.13848 } } dps_results: { key: "TestFrostTwoHand-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 387762.29885 - tps: 354866.4825 - hps: 6871.29174 + dps: 390859.36344 + tps: 357376.98827 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-HeartofFire-81181" value: { - dps: 379556.76447 - tps: 347555.7623 - hps: 6871.29174 + dps: 381871.93612 + tps: 349613.40835 + hps: 6863.58235 } } dps_results: { key: "TestFrostTwoHand-AllItems-HeartwarmerMedallion-93260" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-HelmbreakerMedallion-93261" value: { - dps: 389016.10082 - tps: 355291.18867 - hps: 6995.39501 + dps: 391165.28881 + tps: 357097.30499 + hps: 6987.8736 } } dps_results: { key: "TestFrostTwoHand-AllItems-Horridon'sLastGasp-96757" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-ImpassivePrimalDiamond" value: { - dps: 406064.21025 - tps: 365178.51699 - hps: 7136.99458 + dps: 408522.20641 + tps: 367112.90528 + hps: 7128.7956 } } dps_results: { key: "TestFrostTwoHand-AllItems-IndomitablePrimalDiamond" value: { - dps: 405196.48422 - tps: 364597.18941 - hps: 7161.78262 + dps: 407835.99571 + tps: 366647.76594 + hps: 7153.52931 } } dps_results: { key: "TestFrostTwoHand-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 376618.80762 - tps: 344653.97852 + dps: 380128.83138 + tps: 347569.11212 hps: 6862.18341 } } dps_results: { key: "TestFrostTwoHand-AllItems-InsigniaofKypariZar-84078" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-IronBellyWok-89083" value: { - dps: 386834.22544 - tps: 353308.31051 - hps: 6855.95415 + dps: 389866.53592 + tps: 355979.97513 + hps: 6889.97164 } } dps_results: { key: "TestFrostTwoHand-AllItems-IronProtectorTalisman-85181" value: { - dps: 376383.72273 - tps: 344404.46337 - hps: 7018.63174 + dps: 379479.29175 + tps: 346933.94925 + hps: 7014.7843 } } dps_results: { key: "TestFrostTwoHand-AllItems-JadeBanditFigurine-86772" value: { - dps: 380070.54249 - tps: 347503.42227 - hps: 6924.18361 + dps: 382259.47709 + tps: 349334.71066 + hps: 6920.42291 } } dps_results: { key: "TestFrostTwoHand-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 386127.37617 - tps: 352727.95132 - hps: 6924.18361 + dps: 388317.06388 + tps: 354560.43471 + hps: 6920.42291 } } dps_results: { key: "TestFrostTwoHand-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 380679.93804 - tps: 348095.60304 - hps: 6962.3008 + dps: 382812.37003 + tps: 349883.94633 + hps: 6960.04438 } } dps_results: { key: "TestFrostTwoHand-AllItems-JadeWarlordFigurine-86775" value: { - dps: 380002.42151 - tps: 348002.77868 - hps: 7031.78547 + dps: 382282.71319 + tps: 349924.75904 + hps: 7043.39875 } } dps_results: { key: "TestFrostTwoHand-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 377023.56906 - tps: 345050.20693 - hps: 17872.55287 + dps: 380072.63277 + tps: 347513.09721 + hps: 17939.33111 } } dps_results: { key: "TestFrostTwoHand-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 394903.72709 - tps: 362902.72492 - hps: 6871.29174 + dps: 398108.47934 + tps: 365521.06602 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 384902.9434 - tps: 352192.84562 - hps: 6871.29174 + dps: 386977.68239 + tps: 353925.99545 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-KnotofTenSongs-84073" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 376847.27919 - tps: 344846.27702 + dps: 378970.379 + tps: 346819.32344 hps: 6871.29174 } } dps_results: { key: "TestFrostTwoHand-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 378506.79794 - tps: 346570.87633 - hps: 7046.54325 + dps: 381362.58167 + tps: 349046.83469 + hps: 7042.65787 } } dps_results: { key: "TestFrostTwoHand-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 390385.133 - tps: 355859.66191 + dps: 393363.71851 + tps: 358257.93088 hps: 6927.48243 } } dps_results: { key: "TestFrostTwoHand-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 385141.90867 - tps: 350935.88688 - hps: 6871.29174 + dps: 387426.17934 + tps: 352964.18355 + hps: 6863.58235 } } dps_results: { key: "TestFrostTwoHand-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 380387.19013 - tps: 348359.37909 - hps: 6871.29174 + dps: 383457.05369 + tps: 350841.98076 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 381224.22927 - tps: 349196.85249 - hps: 6871.29174 + dps: 384319.12848 + tps: 351705.01162 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-LightoftheCosmos-87065" value: { - dps: 379974.64599 - tps: 347307.70504 + dps: 382953.77478 + tps: 349706.45048 hps: 6927.48243 } } dps_results: { key: "TestFrostTwoHand-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 423813.47821 - tps: 383339.04847 - hps: 7091.56134 + dps: 426897.78681 + tps: 385849.13532 + hps: 7099.42154 } } dps_results: { key: "TestFrostTwoHand-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 377069.66369 - tps: 345042.35344 - hps: 6871.29174 + dps: 379184.5159 + tps: 346863.16688 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 383676.21502 - tps: 350428.27617 - hps: 6871.29174 + dps: 385798.69196 + tps: 352257.25257 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 379865.1618 - tps: 347518.32593 + dps: 382840.44241 + tps: 349910.85706 hps: 7066.78046 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 376560.90651 - tps: 344561.51802 + dps: 379507.51321 + tps: 346931.77212 hps: 6962.54953 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 376815.11979 - tps: 344768.75407 + dps: 379704.32159 + tps: 347087.70546 hps: 7149.60499 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 377129.69525 - tps: 345096.90722 - hps: 6871.29174 + dps: 380176.14037 + tps: 347555.89366 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 386455.08059 - tps: 352781.72806 - hps: 6871.29174 + dps: 389515.77975 + tps: 355258.2699 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MarkoftheCatacombs-83731" value: { - dps: 381461.00264 - tps: 349254.09052 - hps: 6947.59901 + dps: 384605.99981 + tps: 351809.1716 + hps: 6932.55619 } } dps_results: { key: "TestFrostTwoHand-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 380757.1854 - tps: 348756.18323 - hps: 6871.29174 + dps: 382830.69196 + tps: 350487.31154 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 378821.01286 - tps: 346820.01069 - hps: 6871.29174 + dps: 381884.96384 + tps: 349297.55052 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-MirrorScope-4700" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 375990.98547 - tps: 344004.20849 + dps: 378894.23004 + tps: 346329.19538 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-MistdancerDefenderStone-101087" value: { - dps: 380450.63743 - tps: 348470.95777 + dps: 383394.80059 + tps: 350836.82003 hps: 7054.43014 } } dps_results: { key: "TestFrostTwoHand-AllItems-MistdancerIdolofRage-101113" value: { - dps: 380346.86504 - tps: 348317.81204 - hps: 6871.29174 + dps: 383424.16443 + tps: 350807.77433 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MistdancerStoneofRage-101117" value: { - dps: 381176.87547 - tps: 349149.49869 - hps: 6871.29174 + dps: 384257.69435 + tps: 351643.5775 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-MithrilWristwatch-282033" value: { - dps: 382675.56224 - tps: 350072.18367 - hps: 7019.06042 + dps: 385835.15777 + tps: 352633.96418 + hps: 7004.0176 } } dps_results: { key: "TestFrostTwoHand-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 384878.00361 - tps: 351749.06198 + dps: 387892.36715 + tps: 354165.55353 hps: 7011.30229 } } dps_results: { key: "TestFrostTwoHand-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 381021.7937 - tps: 349020.79153 - hps: 6871.29174 + dps: 384097.73204 + tps: 351510.31872 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-NitroBoosts-4223" value: { - dps: 424620.96408 - tps: 384064.57461 - hps: 7105.43185 + dps: 427698.61044 + tps: 386566.76337 + hps: 7113.29204 } } dps_results: { key: "TestFrostTwoHand-AllItems-OathswornDefenderIdol-101303" value: { - dps: 375990.98547 - tps: 344004.20849 + dps: 378894.23004 + tps: 346329.19538 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-OathswornDefenderStone-101306" value: { - dps: 380322.47852 - tps: 348335.70154 + dps: 383270.60647 + tps: 350705.5718 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-OathswornIdolofBattle-101295" value: { - dps: 389331.02512 - tps: 355409.34877 - hps: 6974.1813 + dps: 392479.71503 + tps: 357967.1869 + hps: 6959.13848 } } dps_results: { key: "TestFrostTwoHand-AllItems-OathswornStoneofBattle-101294" value: { - dps: 387695.99767 - tps: 354800.18132 - hps: 6871.29174 + dps: 390772.95614 + tps: 357290.58096 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-PhaseFingers-4697" value: { - dps: 423463.33234 - tps: 383059.82732 - hps: 7105.43185 + dps: 425628.7922 + tps: 384823.48838 + hps: 7084.9344 } } dps_results: { key: "TestFrostTwoHand-AllItems-PlateofCyclopeanDread" value: { - dps: 322775.37978 - tps: 293916.61118 - hps: 4429.07419 + dps: 320246.60113 + tps: 291374.84772 + hps: 4395.89119 } } dps_results: { key: "TestFrostTwoHand-AllItems-PlateoftheAll-ConsumingMaw" value: { - dps: 314538.4697 - tps: 285837.49964 - hps: 4430.33549 + dps: 315799.57287 + tps: 287008.93615 + hps: 4411.00481 } } dps_results: { key: "TestFrostTwoHand-AllItems-PlateoftheLostCatacomb" value: { - dps: 302897.86689 - tps: 275636.35058 - hps: 4110.41714 + dps: 303131.70094 + tps: 275802.00796 + hps: 4116.91877 } } dps_results: { key: "TestFrostTwoHand-AllItems-PouchofWhiteAsh-103639" value: { - dps: 376847.27919 - tps: 344846.27702 + dps: 378970.379 + tps: 346819.32344 hps: 6871.29174 } } dps_results: { key: "TestFrostTwoHand-AllItems-PowerfulPrimalDiamond" value: { - dps: 405196.48422 - tps: 364597.18941 - hps: 7161.78262 + dps: 407835.99571 + tps: 366647.76594 + hps: 7153.52931 } } dps_results: { key: "TestFrostTwoHand-AllItems-PriceofProgress-81266" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 377333.48738 - tps: 345279.31361 - hps: 6871.29174 + dps: 379450.81282 + tps: 347102.60029 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 390460.26398 - tps: 355973.55409 - hps: 6871.29174 + dps: 392590.31548 + tps: 357810.63973 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 382497.73969 - tps: 349833.82691 + dps: 385490.30498 + tps: 352233.12469 hps: 7219.44809 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 375930.72623 - tps: 343971.29451 + dps: 378860.57921 + tps: 346321.66094 hps: 7042.62581 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 376157.18495 - tps: 344242.19809 + dps: 379073.60551 + tps: 346581.03409 hps: 7326.14312 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 377418.8883 - tps: 345348.29684 - hps: 6871.29174 + dps: 380468.19193 + tps: 347809.11325 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 395892.50057 - tps: 360518.80723 - hps: 6871.29174 + dps: 398972.81578 + tps: 363009.71713 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 394804.56463 - tps: 360527.84589 - hps: 7034.10324 + dps: 398174.68258 + tps: 363283.84305 + hps: 7015.29971 } } dps_results: { key: "TestFrostTwoHand-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 393175.03726 - tps: 360363.68884 - hps: 7115.10542 + dps: 396985.24192 + tps: 363594.71518 + hps: 7123.48907 } } dps_results: { key: "TestFrostTwoHand-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 393175.03726 - tps: 360363.68884 - hps: 7115.10542 + dps: 396985.24192 + tps: 363594.71518 + hps: 7123.48907 } } dps_results: { key: "TestFrostTwoHand-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 386575.53783 - tps: 348363.85133 + dps: 389431.3564 + tps: 350616.62868 hps: 6857.67938 } } dps_results: { key: "TestFrostTwoHand-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 393611.00947 - tps: 354499.18331 + dps: 396472.18263 + tps: 356766.35458 hps: 6797.40048 } } dps_results: { key: "TestFrostTwoHand-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofChi-Ji-79330" value: { - dps: 376846.24492 - tps: 344846.27702 - hps: 6871.29174 + dps: 379895.79478 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofKypariZar-84075" value: { - dps: 382000.68568 - tps: 349272.9243 - hps: 6935.98207 + dps: 385060.65836 + tps: 351742.09013 + hps: 6947.26418 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofNiuzao-79329" value: { - dps: 376698.63437 - tps: 344690.6269 - hps: 7031.78547 + dps: 378522.74091 + tps: 346125.95429 + hps: 7037.97922 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofXuen-79327" value: { - dps: 389610.84673 - tps: 355567.9224 - hps: 6871.29174 + dps: 392660.04805 + tps: 358032.52637 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofXuen-79328" value: { - dps: 377220.6438 - tps: 345171.49804 - hps: 6871.29174 + dps: 380273.99708 + tps: 347639.12142 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-RelicofYu'lon-79331" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 377241.93961 - tps: 345168.66241 - hps: 6871.29174 + dps: 380298.47339 + tps: 347636.3049 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-ResolveofNiuzao-103990" value: { - dps: 382147.8897 - tps: 350146.88753 - hps: 6871.29174 + dps: 385236.11485 + tps: 352648.70153 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-ReverberatingPrimalDiamond" value: { - dps: 413545.02877 - tps: 372600.34307 - hps: 7185.23262 + dps: 416006.5485 + tps: 374539.06761 + hps: 7176.56203 } } dps_results: { key: "TestFrostTwoHand-AllItems-RevitalizingPrimalDiamond" value: { - dps: 412171.67818 - tps: 371421.77112 - hps: 7185.23262 + dps: 414634.65238 + tps: 373361.65086 + hps: 7176.56203 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofCinderglacier-3369" value: { - dps: 400821.29249 - tps: 364498.93269 + dps: 403583.10483 + tps: 366739.31467 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofRazorice-3370" value: { - dps: 416830.8442 - tps: 380508.4844 + dps: 419703.60775 + tps: 382859.81759 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofRe-Origination-96918" value: { - dps: 384925.96406 - tps: 350840.26097 + dps: 387924.35114 + tps: 353185.07633 hps: 6975.55252 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofSpellbreaking-3595" value: { - dps: 392864.82424 - tps: 356565.27008 + dps: 395545.21972 + tps: 358709.92386 hps: 18.92463 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofSpellshattering-3367" value: { - dps: 393505.32596 - tps: 357291.50634 + dps: 396172.38631 + tps: 359426.84857 hps: 18.99952 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofSwordbreaking-3594" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneofSwordshattering-3365" value: { - dps: 394469.64156 - tps: 358147.28176 + dps: 397205.9267 + tps: 360362.13654 hps: 19.05111 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneoftheNerubianCarapace-3883" value: { - dps: 395486.31828 - tps: 359187.11758 + dps: 397820.14279 + tps: 361027.94252 hps: 19.62023 } } dps_results: { key: "TestFrostTwoHand-AllItems-RuneoftheStoneskinGargoyle-3847" value: { - dps: 394232.35109 - tps: 358029.27218 + dps: 396933.92195 + tps: 360198.30724 hps: 19.228 } } dps_results: { key: "TestFrostTwoHand-AllItems-SI:7Operative'sManual-92784" value: { - dps: 376847.27919 - tps: 344846.27702 + dps: 378970.379 + tps: 346819.32344 hps: 6871.29174 } } dps_results: { key: "TestFrostTwoHand-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378928.54842 + tps: 346585.16799 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-SearingWords-81267" value: { - dps: 380259.14636 - tps: 347898.66448 - hps: 6962.64183 + dps: 383389.35776 + tps: 350436.01374 + hps: 6947.59901 } } dps_results: { key: "TestFrostTwoHand-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 379632.57293 - tps: 347197.98575 - hps: 6901.50711 + dps: 381604.71683 + tps: 348781.81767 + hps: 6890.41298 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofCompassion-83736" value: { - dps: 378804.43306 - tps: 346803.43089 - hps: 6871.29174 + dps: 381868.38405 + tps: 349280.97073 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofDevotion-83740" value: { - dps: 381403.42076 - tps: 349197.54291 - hps: 6947.59901 + dps: 384543.53752 + tps: 351747.74359 + hps: 6932.55619 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofFidelity-83737" value: { - dps: 382681.29526 - tps: 349852.53673 + dps: 385654.16492 + tps: 352234.66775 hps: 7010.19895 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofGrace-83738" value: { - dps: 380200.66342 - tps: 347801.31265 - hps: 6943.11248 + dps: 382940.69959 + tps: 349959.641 + hps: 6948.37747 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofKypariZar-84076" value: { - dps: 381603.76287 - tps: 349367.29908 - hps: 6947.59901 + dps: 384746.72744 + tps: 351919.5644 + hps: 6932.55619 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofPatience-83739" value: { - dps: 379246.57411 - tps: 347245.57194 - hps: 6871.29174 + dps: 382318.73767 + tps: 349731.32435 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigilofRampage-105580" value: { - dps: 377529.95844 - tps: 345423.74079 - hps: 6871.29174 + dps: 380595.57364 + tps: 347898.29991 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SigiloftheCatacombs-83732" value: { - dps: 381318.48553 - tps: 348686.86044 + dps: 384263.21009 + tps: 351048.49443 hps: 6938.43417 } } dps_results: { key: "TestFrostTwoHand-AllItems-SinisterPrimalDiamond" value: { - dps: 405592.32825 - tps: 364750.14718 - hps: 7120.59662 + dps: 408045.90774 + tps: 366680.58591 + hps: 7112.39764 } } dps_results: { key: "TestFrostTwoHand-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 404192.64464 - tps: 368186.64334 - hps: 7186.43882 + dps: 407573.12843 + tps: 370921.07054 + hps: 7169.89172 } } dps_results: { key: "TestFrostTwoHand-AllItems-SkullrenderMedallion-93256" value: { - dps: 389016.10082 - tps: 355291.18867 - hps: 6995.39501 + dps: 391165.28881 + tps: 357097.30499 + hps: 6987.8736 } } dps_results: { key: "TestFrostTwoHand-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SoulBarrier-96927" value: { - dps: 377237.7655 - tps: 345296.37501 + dps: 380134.57792 + tps: 347616.75599 hps: 7241.27024 } } dps_results: { key: "TestFrostTwoHand-AllItems-SparkofZandalar-96770" value: { - dps: 391856.64048 - tps: 358531.4187 + dps: 394752.79884 + tps: 360841.41307 hps: 6944.34804 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpiritsoftheSun-87163" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 383627.30953 - tps: 350543.13626 + dps: 386626.0445 + tps: 352946.757 hps: 6932.90933 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpringrainIdolofRage-101009" value: { - dps: 380400.0864 - tps: 348368.64188 - hps: 6871.29174 + dps: 383478.65062 + tps: 350859.89018 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 381104.03486 - tps: 349103.03269 - hps: 6871.29174 + dps: 384184.93039 + tps: 351597.51707 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpringrainStoneofRage-101012" value: { - dps: 381203.68338 - tps: 349176.3066 - hps: 6871.29174 + dps: 384288.07821 + tps: 351673.96135 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 379632.57293 - tps: 347197.98575 - hps: 6901.50711 + dps: 381604.71683 + tps: 348781.81767 + hps: 6890.41298 } } dps_results: { key: "TestFrostTwoHand-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 381540.09489 - tps: 349539.09272 - hps: 6871.29174 + dps: 384623.88534 + tps: 352036.47202 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 384741.94231 - tps: 351590.0757 + dps: 387752.70279 + tps: 354003.44471 hps: 6967.92535 } } dps_results: { key: "TestFrostTwoHand-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 380433.87628 - tps: 348406.7414 - hps: 6871.29174 + dps: 383512.30002 + tps: 350897.9897 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 381068.11759 - tps: 349067.11542 - hps: 6871.29174 + dps: 384144.06747 + tps: 351556.65415 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 381199.1705 - tps: 349171.79372 - hps: 6871.29174 + dps: 384283.40544 + tps: 351669.28858 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-StuffofNightmares-87160" value: { - dps: 381005.87524 - tps: 349004.87308 - hps: 6871.29174 + dps: 384085.76782 + tps: 351498.3545 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 375990.98547 - tps: 344004.20849 + dps: 378894.23004 + tps: 346329.19538 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-SunsoulDefenderStone-101163" value: { - dps: 380281.31705 - tps: 348294.54007 + dps: 383225.56086 + tps: 350660.5262 hps: 7050.55155 } } dps_results: { key: "TestFrostTwoHand-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 389379.78222 - tps: 355450.08513 - hps: 6974.1813 + dps: 392513.66335 + tps: 357990.78061 + hps: 6959.13848 } } dps_results: { key: "TestFrostTwoHand-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 387741.89311 - tps: 354846.07676 - hps: 6871.29174 + dps: 390815.56527 + tps: 357333.19009 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 426789.45468 - tps: 385788.65305 - hps: 7091.56134 + dps: 429874.51802 + tps: 388299.52425 + hps: 7099.42154 } } dps_results: { key: "TestFrostTwoHand-AllItems-SymboloftheCatacombs-83735" value: { - dps: 381572.79977 - tps: 349165.15252 - hps: 6937.48015 + dps: 384731.42609 + tps: 351726.36808 + hps: 6922.43733 } } dps_results: { @@ -2121,265 +2121,265 @@ dps_results: { dps_results: { key: "TestFrostTwoHand-AllItems-TalismanofBloodlust-96864" value: { - dps: 385653.52655 - tps: 352627.40899 + dps: 388657.86684 + tps: 355043.83483 hps: 7013.43909 } } dps_results: { key: "TestFrostTwoHand-AllItems-TerrorintheMists-87167" value: { - dps: 384573.78103 - tps: 350899.27671 - hps: 7088.75541 + dps: 387708.93839 + tps: 353407.88854 + hps: 7073.71259 } } dps_results: { key: "TestFrostTwoHand-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Thok'sTailTip-105609" value: { - dps: 419969.80208 - tps: 380034.05478 - hps: 7115.10542 + dps: 423973.21816 + tps: 383453.46159 + hps: 7123.48907 } } dps_results: { key: "TestFrostTwoHand-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 378818.50017 - tps: 346096.35216 + dps: 381836.33893 + tps: 348508.96801 hps: 6901.9707 } } dps_results: { key: "TestFrostTwoHand-AllItems-TickingEbonDetonator-105612" value: { - dps: 385064.51406 - tps: 352933.32699 - hps: 6871.29174 + dps: 388193.82396 + tps: 355471.04732 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Time-LostArtifact-103678" value: { - dps: 384835.56832 - tps: 352028.0698 - hps: 6962.54664 + dps: 387742.42499 + tps: 354344.14437 + hps: 6966.30735 } } dps_results: { key: "TestFrostTwoHand-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 380414.67675 - tps: 348381.72915 - hps: 6871.29174 + dps: 383484.66955 + tps: 350864.33082 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 381210.22911 - tps: 349182.85232 - hps: 6871.29174 + dps: 384293.46438 + tps: 351679.34753 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 377116.54621 - tps: 345086.18939 - hps: 6871.29174 + dps: 379231.39842 + tps: 346907.00284 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 378962.1314 + tps: 346667.09047 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 385078.91596 - tps: 351574.82961 - hps: 6871.29174 + dps: 387202.95903 + tps: 353405.48269 + hps: 6863.77033 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 380584.83513 - tps: 348159.05908 + dps: 383768.66958 + tps: 350761.55842 hps: 7094.39831 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 376549.35413 - tps: 344556.93411 + dps: 379726.14473 + tps: 347161.19579 hps: 6972.68777 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 375759.34158 - tps: 343791.61842 - hps: 7095.21331 + dps: 378522.24907 + tps: 345964.66964 + hps: 7099.36879 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 377282.67518 - tps: 345239.97839 - hps: 6871.29174 + dps: 380328.88677 + tps: 347698.47519 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 388396.78725 - tps: 354367.92185 - hps: 6871.29174 + dps: 391461.1692 + tps: 356846.40627 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-TyrannicalPrimalDiamond" value: { - dps: 404778.30176 - tps: 364094.08848 - hps: 7084.49403 + dps: 407209.20396 + tps: 366004.43686 + hps: 7076.29505 } } dps_results: { key: "TestFrostTwoHand-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-VaporshieldMedallion-93262" value: { - dps: 380757.1854 - tps: 348756.18323 - hps: 6871.29174 + dps: 382830.69196 + tps: 350487.31154 + hps: 6872.79602 } } dps_results: { key: "TestFrostTwoHand-AllItems-VialofDragon'sBlood-87063" value: { - dps: 380743.5638 - tps: 348742.56163 - hps: 6871.29174 + dps: 383821.54245 + tps: 351234.12914 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-VialofIchorousBlood-100963" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-VialofLivingCorruption-105568" value: { - dps: 376501.77956 - tps: 344524.15681 + dps: 379418.54489 + tps: 346859.53276 hps: 7344.76379 } } dps_results: { key: "TestFrostTwoHand-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 377380.244 - tps: 345294.60587 - hps: 6871.29174 + dps: 380430.30852 + tps: 347757.49819 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-VisionofthePredator-81192" value: { - dps: 381084.81532 - tps: 348103.09394 - hps: 6982.94964 + dps: 384209.9309 + tps: 350623.09302 + hps: 6967.90682 } } dps_results: { key: "TestFrostTwoHand-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 380184.00086 - tps: 347188.98473 + dps: 383210.46957 + tps: 349601.1388 hps: 6904.37368 } } dps_results: { key: "TestFrostTwoHand-AllItems-WindsweptPages-81125" value: { - dps: 381431.19112 - tps: 348651.69796 - hps: 6931.67175 + dps: 384318.38741 + tps: 350947.81085 + hps: 6924.15034 } } dps_results: { key: "TestFrostTwoHand-AllItems-WoundripperMedallion-93253" value: { - dps: 381544.37332 - tps: 348818.60503 - hps: 6995.39501 + dps: 383693.54689 + tps: 350623.38314 + hps: 6987.8736 } } dps_results: { key: "TestFrostTwoHand-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 376847.27919 - tps: 344846.27702 - hps: 6871.29174 + dps: 379896.82906 + tps: 347309.41574 + hps: 6856.24892 } } dps_results: { key: "TestFrostTwoHand-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 387417.35947 - tps: 349380.57009 - hps: 6859.42965 + dps: 390299.28356 + tps: 351677.23352 + hps: 6857.25031 } } dps_results: { key: "TestFrostTwoHand-AllItems-Yu'lon'sBite-103987" value: { - dps: 385682.19414 - tps: 351698.28489 - hps: 7140.29835 + dps: 388929.55544 + tps: 354311.25167 + hps: 7129.01623 } } dps_results: { key: "TestFrostTwoHand-AllItems-ZenAlchemistStone-75274" value: { - dps: 388810.56269 - tps: 355101.19506 - hps: 6871.29174 + dps: 391874.20713 + tps: 357580.30148 + hps: 6856.24892 } } dps_results: { diff --git a/sim/death_knight/talents.go b/sim/death_knight/talents.go index 6d0261e0be..3c29bee2c1 100644 --- a/sim/death_knight/talents.go +++ b/sim/death_knight/talents.go @@ -579,7 +579,7 @@ func (dk *DeathKnight) registerDrwDeathSiphon() *core.Spell { /* Continuously converts Runic Power to health, restoring 3% of maximum health every 1 sec. Only base Runic Power generation from spending runes may occur while Conversion is active. -This effect lasts until canceled, or Runic Power is exhausted. +This effect lasts until cancelled, or Runic Power is exhausted. */ func (dk *DeathKnight) registerConversion() { if !dk.Talents.Conversion { diff --git a/sim/death_knight/unholy/TestUnholy.results b/sim/death_knight/unholy/TestUnholy.results index dc2044cae7..06369a86a9 100644 --- a/sim/death_knight/unholy/TestUnholy.results +++ b/sim/death_knight/unholy/TestUnholy.results @@ -33,65 +33,65 @@ character_stats_results: { dps_results: { key: "TestUnholy-AllItems-AgilePrimalDiamond" value: { - dps: 415217.33089 - tps: 291923.061 - hps: 4101.43301 + dps: 419136.84646 + tps: 294229.96252 + hps: 4105.19372 } } dps_results: { key: "TestUnholy-AllItems-AlacrityofXuen-103989" value: { - dps: 397589.43225 - tps: 287728.52048 - hps: 4142.57927 + dps: 401892.76139 + tps: 290683.78805 + hps: 4142.4137 } } dps_results: { key: "TestUnholy-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 374117.17345 - tps: 272576.36644 - hps: 4027.90823 + dps: 375977.94184 + tps: 273791.5341 + hps: 4051.11979 } } dps_results: { key: "TestUnholy-AllItems-ArrowflightMedallion-93258" value: { - dps: 377606.90659 - tps: 275624.68308 - hps: 4015.66689 + dps: 379283.53833 + tps: 276579.60876 + hps: 4027.27362 } } dps_results: { key: "TestUnholy-AllItems-AssuranceofConsequence-105472" value: { - dps: 370517.87464 - tps: 270567.28364 - hps: 3982.47014 + dps: 375144.32949 + tps: 274397.78536 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-AusterePrimalDiamond" value: { - dps: 412058.2424 - tps: 288457.30632 - hps: 4085.6378 + dps: 416594.29529 + tps: 291395.14138 + hps: 4081.85218 } } dps_results: { key: "TestUnholy-AllItems-BadJuju-96781" value: { - dps: 378865.78323 - tps: 277920.72854 - hps: 3905.82363 + dps: 382149.41875 + tps: 280236.59989 + hps: 3895.77476 } } dps_results: { key: "TestUnholy-AllItems-BadgeofKypariZar-84079" value: { - dps: 378041.51699 - tps: 276713.63382 - hps: 3939.73369 + dps: 381112.96352 + tps: 278724.68554 + hps: 3930.91808 } } dps_results: { @@ -121,1345 +121,1345 @@ dps_results: { dps_results: { key: "TestUnholy-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 378387.85914 - tps: 275840.17414 - hps: 4151.70942 + dps: 382599.26667 + tps: 278969.56181 + hps: 4147.94871 } } dps_results: { key: "TestUnholy-AllItems-BlossomofPureSnow-89081" value: { - dps: 377041.07846 - tps: 275196.17797 - hps: 4011.5674 + dps: 378678.90688 + tps: 276146.13033 + hps: 4019.07464 } } dps_results: { key: "TestUnholy-AllItems-BottleofInfiniteStars-87057" value: { - dps: 376388.31724 - tps: 276025.20618 - hps: 3896.39139 + dps: 379751.98635 + tps: 278044.84525 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-BraidofTenSongs-84072" value: { - dps: 377389.29472 - tps: 276709.85834 - hps: 3983.78751 + dps: 380954.03309 + tps: 279056.30693 + hps: 3980.00312 } } dps_results: { key: "TestUnholy-AllItems-Brawler'sStatue-282039" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374445.37207 + tps: 274434.38199 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-BreathoftheHydra-96827" value: { - dps: 377132.48976 - tps: 275641.33648 - hps: 4117.11545 + dps: 380947.89776 + tps: 277723.68693 + hps: 4128.43298 } } dps_results: { key: "TestUnholy-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 370576.67536 - tps: 270960.42152 - hps: 4052.71509 + dps: 373187.15568 + tps: 273299.18568 + hps: 4081.75017 } } dps_results: { key: "TestUnholy-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 386190.92286 - tps: 282810.98996 - hps: 3971.69344 + dps: 391489.39569 + tps: 287051.26907 + hps: 3981.01725 } } dps_results: { key: "TestUnholy-AllItems-BurningPrimalDiamond" value: { - dps: 415187.58417 - tps: 291923.061 - hps: 4101.43301 + dps: 419110.13195 + tps: 294229.96252 + hps: 4105.19372 } } dps_results: { key: "TestUnholy-AllItems-CapacitivePrimalDiamond" value: { - dps: 427589.92496 - tps: 302983.63107 - hps: 4082.58188 + dps: 430861.5757 + tps: 304580.15151 + hps: 4063.60175 } } dps_results: { key: "TestUnholy-AllItems-CarbonicCarbuncle-81138" value: { - dps: 385754.63068 - tps: 280769.38112 - hps: 4036.64826 + dps: 389739.44105 + tps: 283824.7538 + hps: 4028.91005 } } dps_results: { key: "TestUnholy-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 378509.82984 - tps: 276656.57445 - hps: 4076.56498 + dps: 382786.46721 + tps: 279997.48347 + hps: 4072.78059 } } dps_results: { key: "TestUnholy-AllItems-CharmofTenSongs-84071" value: { - dps: 377229.84931 - tps: 275913.25749 - hps: 4118.18934 + dps: 381578.64961 + tps: 279007.83873 + hps: 4110.32914 } } dps_results: { key: "TestUnholy-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 380640.50976 - tps: 278547.49308 - hps: 3985.27065 + dps: 385440.40265 + tps: 282058.98416 + hps: 3986.5276 } } dps_results: { key: "TestUnholy-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 379681.49367 - tps: 277738.5925 - hps: 3955.57165 + dps: 383996.65751 + tps: 280666.65745 + hps: 3955.7066 } } dps_results: { key: "TestUnholy-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 386604.35458 - tps: 282254.20678 - hps: 4075.89364 + dps: 390818.00168 + tps: 285215.57492 + hps: 4077.55477 } } dps_results: { key: "TestUnholy-AllItems-CoreofDecency-87497" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-CourageousPrimalDiamond" value: { - dps: 410932.42255 - tps: 287697.43191 - hps: 4044.92825 + dps: 414838.93046 + tps: 289988.89238 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 369440.49754 - tps: 269791.05659 - hps: 3978.70944 + dps: 374620.91854 + tps: 274526.17884 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 377509.80944 - tps: 275246.36063 - hps: 3966.92297 + dps: 380745.61219 + tps: 278110.07668 + hps: 3978.64487 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 372899.36809 - tps: 272669.14993 - hps: 4052.93993 + dps: 377400.64254 + tps: 276068.06076 + hps: 4053.22362 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 369122.85018 - tps: 269995.60421 - hps: 4005.34371 + dps: 373506.88379 + tps: 273277.85549 + hps: 4005.6274 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 370517.93485 - tps: 271079.32208 - hps: 4078.45322 + dps: 374136.07582 + tps: 273272.2698 + hps: 4079.22352 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 369676.27121 - tps: 269960.20064 - hps: 3978.70944 + dps: 374134.06617 + tps: 273641.64607 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 375028.50869 - tps: 277088.99905 - hps: 3962.92981 + dps: 378976.22217 + tps: 279226.77779 + hps: 3970.92317 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 369457.03389 - tps: 269802.09114 - hps: 3978.70944 + dps: 374655.03505 + tps: 274552.07254 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 378977.74534 - tps: 276210.90655 - hps: 3966.92297 + dps: 382120.7631 + tps: 279002.29063 + hps: 3978.64487 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 373843.61606 - tps: 273229.29188 - hps: 4079.07598 + dps: 378371.52859 + tps: 276865.29945 + hps: 4075.77258 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 369134.66895 - tps: 269869.07781 - hps: 4015.20701 + dps: 373612.70066 + tps: 273449.82977 + hps: 4011.64145 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 371006.78597 - tps: 271689.90373 - hps: 4106.92185 + dps: 374980.20539 + tps: 274357.43482 + hps: 4098.55856 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 369924.72549 - tps: 270342.92326 - hps: 3974.75563 + dps: 374168.5607 + tps: 273677.90588 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 377521.71079 - tps: 278305.74003 - hps: 3987.26019 + dps: 381820.02543 + tps: 281421.65755 + hps: 3966.20705 } } dps_results: { key: "TestUnholy-AllItems-CurseofHubris-105645" value: { - dps: 386563.13691 - tps: 282358.89559 - hps: 4429.22661 + dps: 385431.28649 + tps: 280912.90069 + hps: 4431.70084 } } dps_results: { key: "TestUnholy-AllItems-CutstitcherMedallion-93255" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-Daelo'sFinalWords-87496" value: { - dps: 375796.60509 - tps: 273459.42385 - hps: 3982.47014 + dps: 380582.77272 + tps: 277676.99153 + hps: 3971.20484 } } dps_results: { key: "TestUnholy-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 426683.42538 - tps: 302582.37895 - hps: 4072.81086 + dps: 429650.20244 + tps: 303871.26017 + hps: 4053.83073 } } dps_results: { key: "TestUnholy-AllItems-DarkmistVortex-87172" value: { - dps: 390256.01276 - tps: 282424.63088 - hps: 4112.69339 + dps: 394133.05609 + tps: 284724.87127 + hps: 4106.5708 } } dps_results: { key: "TestUnholy-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 376372.38932 - tps: 275860.72766 - hps: 3951.84468 + dps: 379473.58455 + tps: 277991.63953 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-DestructivePrimalDiamond" value: { - dps: 413224.57904 - tps: 289226.36167 - hps: 4066.99774 + dps: 417192.51252 + tps: 291618.08817 + hps: 4070.75844 } } dps_results: { key: "TestUnholy-AllItems-DisciplineofXuen-103986" value: { - dps: 392491.83378 - tps: 287056.34227 - hps: 3936.40736 + dps: 396708.00451 + tps: 289266.66904 + hps: 3943.92013 } } dps_results: { key: "TestUnholy-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 374117.17345 - tps: 272576.36644 - hps: 4027.90823 + dps: 375977.94184 + tps: 273791.5341 + hps: 4051.11979 } } dps_results: { key: "TestUnholy-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 376372.38932 - tps: 275860.72766 - hps: 3951.84468 + dps: 379473.58455 + tps: 277991.63953 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 376196.70485 - tps: 275729.29699 - hps: 3951.84468 + dps: 379295.40498 + tps: 277866.05719 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 383129.35321 - tps: 280619.46882 - hps: 3951.84468 + dps: 386235.32358 + tps: 282758.96629 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 369440.49754 - tps: 269791.05659 - hps: 3978.70944 + dps: 374620.91854 + tps: 274526.17884 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 377509.80944 - tps: 275246.36063 - hps: 3966.92297 + dps: 380745.61219 + tps: 278110.07668 + hps: 3978.64487 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 372899.36809 - tps: 272669.14993 - hps: 4052.93993 + dps: 377400.64254 + tps: 276068.06076 + hps: 4053.22362 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 369122.85018 - tps: 269995.60421 - hps: 4005.34371 + dps: 373506.88379 + tps: 273277.85549 + hps: 4005.6274 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 370517.93485 - tps: 271079.32208 - hps: 4078.45322 + dps: 374136.07582 + tps: 273272.2698 + hps: 4079.22352 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 369486.30964 - tps: 269895.84632 - hps: 3978.70944 + dps: 374132.98546 + tps: 273652.29409 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 374736.42418 - tps: 276326.15848 - hps: 3976.57101 + dps: 378068.44407 + tps: 278265.60454 + hps: 3960.87538 } } dps_results: { key: "TestUnholy-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 376196.70485 - tps: 275729.29699 - hps: 3951.84468 + dps: 379295.40498 + tps: 277866.05719 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.57464 + tps: 273491.63543 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-EffulgentPrimalDiamond" value: { - dps: 412058.2424 - tps: 288457.30632 - hps: 4085.6378 + dps: 416594.29529 + tps: 291395.14138 + hps: 4081.85218 } } dps_results: { key: "TestUnholy-AllItems-EmberPrimalDiamond" value: { - dps: 410932.42255 - tps: 287697.43191 - hps: 4044.92825 + dps: 414838.93046 + tps: 289988.89238 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-EmblemofKypariZar-84077" value: { - dps: 376725.08196 - tps: 275524.75908 - hps: 4085.54187 + dps: 380384.39733 + tps: 277978.13371 + hps: 4089.30257 } } dps_results: { key: "TestUnholy-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 377990.14718 - tps: 277474.16061 - hps: 4009.59604 + dps: 382719.79324 + tps: 280850.7285 + hps: 3996.12526 } } dps_results: { key: "TestUnholy-AllItems-EmptyFruitBarrel-81133" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 396961.84602 - tps: 282281.47405 + dps: 400464.43642 + tps: 284227.24829 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 387933.89423 - tps: 276162.40804 + dps: 392573.70823 + tps: 279507.91441 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 397252.75245 - tps: 282296.11638 + dps: 400565.35898 + tps: 284300.47369 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 388358.40466 - tps: 276239.23173 + dps: 392031.66152 + tps: 278402.05987 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 389709.51197 - tps: 277208.83975 + dps: 393511.24469 + tps: 279625.74349 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 389906.76977 - tps: 277569.58318 + dps: 393463.05059 + tps: 279651.85421 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 389962.82733 - tps: 277569.58318 + dps: 393518.80847 + tps: 279652.23479 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 392255.31796 - tps: 279711.55091 + dps: 396412.25078 + tps: 282423.87883 hps: 20.82648 } } dps_results: { key: "TestUnholy-AllItems-EnigmaticPrimalDiamond" value: { - dps: 413224.57904 - tps: 289226.36167 - hps: 4066.99774 + dps: 417192.51252 + tps: 291618.08817 + hps: 4070.75844 } } dps_results: { key: "TestUnholy-AllItems-EssenceofTerror-87175" value: { - dps: 378834.41643 - tps: 276383.65803 - hps: 4106.43375 + dps: 383142.69403 + tps: 279645.0589 + hps: 4098.57356 } } dps_results: { key: "TestUnholy-AllItems-EternalPrimalDiamond" value: { - dps: 410932.42255 - tps: 287697.43191 - hps: 4044.92825 + dps: 414838.93046 + tps: 289988.89238 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-EvilEyeofGalakras-105491" value: { - dps: 420263.12612 - tps: 299042.85949 - hps: 4047.19395 + dps: 425438.02875 + tps: 302470.22367 + hps: 4054.72514 } } dps_results: { key: "TestUnholy-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 397330.30636 - tps: 291305.38598 - hps: 3948.3272 + dps: 399610.11643 + tps: 293095.60929 + hps: 3939.02933 } } dps_results: { key: "TestUnholy-AllItems-FearwurmBadge-84074" value: { - dps: 376254.9891 - tps: 274694.30085 - hps: 4100.3285 + dps: 380831.80866 + tps: 278056.58551 + hps: 4084.95862 } } dps_results: { key: "TestUnholy-AllItems-FearwurmRelic-84070" value: { - dps: 377669.77206 - tps: 276345.17702 - hps: 4098.74669 + dps: 380673.34566 + tps: 278189.71197 + hps: 4106.71813 } } dps_results: { key: "TestUnholy-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 379322.18533 - tps: 277228.65367 - hps: 3998.11832 + dps: 385035.03891 + tps: 281882.97231 + hps: 3973.73995 } } dps_results: { key: "TestUnholy-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 380582.21701 - tps: 278901.63661 - hps: 3959.33236 + dps: 385045.2404 + tps: 282041.00831 + hps: 3947.68083 } } dps_results: { key: "TestUnholy-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 404172.37408 - tps: 286554.86934 - hps: 3987.95137 + dps: 408498.21789 + tps: 289763.07163 + hps: 3998.95178 } } dps_results: { key: "TestUnholy-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 369455.33109 - tps: 269943.34145 + dps: 371493.71164 + tps: 271582.40746 hps: 3978.51633 } } dps_results: { key: "TestUnholy-AllItems-FlashingSteelTalisman-81265" value: { - dps: 369646.45613 - tps: 270058.33059 - hps: 3978.51633 + dps: 374540.55905 + tps: 274460.60154 + hps: 3963.98497 } } dps_results: { key: "TestUnholy-AllItems-FleetPrimalDiamond" value: { - dps: 413374.201 - tps: 289533.73687 - hps: 4044.92825 + dps: 417310.24923 + tps: 291845.25356 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-ForlornPrimalDiamond" value: { - dps: 410932.42255 - tps: 287697.43191 - hps: 4044.92825 + dps: 414838.93046 + tps: 289988.89238 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 377107.36839 - tps: 276402.71688 - hps: 3943.32072 + dps: 382605.71866 + tps: 280599.76696 + hps: 3948.69317 } } dps_results: { key: "TestUnholy-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Fusion-FireCore-105459" value: { - dps: 400029.16618 - tps: 292600.36465 + dps: 403885.07623 + tps: 295229.05369 hps: 3988.14029 } } dps_results: { key: "TestUnholy-AllItems-GazeoftheTwins-96915" value: { - dps: 394401.42869 - tps: 287030.57522 - hps: 4076.27439 + dps: 398927.07038 + tps: 290647.49566 + hps: 4082.87764 } } dps_results: { key: "TestUnholy-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 373024.48454 - tps: 272299.32929 - hps: 4025.5556 + dps: 378065.74406 + tps: 277050.23787 + hps: 4029.58377 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 369523.61848 - tps: 269847.09958 - hps: 3978.70944 + dps: 374719.35897 + tps: 274590.70001 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 384264.6189 - tps: 279588.27747 - hps: 3966.92297 + dps: 386630.98061 + tps: 281673.95879 + hps: 3982.59868 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 377148.91998 - tps: 275910.47773 - hps: 4135.38969 + dps: 381687.51626 + tps: 279344.20085 + hps: 4131.20281 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 369691.3064 - tps: 270597.71938 - hps: 4039.9585 + dps: 374055.05278 + tps: 273896.46477 + hps: 4035.77162 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 371390.24063 - tps: 272109.97491 - hps: 4180.45184 + dps: 375381.08055 + tps: 274834.30562 + hps: 4184.83416 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 370174.44631 - tps: 270402.15602 - hps: 3978.51633 + dps: 374352.72648 + tps: 273808.77847 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 385321.62135 - tps: 283881.48082 - hps: 3968.57765 + dps: 389718.66385 + tps: 287268.73377 + hps: 3964.50185 } } dps_results: { key: "TestUnholy-AllItems-Haromm'sTalisman-105527" value: { - dps: 383617.68722 - tps: 283824.97144 - hps: 3978.70944 + dps: 388398.87336 + tps: 287825.56875 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 376591.29538 - tps: 274827.0262 - hps: 4028.99319 + dps: 378579.06884 + tps: 275711.65535 + hps: 4034.00822 } } dps_results: { key: "TestUnholy-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 371956.14146 - tps: 272754.53848 - hps: 4118.426 + dps: 375917.58707 + tps: 275324.97054 + hps: 4098.53473 } } dps_results: { key: "TestUnholy-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 380515.87657 - tps: 278901.42217 - hps: 4072.46081 + dps: 383940.44054 + tps: 281356.19679 + hps: 4081.30569 } } dps_results: { key: "TestUnholy-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 380596.23322 - tps: 280217.91735 - hps: 4047.25193 + dps: 385907.73838 + tps: 284072.94054 + hps: 4055.11212 } } dps_results: { key: "TestUnholy-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 387705.23385 - tps: 283311.14831 - hps: 3951.81348 + dps: 392736.88493 + tps: 287295.17152 + hps: 3969.54068 } } dps_results: { key: "TestUnholy-AllItems-HeartofFire-81181" value: { - dps: 374500.39808 - tps: 274445.67154 - hps: 3896.39139 + dps: 378696.94266 + tps: 278421.51041 + hps: 3917.07431 } } dps_results: { key: "TestUnholy-AllItems-HeartwarmerMedallion-93260" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-HelmbreakerMedallion-93261" value: { - dps: 387311.44062 - tps: 282440.95702 - hps: 4015.66689 + dps: 388947.12752 + tps: 283364.21777 + hps: 4027.27362 } } dps_results: { key: "TestUnholy-AllItems-Horridon'sLastGasp-96757" value: { - dps: 369459.51818 - tps: 269950.602 - hps: 3978.51633 + dps: 373903.04765 + tps: 273501.1819 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-ImpassivePrimalDiamond" value: { - dps: 413224.57904 - tps: 289226.36167 - hps: 4066.99774 + dps: 417192.51252 + tps: 291618.08817 + hps: 4070.75844 } } dps_results: { key: "TestUnholy-AllItems-IndomitablePrimalDiamond" value: { - dps: 412058.2424 - tps: 288457.30632 - hps: 4085.6378 + dps: 416594.29529 + tps: 291395.14138 + hps: 4081.85218 } } dps_results: { key: "TestUnholy-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 371034.46063 - tps: 271356.923 - hps: 3999.71298 + dps: 374681.18182 + tps: 274179.87689 + hps: 3987.92651 } } dps_results: { key: "TestUnholy-AllItems-InsigniaofKypariZar-84078" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-IronBellyWok-89083" value: { - dps: 385594.40307 - tps: 281146.36464 - hps: 4028.99319 + dps: 387491.62324 + tps: 281930.93816 + hps: 4034.00822 } } dps_results: { key: "TestUnholy-AllItems-IronProtectorTalisman-85181" value: { - dps: 371156.02541 - tps: 272022.44546 - hps: 4053.86442 + dps: 374818.0273 + tps: 274652.02627 + hps: 4066.2418 } } dps_results: { key: "TestUnholy-AllItems-JadeBanditFigurine-86772" value: { - dps: 374277.26286 - tps: 272539.71306 - hps: 4037.83258 + dps: 378263.39441 + tps: 275920.13186 + hps: 4056.15978 } } dps_results: { key: "TestUnholy-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 382236.56991 - tps: 278103.05076 - hps: 4037.83258 + dps: 386175.44534 + tps: 281462.91723 + hps: 4056.15978 } } dps_results: { key: "TestUnholy-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 376168.65341 - tps: 274575.58739 - hps: 4001.79638 + dps: 377669.56134 + tps: 275273.20802 + hps: 4013.06433 } } dps_results: { key: "TestUnholy-AllItems-JadeWarlordFigurine-86775" value: { - dps: 377317.77559 - tps: 276494.25742 - hps: 4043.41005 + dps: 378551.35332 + tps: 277132.56946 + hps: 4043.21731 } } dps_results: { key: "TestUnholy-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 369454.26106 - tps: 269942.27142 - hps: 12557.2757 + dps: 373895.11065 + tps: 273490.17144 + hps: 12667.71014 } } dps_results: { key: "TestUnholy-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 382952.72719 - tps: 283440.73755 - hps: 3978.51633 + dps: 387512.48558 + tps: 287107.54638 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 383129.35321 - tps: 280619.46882 - hps: 3951.84468 + dps: 386235.32358 + tps: 282758.96629 + hps: 3961.09946 } } dps_results: { key: "TestUnholy-AllItems-KnotofTenSongs-84073" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 369455.33109 - tps: 269943.34145 + dps: 371178.24922 + tps: 271494.44078 hps: 3978.51633 } } dps_results: { key: "TestUnholy-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 377141.2209 - tps: 276347.90812 - hps: 4042.0526 + dps: 380145.87075 + tps: 278266.21059 + hps: 4060.73215 } } dps_results: { key: "TestUnholy-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 382376.70765 - tps: 281016.26629 - hps: 4072.23296 + dps: 386486.78129 + tps: 283519.04055 + hps: 4066.7962 } } dps_results: { key: "TestUnholy-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 383104.90845 - tps: 277953.07465 - hps: 3978.70944 + dps: 384925.07372 + tps: 279897.94874 + hps: 3974.88416 } } dps_results: { key: "TestUnholy-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 375426.90432 - tps: 275091.91483 - hps: 3896.39139 + dps: 378822.75369 + tps: 277283.07119 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 380781.23189 - tps: 278827.09069 - hps: 3951.85146 + dps: 384654.76458 + tps: 281546.377 + hps: 3953.39287 } } dps_results: { key: "TestUnholy-AllItems-LightoftheCosmos-87065" value: { - dps: 375252.57852 - tps: 273904.61354 - hps: 4088.47375 + dps: 379669.82649 + tps: 277011.1521 + hps: 4068.95724 } } dps_results: { key: "TestUnholy-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 426418.70021 - tps: 302224.64867 - hps: 4072.81086 + dps: 429603.11308 + tps: 303772.56207 + hps: 4053.83073 } } dps_results: { key: "TestUnholy-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 389709.51197 - tps: 277208.83975 + dps: 393511.24469 + tps: 279625.74349 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 369457.03389 - tps: 269802.09114 - hps: 3978.70944 + dps: 374655.03505 + tps: 274552.07254 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 378977.74534 - tps: 276210.90655 - hps: 3966.92297 + dps: 382120.7631 + tps: 279002.29063 + hps: 3978.64487 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 373843.61606 - tps: 273229.29188 - hps: 4079.07598 + dps: 378371.52859 + tps: 276865.29945 + hps: 4075.77258 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 369134.66895 - tps: 269869.07781 - hps: 4015.20701 + dps: 373612.70066 + tps: 273449.82977 + hps: 4011.64145 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 371006.78597 - tps: 271689.90373 - hps: 4106.92185 + dps: 374980.20539 + tps: 274357.43482 + hps: 4098.55856 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 369656.23107 - tps: 270057.97947 - hps: 3978.70944 + dps: 374140.5996 + tps: 273654.97876 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 377144.239 - tps: 279059.43985 - hps: 3985.65479 + dps: 381801.84639 + tps: 281968.91644 + hps: 3983.98294 } } dps_results: { key: "TestUnholy-AllItems-MarkoftheCatacombs-83731" value: { - dps: 376992.72304 - tps: 275928.00685 - hps: 3996.68278 + dps: 382368.66887 + tps: 280152.71276 + hps: 3994.47042 } } dps_results: { key: "TestUnholy-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.74649 + tps: 273491.80729 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 378227.25227 - tps: 277507.7 - hps: 3940.48896 + dps: 381174.79932 + tps: 279139.63941 + hps: 3922.60089 } } dps_results: { key: "TestUnholy-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 373425.13624 - tps: 273587.70398 - hps: 3896.39139 + dps: 376629.54248 + tps: 275579.24809 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-MirrorScope-4700" value: { - dps: 389709.51197 - tps: 277208.83975 + dps: 393511.24469 + tps: 279625.74349 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 371958.76809 - tps: 272757.1651 - hps: 4118.426 + dps: 375920.2137 + tps: 275327.59716 + hps: 4098.53473 } } dps_results: { key: "TestUnholy-AllItems-MistdancerDefenderStone-101087" value: { - dps: 381016.22562 - tps: 279724.38908 - hps: 4072.25402 + dps: 384423.40354 + tps: 281870.07172 + hps: 4090.90063 } } dps_results: { key: "TestUnholy-AllItems-MistdancerIdolofRage-101113" value: { - dps: 375502.70186 - tps: 275201.51296 - hps: 3896.39139 + dps: 378801.68042 + tps: 277267.0229 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-MistdancerStoneofRage-101117" value: { - dps: 380245.52688 - tps: 278515.45915 - hps: 3947.94703 + dps: 384556.44329 + tps: 281473.78877 + hps: 3937.86755 } } dps_results: { key: "TestUnholy-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.32228 + tps: 273491.38308 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-MithrilWristwatch-282033" value: { - dps: 377579.16619 - tps: 275982.85428 - hps: 4072.02892 + dps: 381851.70708 + tps: 279328.01975 + hps: 4068.24452 } } dps_results: { key: "TestUnholy-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 382289.34197 - tps: 280165.14053 - hps: 3992.75966 + dps: 386040.81406 + tps: 282401.6258 + hps: 3984.92316 } } dps_results: { key: "TestUnholy-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 379606.10681 - tps: 277387.15972 - hps: 3955.57165 + dps: 384432.65849 + tps: 281266.90685 + hps: 3959.30173 } } dps_results: { key: "TestUnholy-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-OathswornDefenderIdol-101303" value: { - dps: 371956.43648 - tps: 272754.8335 - hps: 4118.426 + dps: 375917.88209 + tps: 275325.26555 + hps: 4098.53473 } } dps_results: { key: "TestUnholy-AllItems-OathswornDefenderStone-101306" value: { - dps: 382374.98567 - tps: 280986.95303 - hps: 4084.44597 + dps: 384827.78258 + tps: 282348.44644 + hps: 4082.81237 } } dps_results: { key: "TestUnholy-AllItems-OathswornIdolofBattle-101295" value: { - dps: 381236.61978 - tps: 281505.93822 - hps: 4055.35537 + dps: 386041.03143 + tps: 284983.84827 + hps: 4039.70565 } } dps_results: { key: "TestUnholy-AllItems-OathswornStoneofBattle-101294" value: { - dps: 389610.39534 - tps: 285010.97736 - hps: 3945.78929 + dps: 392878.81432 + tps: 287404.90986 + hps: 3934.00282 } } dps_results: { key: "TestUnholy-AllItems-PhaseFingers-4697" value: { - dps: 426067.76787 - tps: 301958.44745 - hps: 4082.58188 + dps: 429208.39119 + tps: 303786.1053 + hps: 4080.39144 } } dps_results: { @@ -1489,617 +1489,617 @@ dps_results: { dps_results: { key: "TestUnholy-AllItems-PouchofWhiteAsh-103639" value: { - dps: 369455.33109 - tps: 269943.34145 + dps: 371178.24922 + tps: 271494.44078 hps: 3978.51633 } } dps_results: { key: "TestUnholy-AllItems-PowerfulPrimalDiamond" value: { - dps: 412058.2424 - tps: 288457.30632 - hps: 4085.6378 + dps: 416594.29529 + tps: 291395.14138 + hps: 4081.85218 } } dps_results: { key: "TestUnholy-AllItems-PriceofProgress-81266" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 369658.88082 - tps: 269936.59293 - hps: 3978.70944 + dps: 374818.75453 + tps: 274649.91245 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 388686.24815 - tps: 282545.1752 - hps: 3966.92297 + dps: 391099.5142 + tps: 284834.60854 + hps: 3971.29458 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 379248.5736 - tps: 277244.761 - hps: 4179.42768 + dps: 383836.52996 + tps: 280807.16551 + hps: 4167.26053 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 370131.36262 - tps: 270853.83907 - hps: 4058.39056 + dps: 374555.10834 + tps: 274180.02261 + hps: 4046.22341 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 369954.89323 - tps: 270342.4282 - hps: 4240.17015 + dps: 373589.52481 + tps: 273059.53881 + hps: 4239.75279 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 370203.468 - tps: 270533.86368 - hps: 3978.70944 + dps: 374473.54818 + tps: 273888.08305 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 389452.51431 - tps: 286144.17186 - hps: 3980.37446 + dps: 394025.28185 + tps: 289911.69052 + hps: 3972.51427 } } dps_results: { key: "TestUnholy-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 393629.76098 - tps: 287675.45076 - hps: 4082.09083 + dps: 399238.28463 + tps: 291806.02341 + hps: 4082.17116 } } dps_results: { key: "TestUnholy-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 384055.66895 - tps: 282444.85853 - hps: 4139.21466 + dps: 386970.88193 + tps: 284382.33335 + hps: 4135.00868 } } dps_results: { key: "TestUnholy-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 384017.70531 - tps: 282444.72673 - hps: 4139.21466 + dps: 386933.05201 + tps: 284382.09213 + hps: 4135.00868 } } dps_results: { key: "TestUnholy-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 392036.62133 - tps: 275030.71677 - hps: 3904.99563 + dps: 396775.5728 + tps: 278410.71289 + hps: 3916.56699 } } dps_results: { key: "TestUnholy-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 401265.46316 - tps: 281051.91616 - hps: 3847.33728 + dps: 405710.68017 + tps: 284149.81083 + hps: 3858.90865 } } dps_results: { key: "TestUnholy-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-RelicofChi-Ji-79330" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.74649 + tps: 273491.80729 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-RelicofKypariZar-84075" value: { - dps: 378034.7903 - tps: 276407.59388 - hps: 4113.16324 + dps: 381702.77579 + tps: 278702.27328 + hps: 4101.21607 } } dps_results: { key: "TestUnholy-AllItems-RelicofNiuzao-79329" value: { - dps: 371162.91023 - tps: 272246.97543 - hps: 4102.42056 + dps: 373444.75504 + tps: 273730.60072 + hps: 4080.8817 } } dps_results: { key: "TestUnholy-AllItems-RelicofXuen-79327" value: { - dps: 381451.29853 - tps: 281854.19781 - hps: 3980.40346 + dps: 385091.16409 + tps: 283885.26008 + hps: 3969.96776 } } dps_results: { key: "TestUnholy-AllItems-RelicofXuen-79328" value: { - dps: 369818.70697 - tps: 270178.17364 - hps: 3982.47014 + dps: 374250.52882 + tps: 273752.37781 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-RelicofYu'lon-79331" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.62432 + tps: 273491.68512 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 370358.0616 - tps: 270717.27501 - hps: 3978.51633 + dps: 374485.76712 + tps: 273918.46878 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-ResolveofNiuzao-103990" value: { - dps: 378285.38159 - tps: 277465.85291 - hps: 3896.39139 + dps: 381523.23797 + tps: 279456.1628 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-ReverberatingPrimalDiamond" value: { - dps: 417041.8402 - tps: 293152.75042 - hps: 4101.43301 + dps: 420963.74129 + tps: 295458.06589 + hps: 4105.19372 } } dps_results: { key: "TestUnholy-AllItems-RevitalizingPrimalDiamond" value: { - dps: 415187.58417 - tps: 291923.061 - hps: 4101.43301 + dps: 419110.13195 + tps: 294229.96252 + hps: 4105.19372 } } dps_results: { key: "TestUnholy-AllItems-RuneofCinderglacier-3369" value: { - dps: 394329.56082 - tps: 281946.76517 + dps: 398976.72911 + tps: 285329.47528 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneofRazorice-3370" value: { - dps: 394985.47415 - tps: 282540.85948 + dps: 398594.78258 + tps: 284764.65867 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneofRe-Origination-96918" value: { - dps: 390056.42479 - tps: 286248.49603 - hps: 4248.52684 + dps: 396531.25086 + tps: 291057.66491 + hps: 4289.13716 } } dps_results: { key: "TestUnholy-AllItems-RuneofSpellbreaking-3595" value: { - dps: 389155.45453 - tps: 277400.79411 + dps: 393762.12469 + tps: 280478.56891 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneofSpellshattering-3367" value: { - dps: 390146.87266 - tps: 277934.88406 + dps: 394078.11857 + tps: 280753.82524 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneofSwordbreaking-3594" value: { - dps: 389709.51197 - tps: 277208.83975 + dps: 393511.24469 + tps: 279625.74349 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneofSwordshattering-3365" value: { - dps: 389709.51197 - tps: 277208.83975 + dps: 393511.24469 + tps: 279625.74349 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneoftheNerubianCarapace-3883" value: { - dps: 389850.08566 - tps: 277722.63343 + dps: 394432.11798 + tps: 280418.0191 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-RuneoftheStoneskinGargoyle-3847" value: { - dps: 389284.60616 - tps: 277387.04859 + dps: 394846.21367 + tps: 281384.89977 hps: 20.50323 } } dps_results: { key: "TestUnholy-AllItems-SI:7Operative'sManual-92784" value: { - dps: 369455.33109 - tps: 269943.34145 + dps: 371178.24922 + tps: 271494.44078 hps: 3978.51633 } } dps_results: { key: "TestUnholy-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374299.96165 + tps: 274186.84309 + hps: 3967.70517 } } dps_results: { key: "TestUnholy-AllItems-SearingWords-81267" value: { - dps: 374023.76836 - tps: 273263.0685 - hps: 4037.66096 + dps: 378336.38771 + tps: 276721.14947 + hps: 4033.87657 } } dps_results: { key: "TestUnholy-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 375232.45995 - tps: 274457.17613 - hps: 4082.80222 + dps: 378062.30486 + tps: 275668.40478 + hps: 4074.03473 } } dps_results: { key: "TestUnholy-AllItems-SigilofCompassion-83736" value: { - dps: 373425.43598 - tps: 273588.00372 - hps: 3896.39139 + dps: 376629.84703 + tps: 275579.55263 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-SigilofDevotion-83740" value: { - dps: 376609.99222 - tps: 275516.24352 - hps: 3959.29843 + dps: 381150.53856 + tps: 278519.40968 + hps: 3959.40245 } } dps_results: { key: "TestUnholy-AllItems-SigilofFidelity-83737" value: { - dps: 377751.85019 - tps: 276565.36661 - hps: 4100.88341 + dps: 382098.39414 + tps: 279063.73832 + hps: 4093.362 } } dps_results: { key: "TestUnholy-AllItems-SigilofGrace-83738" value: { - dps: 377780.53307 - tps: 277139.95177 - hps: 3988.16369 + dps: 381929.65512 + tps: 279890.44967 + hps: 3972.7584 } } dps_results: { key: "TestUnholy-AllItems-SigilofKypariZar-84076" value: { - dps: 376238.3265 - tps: 275154.25206 - hps: 3983.32182 + dps: 380492.48977 + tps: 278178.92263 + hps: 3977.03366 } } dps_results: { key: "TestUnholy-AllItems-SigilofPatience-83739" value: { - dps: 374375.9343 - tps: 274183.77253 - hps: 3940.17824 + dps: 377955.58024 + tps: 276537.72925 + hps: 3937.65079 } } dps_results: { key: "TestUnholy-AllItems-SigilofRampage-105580" value: { - dps: 370290.73424 - tps: 270560.43883 - hps: 3978.51633 + dps: 374802.59258 + tps: 274168.93972 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-SigiloftheCatacombs-83732" value: { - dps: 376108.83383 - tps: 275167.28726 - hps: 4076.71445 + dps: 380483.30053 + tps: 278033.97007 + hps: 4063.52151 } } dps_results: { key: "TestUnholy-AllItems-SinisterPrimalDiamond" value: { - dps: 414870.39036 - tps: 288526.2435 - hps: 4072.63319 + dps: 419579.38321 + tps: 291422.3382 + hps: 4059.44025 } } dps_results: { key: "TestUnholy-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 416442.88862 - tps: 304256.38586 - hps: 4194.57791 + dps: 420852.1518 + tps: 307195.29179 + hps: 4196.43024 } } dps_results: { key: "TestUnholy-AllItems-SkullrenderMedallion-93256" value: { - dps: 387311.44062 - tps: 282440.95702 - hps: 4015.66689 + dps: 388947.12752 + tps: 283364.21777 + hps: 4027.27362 } } dps_results: { key: "TestUnholy-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-SoulBarrier-96927" value: { - dps: 369586.13065 - tps: 270425.12964 - hps: 4191.93903 + dps: 373445.49782 + tps: 273110.59594 + hps: 4190.2824 } } dps_results: { key: "TestUnholy-AllItems-SparkofZandalar-96770" value: { - dps: 389537.1166 - tps: 284910.96321 - hps: 4109.25525 + dps: 393278.99154 + tps: 287246.48934 + hps: 4124.67227 } } dps_results: { key: "TestUnholy-AllItems-SpiritsoftheSun-87163" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.47569 + tps: 273491.53649 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 381306.72127 - tps: 278794.7016 - hps: 3996.15102 + dps: 385154.40154 + tps: 281613.3608 + hps: 3979.22107 } } dps_results: { key: "TestUnholy-AllItems-SpringrainIdolofRage-101009" value: { - dps: 375752.07799 - tps: 275510.67958 - hps: 3896.39139 + dps: 378808.82631 + tps: 277270.44774 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 379801.66038 - tps: 278023.92559 - hps: 3960.9044 + dps: 384177.29554 + tps: 281060.12874 + hps: 3949.25287 } } dps_results: { key: "TestUnholy-AllItems-SpringrainStoneofRage-101012" value: { - dps: 380327.16035 - tps: 278259.15179 - hps: 3955.56288 + dps: 384814.42238 + tps: 281547.46354 + hps: 3943.94198 } } dps_results: { key: "TestUnholy-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 375232.45995 - tps: 274457.17613 - hps: 4082.80222 + dps: 378062.30486 + tps: 275668.40478 + hps: 4074.03473 } } dps_results: { key: "TestUnholy-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.74649 + tps: 273491.80729 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 377398.07515 - tps: 276757.83757 - hps: 3896.39139 + dps: 380627.31752 + tps: 278742.97442 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 382424.74447 - tps: 279546.90273 - hps: 3982.20777 + dps: 384306.24761 + tps: 280714.00922 + hps: 3959.13539 } } dps_results: { key: "TestUnholy-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 375621.83862 - tps: 275297.56854 - hps: 3904.25159 + dps: 378872.70526 + tps: 277316.18367 + hps: 3895.77476 } } dps_results: { key: "TestUnholy-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 380478.22299 - tps: 278587.67424 - hps: 3948.06877 + dps: 384247.6306 + tps: 281216.15521 + hps: 3942.28458 } } dps_results: { key: "TestUnholy-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 380515.61195 - tps: 278517.70491 - hps: 3951.68495 + dps: 384978.08591 + tps: 281583.39452 + hps: 3957.79125 } } dps_results: { key: "TestUnholy-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-StuffofNightmares-87160" value: { - dps: 376617.93133 - tps: 276135.33133 - hps: 3896.39139 + dps: 379856.10663 + tps: 278145.68119 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 371958.76809 - tps: 272757.1651 - hps: 4118.426 + dps: 375917.88209 + tps: 275325.26555 + hps: 4098.53473 } } dps_results: { key: "TestUnholy-AllItems-SunsoulDefenderStone-101163" value: { - dps: 379856.33217 - tps: 278884.09718 - hps: 4078.78322 + dps: 383398.11342 + tps: 281091.16301 + hps: 4073.27104 } } dps_results: { key: "TestUnholy-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 380572.12738 - tps: 281192.5067 - hps: 4033.73259 + dps: 386280.05062 + tps: 285319.75961 + hps: 4041.61648 } } dps_results: { key: "TestUnholy-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 388709.00118 - tps: 284133.0382 - hps: 3955.95095 + dps: 392780.33741 + tps: 286767.53627 + hps: 3961.41863 } } dps_results: { key: "TestUnholy-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.32228 + tps: 273491.38308 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 430236.99182 - tps: 304690.58962 - hps: 4072.81086 + dps: 433173.17088 + tps: 305985.23756 + hps: 4053.83073 } } dps_results: { key: "TestUnholy-AllItems-SymboloftheCatacombs-83735" value: { - dps: 378094.55706 - tps: 276749.22644 - hps: 3945.58495 + dps: 381048.11161 + tps: 278636.02142 + hps: 3936.76934 } } dps_results: { @@ -2113,265 +2113,265 @@ dps_results: { dps_results: { key: "TestUnholy-AllItems-TalismanofBloodlust-96864" value: { - dps: 375764.60264 - tps: 273515.78021 - hps: 4088.17237 + dps: 380212.61907 + tps: 276578.75566 + hps: 4099.79327 } } dps_results: { key: "TestUnholy-AllItems-TerrorintheMists-87167" value: { - dps: 386991.23649 - tps: 280930.2357 - hps: 4072.9973 + dps: 391716.97613 + tps: 284723.52067 + hps: 4073.07763 } } dps_results: { key: "TestUnholy-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Thok'sTailTip-105609" value: { - dps: 431559.424 - tps: 312001.75341 - hps: 4137.03469 + dps: 435714.61282 + tps: 314953.48544 + hps: 4128.8459 } } dps_results: { key: "TestUnholy-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 373531.97244 - tps: 272971.17754 - hps: 4054.96097 + dps: 377181.16373 + tps: 275490.66241 + hps: 4053.38893 } } dps_results: { key: "TestUnholy-AllItems-TickingEbonDetonator-105612" value: { - dps: 382332.89005 - tps: 280802.96061 - hps: 3900.49088 + dps: 385562.26187 + tps: 282823.18218 + hps: 3886.34253 } } dps_results: { key: "TestUnholy-AllItems-Time-LostArtifact-103678" value: { - dps: 382270.09638 - tps: 279764.20388 - hps: 4026.71721 + dps: 385303.11395 + tps: 281629.02976 + hps: 4018.71514 } } dps_results: { key: "TestUnholy-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 375624.32244 - tps: 275256.87052 - hps: 3896.39139 + dps: 378794.6506 + tps: 277266.40104 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 379872.95869 - tps: 277782.85091 - hps: 3955.70482 + dps: 384297.99746 + tps: 281187.45441 + hps: 3943.92013 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 369480.38199 - tps: 269814.51129 - hps: 3978.70944 + dps: 374674.20514 + tps: 274560.31468 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 374491.53355 + tps: 274448.7191 + hps: 3982.7376 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 381149.79294 - tps: 277552.72269 - hps: 3966.92297 + dps: 383950.73179 + tps: 280189.80116 + hps: 3978.64487 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 375465.52602 - tps: 274639.30975 - hps: 4102.85865 + dps: 379832.41707 + tps: 278104.63144 + hps: 4099.65395 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 369861.46513 - tps: 270621.33387 - hps: 4030.66248 + dps: 374189.5353 + tps: 274034.7573 + hps: 4027.14182 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 371769.04934 - tps: 272761.53216 - hps: 4135.41339 + dps: 375359.68803 + tps: 275044.11356 + hps: 4128.00037 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 369773.39509 - tps: 270195.82356 - hps: 3982.47014 + dps: 374251.13225 + tps: 273733.87047 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 369455.33109 - tps: 269943.34145 - hps: 3978.51633 + dps: 373896.18068 + tps: 273491.24147 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 381669.7263 - tps: 281753.4262 - hps: 3980.15156 + dps: 384096.28819 + tps: 282885.96266 + hps: 3968.7345 } } dps_results: { key: "TestUnholy-AllItems-TyrannicalPrimalDiamond" value: { - dps: 410932.42255 - tps: 287697.43191 - hps: 4044.92825 + dps: 414838.93046 + tps: 289988.89238 + hps: 4048.68896 } } dps_results: { key: "TestUnholy-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.45148 + tps: 273491.51227 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-VaporshieldMedallion-93262" value: { - dps: 378227.25227 - tps: 277507.7 - hps: 3940.48896 + dps: 381174.79932 + tps: 279139.63941 + hps: 3922.60089 } } dps_results: { key: "TestUnholy-AllItems-VialofDragon'sBlood-87063" value: { - dps: 376233.96364 - tps: 275829.02251 - hps: 3896.39139 + dps: 379468.05508 + tps: 277836.78194 + hps: 3887.91457 } } dps_results: { key: "TestUnholy-AllItems-VialofIchorousBlood-100963" value: { - dps: 369455.60188 - tps: 269943.61225 - hps: 3978.51633 + dps: 373896.74649 + tps: 273491.80729 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-VialofLivingCorruption-105568" value: { - dps: 369997.60926 - tps: 270804.65506 - hps: 4271.08435 + dps: 372767.79962 + tps: 272203.92551 + hps: 4261.2897 } } dps_results: { key: "TestUnholy-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 370509.19198 - tps: 270620.93127 - hps: 3982.47014 + dps: 374535.82323 + tps: 273953.61804 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-VisionofthePredator-81192" value: { - dps: 377587.77316 - tps: 275016.66603 - hps: 4056.06753 + dps: 381759.1188 + tps: 278285.84583 + hps: 4052.28314 } } dps_results: { key: "TestUnholy-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 377258.77601 - tps: 275195.6625 - hps: 4094.76636 + dps: 382000.3507 + tps: 278459.22382 + hps: 4114.45307 } } dps_results: { key: "TestUnholy-AllItems-WindsweptPages-81125" value: { - dps: 368856.30153 - tps: 270714.58838 - hps: 4051.90499 + dps: 374266.22709 + tps: 274523.86251 + hps: 4047.72518 } } dps_results: { key: "TestUnholy-AllItems-WoundripperMedallion-93253" value: { - dps: 377606.90659 - tps: 275624.68308 - hps: 4015.66689 + dps: 379283.53833 + tps: 276579.60876 + hps: 4027.27362 } } dps_results: { key: "TestUnholy-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 369453.34105 - tps: 269941.35141 - hps: 3978.51633 + dps: 373893.77796 + tps: 273488.83875 + hps: 3974.73193 } } dps_results: { key: "TestUnholy-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 390004.3104 - tps: 272674.12603 - hps: 3986.20978 + dps: 394823.29331 + tps: 275532.23334 + hps: 3993.8908 } } dps_results: { key: "TestUnholy-AllItems-Yu'lon'sBite-103987" value: { - dps: 389500.71283 - tps: 283192.80481 - hps: 4091.31165 + dps: 393953.15312 + tps: 286653.56741 + hps: 4083.76655 } } dps_results: { key: "TestUnholy-AllItems-ZenAlchemistStone-75274" value: { - dps: 383800.13925 - tps: 285254.20764 - hps: 3892.01323 + dps: 386655.45424 + tps: 286916.74317 + hps: 3885.72508 } } dps_results: { diff --git a/sim/druid/balance/TestBalance.results b/sim/druid/balance/TestBalance.results index c0c352414c..ed4067d5da 100644 --- a/sim/druid/balance/TestBalance.results +++ b/sim/druid/balance/TestBalance.results @@ -7,12 +7,12 @@ character_stats_results: { final_stats: 30842 final_stats: 2922 final_stats: 3175 - final_stats: 17567 - final_stats: 10295 + final_stats: 17470 + final_stats: 10296 final_stats: 1930 final_stats: 82 final_stats: 0 - final_stats: 12890 + final_stats: 12995 final_stats: 499.4 final_stats: 0 final_stats: 50768.3 @@ -25,2281 +25,2281 @@ character_stats_results: { final_stats: 3000 final_stats: 9.33824 final_stats: 15.01471 - final_stats: 41.90521 - final_stats: 48.30136 + final_stats: 41.74355 + final_stats: 48.1397 final_stats: 0 } } dps_results: { key: "TestBalance-AllItems-AgilePrimalDiamond" value: { - dps: 482740.87899 - tps: 479516.45989 - hps: 44712.61251 + dps: 486672.97879 + tps: 483206.75982 + hps: 44625.43536 } } dps_results: { key: "TestBalance-AllItems-AlacrityofXuen-103989" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 456763.52083 - tps: 455227.69681 - hps: 44189.14246 + dps: 456356.27299 + tps: 454797.256 + hps: 44151.49022 } } dps_results: { key: "TestBalance-AllItems-ArrowflightMedallion-93258" value: { - dps: 455085.59163 - tps: 453137.98861 - hps: 44048.29328 + dps: 462096.8992 + tps: 460135.01537 + hps: 44785.96342 } } dps_results: { key: "TestBalance-AllItems-AssuranceofConsequence-105472" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-AusterePrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44190.88902 + dps: 477043.05527 + tps: 473729.20094 + hps: 44107.18136 } } dps_results: { key: "TestBalance-AllItems-BadJuju-96781" value: { - dps: 455151.19466 - tps: 453732.83537 - hps: 44473.76263 + dps: 457828.37752 + tps: 456277.50346 + hps: 43786.43617 } } dps_results: { key: "TestBalance-AllItems-BadgeofKypariZar-84079" value: { - dps: 447908.4372 - tps: 446570.04419 - hps: 44005.05206 + dps: 451624.78447 + tps: 450152.87998 + hps: 43357.7042 } } dps_results: { key: "TestBalance-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 511242.9399 - tps: 508171.59381 - hps: 46132.59305 + dps: 515334.49776 + tps: 512062.20472 + hps: 45994.27467 } } dps_results: { key: "TestBalance-AllItems-BlossomofPureSnow-89081" value: { - dps: 463333.97429 - tps: 461578.25342 - hps: 44670.12702 + dps: 466220.30255 + tps: 464451.92687 + hps: 44599.0908 } } dps_results: { key: "TestBalance-AllItems-BottleofInfiniteStars-87057" value: { - dps: 451457.18135 - tps: 450078.2671 - hps: 44245.62656 + dps: 455209.80249 + tps: 453696.42097 + hps: 43593.39094 } } dps_results: { key: "TestBalance-AllItems-BraidofTenSongs-84072" value: { - dps: 447908.4372 - tps: 446570.04419 - hps: 44005.05206 + dps: 451624.78447 + tps: 450152.87998 + hps: 43357.7042 } } dps_results: { key: "TestBalance-AllItems-Brawler'sStatue-282039" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 445679.19392 + tps: 444359.06453 + hps: 43858.8896 } } dps_results: { key: "TestBalance-AllItems-BreathoftheHydra-96827" value: { - dps: 485197.37654 - tps: 483305.2964 - hps: 45035.43221 + dps: 488190.5287 + tps: 486059.25356 + hps: 45115.85351 } } dps_results: { key: "TestBalance-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44059.35278 + dps: 445679.19392 + tps: 444359.06453 + hps: 44203.12971 } } dps_results: { key: "TestBalance-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-BurningPrimalDiamond" value: { - dps: 483234.76427 - tps: 479935.34605 - hps: 44662.27372 + dps: 490223.06608 + tps: 486682.81521 + hps: 45127.05931 } } dps_results: { key: "TestBalance-AllItems-CapacitivePrimalDiamond" value: { - dps: 477083.81518 - tps: 473957.58421 - hps: 44830.41464 + dps: 481463.34061 + tps: 478024.36517 + hps: 44469.66958 } } dps_results: { key: "TestBalance-AllItems-CarbonicCarbuncle-81138" value: { - dps: 455288.99757 - tps: 453641.09332 - hps: 44058.11163 + dps: 459310.83757 + tps: 457283.31539 + hps: 44313.50441 } } dps_results: { key: "TestBalance-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 492527.10027 - tps: 490204.90873 - hps: 46047.16714 + dps: 497759.85937 + tps: 495295.11554 + hps: 46042.0379 } } dps_results: { key: "TestBalance-AllItems-CharmofTenSongs-84071" value: { - dps: 453026.72442 - tps: 451560.12489 - hps: 44186.33323 + dps: 456006.47093 + tps: 454368.04244 + hps: 43999.52673 } } dps_results: { key: "TestBalance-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 461003.62013 - tps: 459854.04272 - hps: 44613.04051 + dps: 467129.02221 + tps: 465901.58252 + hps: 44164.7889 } } dps_results: { key: "TestBalance-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 467571.64347 - tps: 465869.90574 - hps: 44906.61975 + dps: 474522.365 + tps: 472627.58866 + hps: 45207.86211 } } dps_results: { key: "TestBalance-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 461247.3847 - tps: 459895.98249 - hps: 44856.45592 + dps: 466392.85739 + tps: 464809.88551 + hps: 44918.60351 } } dps_results: { key: "TestBalance-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 459473.67399 - tps: 458108.33179 - hps: 44519.4711 + dps: 465658.36701 + tps: 464073.78049 + hps: 44691.90515 } } dps_results: { key: "TestBalance-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 455064.52641 - tps: 453812.63691 - hps: 44111.00764 + dps: 458499.56599 + tps: 457079.25697 + hps: 43754.07931 } } dps_results: { key: "TestBalance-AllItems-CoreofDecency-87497" value: { - dps: 445726.52112 - tps: 444367.37044 - hps: 43544.77752 + dps: 457059.44758 + tps: 455609.70112 + hps: 43752.63913 } } dps_results: { key: "TestBalance-AllItems-CourageousPrimalDiamond" value: { - dps: 474450.13454 - tps: 471295.83064 - hps: 44167.57504 + dps: 480406.33424 + tps: 477008.58842 + hps: 44484.01643 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 451370.55339 - tps: 449974.08212 - hps: 44580.45168 + dps: 454711.43949 + tps: 453305.83428 + hps: 44155.31317 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 448499.87637 - tps: 447194.99039 - hps: 44196.25003 + dps: 454790.9641 + tps: 453322.16436 + hps: 44081.18828 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 443641.70502 - tps: 442339.77555 - hps: 43818.36717 + dps: 447314.43943 + tps: 445880.14764 + hps: 43176.15244 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44097.35297 + dps: 447314.43943 + tps: 445892.40366 + hps: 43456.19765 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 457302.75526 - tps: 455812.81232 - hps: 44128.82119 + dps: 462099.22401 + tps: 460432.48287 + hps: 44689.3422 } } dps_results: { key: "TestBalance-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 451878.83459 - tps: 450471.03002 - hps: 44287.74301 + dps: 457326.37492 + tps: 455892.34314 + hps: 44386.22937 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 445656.66788 - tps: 444347.5319 - hps: 44164.44031 + dps: 452248.92654 + tps: 450824.25306 + hps: 44377.9829 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 443641.70502 - tps: 442337.55224 - hps: 43837.09294 + dps: 447314.43943 + tps: 445877.92433 + hps: 43194.74246 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44166.9963 + dps: 447314.43943 + tps: 445892.40366 + hps: 43525.89858 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 458123.39853 - tps: 456604.92819 - hps: 44735.10182 + dps: 463005.64907 + tps: 461333.15243 + hps: 45003.40405 } } dps_results: { key: "TestBalance-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-CurseofHubris-105645" value: { - dps: 466432.73804 - tps: 464576.86782 - hps: 45143.04487 + dps: 465890.93097 + tps: 464074.02731 + hps: 44411.45323 } } dps_results: { key: "TestBalance-AllItems-CutstitcherMedallion-93255" value: { - dps: 455646.98577 - tps: 454366.94196 - hps: 44603.17436 + dps: 455855.26861 + tps: 454466.18027 + hps: 44464.74796 } } dps_results: { key: "TestBalance-AllItems-Daelo'sFinalWords-87496" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 448157.08842 + tps: 446814.38318 + hps: 43333.36562 } } dps_results: { key: "TestBalance-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 512944.95873 - tps: 509264.05535 - hps: 45731.34396 + dps: 517951.36139 + tps: 514120.56119 + hps: 45565.41646 } } dps_results: { key: "TestBalance-AllItems-DarkmistVortex-87172" value: { - dps: 454024.80985 - tps: 452724.87746 - hps: 43005.95253 + dps: 456390.61518 + tps: 455039.30749 + hps: 43879.40584 } } dps_results: { key: "TestBalance-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-DestructivePrimalDiamond" value: { - dps: 475048.83388 - tps: 471916.82791 - hps: 44687.33912 + dps: 483314.62257 + tps: 479882.98713 + hps: 44889.61169 } } dps_results: { key: "TestBalance-AllItems-DisciplineofXuen-103986" value: { - dps: 465205.29097 - tps: 463176.87147 - hps: 44571.20731 + dps: 469088.00102 + tps: 466931.23564 + hps: 43784.95423 } } dps_results: { key: "TestBalance-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 456763.52083 - tps: 455227.69681 - hps: 44189.14246 + dps: 456356.27299 + tps: 454797.256 + hps: 44151.49022 } } dps_results: { key: "TestBalance-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 453260.622 - tps: 451910.18322 - hps: 44640.39837 + dps: 453297.54621 + tps: 451936.48035 + hps: 44274.05443 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 451370.55339 - tps: 449974.08212 - hps: 44580.45168 + dps: 454711.43949 + tps: 453305.83428 + hps: 44155.31317 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 448499.87637 - tps: 447194.99039 - hps: 44196.25003 + dps: 454790.9641 + tps: 453322.16436 + hps: 44081.18828 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 443641.70502 - tps: 442339.77555 - hps: 43818.36717 + dps: 447314.43943 + tps: 445880.14764 + hps: 43176.15244 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44097.35297 + dps: 447314.43943 + tps: 445892.40366 + hps: 43456.19765 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 457171.19916 - tps: 455674.84942 - hps: 44661.7514 + dps: 462175.67488 + tps: 460483.562 + hps: 44421.59891 } } dps_results: { key: "TestBalance-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 466982.76776 - tps: 465586.74651 - hps: 45686.1408 + dps: 475588.6948 + tps: 473958.71559 + hps: 45615.25528 } } dps_results: { key: "TestBalance-AllItems-EffulgentPrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44190.88902 + dps: 477043.05527 + tps: 473729.20094 + hps: 44107.18136 } } dps_results: { key: "TestBalance-AllItems-EmberPrimalDiamond" value: { - dps: 473639.95234 - tps: 470489.37519 - hps: 44046.57036 + dps: 480508.26585 + tps: 477123.71476 + hps: 44500.45387 } } dps_results: { key: "TestBalance-AllItems-EmblemofKypariZar-84077" value: { - dps: 446412.80107 - tps: 445195.14505 - hps: 44369.66354 + dps: 454694.25895 + tps: 453255.25239 + hps: 44350.82252 } } dps_results: { key: "TestBalance-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 446432.81301 - tps: 444914.69875 - hps: 43319.3551 + dps: 451917.99668 + tps: 450288.28159 + hps: 43377.05631 } } dps_results: { key: "TestBalance-AllItems-EmptyFruitBarrel-81133" value: { - dps: 449956.56084 - tps: 448555.37424 - hps: 43841.33449 + dps: 455189.55912 + tps: 453719.98067 + hps: 43562.65688 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 512729.57035 - tps: 509446.69377 - hps: 46165.49095 + dps: 525268.68081 + tps: 521819.15849 + hps: 46241.47137 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 515977.7952 - tps: 512293.21021 - hps: 45702.71625 + dps: 523154.76545 + tps: 519307.73021 + hps: 45942.6146 } } dps_results: { key: "TestBalance-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 512187.19806 - tps: 508913.59136 - hps: 45992.94896 + dps: 521921.9811 + tps: 518346.65054 + hps: 45642.0382 } } dps_results: { key: "TestBalance-AllItems-EnigmaticPrimalDiamond" value: { - dps: 475048.83388 - tps: 471916.82791 - hps: 44687.33912 + dps: 483314.62257 + tps: 479882.98713 + hps: 44889.61169 } } dps_results: { key: "TestBalance-AllItems-EssenceofTerror-87175" value: { - dps: 468877.26914 - tps: 467524.60861 - hps: 44693.50143 + dps: 473276.03968 + tps: 471724.22444 + hps: 44590.83166 } } dps_results: { key: "TestBalance-AllItems-EternalPrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44096.74495 + dps: 477043.05527 + tps: 473729.20094 + hps: 44012.684 } } dps_results: { key: "TestBalance-AllItems-EvilEyeofGalakras-105491" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-FearwurmBadge-84074" value: { - dps: 446412.80107 - tps: 445195.14505 - hps: 44369.66354 + dps: 454694.25895 + tps: 453255.25239 + hps: 44350.82252 } } dps_results: { key: "TestBalance-AllItems-FearwurmRelic-84070" value: { - dps: 453146.90861 - tps: 451771.11335 - hps: 44166.43097 + dps: 454477.15611 + tps: 452966.37066 + hps: 44589.04414 } } dps_results: { key: "TestBalance-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 458457.36452 - tps: 457116.31792 - hps: 44077.44157 + dps: 465884.13973 + tps: 464519.69563 + hps: 44757.74322 } } dps_results: { key: "TestBalance-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 466618.29865 - tps: 464902.25291 - hps: 44687.5781 + dps: 474294.59151 + tps: 472383.7621 + hps: 45202.5634 } } dps_results: { key: "TestBalance-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 468943.14808 - tps: 465673.65748 - hps: 44466.35115 + dps: 472926.44523 + tps: 469533.13988 + hps: 44493.57782 } } dps_results: { key: "TestBalance-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 452715.73758 - tps: 451119.65483 - hps: 44061.75243 + dps: 459612.04991 + tps: 458025.99443 + hps: 44520.52742 } } dps_results: { key: "TestBalance-AllItems-FlashingSteelTalisman-81265" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 445239.92291 + tps: 443926.09352 + hps: 43393.43544 } } dps_results: { key: "TestBalance-AllItems-FleetPrimalDiamond" value: { - dps: 476132.2332 - tps: 473003.98148 - hps: 44292.39877 + dps: 479444.21705 + tps: 476080.91394 + hps: 44292.83755 } } dps_results: { key: "TestBalance-AllItems-ForlornPrimalDiamond" value: { - dps: 473639.95234 - tps: 470489.37519 - hps: 44046.57036 + dps: 480508.26585 + tps: 477123.71476 + hps: 44500.45387 } } dps_results: { key: "TestBalance-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 455151.19466 - tps: 453732.83537 - hps: 44699.94791 + dps: 457828.37752 + tps: 456277.50346 + hps: 44012.83609 } } dps_results: { key: "TestBalance-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 489095.34971 - tps: 485316.30249 - hps: 45805.5062 + dps: 492684.34112 + tps: 488900.19338 + hps: 45046.3818 } } dps_results: { key: "TestBalance-AllItems-Fusion-FireCore-105459" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-GazeoftheTwins-96915" value: { - dps: 464612.00689 - tps: 462995.51251 - hps: 44477.92815 + dps: 466126.22672 + tps: 464369.31045 + hps: 44260.93922 } } dps_results: { key: "TestBalance-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 445839.49316 - tps: 444608.12714 - hps: 44230.91032 + dps: 446818.66084 + tps: 445583.46946 + hps: 44156.43322 } } dps_results: { key: "TestBalance-AllItems-Gladiator'sSanctuary" value: { - dps: 277969.82759 - tps: 276371.10253 - hps: 32130.08843 + dps: 277653.19337 + tps: 275899.5651 + hps: 31838.19092 } } dps_results: { key: "TestBalance-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 468943.14808 - tps: 465673.65748 - hps: 44466.35115 + dps: 472926.44523 + tps: 469533.13988 + hps: 44493.57782 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 457722.12262 - tps: 456125.71064 - hps: 44542.66377 + dps: 464748.90995 + tps: 463160.34428 + hps: 44945.62422 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 453650.67415 - tps: 452399.65966 - hps: 44253.28872 + dps: 458115.05404 + tps: 456622.70187 + hps: 44454.31656 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 443641.70502 - tps: 442329.81233 - hps: 43902.01281 + dps: 447314.43943 + tps: 445870.18442 + hps: 43259.1917 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44408.27126 + dps: 447314.43943 + tps: 445892.40366 + hps: 43767.37259 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 465185.17647 - tps: 463547.71822 - hps: 44437.53797 + dps: 470616.18054 + tps: 468734.02448 + hps: 45031.64852 } } dps_results: { key: "TestBalance-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-Haromm'sTalisman-105527" value: { - dps: 469292.8512 - tps: 468003.17775 - hps: 43715.80412 + dps: 472455.82208 + tps: 471033.78631 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 450449.85291 - tps: 449014.17695 - hps: 43776.62507 + dps: 451318.22224 + tps: 449864.97247 + hps: 44316.77624 } } dps_results: { key: "TestBalance-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44162.39355 + dps: 447314.43943 + tps: 445892.40366 + hps: 43522.6182 } } dps_results: { key: "TestBalance-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 456384.65316 - tps: 454674.55416 - hps: 44633.29918 + dps: 460522.09217 + tps: 458682.31982 + hps: 44164.16096 } } dps_results: { key: "TestBalance-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 445115.8095 - tps: 443822.88352 - hps: 43920.12144 + dps: 451236.03909 + tps: 449732.41408 + hps: 44292.98001 } } dps_results: { key: "TestBalance-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 456004.3593 - tps: 454336.02478 - hps: 44211.8573 + dps: 460354.33333 + tps: 458549.7945 + hps: 43669.13318 } } dps_results: { key: "TestBalance-AllItems-HeartofFire-81181" value: { - dps: 449079.58162 - tps: 447727.81593 - hps: 44084.44563 + dps: 451132.81625 + tps: 449750.66183 + hps: 44229.91753 } } dps_results: { key: "TestBalance-AllItems-HeartwarmerMedallion-93260" value: { - dps: 455646.98577 - tps: 454366.94196 - hps: 44603.17436 + dps: 455855.26861 + tps: 454466.18027 + hps: 44464.74796 } } dps_results: { key: "TestBalance-AllItems-HelmbreakerMedallion-93261" value: { - dps: 455085.59163 - tps: 453137.98861 - hps: 44048.29328 + dps: 462096.8992 + tps: 460135.01537 + hps: 44785.96342 } } dps_results: { key: "TestBalance-AllItems-Horridon'sLastGasp-96757" value: { - dps: 459135.34474 - tps: 457757.97564 - hps: 44319.5441 + dps: 466367.25317 + tps: 464778.65757 + hps: 44860.52224 } } dps_results: { key: "TestBalance-AllItems-ImpassivePrimalDiamond" value: { - dps: 475048.83388 - tps: 471916.82791 - hps: 44687.33912 + dps: 483314.62257 + tps: 479882.98713 + hps: 44889.61169 } } dps_results: { key: "TestBalance-AllItems-IndomitablePrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44190.88902 + dps: 477043.05527 + tps: 473729.20094 + hps: 44107.18136 } } dps_results: { key: "TestBalance-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 443641.70502 - tps: 442325.95255 - hps: 43715.80412 + dps: 447314.43943 + tps: 445866.32464 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-InsigniaofKypariZar-84078" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-IronBellyWok-89083" value: { - dps: 450449.85291 - tps: 449014.17695 - hps: 43776.62507 + dps: 451318.22224 + tps: 449864.97247 + hps: 44316.77624 } } dps_results: { key: "TestBalance-AllItems-IronProtectorTalisman-85181" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44044.1163 + dps: 447314.43943 + tps: 445892.40366 + hps: 43403.89181 } } dps_results: { key: "TestBalance-AllItems-JadeBanditFigurine-86772" value: { - dps: 446463.6233 - tps: 445076.72268 - hps: 44252.17345 + dps: 452848.49725 + tps: 451438.77739 + hps: 43919.74899 } } dps_results: { key: "TestBalance-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 446463.6233 - tps: 445076.72268 - hps: 44252.17345 + dps: 452848.49725 + tps: 451438.77739 + hps: 43919.74899 } } dps_results: { key: "TestBalance-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 455146.45094 - tps: 453784.02462 - hps: 44687.90018 + dps: 454750.35782 + tps: 453376.83788 + hps: 44168.33841 } } dps_results: { key: "TestBalance-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 460896.03463 - tps: 459148.32576 - hps: 44352.88792 + dps: 466000.4089 + tps: 464228.46147 + hps: 45104.48052 } } dps_results: { key: "TestBalance-AllItems-JadeWarlordFigurine-86775" value: { - dps: 450426.31966 - tps: 448901.45711 - hps: 44418.76939 + dps: 453228.56781 + tps: 451671.93933 + hps: 44136.70735 } } dps_results: { key: "TestBalance-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 57799.3968 + dps: 447314.43943 + tps: 445892.40366 + hps: 57273.9254 } } dps_results: { key: "TestBalance-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 449526.73777 - tps: 448037.7619 - hps: 43908.11439 + dps: 452124.593 + tps: 450603.9162 + hps: 43680.64989 } } dps_results: { key: "TestBalance-AllItems-KnotofTenSongs-84073" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 448451.57875 + tps: 447125.87936 + hps: 43771.0721 } } dps_results: { key: "TestBalance-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 451652.64479 - tps: 450098.05192 - hps: 44343.94033 + dps: 454535.10125 + tps: 452949.40744 + hps: 44234.67389 } } dps_results: { key: "TestBalance-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 449258.47989 - tps: 447767.33414 - hps: 43843.92432 + dps: 451668.60192 + tps: 450142.42564 + hps: 43781.23593 } } dps_results: { key: "TestBalance-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 445679.19392 + tps: 444359.06453 + hps: 43858.8896 } } dps_results: { key: "TestBalance-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 450191.87456 - tps: 448827.40819 - hps: 44159.84958 + dps: 453931.56223 + tps: 452432.96937 + hps: 43509.3567 } } dps_results: { key: "TestBalance-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 456542.89715 - tps: 454809.03246 - hps: 44208.31225 + dps: 460516.73584 + tps: 458648.7927 + hps: 43584.39894 } } dps_results: { key: "TestBalance-AllItems-LightoftheCosmos-87065" value: { - dps: 462164.56921 - tps: 460532.09612 - hps: 44415.88835 + dps: 466926.7496 + tps: 465091.33384 + hps: 44640.288 } } dps_results: { key: "TestBalance-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 522189.12457 - tps: 518088.1581 - hps: 46309.5794 + dps: 524766.18034 + tps: 520910.20674 + hps: 46010.27818 } } dps_results: { key: "TestBalance-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 451878.83459 - tps: 450471.03002 - hps: 44287.74301 + dps: 457326.37492 + tps: 455892.34314 + hps: 44386.22937 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 445656.66788 - tps: 444347.5319 - hps: 44164.44031 + dps: 452248.92654 + tps: 450824.25306 + hps: 44377.9829 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 443641.70502 - tps: 442337.55224 - hps: 43837.09294 + dps: 447314.43943 + tps: 445877.92433 + hps: 43194.74246 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44166.9963 + dps: 447314.43943 + tps: 445892.40366 + hps: 43525.89858 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 459521.928 - tps: 458048.642 - hps: 44639.81899 + dps: 464764.96499 + tps: 463120.08991 + hps: 44694.55594 } } dps_results: { key: "TestBalance-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-MarkoftheCatacombs-83731" value: { - dps: 451987.54937 - tps: 450639.09586 - hps: 44813.31251 + dps: 459988.47161 + tps: 458411.93127 + hps: 44643.80145 } } dps_results: { key: "TestBalance-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 452201.44607 - tps: 450629.04537 - hps: 43884.43809 + dps: 454976.09504 + tps: 453372.4934 + hps: 43851.95427 } } dps_results: { key: "TestBalance-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 447602.40951 - tps: 446267.51087 - hps: 43984.306 + dps: 451309.68339 + tps: 449841.42447 + hps: 43336.98878 } } dps_results: { key: "TestBalance-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 453260.622 - tps: 451910.18322 - hps: 44640.39837 + dps: 453297.54621 + tps: 451936.48035 + hps: 44274.05443 } } dps_results: { key: "TestBalance-AllItems-MirrorScope-4700" value: { - dps: 506268.85699 - tps: 502725.92105 - hps: 45817.45754 + dps: 512857.9571 + tps: 509121.41576 + hps: 44979.13435 } } dps_results: { key: "TestBalance-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44162.39355 + dps: 447314.43943 + tps: 445892.40366 + hps: 43522.6182 } } dps_results: { key: "TestBalance-AllItems-MistdancerDefenderStone-101087" value: { - dps: 456342.88377 - tps: 454649.29108 - hps: 44668.52418 + dps: 459443.00376 + tps: 457609.79695 + hps: 43976.46973 } } dps_results: { key: "TestBalance-AllItems-MistdancerIdolofRage-101113" value: { - dps: 450191.87456 - tps: 448827.40819 - hps: 44159.84958 + dps: 453931.56223 + tps: 452432.96937 + hps: 43509.3567 } } dps_results: { key: "TestBalance-AllItems-MistdancerStoneofRage-101117" value: { - dps: 455713.23816 - tps: 454020.26209 - hps: 44179.26506 + dps: 460589.57426 + tps: 458770.65901 + hps: 43601.91392 } } dps_results: { key: "TestBalance-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 461896.41038 - tps: 460576.1804 - hps: 44301.94233 + dps: 467577.00057 + tps: 466051.42367 + hps: 44578.29198 } } dps_results: { key: "TestBalance-AllItems-MithrilWristwatch-282033" value: { - dps: 468426.97997 - tps: 466713.20041 - hps: 44426.96374 + dps: 474384.48974 + tps: 472489.0632 + hps: 44577.7125 } } dps_results: { key: "TestBalance-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 459462.67363 - tps: 458032.23976 - hps: 43792.18108 + dps: 466218.06324 + tps: 464678.711 + hps: 44024.59673 } } dps_results: { key: "TestBalance-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 466843.4507 - tps: 465145.75479 - hps: 44683.53089 + dps: 473888.26148 + tps: 471999.78042 + hps: 44987.13583 } } dps_results: { key: "TestBalance-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 480005.83406 - tps: 478240.39111 - hps: 45681.39312 + dps: 485850.54168 + tps: 483996.24289 + hps: 44820.62972 } } dps_results: { key: "TestBalance-AllItems-NitroBoosts-4223" value: { - dps: 514845.66026 - tps: 511140.22527 - hps: 45641.39041 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } dps_results: { key: "TestBalance-AllItems-OathswornDefenderIdol-101303" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44162.39355 + dps: 447314.43943 + tps: 445892.40366 + hps: 43522.6182 } } dps_results: { key: "TestBalance-AllItems-OathswornDefenderStone-101306" value: { - dps: 456042.26149 - tps: 454370.91556 - hps: 44699.96995 + dps: 460078.24389 + tps: 458278.51023 + hps: 44062.16402 } } dps_results: { key: "TestBalance-AllItems-OathswornIdolofBattle-101295" value: { - dps: 445115.8095 - tps: 443822.88352 - hps: 43920.12144 + dps: 451236.03909 + tps: 449732.41408 + hps: 44292.98001 } } dps_results: { key: "TestBalance-AllItems-OathswornStoneofBattle-101294" value: { - dps: 456056.89301 - tps: 454419.23081 - hps: 44055.61562 + dps: 458463.02597 + tps: 456674.47657 + hps: 43419.55984 } } dps_results: { key: "TestBalance-AllItems-PhaseFingers-4697" value: { - dps: 509317.23793 - tps: 505778.66503 - hps: 45764.936 + dps: 513294.22843 + tps: 509679.53831 + hps: 46125.62801 } } dps_results: { key: "TestBalance-AllItems-PouchofWhiteAsh-103639" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 448451.57875 + tps: 447125.87936 + hps: 43771.0721 } } dps_results: { key: "TestBalance-AllItems-PowerfulPrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44190.88902 + dps: 477043.05527 + tps: 473729.20094 + hps: 44107.18136 } } dps_results: { key: "TestBalance-AllItems-PriceofProgress-81266" value: { - dps: 453923.70724 - tps: 452569.69018 - hps: 44571.85131 + dps: 458254.91915 + tps: 456801.4789 + hps: 44209.01963 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 462921.60429 - tps: 461250.64112 - hps: 44670.5424 + dps: 467608.53584 + tps: 465925.29039 + hps: 44768.33216 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 455995.13017 - tps: 454724.35507 - hps: 44534.23508 + dps: 460614.54041 + tps: 459133.93124 + hps: 44709.34774 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 443641.70502 - tps: 442323.95898 - hps: 43957.56728 + dps: 447314.43943 + tps: 445864.33107 + hps: 43314.34343 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44614.98723 + dps: 447314.43943 + tps: 445892.40366 + hps: 43974.25984 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 471956.86936 - tps: 470245.82118 - hps: 45113.66631 + dps: 477322.66431 + tps: 475500.724 + hps: 45234.13054 } } dps_results: { key: "TestBalance-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 455529.14303 - tps: 454253.82293 - hps: 44394.60371 + dps: 458414.72609 + tps: 456987.89706 + hps: 44520.70833 } } dps_results: { key: "TestBalance-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 466096.86121 - tps: 464343.24398 - hps: 44881.1326 + dps: 470775.6141 + tps: 468991.77663 + hps: 45066.20605 } } dps_results: { key: "TestBalance-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 460586.92119 - tps: 457812.07625 - hps: 44105.78891 + dps: 462878.77716 + tps: 460060.58597 + hps: 43979.1467 } } dps_results: { key: "TestBalance-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 461362.47187 - tps: 458702.4191 - hps: 43913.3859 + dps: 462796.90264 + tps: 459807.22586 + hps: 43779.62058 } } dps_results: { key: "TestBalance-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 454856.29679 - tps: 453464.67234 - hps: 44245.48171 + dps: 459440.41037 + tps: 457959.99777 + hps: 44342.19282 } } dps_results: { key: "TestBalance-AllItems-RegaliaoftheEternalBlossom" value: { - dps: 324271.36796 - tps: 321939.3621 - hps: 33064.11408 + dps: 327538.28965 + tps: 325426.45379 + hps: 33219.75747 } } dps_results: { key: "TestBalance-AllItems-RegaliaoftheHauntedForest" value: { - dps: 346516.62539 - tps: 344190.38859 - hps: 35286.13903 + dps: 346622.26661 + tps: 344294.73691 + hps: 35169.40871 } } dps_results: { key: "TestBalance-AllItems-RegaliaoftheShatteredVale" value: { - dps: 357937.83695 - tps: 356495.61502 - hps: 36459.60285 + dps: 357898.7417 + tps: 356503.57461 + hps: 36864.9204 } } dps_results: { key: "TestBalance-AllItems-RelicofChi-Ji-79330" value: { - dps: 455696.29561 - tps: 454410.80661 - hps: 44606.14639 + dps: 461516.99037 + tps: 460028.55298 + hps: 44705.87894 } } dps_results: { key: "TestBalance-AllItems-RelicofKypariZar-84075" value: { - dps: 452010.21106 - tps: 450543.7475 - hps: 43836.13465 + dps: 457524.43443 + tps: 455820.53452 + hps: 43136.33912 } } dps_results: { key: "TestBalance-AllItems-RelicofNiuzao-79329" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44134.01762 + dps: 449099.68093 + tps: 447761.11569 + hps: 43849.43917 } } dps_results: { key: "TestBalance-AllItems-RelicofXuen-79327" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-RelicofXuen-79328" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-RelicofYu'lon-79331" value: { - dps: 464753.49862 - tps: 463159.21986 - hps: 45191.89667 + dps: 467330.31285 + tps: 465559.52779 + hps: 44652.87835 } } dps_results: { key: "TestBalance-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-ResolveofNiuzao-103990" value: { - dps: 454544.50734 - tps: 453133.06959 - hps: 44432.68503 + dps: 458290.42604 + tps: 456744.73556 + hps: 43778.39867 } } dps_results: { key: "TestBalance-AllItems-ReverberatingPrimalDiamond" value: { - dps: 482740.87899 - tps: 479516.45989 - hps: 44712.61251 + dps: 486672.97879 + tps: 483206.75982 + hps: 44625.43536 } } dps_results: { key: "TestBalance-AllItems-RevitalizingPrimalDiamond" value: { - dps: 482740.87899 - tps: 479509.83248 - hps: 44712.61251 + dps: 486672.97879 + tps: 483200.13241 + hps: 44625.43536 } } dps_results: { key: "TestBalance-AllItems-RuneofRe-Origination-96918" value: { - dps: 446681.57981 - tps: 445288.88983 - hps: 43543.67937 + dps: 451069.67411 + tps: 449608.41313 + hps: 43152.34734 } } dps_results: { key: "TestBalance-AllItems-SI:7Operative'sManual-92784" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 448451.57875 + tps: 447125.87936 + hps: 43771.0721 } } dps_results: { key: "TestBalance-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 454774.93811 - tps: 453493.63746 - hps: 44717.38171 + dps: 456437.98082 + tps: 455059.80998 + hps: 44364.13599 } } dps_results: { key: "TestBalance-AllItems-SearingWords-81267" value: { - dps: 448116.05819 - tps: 446805.63221 - hps: 44036.48182 + dps: 454823.72627 + tps: 453357.25653 + hps: 43994.41696 } } dps_results: { key: "TestBalance-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 463770.29893 - tps: 462059.71546 - hps: 44071.23761 + dps: 468044.12375 + tps: 466332.14836 + hps: 44883.52644 } } dps_results: { key: "TestBalance-AllItems-SigilofCompassion-83736" value: { - dps: 447602.40951 - tps: 446261.39017 - hps: 43984.306 + dps: 451309.68339 + tps: 449835.30376 + hps: 43336.98878 } } dps_results: { key: "TestBalance-AllItems-SigilofDevotion-83740" value: { - dps: 446410.84945 - tps: 445191.32843 - hps: 44316.55243 + dps: 454224.42654 + tps: 452772.99498 + hps: 44324.49377 } } dps_results: { key: "TestBalance-AllItems-SigilofFidelity-83737" value: { - dps: 451619.53184 - tps: 450143.29855 - hps: 44362.15158 + dps: 457658.73681 + tps: 455989.05451 + hps: 43832.54606 } } dps_results: { key: "TestBalance-AllItems-SigilofGrace-83738" value: { - dps: 447602.40951 - tps: 446267.51087 - hps: 43984.306 + dps: 451309.68339 + tps: 449841.42447 + hps: 43336.98878 } } dps_results: { key: "TestBalance-AllItems-SigilofKypariZar-84076" value: { - dps: 452282.68913 - tps: 450924.96586 - hps: 44828.58303 + dps: 460320.62463 + tps: 458736.3767 + hps: 44706.4368 } } dps_results: { key: "TestBalance-AllItems-SigilofPatience-83739" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-SigilofRampage-105580" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-SigiloftheCatacombs-83732" value: { - dps: 449743.28631 - tps: 448276.78406 - hps: 43429.8734 + dps: 457172.81316 + tps: 455586.08054 + hps: 43957.33536 } } dps_results: { key: "TestBalance-AllItems-SinisterPrimalDiamond" value: { - dps: 514845.66026 - tps: 511140.22527 - hps: 45641.39041 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } dps_results: { key: "TestBalance-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-SkullrenderMedallion-93256" value: { - dps: 455085.59163 - tps: 453137.98861 - hps: 44048.29328 + dps: 462096.8992 + tps: 460135.01537 + hps: 44785.96342 } } dps_results: { key: "TestBalance-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 459469.39159 - tps: 458092.43658 - hps: 44460.93145 + dps: 465185.86449 + tps: 463612.45774 + hps: 45259.98151 } } dps_results: { key: "TestBalance-AllItems-SoulBarrier-96927" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44482.21947 + dps: 447314.43943 + tps: 445892.40366 + hps: 43843.65862 } } dps_results: { key: "TestBalance-AllItems-SparkofZandalar-96770" value: { - dps: 451641.73948 - tps: 450307.12645 - hps: 43535.3835 + dps: 456136.79701 + tps: 454810.79844 + hps: 43553.91739 } } dps_results: { key: "TestBalance-AllItems-SpiritsoftheSun-87163" value: { - dps: 460306.30607 - tps: 459007.48069 - hps: 45009.22043 + dps: 462493.9246 + tps: 460930.00195 + hps: 45062.29144 } } dps_results: { key: "TestBalance-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 459453.52443 - tps: 457965.74624 - hps: 43881.18073 + dps: 464228.30461 + tps: 462719.43598 + hps: 44132.39781 } } dps_results: { key: "TestBalance-AllItems-SpringrainIdolofRage-101009" value: { - dps: 450191.87456 - tps: 448827.40819 - hps: 44159.84958 + dps: 453931.56223 + tps: 452432.96937 + hps: 43509.3567 } } dps_results: { key: "TestBalance-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 466744.56194 - tps: 465031.53275 - hps: 44661.61161 + dps: 474858.98993 + tps: 472957.37295 + hps: 45152.31338 } } dps_results: { key: "TestBalance-AllItems-SpringrainStoneofRage-101012" value: { - dps: 456699.70705 - tps: 454987.76185 - hps: 44142.20342 + dps: 460989.81517 + tps: 459142.53073 + hps: 43614.68193 } } dps_results: { key: "TestBalance-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 462578.61558 - tps: 461219.08937 - hps: 44308.98011 + dps: 467662.64727 + tps: 466173.2103 + hps: 45095.30067 } } dps_results: { key: "TestBalance-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 463770.29893 - tps: 462059.71546 - hps: 44071.23761 + dps: 468044.12375 + tps: 466332.14836 + hps: 44883.52644 } } dps_results: { key: "TestBalance-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 453319.35236 - tps: 451921.89208 - hps: 44349.7322 + dps: 456820.97974 + tps: 455288.95764 + hps: 43699.31318 } } dps_results: { key: "TestBalance-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 459408.27868 - tps: 458168.45361 - hps: 44399.40388 + dps: 465713.29862 + tps: 464444.33527 + hps: 44566.90469 } } dps_results: { key: "TestBalance-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 450191.87456 - tps: 448827.40819 - hps: 44159.84958 + dps: 453931.56223 + tps: 452432.96937 + hps: 43509.3567 } } dps_results: { key: "TestBalance-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 466578.67474 - tps: 464916.68651 - hps: 44683.88778 + dps: 472173.90011 + tps: 470320.96918 + hps: 45035.34939 } } dps_results: { key: "TestBalance-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 456379.8964 - tps: 454687.60621 - hps: 44174.24442 + dps: 459341.23558 + tps: 457514.84399 + hps: 43591.23698 } } dps_results: { key: "TestBalance-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 459512.25057 - tps: 458154.66389 - hps: 44501.35152 + dps: 465123.19359 + tps: 463584.91023 + hps: 44835.64041 } } dps_results: { key: "TestBalance-AllItems-StuffofNightmares-87160" value: { - dps: 452247.34176 - tps: 450862.11176 - hps: 44277.14848 + dps: 455738.9345 + tps: 454219.43117 + hps: 43628.17721 } } dps_results: { key: "TestBalance-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44162.39355 + dps: 447314.43943 + tps: 445892.40366 + hps: 43522.6182 } } dps_results: { key: "TestBalance-AllItems-SunsoulDefenderStone-101163" value: { - dps: 456283.72317 - tps: 454591.81352 - hps: 44649.29508 + dps: 460312.95024 + tps: 458486.66083 + hps: 44095.81132 } } dps_results: { key: "TestBalance-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 445115.8095 - tps: 443822.88352 - hps: 43920.12144 + dps: 451236.03909 + tps: 449732.41408 + hps: 44292.98001 } } dps_results: { key: "TestBalance-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 456097.96953 - tps: 454397.31306 - hps: 44239.58094 + dps: 459972.15241 + tps: 458141.94864 + hps: 43631.91719 } } dps_results: { key: "TestBalance-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 461570.50376 - tps: 460168.49359 - hps: 44870.00796 + dps: 465781.85992 + tps: 464259.21201 + hps: 45008.75974 } } dps_results: { key: "TestBalance-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 512944.95873 - tps: 509272.75356 - hps: 45731.34396 + dps: 517951.36139 + tps: 514129.2594 + hps: 45565.41646 } } dps_results: { key: "TestBalance-AllItems-SymboloftheCatacombs-83735" value: { - dps: 447602.40951 - tps: 446267.51087 - hps: 43984.306 + dps: 451309.68339 + tps: 449841.42447 + hps: 43336.98878 } } dps_results: { key: "TestBalance-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 513978.08201 - tps: 510285.60016 - hps: 46265.48669 + dps: 513913.22522 + tps: 510204.81454 + hps: 46522.07382 } } dps_results: { key: "TestBalance-AllItems-TalismanofBloodlust-96864" value: { - dps: 455459.07338 - tps: 453974.12153 - hps: 43666.59036 + dps: 457938.48182 + tps: 456359.66031 + hps: 43840.23581 } } dps_results: { key: "TestBalance-AllItems-TerrorintheMists-87167" value: { - dps: 456463.43632 - tps: 454354.00169 - hps: 44195.94141 + dps: 465687.14251 + tps: 463404.91804 + hps: 44456.10601 } } dps_results: { key: "TestBalance-AllItems-TheGloamingBlade-88149" value: { - dps: 514845.66026 - tps: 511140.22527 - hps: 45641.39041 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } dps_results: { key: "TestBalance-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 470984.45184 - tps: 469281.40759 - hps: 44966.69722 + dps: 473597.25731 + tps: 471876.19108 + hps: 44923.68623 } } dps_results: { key: "TestBalance-AllItems-Thok'sTailTip-105609" value: { - dps: 466096.86121 - tps: 464343.24398 - hps: 44881.1326 + dps: 470775.6141 + tps: 468991.77663 + hps: 45066.20605 } } dps_results: { key: "TestBalance-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 465988.48816 - tps: 464651.76764 - hps: 44994.86261 + dps: 471480.87044 + tps: 469952.11368 + hps: 44589.32394 } } dps_results: { key: "TestBalance-AllItems-TickingEbonDetonator-105612" value: { - dps: 456362.05941 - tps: 454876.09751 - hps: 44736.37885 + dps: 460207.94095 + tps: 458612.06984 + hps: 43766.0674 } } dps_results: { key: "TestBalance-AllItems-Time-LostArtifact-103678" value: { - dps: 451033.4507 - tps: 449659.37482 - hps: 44216.90124 + dps: 454781.74064 + tps: 453273.3116 + hps: 43565.24924 } } dps_results: { key: "TestBalance-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 450191.87456 - tps: 448827.40819 - hps: 44159.84958 + dps: 453931.56223 + tps: 452432.96937 + hps: 43509.3567 } } dps_results: { key: "TestBalance-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 456673.83754 - tps: 454973.44146 - hps: 44222.52623 + dps: 460519.57277 + tps: 458686.18583 + hps: 43648.72469 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 455067.83371 - tps: 453542.61514 - hps: 44404.68061 + dps: 459113.78558 + tps: 457662.0952 + hps: 44278.72978 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 449106.34277 + tps: 447777.68838 + hps: 43873.96208 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 448691.18044 - tps: 447402.43167 - hps: 44369.67915 + dps: 453039.90495 + tps: 451570.96523 + hps: 44263.91411 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 443641.70502 - tps: 442334.57855 - hps: 43861.98163 + dps: 447314.43943 + tps: 445874.95065 + hps: 43219.45072 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44259.50987 + dps: 447314.43943 + tps: 445892.40366 + hps: 43618.48851 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 458329.9999 - tps: 456801.28253 - hps: 44093.05104 + dps: 464798.96437 + tps: 463028.31742 + hps: 44389.54339 } } dps_results: { key: "TestBalance-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-TyrannicalPrimalDiamond" value: { - dps: 473158.69415 - tps: 470079.30688 - hps: 44096.74495 + dps: 477043.05527 + tps: 473729.20094 + hps: 44012.684 } } dps_results: { key: "TestBalance-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 485391.69413 - tps: 482571.00707 - hps: 44794.4012 + dps: 489579.42355 + tps: 486555.51814 + hps: 44789.35945 } } dps_results: { key: "TestBalance-AllItems-VaporshieldMedallion-93262" value: { - dps: 452201.44607 - tps: 450629.04537 - hps: 43884.43809 + dps: 454976.09504 + tps: 453372.4934 + hps: 43851.95427 } } dps_results: { key: "TestBalance-AllItems-VialofDragon'sBlood-87063" value: { - dps: 451457.18135 - tps: 450078.2671 - hps: 44245.62656 + dps: 455209.80249 + tps: 453696.42097 + hps: 43593.39094 } } dps_results: { key: "TestBalance-AllItems-VialofIchorousBlood-100963" value: { - dps: 452220.03252 - tps: 450873.93543 - hps: 44546.57781 + dps: 457647.82291 + tps: 456196.93716 + hps: 44234.64327 } } dps_results: { key: "TestBalance-AllItems-VialofLivingCorruption-105568" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 44738.92884 + dps: 447314.43943 + tps: 445892.40366 + hps: 44101.3428 } } dps_results: { key: "TestBalance-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 443641.70502 - tps: 442352.03156 - hps: 43715.80412 + dps: 447314.43943 + tps: 445892.40366 + hps: 43074.33291 } } dps_results: { key: "TestBalance-AllItems-VisionofthePredator-81192" value: { - dps: 462604.14749 - tps: 460998.95234 - hps: 44233.37213 + dps: 467703.81308 + tps: 465799.98476 + hps: 44970.44107 } } dps_results: { key: "TestBalance-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 466084.6614 - tps: 464862.79616 - hps: 44745.54003 + dps: 473257.0775 + tps: 471849.64895 + hps: 45312.24039 } } dps_results: { key: "TestBalance-AllItems-WindsweptPages-81125" value: { - dps: 453463.72473 - tps: 451938.18216 - hps: 43786.07246 + dps: 454470.51725 + tps: 452819.11732 + hps: 43893.62772 } } dps_results: { key: "TestBalance-AllItems-WoundripperMedallion-93253" value: { - dps: 455085.59163 - tps: 453137.98861 - hps: 44048.29328 + dps: 462096.8992 + tps: 460135.01537 + hps: 44785.96342 } } dps_results: { key: "TestBalance-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 470912.45175 - tps: 469089.35883 - hps: 44476.02403 + dps: 476582.65825 + tps: 474334.97093 + hps: 44190.94316 } } dps_results: { key: "TestBalance-AllItems-YaungolFireCarrier-86518" value: { - dps: 514845.66026 - tps: 511140.22527 - hps: 45641.39041 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } dps_results: { key: "TestBalance-AllItems-Yu'lon'sBite-103987" value: { - dps: 485247.34383 - tps: 483286.4936 - hps: 45271.75261 + dps: 489450.94473 + tps: 487225.13524 + hps: 45346.22375 } } dps_results: { key: "TestBalance-AllItems-ZenAlchemistStone-75274" value: { - dps: 461838.5178 - tps: 460133.0579 - hps: 44928.84001 + dps: 469780.86795 + tps: 467908.62215 + hps: 44848.80713 } } dps_results: { key: "TestBalance-Average-Default" value: { - dps: 523328.36209 - tps: 519851.02142 - hps: 45909.92097 + dps: 522946.87789 + tps: 519459.67807 + hps: 45920.84136 } } dps_results: { @@ -2449,145 +2449,145 @@ dps_results: { dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 884777.13043 - tps: 917619.26152 - hps: 20127.93856 + dps: 883910.91369 + tps: 916221.08496 + hps: 19608.35097 } } dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 522342.45063 - tps: 518511.01402 - hps: 46073.46171 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 824848.71242 - tps: 792636.4044 - hps: 56519.35813 + dps: 825860.07834 + tps: 793586.85214 + hps: 56369.90469 } } dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 571824.72999 - tps: 599663.73411 - hps: 16339.84487 + dps: 576947.62596 + tps: 604672.33007 + hps: 16141.02111 } } dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 332779.71724 - tps: 335799.20744 - hps: 36382.57394 + dps: 330429.87347 + tps: 333449.06368 + hps: 36156.03864 } } dps_results: { key: "TestBalance-Settings-Troll-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 448283.54152 - tps: 451445.31754 - hps: 45488.24528 + dps: 449011.4505 + tps: 452131.72653 + hps: 45858.49691 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 835132.23223 - tps: 838231.76704 - hps: 12675.47478 + dps: 837377.98457 + tps: 840477.90476 + hps: 12628.58091 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 514498.0012 - tps: 478798.76382 - hps: 14040.47584 + dps: 512453.18345 + tps: 476790.22184 + hps: 14078.14719 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 815677.31258 - tps: 708900.45664 - hps: 18238.33266 + dps: 817861.50346 + tps: 710833.18802 + hps: 18254.68402 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 552320.21508 - tps: 566967.99747 - hps: 11241.06685 + dps: 558758.28136 + tps: 573392.95537 + hps: 11251.60258 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 323745.57194 - tps: 306055.21292 - hps: 12515.55459 + dps: 323582.48217 + tps: 305853.20958 + hps: 12552.10795 } } dps_results: { key: "TestBalance-Settings-Troll-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 430892.50171 - tps: 394200.50664 - hps: 15901.78985 + dps: 431164.53147 + tps: 394513.63855 + hps: 15893.50104 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 872405.2635 - tps: 903515.98408 - hps: 14444.82263 + dps: 871763.00271 + tps: 902608.11985 + hps: 14564.51544 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 535170.2896 - tps: 531127.33198 - hps: 15649.75215 + dps: 536752.44463 + tps: 532687.51169 + hps: 15618.80604 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 875641.38784 - tps: 843050.49973 - hps: 22035.8796 + dps: 875561.05946 + tps: 842897.36978 + hps: 22088.32303 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 568162.88916 - tps: 596275.29327 - hps: 12699.75821 + dps: 568216.79666 + tps: 597304.30078 + hps: 12686.42041 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 336513.09908 - tps: 339407.22428 - hps: 13824.90757 + dps: 337655.13845 + tps: 340559.41365 + hps: 13915.10825 } } dps_results: { key: "TestBalance-Settings-Troll-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 471519.06405 - tps: 474477.91507 - hps: 19801.15319 + dps: 471274.97053 + tps: 474233.14656 + hps: 19851.98072 } } dps_results: { @@ -2737,152 +2737,152 @@ dps_results: { dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 898201.92909 - tps: 930671.62796 - hps: 19820.16669 + dps: 898193.09942 + tps: 931916.09154 + hps: 19707.6101 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 519026.50175 - tps: 515700.19667 - hps: 46263.73423 + dps: 517007.82949 + tps: 513714.29408 + hps: 46565.81119 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 803314.37039 - tps: 773679.54497 - hps: 57951.15524 + dps: 804507.77242 + tps: 774900.77037 + hps: 57961.66585 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 572135.58764 - tps: 600173.42385 - hps: 16455.46882 + dps: 576445.99196 + tps: 606804.42817 + hps: 16962.73632 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 328194.14255 - tps: 331232.66936 - hps: 36555.67712 + dps: 328104.7738 + tps: 331111.79061 + hps: 36856.95914 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-DefaultTalents-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 436826.60857 - tps: 439891.94262 - hps: 47378.32695 + dps: 436593.65729 + tps: 439670.11634 + hps: 47526.39211 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 834189.07674 - tps: 838909.25914 - hps: 12645.54054 + dps: 839278.14187 + tps: 844737.96029 + hps: 12658.6549 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 513090.85887 - tps: 478500.78124 - hps: 14040.47584 + dps: 511008.0038 + tps: 476564.29962 + hps: 14042.0584 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 793952.59016 - tps: 692728.19436 - hps: 18178.46419 + dps: 800957.2217 + tps: 699328.6589 + hps: 18194.53604 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 547189.33589 - tps: 562479.01194 - hps: 11283.70771 + dps: 549479.0807 + tps: 564298.94772 + hps: 11242.07507 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 321503.64933 - tps: 304552.86849 - hps: 12543.98183 + dps: 321450.85618 + tps: 304415.98268 + hps: 12566.39922 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-FoN + HotW-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 415283.64906 - tps: 381631.49469 - hps: 15996.5473 + dps: 414906.93538 + tps: 381261.66987 + hps: 16036.41371 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 887237.17442 - tps: 921353.81073 - hps: 14557.07112 + dps: 887965.00728 + tps: 924389.16235 + hps: 14763.59296 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 533287.47379 - tps: 529706.88758 - hps: 15870.94406 + dps: 533757.49002 + tps: 530170.48356 + hps: 15759.31995 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 847239.3618 - tps: 816995.93072 - hps: 22601.03377 + dps: 851262.58945 + tps: 820948.73215 + hps: 22645.26484 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 566824.34188 - tps: 595652.07809 - hps: 12595.89805 + dps: 575630.491 + tps: 607907.52721 + hps: 12763.79304 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 332168.67561 - tps: 335040.46242 - hps: 13590.99944 + dps: 333338.6188 + tps: 336217.75061 + hps: 13760.31867 } } dps_results: { key: "TestBalance-Settings-Worgen-t16-Incarnation + NV-Default-standard-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 452398.85395 - tps: 455353.76301 - hps: 19435.61396 + dps: 450188.72293 + tps: 453121.45698 + hps: 19655.2803 } } dps_results: { key: "TestBalance-SwitchInFrontOfTarget-Default" value: { - dps: 522342.45063 - tps: 518511.01402 - hps: 46073.46171 + dps: 519247.38286 + tps: 515400.84762 + hps: 45515.15762 } } diff --git a/sim/druid/feral/TestFeral.results b/sim/druid/feral/TestFeral.results index 37e17b36f3..878563bde4 100644 --- a/sim/druid/feral/TestFeral.results +++ b/sim/druid/feral/TestFeral.results @@ -33,1985 +33,1985 @@ character_stats_results: { dps_results: { key: "TestFeral-AllItems-AgilePrimalDiamond" value: { - dps: 449369.02269 - tps: 564831.53989 - hps: 21442.54455 + dps: 460977.75612 + tps: 566377.43413 + hps: 21553.13979 } } dps_results: { key: "TestFeral-AllItems-AlacrityofXuen-103989" value: { - dps: 399838.5153 - tps: 459053.37935 - hps: 22168.95984 + dps: 408694.34303 + tps: 469433.36545 + hps: 22575.14239 } } dps_results: { key: "TestFeral-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 387101.20056 - tps: 461510.48472 - hps: 22540.2776 + dps: 391063.72558 + tps: 472986.3894 + hps: 22661.62711 } } dps_results: { key: "TestFeral-AllItems-ArrowflightMedallion-93258" value: { - dps: 400870.98515 - tps: 479416.32238 - hps: 23065.47112 + dps: 405490.80213 + tps: 507343.47234 + hps: 23471.38829 } } dps_results: { key: "TestFeral-AllItems-AssuranceofConsequence-105472" value: { - dps: 439580.54457 - tps: 444701.37466 - hps: 25413.75491 + dps: 449303.40135 + tps: 453049.50094 + hps: 25663.84872 } } dps_results: { key: "TestFeral-AllItems-AusterePrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21211.52319 + dps: 450480.63916 + tps: 556521.93446 + hps: 21351.67111 } } dps_results: { key: "TestFeral-AllItems-BadJuju-96781" value: { - dps: 422915.22725 - tps: 519712.21075 - hps: 22889.60727 + dps: 423295.84833 + tps: 511534.38526 + hps: 23111.44661 } } dps_results: { key: "TestFeral-AllItems-BadgeofKypariZar-84079" value: { - dps: 388428.76195 - tps: 461082.46852 - hps: 22287.20371 + dps: 396319.21709 + tps: 487459.92635 + hps: 22334.63284 } } dps_results: { key: "TestFeral-AllItems-BattlegearoftheEternalBlossom" value: { - dps: 286162.41615 - tps: 337655.86184 - hps: 16197.29462 + dps: 286172.32723 + tps: 337711.27445 + hps: 15768.66727 } } dps_results: { key: "TestFeral-AllItems-BattlegearoftheHauntedForest" value: { - dps: 304558.67956 - tps: 343327.398 - hps: 18415.37083 + dps: 306120.3529 + tps: 350601.60012 + hps: 18521.24934 } } dps_results: { key: "TestFeral-AllItems-BattlegearoftheShatteredVale" value: { - dps: 312943.17552 - tps: 335152.85945 - hps: 19641.46309 + dps: 310177.05461 + tps: 342861.60566 + hps: 19204.08013 } } dps_results: { key: "TestFeral-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 396602.13102 - tps: 454103.42655 - hps: 24160.9668 + dps: 395940.71038 + tps: 461498.93213 + hps: 24249.39664 } } dps_results: { key: "TestFeral-AllItems-BlossomofPureSnow-89081" value: { - dps: 386243.36061 - tps: 471387.43634 - hps: 23025.32836 + dps: 388672.80966 + tps: 484324.58576 + hps: 23060.49828 } } dps_results: { key: "TestFeral-AllItems-BottleofInfiniteStars-87057" value: { - dps: 401303.4857 - tps: 496495.48651 - hps: 22532.36825 + dps: 410941.02744 + tps: 499917.89545 + hps: 22981.40199 } } dps_results: { key: "TestFeral-AllItems-BraidofTenSongs-84072" value: { - dps: 389676.58956 - tps: 462923.87817 - hps: 22130.85538 + dps: 391236.3468 + tps: 463104.5486 + hps: 22387.18467 } } dps_results: { key: "TestFeral-AllItems-Brawler'sStatue-282039" value: { - dps: 379250.16189 - tps: 463541.8797 - hps: 21749.41172 + dps: 379783.51487 + tps: 468388.09296 + hps: 21969.47857 } } dps_results: { key: "TestFeral-AllItems-BreathoftheHydra-96827" value: { - dps: 389188.06343 - tps: 451800.51894 - hps: 22507.1535 + dps: 396329.51997 + tps: 455344.51654 + hps: 22475.9084 } } dps_results: { key: "TestFeral-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 379250.16189 - tps: 463541.8797 - hps: 21864.09446 + dps: 379783.51487 + tps: 468388.09296 + hps: 22084.05939 } } dps_results: { key: "TestFeral-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 392192.19076 - tps: 485760.41514 - hps: 21985.26636 + dps: 395081.85242 + tps: 472101.69306 + hps: 22047.08274 } } dps_results: { key: "TestFeral-AllItems-BurningPrimalDiamond" value: { - dps: 446798.59637 - tps: 559616.01711 - hps: 21445.6249 + dps: 459523.34145 + tps: 568080.22371 + hps: 21580.42105 } } dps_results: { key: "TestFeral-AllItems-CapacitivePrimalDiamond" value: { - dps: 461570.78849 - tps: 592403.74348 - hps: 21304.03697 + dps: 472705.36669 + tps: 614548.58942 + hps: 21413.53245 } } dps_results: { key: "TestFeral-AllItems-CarbonicCarbuncle-81138" value: { - dps: 387686.07297 - tps: 479054.72716 - hps: 22319.58405 + dps: 393218.92063 + tps: 470240.69129 + hps: 22639.04628 } } dps_results: { key: "TestFeral-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 387322.55772 - tps: 464729.99559 - hps: 22709.37239 + dps: 397101.70954 + tps: 466827.971 + hps: 23133.34386 } } dps_results: { key: "TestFeral-AllItems-CharmofTenSongs-84071" value: { - dps: 387141.10072 - tps: 458695.25703 - hps: 22186.94744 + dps: 391591.35594 + tps: 475042.94284 + hps: 22418.54472 } } dps_results: { key: "TestFeral-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 392907.26063 - tps: 488522.64079 - hps: 22139.85384 + dps: 391669.12301 + tps: 473389.12213 + hps: 22381.65636 } } dps_results: { key: "TestFeral-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 397325.77712 - tps: 476418.57021 - hps: 22856.09164 + dps: 401947.74012 + tps: 490861.3943 + hps: 22296.18939 } } dps_results: { key: "TestFeral-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 379049.00257 - tps: 466681.76271 - hps: 22312.34982 + dps: 390979.0855 + tps: 467262.72052 + hps: 23017.18275 } } dps_results: { key: "TestFeral-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 378268.71411 - tps: 461211.39379 - hps: 22645.82434 + dps: 390389.88727 + tps: 474426.85758 + hps: 23186.80499 } } dps_results: { key: "TestFeral-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 406793.06968 - tps: 500764.93983 - hps: 22610.31429 + dps: 410505.65015 + tps: 496345.3453 + hps: 22656.65306 } } dps_results: { key: "TestFeral-AllItems-CoreofDecency-87497" value: { - dps: 381720.58457 - tps: 464274.06203 - hps: 22047.50301 + dps: 390950.78527 + tps: 468737.87119 + hps: 22354.49784 } } dps_results: { key: "TestFeral-AllItems-CourageousPrimalDiamond" value: { - dps: 437876.26997 - tps: 548056.46482 - hps: 21324.49313 + dps: 450480.63916 + tps: 556521.93446 + hps: 21463.46411 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 390962.63105 - tps: 485525.54495 - hps: 22390.50367 + dps: 397473.04566 + tps: 485772.16068 + hps: 22535.41619 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22099.5611 + dps: 379856.39947 + tps: 464097.26115 + hps: 22410.40882 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 383346.54745 - tps: 468714.41414 - hps: 21918.2939 + dps: 382026.82553 + tps: 460998.2617 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 383651.50141 - tps: 466549.06592 - hps: 22272.92767 + dps: 394710.64497 + tps: 469120.82086 + hps: 22546.97604 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21809.41028 + dps: 391182.60805 + tps: 464266.72094 + hps: 22426.82649 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21901.53616 + dps: 391182.60805 + tps: 464266.72094 + hps: 22518.71661 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 396906.38154 - tps: 480687.26524 - hps: 22465.09085 + dps: 398846.7234 + tps: 484231.38613 + hps: 22748.74352 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 380184.58752 - tps: 466409.36354 - hps: 22458.43151 + dps: 390520.61424 + tps: 471410.58982 + hps: 22812.52213 } } dps_results: { key: "TestFeral-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 387086.35825 - tps: 477016.38476 - hps: 22093.19672 + dps: 393394.53553 + tps: 466361.60444 + hps: 22383.77053 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 392806.73834 - tps: 488845.99873 - hps: 22447.47317 + dps: 398645.62837 + tps: 488571.29425 + hps: 22555.52413 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22181.66497 + dps: 379858.93682 + tps: 464097.71153 + hps: 22485.59696 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 383941.75197 - tps: 469398.431 - hps: 21918.2939 + dps: 382579.69129 + tps: 461654.82184 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 384402.62072 - tps: 467544.44359 - hps: 22332.75829 + dps: 394550.99844 + tps: 472804.49755 + hps: 22539.28755 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21816.58874 + dps: 391182.60805 + tps: 464266.72094 + hps: 22434.25249 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21925.43072 + dps: 391182.60805 + tps: 464266.72094 + hps: 22542.81559 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 399155.43006 - tps: 479930.07088 - hps: 22603.38907 + dps: 399448.09922 + tps: 483521.02962 + hps: 22826.01439 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 377646.09225 - tps: 462942.92719 - hps: 22459.94099 + dps: 391186.57615 + tps: 470885.50817 + hps: 22989.82421 } } dps_results: { key: "TestFeral-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 386225.1841 - tps: 473672.60152 - hps: 22093.2879 + dps: 393604.42015 + tps: 473036.58212 + hps: 22262.69492 } } dps_results: { key: "TestFeral-AllItems-CurseofHubris-105645" value: { - dps: 393496.10925 - tps: 488365.46661 - hps: 23496.72952 + dps: 376693.75329 + tps: 467095.50656 + hps: 23328.33165 } } dps_results: { key: "TestFeral-AllItems-CutstitcherMedallion-93255" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22346.69399 + dps: 381441.91154 + tps: 464740.82336 + hps: 22791.41152 } } dps_results: { key: "TestFeral-AllItems-Daelo'sFinalWords-87496" value: { - dps: 383977.25595 - tps: 476315.41833 - hps: 21757.37408 + dps: 392495.5621 + tps: 476566.97989 + hps: 22510.08153 } } dps_results: { key: "TestFeral-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 450722.02879 - tps: 571306.69934 - hps: 21455.04382 + dps: 469539.77786 + tps: 589064.17803 + hps: 21738.11958 } } dps_results: { key: "TestFeral-AllItems-DarkmistVortex-87172" value: { - dps: 396603.33842 - tps: 451699.62485 - hps: 22226.4899 + dps: 400844.64949 + tps: 454019.87217 + hps: 22727.47957 } } dps_results: { key: "TestFeral-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 400818.84559 - tps: 480777.92432 - hps: 22404.79733 + dps: 397165.33244 + tps: 490447.81076 + hps: 22510.87934 } } dps_results: { key: "TestFeral-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 21780.45052 + dps: 390053.03413 + tps: 465784.45057 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-DestructivePrimalDiamond" value: { - dps: 371831.66487 - tps: 491395.01208 - hps: 25767.32553 + dps: 376863.01991 + tps: 514207.2333 + hps: 26278.03216 } } dps_results: { key: "TestFeral-AllItems-DisciplineofXuen-103986" value: { - dps: 419517.99316 - tps: 490083.57636 - hps: 23028.36648 + dps: 420866.69099 + tps: 491929.13708 + hps: 23188.17944 } } dps_results: { key: "TestFeral-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 387101.20056 - tps: 461510.48472 - hps: 22540.2776 + dps: 391063.72558 + tps: 472986.3894 + hps: 22661.62711 } } dps_results: { key: "TestFeral-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 400818.84559 - tps: 480777.92432 - hps: 22404.79733 + dps: 397165.33244 + tps: 490447.81076 + hps: 22510.87934 } } dps_results: { key: "TestFeral-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 389559.28198 - tps: 471605.41364 - hps: 22122.74935 + dps: 384997.23736 + tps: 469241.95673 + hps: 22093.29633 } } dps_results: { key: "TestFeral-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 392941.88533 - tps: 475856.63914 - hps: 22122.74935 + dps: 389076.18663 + tps: 476124.38259 + hps: 22093.19577 } } dps_results: { key: "TestFeral-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22201.87157 + dps: 381441.91154 + tps: 464740.82479 + hps: 22645.49898 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 390962.63105 - tps: 485525.54495 - hps: 22390.50367 + dps: 397473.04566 + tps: 485772.16068 + hps: 22535.41619 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22099.5611 + dps: 379856.39947 + tps: 464097.26115 + hps: 22410.40882 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 383346.54745 - tps: 468714.41414 - hps: 21918.2939 + dps: 382026.82553 + tps: 460998.2617 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 383651.50141 - tps: 466549.06592 - hps: 22272.92767 + dps: 394710.64497 + tps: 469120.82086 + hps: 22546.97604 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21809.41028 + dps: 391182.60805 + tps: 464266.72094 + hps: 22426.82649 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21901.53616 + dps: 391182.60805 + tps: 464266.72094 + hps: 22518.71661 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 399306.12985 - tps: 479350.21086 - hps: 22588.54352 + dps: 400238.76277 + tps: 483387.36301 + hps: 22963.63232 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 380791.974 - tps: 461679.75339 - hps: 22586.86135 + dps: 389666.58753 + tps: 460686.70301 + hps: 22814.80769 } } dps_results: { key: "TestFeral-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 383631.39421 - tps: 472070.30944 - hps: 21937.92721 + dps: 392502.09216 + tps: 474940.53642 + hps: 22341.82116 } } dps_results: { key: "TestFeral-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 389559.28198 - tps: 471605.41364 - hps: 22122.74935 + dps: 384997.23736 + tps: 469241.95673 + hps: 22093.29633 } } dps_results: { key: "TestFeral-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 379866.48341 - tps: 467540.11112 - hps: 22900.07532 + dps: 390060.8824 + tps: 465784.91851 + hps: 23465.09759 } } dps_results: { key: "TestFeral-AllItems-EffulgentPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21211.52319 + dps: 450480.63916 + tps: 556521.93446 + hps: 21351.67111 } } dps_results: { key: "TestFeral-AllItems-EmberPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46551 - hps: 21282.43822 + dps: 450480.63916 + tps: 556521.93446 + hps: 21421.6219 } } dps_results: { key: "TestFeral-AllItems-EmblemofKypariZar-84077" value: { - dps: 390494.05542 - tps: 461440.5368 - hps: 22250.31886 + dps: 393206.20228 + tps: 458853.86297 + hps: 22762.95458 } } dps_results: { key: "TestFeral-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 392878.4132 - tps: 458338.35206 - hps: 22335.20943 + dps: 396933.01241 + tps: 459626.39625 + hps: 22566.11425 } } dps_results: { key: "TestFeral-AllItems-EmptyFruitBarrel-81133" value: { - dps: 382641.93759 - tps: 458478.53923 - hps: 22163.54123 + dps: 390146.65576 + tps: 466795.12739 + hps: 22363.67745 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 463289.68864 - tps: 590851.28408 - hps: 21147.16493 + dps: 470676.96269 + tps: 587505.1128 + hps: 21792.59721 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 449813.25327 - tps: 569318.57039 - hps: 20890.98237 + dps: 452491.89375 + tps: 557541.20749 + hps: 20866.00862 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 450633.97566 - tps: 570586.44457 - hps: 20893.54459 + dps: 453441.1851 + tps: 561168.80188 + hps: 20922.88893 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 449078.60462 - tps: 564204.00435 - hps: 21193.51492 + dps: 455157.06022 + tps: 570847.32855 + hps: 21402.57117 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 450138.16235 - tps: 572150.14717 - hps: 20993.11243 + dps: 452583.08978 + tps: 559861.27625 + hps: 20920.65089 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 449858.65034 - tps: 565144.98081 - hps: 21277.7021 + dps: 454048.77927 + tps: 561029.12977 + hps: 21496.37879 } } dps_results: { key: "TestFeral-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 443510.21106 - tps: 558759.57867 - hps: 21803.36435 + dps: 454590.18574 + tps: 563481.0595 + hps: 21928.33585 } } dps_results: { key: "TestFeral-AllItems-EnigmaticPrimalDiamond" value: { - dps: 371831.66487 - tps: 491395.01208 - hps: 25767.32553 + dps: 376863.01991 + tps: 514207.2333 + hps: 26278.03216 } } dps_results: { key: "TestFeral-AllItems-EssenceofTerror-87175" value: { - dps: 385138.27907 - tps: 462027.62245 - hps: 22554.37675 + dps: 392832.99385 + tps: 470902.34443 + hps: 22767.06245 } } dps_results: { key: "TestFeral-AllItems-EternalPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21180.70284 + dps: 450480.63916 + tps: 556521.93446 + hps: 21320.99048 } } dps_results: { key: "TestFeral-AllItems-EvilEyeofGalakras-105491" value: { - dps: 394080.52209 - tps: 469736.53657 - hps: 22051.83415 + dps: 399465.03073 + tps: 481302.19147 + hps: 22147.28193 } } dps_results: { key: "TestFeral-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 394403.60597 - tps: 477013.98024 - hps: 22123.54695 + dps: 397466.05778 + tps: 462491.5605 + hps: 22235.60677 } } dps_results: { key: "TestFeral-AllItems-FearwurmBadge-84074" value: { - dps: 390927.9831 - tps: 476893.45126 - hps: 22426.44134 + dps: 393939.28324 + tps: 457949.76061 + hps: 22783.56743 } } dps_results: { key: "TestFeral-AllItems-FearwurmRelic-84070" value: { - dps: 388135.33731 - tps: 460260.5479 - hps: 22386.76376 + dps: 393255.57496 + tps: 477641.19336 + hps: 22322.75386 } } dps_results: { key: "TestFeral-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 388984.39144 - tps: 481702.21286 - hps: 22019.22763 + dps: 392177.0562 + tps: 475178.85882 + hps: 22248.60965 } } dps_results: { key: "TestFeral-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 397615.82913 - tps: 485726.10664 - hps: 22754.395 + dps: 401600.001 + tps: 484607.7907 + hps: 22272.87587 } } dps_results: { key: "TestFeral-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 380806.11182 - tps: 469235.44811 - hps: 22084.11741 + dps: 385582.22104 + tps: 483285.1703 + hps: 22491.81416 } } dps_results: { key: "TestFeral-AllItems-FlashingSteelTalisman-81265" value: { - dps: 390307.52168 - tps: 481603.20155 - hps: 22416.89786 + dps: 398213.61846 + tps: 483812.45572 + hps: 22420.26217 } } dps_results: { key: "TestFeral-AllItems-FleetPrimalDiamond" value: { - dps: 442321.57127 - tps: 553736.46351 - hps: 21140.94499 + dps: 457089.47256 + tps: 571558.76363 + hps: 21546.89694 } } dps_results: { key: "TestFeral-AllItems-ForlornPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46551 - hps: 21282.43822 + dps: 450480.63916 + tps: 556521.93446 + hps: 21421.6219 } } dps_results: { key: "TestFeral-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 392304.11085 - tps: 477439.45885 - hps: 22230.0892 + dps: 399639.53933 + tps: 472142.58136 + hps: 22332.93649 } } dps_results: { key: "TestFeral-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 380525.6265 - tps: 464950.07703 - hps: 23522.08076 + dps: 390189.28236 + tps: 461138.87424 + hps: 23652.87805 } } dps_results: { key: "TestFeral-AllItems-Fusion-FireCore-105459" value: { - dps: 396462.60151 - tps: 476720.42755 - hps: 22229.24066 + dps: 401270.79587 + tps: 483535.91082 + hps: 22268.05614 } } dps_results: { key: "TestFeral-AllItems-GazeoftheTwins-96915" value: { - dps: 399783.89871 - tps: 489955.89293 - hps: 22539.01075 + dps: 405583.97764 + tps: 479616.82719 + hps: 23147.77745 } } dps_results: { key: "TestFeral-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 387432.29874 - tps: 482382.04875 - hps: 22198.51598 + dps: 401852.93705 + tps: 486468.23633 + hps: 22928.56265 } } dps_results: { key: "TestFeral-AllItems-Gladiator'sSanctuary" value: { - dps: 326743.11949 - tps: 363825.09802 - hps: 18734.34342 + dps: 322340.3246 + tps: 346227.14457 + hps: 18504.12109 } } dps_results: { key: "TestFeral-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 436753.81345 - tps: 610189.60923 - hps: 20522.43211 + dps: 440528.60704 + tps: 577835.0191 + hps: 20919.30596 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 399763.70288 - tps: 497376.94611 - hps: 22805.38467 + dps: 404774.48087 + tps: 497543.14874 + hps: 23008.49019 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22427.10415 + dps: 379872.22136 + tps: 464097.71153 + hps: 22758.00211 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 386110.7966 - tps: 469508.01082 - hps: 21939.8952 + dps: 384499.7212 + tps: 463934.96868 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 387310.87971 - tps: 476460.25924 - hps: 22441.12235 + dps: 397304.96433 + tps: 472870.78319 + hps: 22785.37166 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21841.47558 + dps: 391182.60805 + tps: 464266.72094 + hps: 22459.99749 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 22008.57379 + dps: 391182.60805 + tps: 464266.72094 + hps: 22626.66843 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 406479.90757 - tps: 498612.04878 - hps: 22769.4753 + dps: 411213.674 + tps: 490063.94886 + hps: 23061.33597 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 380968.71024 - tps: 468107.30444 - hps: 22968.88138 + dps: 389584.79338 + tps: 466060.9979 + hps: 23229.48326 } } dps_results: { key: "TestFeral-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 390193.78097 - tps: 484578.89571 - hps: 21810.95507 + dps: 397183.2677 + tps: 468259.55438 + hps: 22396.2014 } } dps_results: { key: "TestFeral-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 397363.79563 - tps: 471648.01049 - hps: 22675.60864 + dps: 402386.24623 + tps: 480053.34739 + hps: 22988.49446 } } dps_results: { key: "TestFeral-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 380767.28555 - tps: 467914.48317 - hps: 21852.03787 + dps: 389000.90077 + tps: 463353.03359 + hps: 22465.51792 } } dps_results: { key: "TestFeral-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 397291.34609 - tps: 475065.36448 - hps: 22225.49144 + dps: 399617.85461 + tps: 489037.21146 + hps: 22031.62098 } } dps_results: { key: "TestFeral-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 389700.42232 - tps: 463820.31824 - hps: 22039.70918 + dps: 396882.77241 + tps: 489044.6873 + hps: 22405.66111 } } dps_results: { key: "TestFeral-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 401019.32903 - tps: 484551.96145 - hps: 22435.28321 + dps: 403730.93802 + tps: 485406.61938 + hps: 21914.63611 } } dps_results: { key: "TestFeral-AllItems-HeartofFire-81181" value: { - dps: 383689.37973 - tps: 472177.95191 - hps: 21731.92846 + dps: 384398.8455 + tps: 475292.14951 + hps: 21991.94556 } } dps_results: { key: "TestFeral-AllItems-HeartwarmerMedallion-93260" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22346.69399 + dps: 381441.91154 + tps: 464740.82336 + hps: 22791.41152 } } dps_results: { key: "TestFeral-AllItems-HelmbreakerMedallion-93261" value: { - dps: 392589.06748 - tps: 479126.00962 - hps: 22519.16666 + dps: 394948.18832 + tps: 491465.07728 + hps: 22735.45304 } } dps_results: { key: "TestFeral-AllItems-Horridon'sLastGasp-96757" value: { - dps: 379866.48341 - tps: 467554.11621 - hps: 22595.7197 + dps: 390058.2461 + tps: 465797.08613 + hps: 23164.1144 } } dps_results: { key: "TestFeral-AllItems-ImpassivePrimalDiamond" value: { - dps: 371831.66487 - tps: 491395.01208 - hps: 25767.32553 + dps: 376863.01991 + tps: 514207.2333 + hps: 26278.03216 } } dps_results: { key: "TestFeral-AllItems-IndomitablePrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21211.52319 + dps: 450480.63916 + tps: 556521.93446 + hps: 21351.67111 } } dps_results: { key: "TestFeral-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 21780.45052 + dps: 390053.03413 + tps: 465784.45057 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-InsigniaofKypariZar-84078" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 21780.45052 + dps: 390053.03413 + tps: 465784.45057 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-IronBellyWok-89083" value: { - dps: 388346.90544 - tps: 457479.50542 - hps: 22223.15711 + dps: 392989.87521 + tps: 469532.39102 + hps: 22317.46887 } } dps_results: { key: "TestFeral-AllItems-IronProtectorTalisman-85181" value: { - dps: 380476.43155 - tps: 472877.57539 - hps: 21999.88433 + dps: 390772.10964 + tps: 461668.40841 + hps: 22418.8303 } } dps_results: { key: "TestFeral-AllItems-JadeBanditFigurine-86772" value: { - dps: 397918.94646 - tps: 474358.84812 - hps: 22697.80728 + dps: 401789.41266 + tps: 475390.60089 + hps: 22707.79379 } } dps_results: { key: "TestFeral-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 391571.7426 - tps: 466195.38749 - hps: 22274.93072 + dps: 391939.18917 + tps: 460870.04729 + hps: 22008.7099 } } dps_results: { key: "TestFeral-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22264.22567 + dps: 381441.91154 + tps: 464740.82415 + hps: 22708.32243 } } dps_results: { key: "TestFeral-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 384774.08138 - tps: 469343.52916 - hps: 22862.0349 + dps: 387878.94025 + tps: 486108.07451 + hps: 22993.92024 } } dps_results: { key: "TestFeral-AllItems-JadeWarlordFigurine-86775" value: { - dps: 390543.60409 - tps: 473491.75227 - hps: 22366.8222 + dps: 386618.66676 + tps: 470617.5017 + hps: 22214.19241 } } dps_results: { key: "TestFeral-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 379876.98088 - tps: 466123.34039 - hps: 21786.45731 + dps: 390080.45055 + tps: 461769.15037 + hps: 22185.42802 } } dps_results: { key: "TestFeral-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 32536.05086 + dps: 390053.03413 + tps: 465784.45057 + hps: 33374.83534 } } dps_results: { key: "TestFeral-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 398795.5231 - tps: 492606.32935 - hps: 23180.46468 + dps: 411050.14997 + tps: 497427.4658 + hps: 23843.62089 } } dps_results: { key: "TestFeral-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 392941.88533 - tps: 475856.63914 - hps: 22122.74935 + dps: 389076.18663 + tps: 476124.38259 + hps: 22093.19577 } } dps_results: { key: "TestFeral-AllItems-KnotofTenSongs-84073" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 21780.45052 + dps: 390053.03413 + tps: 465784.45057 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 378156.02047 - tps: 468598.49075 - hps: 21731.13719 + dps: 379861.63905 + tps: 464110.18253 + hps: 22060.46504 } } dps_results: { key: "TestFeral-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 391325.30184 - tps: 474420.44574 - hps: 22384.58558 + dps: 387417.0266 + tps: 471612.58068 + hps: 22232.02468 } } dps_results: { key: "TestFeral-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 394010.51076 - tps: 452093.28595 - hps: 22566.24279 + dps: 400039.24857 + tps: 460277.24176 + hps: 22625.277 } } dps_results: { key: "TestFeral-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 383820.05581 - tps: 465075.8068 - hps: 21827.26872 + dps: 385568.98816 + tps: 475540.40855 + hps: 21913.02265 } } dps_results: { key: "TestFeral-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 400650.47841 - tps: 493678.31428 - hps: 22224.89804 + dps: 405182.62305 + tps: 492202.50969 + hps: 22834.37692 } } dps_results: { key: "TestFeral-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 409037.47693 - tps: 494177.49763 - hps: 22719.37305 + dps: 410751.79581 + tps: 486645.75169 + hps: 22590.65022 } } dps_results: { key: "TestFeral-AllItems-LightoftheCosmos-87065" value: { - dps: 387057.36793 - tps: 449313.63057 - hps: 22256.15347 + dps: 392071.45107 + tps: 456527.88038 + hps: 22604.4979 } } dps_results: { key: "TestFeral-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 451803.06862 - tps: 576352.75796 - hps: 21607.55488 + dps: 466869.50068 + tps: 595692.62905 + hps: 21416.59705 } } dps_results: { key: "TestFeral-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 449813.25327 - tps: 569318.57039 - hps: 20890.98237 + dps: 452583.08978 + tps: 559861.27625 + hps: 20920.65089 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 392806.73834 - tps: 488845.99873 - hps: 22447.47317 + dps: 398645.62837 + tps: 488571.29425 + hps: 22555.52413 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22181.66497 + dps: 379858.93682 + tps: 464097.71153 + hps: 22485.59696 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 383941.75197 - tps: 469398.431 - hps: 21918.2939 + dps: 382579.69129 + tps: 461654.82184 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 384402.62072 - tps: 467544.44359 - hps: 22332.75829 + dps: 394550.99844 + tps: 472804.49755 + hps: 22539.28755 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21816.58874 + dps: 391182.60805 + tps: 464266.72094 + hps: 22434.25249 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21925.43072 + dps: 391182.60805 + tps: 464266.72094 + hps: 22542.81559 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 399847.22893 - tps: 489314.89547 - hps: 22697.62523 + dps: 400995.35824 + tps: 483008.71282 + hps: 23088.47642 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 380228.54871 - tps: 469806.63246 - hps: 22513.49028 + dps: 389496.18038 + tps: 465911.44337 + hps: 22882.9742 } } dps_results: { key: "TestFeral-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 386917.0225 - tps: 460871.03516 - hps: 22064.80485 + dps: 394622.62998 + tps: 478055.37279 + hps: 22118.4255 } } dps_results: { key: "TestFeral-AllItems-MarkoftheCatacombs-83731" value: { - dps: 388031.8466 - tps: 473636.20874 - hps: 22027.98596 + dps: 397680.57553 + tps: 469380.55501 + hps: 22677.47929 } } dps_results: { key: "TestFeral-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 21821.02864 + dps: 390700.37593 + tps: 462458.00248 + hps: 22311.30106 } } dps_results: { key: "TestFeral-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 391787.4735 - tps: 474969.52728 - hps: 22228.80124 + dps: 388082.52103 + tps: 473432.16699 + hps: 22055.91532 } } dps_results: { key: "TestFeral-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 383134.49551 - tps: 474583.81397 - hps: 21762.96725 + dps: 393336.37363 + tps: 470138.09509 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22201.87157 + dps: 381441.91154 + tps: 464740.82479 + hps: 22645.49898 } } dps_results: { key: "TestFeral-AllItems-MirrorScope-4700" value: { - dps: 449813.25327 - tps: 569318.57039 - hps: 20890.98237 + dps: 452583.08978 + tps: 559861.27625 + hps: 20920.65089 } } dps_results: { key: "TestFeral-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 380555.69378 - tps: 461245.72065 - hps: 22005.04097 + dps: 387922.29077 + tps: 457368.00644 + hps: 22338.47612 } } dps_results: { key: "TestFeral-AllItems-MistdancerDefenderStone-101087" value: { - dps: 395934.86665 - tps: 479889.53669 - hps: 22215.20975 + dps: 399680.21446 + tps: 477965.50441 + hps: 21945.29484 } } dps_results: { key: "TestFeral-AllItems-MistdancerIdolofRage-101113" value: { - dps: 400624.38716 - tps: 483331.95793 - hps: 22438.40643 + dps: 404803.05417 + tps: 481672.22429 + hps: 22745.59282 } } dps_results: { key: "TestFeral-AllItems-MistdancerStoneofRage-101117" value: { - dps: 407712.67273 - tps: 496515.17742 - hps: 22431.55172 + dps: 408555.54744 + tps: 500213.70901 + hps: 22589.60078 } } dps_results: { key: "TestFeral-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 380576.79064 - tps: 465610.91706 - hps: 22498.31571 + dps: 389468.05941 + tps: 465728.47981 + hps: 22779.87574 } } dps_results: { key: "TestFeral-AllItems-MithrilWristwatch-282033" value: { - dps: 387314.73425 - tps: 471621.69297 - hps: 22618.56326 + dps: 397274.43586 + tps: 470107.3246 + hps: 22894.01728 } } dps_results: { key: "TestFeral-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 390085.28649 - tps: 463078.49297 - hps: 22143.52579 + dps: 394784.37206 + tps: 479827.00656 + hps: 22276.47875 } } dps_results: { key: "TestFeral-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 398570.62472 - tps: 474148.35339 - hps: 22671.57883 + dps: 397862.79506 + tps: 475927.24163 + hps: 22620.17976 } } dps_results: { key: "TestFeral-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 379058.97864 - tps: 462917.06747 - hps: 22934.26303 + dps: 388313.8078 + tps: 454030.02926 + hps: 22954.32012 } } dps_results: { key: "TestFeral-AllItems-NitroBoosts-4223" value: { - dps: 466365.08893 - tps: 591033.00461 - hps: 21249.65695 + dps: 466932.6237 + tps: 592827.86776 + hps: 21948.78891 } } dps_results: { key: "TestFeral-AllItems-OathswornDefenderIdol-101303" value: { - dps: 378846.76289 - tps: 466637.20602 - hps: 21997.0891 + dps: 389812.7756 + tps: 462162.24482 + hps: 22399.4175 } } dps_results: { key: "TestFeral-AllItems-OathswornDefenderStone-101306" value: { - dps: 399650.36696 - tps: 482241.31673 - hps: 22292.14219 + dps: 399171.05032 + tps: 486422.18431 + hps: 22222.62396 } } dps_results: { key: "TestFeral-AllItems-OathswornIdolofBattle-101295" value: { - dps: 391725.81414 - tps: 476755.82219 - hps: 22372.21735 + dps: 398580.41659 + tps: 490898.13302 + hps: 22559.3839 } } dps_results: { key: "TestFeral-AllItems-OathswornStoneofBattle-101294" value: { - dps: 402167.46858 - tps: 485910.32464 - hps: 22003.43047 + dps: 402313.59662 + tps: 489556.41618 + hps: 22237.52218 } } dps_results: { key: "TestFeral-AllItems-PhaseFingers-4697" value: { - dps: 419440.45081 - tps: 428517.32466 - hps: 22809.73448 + dps: 421067.97067 + tps: 445230.03592 + hps: 23162.55565 } } dps_results: { key: "TestFeral-AllItems-PouchofWhiteAsh-103639" value: { - dps: 378156.02047 - tps: 468598.49075 - hps: 21731.13719 + dps: 379861.63905 + tps: 464110.18253 + hps: 22060.46504 } } dps_results: { key: "TestFeral-AllItems-PowerfulPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21211.52319 + dps: 450480.63916 + tps: 556521.93446 + hps: 21351.67111 } } dps_results: { key: "TestFeral-AllItems-PriceofProgress-81266" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 22175.0623 + dps: 390054.68836 + tps: 465784.45057 + hps: 22744.25218 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 406031.83487 - tps: 506239.24363 - hps: 23121.91032 + dps: 410142.46218 + tps: 495381.44078 + hps: 23102.73757 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 378912.61829 - tps: 474509.11386 - hps: 22601.73638 + dps: 379872.22136 + tps: 464097.71153 + hps: 22931.45789 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 388360.97919 - tps: 471564.87442 - hps: 21994.60157 + dps: 386508.36519 + tps: 469811.70748 + hps: 22005.21707 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 390105.02924 - tps: 473807.80663 - hps: 22610.69545 + dps: 397438.45942 + tps: 467536.92171 + hps: 23037.58843 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21862.77221 + dps: 391182.60805 + tps: 464266.72094 + hps: 22482.02849 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 22079.7401 + dps: 391182.60805 + tps: 464266.72094 + hps: 22698.44143 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 415857.4507 - tps: 502631.58534 - hps: 23268.098 + dps: 421878.05088 + tps: 506764.47213 + hps: 23549.85179 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 379996.63666 - tps: 467351.69279 - hps: 23236.48793 + dps: 389827.73579 + tps: 464271.96893 + hps: 23564.10131 } } dps_results: { key: "TestFeral-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 391114.73703 - tps: 465697.81363 - hps: 21984.7338 + dps: 401121.61924 + tps: 478238.15672 + hps: 22288.00366 } } dps_results: { key: "TestFeral-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 397547.66984 - tps: 486556.39488 - hps: 22646.46218 + dps: 403793.99219 + tps: 490420.21196 + hps: 22759.94568 } } dps_results: { key: "TestFeral-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 405762.91106 - tps: 467281.58467 - hps: 22520.72961 + dps: 406318.71618 + tps: 477096.75667 + hps: 22366.94267 } } dps_results: { key: "TestFeral-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 406378.18684 - tps: 466964.73519 - hps: 24215.48703 + dps: 406458.87427 + tps: 475170.98044 + hps: 24091.08645 } } dps_results: { key: "TestFeral-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 429713.24024 - tps: 596256.31855 - hps: 21132.26269 + dps: 433711.0738 + tps: 630069.65007 + hps: 21079.44054 } } dps_results: { key: "TestFeral-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 408870.94217 - tps: 558582.97875 - hps: 20272.62644 + dps: 415981.06888 + tps: 587963.89252 + hps: 20111.40463 } } dps_results: { key: "TestFeral-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 380790.02526 - tps: 465862.02944 - hps: 22207.5948 + dps: 388276.239 + tps: 463826.41366 + hps: 22430.00501 } } dps_results: { key: "TestFeral-AllItems-RelicofChi-Ji-79330" value: { - dps: 379590.60508 - tps: 465448.97516 - hps: 22406.55193 + dps: 389614.67377 + tps: 457435.19208 + hps: 22670.10818 } } dps_results: { key: "TestFeral-AllItems-RelicofKypariZar-84075" value: { - dps: 392890.44332 - tps: 461703.2799 - hps: 22664.99993 + dps: 393087.6006 + tps: 456055.03406 + hps: 22765.42596 } } dps_results: { key: "TestFeral-AllItems-RelicofNiuzao-79329" value: { - dps: 378109.4959 - tps: 467096.98996 - hps: 21793.76803 + dps: 388563.31399 + tps: 473739.71193 + hps: 22634.40831 } } dps_results: { key: "TestFeral-AllItems-RelicofXuen-79327" value: { - dps: 389034.60448 - tps: 470306.47552 - hps: 22004.76853 + dps: 397447.82482 + tps: 473876.95264 + hps: 22106.60408 } } dps_results: { key: "TestFeral-AllItems-RelicofXuen-79328" value: { - dps: 400648.67509 - tps: 482847.84679 - hps: 22449.51596 + dps: 407688.08036 + tps: 495594.51069 + hps: 23245.48418 } } dps_results: { key: "TestFeral-AllItems-RelicofYu'lon-79331" value: { - dps: 380413.60197 - tps: 466803.68157 - hps: 22438.64613 + dps: 389983.41578 + tps: 464402.05428 + hps: 22901.01325 } } dps_results: { key: "TestFeral-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 416584.57755 - tps: 503206.03342 - hps: 22941.5696 + dps: 419190.69036 + tps: 497956.26764 + hps: 23547.57243 } } dps_results: { key: "TestFeral-AllItems-ResolveofNiuzao-103990" value: { - dps: 391934.6287 - tps: 476626.60629 - hps: 22123.02186 + dps: 399395.99734 + tps: 473766.76959 + hps: 22365.58116 } } dps_results: { key: "TestFeral-AllItems-ReverberatingPrimalDiamond" value: { - dps: 447817.50534 - tps: 560932.3612 - hps: 21342.01554 + dps: 460558.8158 + tps: 569405.8152 + hps: 21477.99414 } } dps_results: { key: "TestFeral-AllItems-RevitalizingPrimalDiamond" value: { - dps: 446798.59637 - tps: 559616.01143 - hps: 21342.01554 + dps: 459523.34145 + tps: 568080.22371 + hps: 21477.99414 } } dps_results: { key: "TestFeral-AllItems-RuneofRe-Origination-96918" value: { - dps: 454901.22461 - tps: 585127.44379 - hps: 21088.74597 + dps: 458222.88748 + tps: 584012.35944 + hps: 21244.78889 } } dps_results: { key: "TestFeral-AllItems-SI:7Operative'sManual-92784" value: { - dps: 378156.02047 - tps: 468598.49075 - hps: 21731.13719 + dps: 379861.63905 + tps: 464110.18253 + hps: 22060.46504 } } dps_results: { key: "TestFeral-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 22316.12037 + dps: 381441.91154 + tps: 464740.82364 + hps: 22760.60776 } } dps_results: { key: "TestFeral-AllItems-SearingWords-81267" value: { - dps: 396278.34675 - tps: 476134.15963 - hps: 22683.38055 + dps: 405092.08933 + tps: 479587.99003 + hps: 23017.42659 } } dps_results: { key: "TestFeral-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 388410.81557 - tps: 451493.56679 - hps: 22720.89131 + dps: 390235.8542 + tps: 461727.98656 + hps: 23316.9578 } } dps_results: { key: "TestFeral-AllItems-SigilofCompassion-83736" value: { - dps: 383134.49551 - tps: 474583.81397 - hps: 21762.96725 + dps: 393336.37363 + tps: 470138.09509 + hps: 22317.92285 } } dps_results: { key: "TestFeral-AllItems-SigilofDevotion-83740" value: { - dps: 393663.35084 - tps: 478523.03202 - hps: 22196.71146 + dps: 398546.42767 + tps: 472045.50974 + hps: 22644.5257 } } dps_results: { key: "TestFeral-AllItems-SigilofFidelity-83737" value: { - dps: 388884.54727 - tps: 453461.98541 - hps: 22323.64998 + dps: 395479.23127 + tps: 458251.92441 + hps: 22916.94589 } } dps_results: { key: "TestFeral-AllItems-SigilofGrace-83738" value: { - dps: 382644.82528 - tps: 453192.05379 - hps: 21939.22472 + dps: 396191.24239 + tps: 465581.03263 + hps: 22488.36323 } } dps_results: { key: "TestFeral-AllItems-SigilofKypariZar-84076" value: { - dps: 394904.36324 - tps: 478359.79927 - hps: 22283.51034 + dps: 397997.41283 + tps: 472465.3314 + hps: 22505.37114 } } dps_results: { key: "TestFeral-AllItems-SigilofPatience-83739" value: { - dps: 388523.1424 - tps: 466216.57288 - hps: 22272.21855 + dps: 392515.28478 + tps: 476598.44814 + hps: 22184.27598 } } dps_results: { key: "TestFeral-AllItems-SigilofRampage-105580" value: { - dps: 422552.25673 - tps: 502914.0518 - hps: 23327.91726 + dps: 425856.44927 + tps: 519476.95671 + hps: 23872.15753 } } dps_results: { key: "TestFeral-AllItems-SigiloftheCatacombs-83732" value: { - dps: 390412.43691 - tps: 459379.08591 - hps: 22466.89659 + dps: 394809.35775 + tps: 450457.96427 + hps: 22509.02456 } } dps_results: { key: "TestFeral-AllItems-SinisterPrimalDiamond" value: { - dps: 443801.73285 - tps: 563245.48463 - hps: 21323.06494 + dps: 453544.27018 + tps: 570368.60652 + hps: 21718.82002 } } dps_results: { key: "TestFeral-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 407812.14185 - tps: 491523.47112 - hps: 23489.01465 + dps: 408975.14314 + tps: 487530.18253 + hps: 23221.78995 } } dps_results: { key: "TestFeral-AllItems-SkullrenderMedallion-93256" value: { - dps: 392589.06748 - tps: 479126.00962 - hps: 22519.16666 + dps: 394948.18832 + tps: 491465.07728 + hps: 22735.45304 } } dps_results: { key: "TestFeral-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 379864.78777 - tps: 467542.372 - hps: 22457.64844 + dps: 390058.2461 + tps: 465784.45057 + hps: 23024.09865 } } dps_results: { key: "TestFeral-AllItems-SoulBarrier-96927" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 22034.13789 + dps: 390053.03413 + tps: 465784.45057 + hps: 22571.61023 } } dps_results: { key: "TestFeral-AllItems-SparkofZandalar-96770" value: { - dps: 397192.32701 - tps: 464104.08828 - hps: 22340.79863 + dps: 399004.55601 + tps: 449356.4778 + hps: 22638.87668 } } dps_results: { key: "TestFeral-AllItems-SpiritsoftheSun-87163" value: { - dps: 379488.05664 - tps: 469078.02588 - hps: 22536.00698 + dps: 387098.83779 + tps: 457330.42679 + hps: 22838.53786 } } dps_results: { key: "TestFeral-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 387258.87256 - tps: 470623.44001 - hps: 21982.87306 + dps: 394921.7946 + tps: 474236.91921 + hps: 22398.51384 } } dps_results: { key: "TestFeral-AllItems-SpringrainIdolofRage-101009" value: { - dps: 401326.90619 - tps: 485233.94304 - hps: 22406.23381 + dps: 409478.45305 + tps: 490495.17056 + hps: 23054.42717 } } dps_results: { key: "TestFeral-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 396566.60279 - tps: 486974.64571 - hps: 22610.26033 + dps: 397660.89791 + tps: 482130.29089 + hps: 22355.09758 } } dps_results: { key: "TestFeral-AllItems-SpringrainStoneofRage-101012" value: { - dps: 405362.30158 - tps: 491179.54274 - hps: 22424.23541 + dps: 408179.6825 + tps: 500263.4141 + hps: 22492.86439 } } dps_results: { key: "TestFeral-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 378978.08869 - tps: 461226.11773 - hps: 22530.483 + dps: 390103.03969 + tps: 466871.01736 + hps: 22832.48626 } } dps_results: { key: "TestFeral-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 388410.81557 - tps: 451493.56679 - hps: 22720.89131 + dps: 390235.8542 + tps: 461727.98656 + hps: 23316.9578 } } dps_results: { key: "TestFeral-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 378179.97991 - tps: 470719.71161 - hps: 21821.02864 + dps: 390700.37593 + tps: 462458.00248 + hps: 22311.30106 } } dps_results: { key: "TestFeral-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 386840.51884 - tps: 476557.3577 - hps: 21731.92846 + dps: 397843.65554 + tps: 474943.11184 + hps: 22319.2335 } } dps_results: { key: "TestFeral-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 389943.47128 - tps: 477918.95042 - hps: 22182.40601 + dps: 395871.09292 + tps: 478587.45037 + hps: 22146.05903 } } dps_results: { key: "TestFeral-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 402162.79703 - tps: 488986.02682 - hps: 22450.56349 + dps: 405965.10503 + tps: 483316.70683 + hps: 22786.66187 } } dps_results: { key: "TestFeral-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 395481.64866 - tps: 481619.98576 - hps: 22631.49558 + dps: 398936.94829 + tps: 475907.78104 + hps: 22695.81288 } } dps_results: { key: "TestFeral-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 405925.23834 - tps: 492604.77793 - hps: 22385.47251 + dps: 409088.94865 + tps: 490516.94727 + hps: 22484.0588 } } dps_results: { key: "TestFeral-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 381708.97356 - tps: 471637.21682 - hps: 22596.92731 + dps: 393497.51132 + tps: 469665.79409 + hps: 23020.56108 } } dps_results: { key: "TestFeral-AllItems-StuffofNightmares-87160" value: { - dps: 386984.70841 - tps: 479561.50145 - hps: 21885.37016 + dps: 395491.30556 + tps: 473419.05729 + hps: 22353.83318 } } dps_results: { key: "TestFeral-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 379348.32259 - tps: 467083.92746 - hps: 21873.53888 + dps: 390151.63432 + tps: 464316.53307 + hps: 22481.23732 } } dps_results: { key: "TestFeral-AllItems-SunsoulDefenderStone-101163" value: { - dps: 397827.1371 - tps: 479974.53531 - hps: 22323.28835 + dps: 399997.12686 + tps: 478706.18601 + hps: 22309.03964 } } dps_results: { key: "TestFeral-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 390312.60871 - tps: 464980.73767 - hps: 22240.18159 + dps: 398013.22126 + tps: 487842.99554 + hps: 22559.65018 } } dps_results: { key: "TestFeral-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 398861.45325 - tps: 477381.70069 - hps: 21956.14744 + dps: 402932.48775 + tps: 486208.41626 + hps: 22005.17476 } } dps_results: { key: "TestFeral-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 381046.78703 - tps: 465809.28899 - hps: 22427.84715 + dps: 392751.1742 + tps: 478016.13752 + hps: 22917.82959 } } dps_results: { key: "TestFeral-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 460116.36741 - tps: 585899.57664 - hps: 21420.86869 + dps: 475744.75319 + tps: 609610.06245 + hps: 21471.13766 } } dps_results: { key: "TestFeral-AllItems-SymboloftheCatacombs-83735" value: { - dps: 388200.69885 - tps: 470116.76454 - hps: 22173.6129 + dps: 396217.46274 + tps: 486547.87947 + hps: 22515.79319 } } dps_results: { @@ -2025,265 +2025,265 @@ dps_results: { dps_results: { key: "TestFeral-AllItems-TalismanofBloodlust-96864" value: { - dps: 407837.9289 - tps: 465336.59815 - hps: 23062.99216 + dps: 415010.38735 + tps: 466420.0374 + hps: 23694.9789 } } dps_results: { key: "TestFeral-AllItems-TerrorintheMists-87167" value: { - dps: 405819.3452 - tps: 501014.43894 - hps: 23143.92509 + dps: 409400.32244 + tps: 492955.52217 + hps: 23270.31373 } } dps_results: { key: "TestFeral-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 379587.10286 - tps: 455265.59852 - hps: 22722.84134 + dps: 390272.12314 + tps: 472556.50107 + hps: 23086.93233 } } dps_results: { key: "TestFeral-AllItems-Thok'sTailTip-105609" value: { - dps: 416975.20889 - tps: 473462.93273 - hps: 22694.75447 + dps: 424265.68357 + tps: 492946.09283 + hps: 22374.55992 } } dps_results: { key: "TestFeral-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 384822.63499 - tps: 449066.42371 - hps: 22876.20739 + dps: 390317.60719 + tps: 448143.0823 + hps: 23486.38875 } } dps_results: { key: "TestFeral-AllItems-TickingEbonDetonator-105612" value: { - dps: 437794.43756 - tps: 540036.30881 - hps: 23894.07434 + dps: 441218.61352 + tps: 539319.21109 + hps: 23714.10559 } } dps_results: { key: "TestFeral-AllItems-Time-LostArtifact-103678" value: { - dps: 393675.27965 - tps: 467745.24591 - hps: 22263.22238 + dps: 403622.74215 + tps: 475430.03106 + hps: 22671.88589 } } dps_results: { key: "TestFeral-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 402157.77547 - tps: 487785.46987 - hps: 22486.61553 + dps: 407879.723 + tps: 499886.12151 + hps: 22754.95233 } } dps_results: { key: "TestFeral-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 404760.23993 - tps: 493180.20289 - hps: 22416.15804 + dps: 407775.18949 + tps: 499193.56351 + hps: 22440.46017 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 395170.92977 - tps: 490276.01067 - hps: 22458.51909 + dps: 400494.0272 + tps: 485568.74886 + hps: 22697.30785 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 378911.02162 - tps: 474509.11386 - hps: 22301.36893 + dps: 379872.22136 + tps: 464097.71153 + hps: 22615.44622 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 384837.33551 - tps: 468049.44289 - hps: 21939.8952 + dps: 383316.84563 + tps: 462530.23536 + hps: 22058.20757 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 385092.83759 - tps: 469959.73137 - hps: 22364.72284 + dps: 396537.59502 + tps: 472279.64193 + hps: 22635.45789 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21826.12974 + dps: 391182.60805 + tps: 464266.72094 + hps: 22444.12249 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 379121.47693 - tps: 463665.80352 - hps: 21957.35678 + dps: 391182.60805 + tps: 464266.72094 + hps: 22575.01409 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 405499.97291 - tps: 491057.67119 - hps: 22650.58929 + dps: 406877.52305 + tps: 497628.6134 + hps: 23321.69498 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 382596.31073 - tps: 460943.13849 - hps: 22764.8843 + dps: 389122.67141 + tps: 468156.91793 + hps: 22827.87158 } } dps_results: { key: "TestFeral-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 387329.91903 - tps: 467341.32087 - hps: 21717.60182 + dps: 390663.01784 + tps: 469048.90046 + hps: 22276.30342 } } dps_results: { key: "TestFeral-AllItems-TyrannicalPrimalDiamond" value: { - dps: 437874.3288 - tps: 548056.46721 - hps: 21180.70284 + dps: 450480.63916 + tps: 556521.93446 + hps: 21320.99048 } } dps_results: { key: "TestFeral-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 379866.48341 - tps: 467540.11112 - hps: 22595.7197 + dps: 390058.2461 + tps: 465784.45057 + hps: 23164.1144 } } dps_results: { key: "TestFeral-AllItems-VaporshieldMedallion-93262" value: { - dps: 391787.4735 - tps: 474969.52728 - hps: 22228.80124 + dps: 388082.52103 + tps: 473432.16699 + hps: 22055.91532 } } dps_results: { key: "TestFeral-AllItems-VialofDragon'sBlood-87063" value: { - dps: 387834.59865 - tps: 478075.60044 - hps: 21927.54025 + dps: 395541.4799 + tps: 468621.98725 + hps: 22198.73728 } } dps_results: { key: "TestFeral-AllItems-VialofIchorousBlood-100963" value: { - dps: 380212.51141 - tps: 466859.07994 - hps: 22152.27908 + dps: 390801.54152 + tps: 463607.49337 + hps: 22726.88189 } } dps_results: { key: "TestFeral-AllItems-VialofLivingCorruption-105568" value: { - dps: 379863.20545 - tps: 467540.11112 - hps: 22119.08 + dps: 390053.03413 + tps: 465784.45057 + hps: 22656.55233 } } dps_results: { key: "TestFeral-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 404782.02946 - tps: 486206.84319 - hps: 22995.78208 + dps: 409718.50842 + tps: 494358.51805 + hps: 23228.86446 } } dps_results: { key: "TestFeral-AllItems-VisionofthePredator-81192" value: { - dps: 381076.09356 - tps: 463700.54546 - hps: 22278.32512 + dps: 390485.91571 + tps: 474784.28377 + hps: 22895.13563 } } dps_results: { key: "TestFeral-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 386363.03184 - tps: 473672.39848 - hps: 22891.90563 + dps: 391009.50718 + tps: 475378.20459 + hps: 22824.16959 } } dps_results: { key: "TestFeral-AllItems-WindsweptPages-81125" value: { - dps: 400787.85431 - tps: 484510.41776 - hps: 22529.65728 + dps: 405682.89389 + tps: 472790.63064 + hps: 22908.20454 } } dps_results: { key: "TestFeral-AllItems-WoundripperMedallion-93253" value: { - dps: 400870.98515 - tps: 479416.32238 - hps: 23065.47112 + dps: 405490.80213 + tps: 507343.47234 + hps: 23471.38829 } } dps_results: { key: "TestFeral-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 379885.55314 - tps: 466123.34039 - hps: 21969.29029 + dps: 390102.56548 + tps: 461769.61831 + hps: 22380.5721 } } dps_results: { key: "TestFeral-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 410269.04921 - tps: 549081.82256 - hps: 21376.41762 + dps: 423475.70347 + tps: 549674.97538 + hps: 21741.08604 } } dps_results: { key: "TestFeral-AllItems-Yu'lon'sBite-103987" value: { - dps: 386048.05284 - tps: 475229.14862 - hps: 23303.72071 + dps: 391876.36556 + tps: 471887.99531 + hps: 23607.9423 } } dps_results: { key: "TestFeral-AllItems-ZenAlchemistStone-75274" value: { - dps: 404325.65643 - tps: 494479.18163 - hps: 22501.10125 + dps: 406111.51451 + tps: 497083.84804 + hps: 22801.28316 } } dps_results: { diff --git a/sim/druid/guardian/TestGuardian.results b/sim/druid/guardian/TestGuardian.results index 3db4377c3f..8179bc9c35 100644 --- a/sim/druid/guardian/TestGuardian.results +++ b/sim/druid/guardian/TestGuardian.results @@ -33,2233 +33,2233 @@ character_stats_results: { dps_results: { key: "TestGuardian-AllItems-AgilePrimalDiamond" value: { - dps: 516696.50559 - tps: 3.24525648065e+06 - dtps: 27196.95719 - hps: 45939.44712 + dps: 518670.47899 + tps: 3.25784277676e+06 + dtps: 26956.46413 + hps: 45973.75232 } } dps_results: { key: "TestGuardian-AllItems-AlacrityofXuen-103989" value: { - dps: 469935.72344 - tps: 2.91878002756e+06 - dtps: 22742.25193 - hps: 45732.40326 + dps: 471568.36704 + tps: 2.92889388299e+06 + dtps: 22700.58339 + hps: 45767.94518 } } dps_results: { key: "TestGuardian-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 461678.98766 - tps: 2.87711522988e+06 - dtps: 24312.0189 - hps: 45706.03171 + dps: 462915.32754 + tps: 2.8836563848e+06 + dtps: 24076.02563 + hps: 45696.63962 } } dps_results: { key: "TestGuardian-AllItems-ArmoroftheEternalBlossom" value: { - dps: 407140.6834 - tps: 2.55831856796e+06 - dtps: 40239.46678 - hps: 18835.95539 + dps: 403183.74744 + tps: 2.532875185e+06 + dtps: 40206.56938 + hps: 18872.16817 } } dps_results: { key: "TestGuardian-AllItems-ArmoroftheHauntedForest" value: { - dps: 430571.24467 - tps: 2.69746837607e+06 - dtps: 42179.23058 - hps: 19116.33792 + dps: 428951.45297 + tps: 2.6952067314e+06 + dtps: 43640.09522 + hps: 19539.54678 } } dps_results: { key: "TestGuardian-AllItems-ArmoroftheShatteredVale" value: { - dps: 436205.77071 - tps: 2.73942947559e+06 - dtps: 34805.21989 - hps: 42807.52016 + dps: 437057.41978 + tps: 2.75117895181e+06 + dtps: 36626.56858 + hps: 42854.90995 } } dps_results: { key: "TestGuardian-AllItems-ArrowflightMedallion-93258" value: { - dps: 468916.1723 - tps: 2.9179121204e+06 - dtps: 24655.42035 - hps: 45786.69352 + dps: 472702.49751 + tps: 2.93929635544e+06 + dtps: 24134.43593 + hps: 45839.08364 } } dps_results: { key: "TestGuardian-AllItems-AssuranceofConsequence-105472" value: { - dps: 471914.03695 - tps: 2.93285968512e+06 - dtps: 24135.37196 - hps: 45965.09021 + dps: 473477.26544 + tps: 2.94259398428e+06 + dtps: 24057.8372 + hps: 46031.71811 } } dps_results: { key: "TestGuardian-AllItems-AusterePrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 26919.00992 - hps: 46057.27014 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 26780.98563 + hps: 46091.57534 } } dps_results: { key: "TestGuardian-AllItems-BadJuju-96781" value: { - dps: 470518.23017 - tps: 2.93286197487e+06 - dtps: 22893.04534 - hps: 45931.5224 + dps: 471824.0987 + tps: 2.94079475434e+06 + dtps: 22732.05681 + hps: 45965.8276 } } dps_results: { key: "TestGuardian-AllItems-BadgeofKypariZar-84079" value: { - dps: 462093.10492 - tps: 2.87743548514e+06 - dtps: 24630.98366 - hps: 45677.72754 + dps: 463608.15201 + tps: 2.88679836456e+06 + dtps: 24515.2417 + hps: 45712.03274 } } dps_results: { key: "TestGuardian-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 469817.69092 - tps: 2.9171642613e+06 + dps: 471222.34326 + tps: 2.92572763684e+06 dtps: 22123.31586 - hps: 45649.05596 + hps: 45680.84508 } } dps_results: { key: "TestGuardian-AllItems-BlossomofPureSnow-89081" value: { - dps: 464754.99351 - tps: 2.89068696026e+06 - dtps: 24785.77636 - hps: 45701.79617 + dps: 467353.81408 + tps: 2.90481588186e+06 + dtps: 24563.22846 + hps: 45713.97125 } } dps_results: { key: "TestGuardian-AllItems-BottleofInfiniteStars-87057" value: { - dps: 463999.25659 - tps: 2.89203671294e+06 - dtps: 23498.99129 - hps: 45761.06437 + dps: 465766.88434 + tps: 2.90319993018e+06 + dtps: 23409.46744 + hps: 45817.49948 } } dps_results: { key: "TestGuardian-AllItems-BraidofTenSongs-84072" value: { - dps: 459900.92683 - tps: 2.86552023628e+06 - dtps: 24629.56933 - hps: 45737.40549 + dps: 461495.36011 + tps: 2.87544342962e+06 + dtps: 24677.12686 + hps: 45771.33402 } } dps_results: { key: "TestGuardian-AllItems-Brawler'sStatue-282039" value: { - dps: 458363.48191 - tps: 2.85752579628e+06 - dtps: 24349.18723 - hps: 45637.75418 + dps: 459742.54827 + tps: 2.86596903133e+06 + dtps: 24155.21875 + hps: 45672.05937 } } dps_results: { key: "TestGuardian-AllItems-BreathoftheHydra-96827" value: { - dps: 464595.68701 - tps: 2.90230169879e+06 - dtps: 22785.80873 - hps: 45594.45213 + dps: 466059.82096 + tps: 2.91133647351e+06 + dtps: 22778.39219 + hps: 45628.82899 } } dps_results: { key: "TestGuardian-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45988.76628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46023.07148 } } dps_results: { key: "TestGuardian-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 461333.14056 - tps: 2.87451402747e+06 - dtps: 24894.14543 - hps: 45804.11585 + dps: 462714.33828 + tps: 2.88297218205e+06 + dtps: 24816.61067 + hps: 45838.42105 } } dps_results: { key: "TestGuardian-AllItems-BurningPrimalDiamond" value: { - dps: 516099.48976 - tps: 3.24088691447e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 517994.54848 + tps: 3.25292080778e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-CapacitivePrimalDiamond" value: { - dps: 547734.39858 - tps: 3.45797391403e+06 - dtps: 26664.60654 - hps: 45952.03279 + dps: 549371.7017 + tps: 3.46821749297e+06 + dtps: 26617.48602 + hps: 45986.33798 } } dps_results: { key: "TestGuardian-AllItems-CarbonicCarbuncle-81138" value: { - dps: 468140.59366 - tps: 2.89918002853e+06 - dtps: 24889.45012 - hps: 45723.12363 + dps: 469643.41882 + tps: 2.90840450605e+06 + dtps: 24772.26874 + hps: 45757.42883 } } dps_results: { key: "TestGuardian-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 469574.74432 - tps: 2.915088439e+06 - dtps: 24849.08853 - hps: 45633.96957 + dps: 471263.70293 + tps: 2.92562488834e+06 + dtps: 24711.73465 + hps: 45690.40468 } } dps_results: { key: "TestGuardian-AllItems-CharmofTenSongs-84071" value: { - dps: 465858.51564 - tps: 2.90702086479e+06 - dtps: 25309.7255 - hps: 45655.44839 + dps: 467791.91219 + tps: 2.91854483009e+06 + dtps: 25309.56211 + hps: 45686.95735 } } dps_results: { key: "TestGuardian-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 464510.47849 - tps: 2.89696947432e+06 - dtps: 22763.29016 - hps: 45600.15356 + dps: 466057.20287 + tps: 2.90656733659e+06 + dtps: 22615.17951 + hps: 45656.94395 } } dps_results: { key: "TestGuardian-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 458616.90367 - tps: 2.85739718154e+06 - dtps: 24406.72367 - hps: 45637.61205 + dps: 459996.42091 + tps: 2.8658314112e+06 + dtps: 24329.18891 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 458867.02349 - tps: 2.85808891932e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460246.12374 + tps: 2.86652314898e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 458844.60308 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460223.70334 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 472092.35906 - tps: 2.93416186985e+06 - dtps: 24834.16355 - hps: 45936.25446 + dps: 473977.10175 + tps: 2.94611474658e+06 + dtps: 24696.80966 + hps: 45992.68957 } } dps_results: { key: "TestGuardian-AllItems-CoreofDecency-87497" value: { - dps: 458792.45013 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460170.23001 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CourageousPrimalDiamond" value: { - dps: 503118.61562 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 504945.86868 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 461414.99803 - tps: 2.87633611934e+06 - dtps: 24737.08385 - hps: 45705.30442 + dps: 462971.50494 + tps: 2.8862035331e+06 + dtps: 24375.87672 + hps: 45732.02376 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 458667.53497 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460153.15845 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 459341.00725 - tps: 2.86316586809e+06 - dtps: 24899.23455 - hps: 45688.49687 + dps: 460675.94987 + tps: 2.87138596833e+06 + dtps: 24821.69979 + hps: 45713.57844 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 463496.8814 - tps: 2.88626797671e+06 - dtps: 24846.71432 - hps: 45637.40699 + dps: 465003.61357 + tps: 2.8953163923e+06 + dtps: 24692.39384 + hps: 45690.53436 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46043.45627 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46077.76146 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 462782.37833 - tps: 2.88476164494e+06 + dps: 464282.68493 + tps: 2.89231970069e+06 dtps: 24428.70448 - hps: 45746.35834 + hps: 45780.84637 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 458528.81906 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459906.59894 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 459647.77002 - tps: 2.86488492796e+06 - dtps: 24899.23455 - hps: 45709.10823 + dps: 461027.08725 + tps: 2.8733299191e+06 + dtps: 24821.69979 + hps: 45743.41342 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 462036.819 - tps: 2.88022374035e+06 - dtps: 24660.29675 - hps: 45717.65361 + dps: 464333.35116 + tps: 2.89437056458e+06 + dtps: 24118.7861 + hps: 45743.80704 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 458712.7441 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460277.3297 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 459515.93004 - tps: 2.86417097189e+06 - dtps: 24899.23455 - hps: 45697.77699 + dps: 460843.06021 + tps: 2.87235202025e+06 + dtps: 24821.69979 + hps: 45721.17641 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 464326.20159 - tps: 2.89080911432e+06 - dtps: 24846.71432 - hps: 45637.40699 + dps: 466183.17577 + tps: 2.90058277662e+06 + dtps: 24720.5289 + hps: 45669.33475 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46117.4486 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46151.75379 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 463059.47351 - tps: 2.88617995527e+06 - dtps: 24300.9704 - hps: 45766.42068 + dps: 465142.03897 + tps: 2.897792172e+06 + dtps: 24176.87561 + hps: 45823.03887 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 458604.27405 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459983.37431 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 459878.68933 - tps: 2.86620661374e+06 - dtps: 24899.23455 - hps: 45724.55215 + dps: 461259.83418 + tps: 2.87466439822e+06 + dtps: 24821.69979 + hps: 45758.85734 } } dps_results: { key: "TestGuardian-AllItems-CurseofHubris-105645" value: { - dps: 474958.94607 - tps: 2.93510810657e+06 - dtps: 24661.32783 - hps: 47181.62293 + dps: 475257.68286 + tps: 2.9381941372e+06 + dtps: 24508.34271 + hps: 47255.71211 } } dps_results: { key: "TestGuardian-AllItems-CutstitcherMedallion-93255" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Daelo'sFinalWords-87496" value: { - dps: 459811.50694 - tps: 2.86598749279e+06 - dtps: 24896.79264 - hps: 45714.33546 + dps: 461062.57709 + tps: 2.87350985914e+06 + dtps: 24821.69979 + hps: 45746.13834 } } dps_results: { key: "TestGuardian-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 503032.71183 - tps: 3.15711782441e+06 - dtps: 23416.79861 - hps: 45964.26119 + dps: 504859.9649 + tps: 3.16870029556e+06 + dtps: 23186.7182 + hps: 45998.56639 } } dps_results: { key: "TestGuardian-AllItems-DarkmistVortex-87172" value: { - dps: 467070.06913 - tps: 2.9068968933e+06 - dtps: 24353.05627 - hps: 45746.13959 + dps: 468579.24988 + tps: 2.91614877161e+06 + dtps: 24261.73267 + hps: 45778.06367 } } dps_results: { key: "TestGuardian-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 461423.62323 - tps: 2.87676757077e+06 - dtps: 24391.25884 - hps: 45711.78605 + dps: 462860.31097 + tps: 2.88584983549e+06 + dtps: 24156.12864 + hps: 45746.09124 } } dps_results: { key: "TestGuardian-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 458296.24583 - tps: 2.85682081524e+06 - dtps: 22317.5268 - hps: 45637.61205 + dps: 459677.04955 + tps: 2.86526405029e+06 + dtps: 22238.93698 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-DestructivePrimalDiamond" value: { - dps: 505057.88505 - tps: 3.16662590157e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 506701.64105 + tps: 3.17691465065e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-DisciplineofXuen-103986" value: { - dps: 464806.49575 - tps: 2.89840895042e+06 - dtps: 23958.49497 - hps: 45789.91629 + dps: 466676.5913 + tps: 2.90999447398e+06 + dtps: 23804.78481 + hps: 45843.04229 } } dps_results: { key: "TestGuardian-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 461678.98766 - tps: 2.87711522988e+06 - dtps: 24312.0189 - hps: 45706.03171 + dps: 462915.32754 + tps: 2.8836563848e+06 + dtps: 24076.02563 + hps: 45696.63962 } } dps_results: { key: "TestGuardian-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 461423.62323 - tps: 2.87676757077e+06 - dtps: 24391.25884 - hps: 45711.78605 + dps: 462860.31097 + tps: 2.88584983549e+06 + dtps: 24156.12864 + hps: 45746.09124 } } dps_results: { key: "TestGuardian-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 458281.60331 - tps: 2.85671834483e+06 - dtps: 24197.69923 - hps: 45637.75418 + dps: 459662.69706 + tps: 2.86541007175e+06 + dtps: 24000.01245 + hps: 45672.05937 } } dps_results: { key: "TestGuardian-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 459357.97048 - tps: 2.86333628955e+06 - dtps: 24846.32356 - hps: 45698.95928 + dps: 460740.02953 + tps: 2.87203543417e+06 + dtps: 24682.22767 + hps: 45733.26447 } } dps_results: { key: "TestGuardian-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 458592.07997 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459969.85985 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 461414.99803 - tps: 2.87633611934e+06 - dtps: 24737.08385 - hps: 45705.30442 + dps: 462971.50494 + tps: 2.8862035331e+06 + dtps: 24375.87672 + hps: 45732.02376 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 458667.53497 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460153.15845 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 459341.00725 - tps: 2.86316586809e+06 - dtps: 24899.23455 - hps: 45688.49687 + dps: 460675.94987 + tps: 2.87138596833e+06 + dtps: 24821.69979 + hps: 45713.57844 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 463496.8814 - tps: 2.88626797671e+06 - dtps: 24846.71432 - hps: 45637.40699 + dps: 465003.61357 + tps: 2.8953163923e+06 + dtps: 24692.39384 + hps: 45690.53436 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46043.45627 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46077.76146 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 462712.23435 - tps: 2.88425177697e+06 + dps: 464251.45668 + tps: 2.89206620409e+06 dtps: 24440.08437 - hps: 45745.44131 + hps: 45779.92958 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 458637.2891 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460015.06898 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 459640.96032 - tps: 2.86484711302e+06 - dtps: 24899.23455 - hps: 45707.22566 + dps: 461020.40178 + tps: 2.87329297372e+06 + dtps: 24821.69979 + hps: 45741.53085 } } dps_results: { key: "TestGuardian-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 458281.60331 - tps: 2.85671834483e+06 - dtps: 24197.69923 - hps: 45637.75418 + dps: 459662.69706 + tps: 2.86541007175e+06 + dtps: 24000.01245 + hps: 45672.05937 } } dps_results: { key: "TestGuardian-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 459049.19876 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460428.29902 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-EffulgentPrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 46057.27014 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 46091.57534 } } dps_results: { key: "TestGuardian-AllItems-EmberPrimalDiamond" value: { - dps: 503118.61562 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 504945.86868 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-EmblemofKypariZar-84077" value: { - dps: 466439.87186 - tps: 2.91313370108e+06 - dtps: 23892.806 - hps: 45796.41279 + dps: 468259.20943 + tps: 2.92383127406e+06 + dtps: 23892.65039 + hps: 45827.73363 } } dps_results: { key: "TestGuardian-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 460165.75322 - tps: 2.86684745854e+06 - dtps: 23639.23021 - hps: 45716.27752 + dps: 461942.32225 + tps: 2.87807482155e+06 + dtps: 23623.37863 + hps: 45750.07828 } } dps_results: { key: "TestGuardian-AllItems-EmptyFruitBarrel-81133" value: { - dps: 458615.99304 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459993.77292 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 502739.38953 - tps: 3.15521360854e+06 - dtps: 23557.2253 - hps: 46050.31205 + dps: 504589.51591 + tps: 3.16695619291e+06 + dtps: 23327.14488 + hps: 46084.61725 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 498884.11986 - tps: 3.13057619575e+06 - dtps: 23523.74983 - hps: 45955.42415 + dps: 500465.02491 + tps: 3.14042206924e+06 + dtps: 23433.21971 + hps: 45989.72934 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 500371.84573 - tps: 3.14253302087e+06 - dtps: 23746.92186 - hps: 45967.25363 + dps: 501952.90807 + tps: 3.15237162008e+06 + dtps: 23692.6145 + hps: 46001.55882 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 499283.04522 - tps: 3.13126936527e+06 - dtps: 23746.92186 - hps: 45967.25363 + dps: 500862.75466 + tps: 3.14110978848e+06 + dtps: 23692.6145 + hps: 46001.55882 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 499424.48076 - tps: 3.1343108633e+06 - dtps: 22569.06783 - hps: 45971.15716 + dps: 501005.33606 + tps: 3.14416855018e+06 + dtps: 22491.53307 + hps: 46005.46236 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 499184.4714 - tps: 3.13126936527e+06 - dtps: 23746.92186 - hps: 45967.25363 + dps: 500764.18084 + tps: 3.14110978848e+06 + dtps: 23692.6145 + hps: 46001.55882 } } dps_results: { key: "TestGuardian-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 496405.11372 - tps: 3.12560070662e+06 - dtps: 23901.53317 - hps: 45801.17238 + dps: 498148.42274 + tps: 3.13661717183e+06 + dtps: 23759.99041 + hps: 45853.77745 } } dps_results: { key: "TestGuardian-AllItems-EnigmaticPrimalDiamond" value: { - dps: 505057.88505 - tps: 3.16662590157e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 506701.64105 + tps: 3.17691465065e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-EssenceofTerror-87175" value: { - dps: 463273.72352 - tps: 2.87881472893e+06 - dtps: 23657.82411 - hps: 45557.23419 + dps: 464724.31496 + tps: 2.88769901747e+06 + dtps: 23588.10576 + hps: 45593.49248 } } dps_results: { key: "TestGuardian-AllItems-EternalPrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 27048.37404 - hps: 45919.53027 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 26821.66059 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-EvilEyeofGalakras-105491" value: { - dps: 461600.94259 - tps: 2.8760176144e+06 - dtps: 24899.23455 - hps: 45856.39721 + dps: 462989.16921 + tps: 2.88452497126e+06 + dtps: 24821.69979 + hps: 45890.70241 } } dps_results: { key: "TestGuardian-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 461668.47494 - tps: 2.87640384303e+06 - dtps: 24892.60379 - hps: 45808.68272 + dps: 463053.82207 + tps: 2.88489104346e+06 + dtps: 24815.06903 + hps: 45842.98792 } } dps_results: { key: "TestGuardian-AllItems-FearwurmBadge-84074" value: { - dps: 464770.86215 - tps: 2.89200053389e+06 - dtps: 24650.76698 - hps: 45665.22422 + dps: 466450.5937 + tps: 2.90288326894e+06 + dtps: 24332.28018 + hps: 45720.9488 } } dps_results: { key: "TestGuardian-AllItems-FearwurmRelic-84070" value: { - dps: 465040.67355 - tps: 2.89366367797e+06 - dtps: 25359.47413 - hps: 45590.66094 + dps: 466419.61237 + tps: 2.90245056988e+06 + dtps: 25024.14099 + hps: 45624.43858 } } dps_results: { key: "TestGuardian-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 463961.30502 - tps: 2.88837680686e+06 - dtps: 23319.44569 - hps: 45669.78927 + dps: 465511.21741 + tps: 2.89796931672e+06 + dtps: 23276.97492 + hps: 45725.31661 } } dps_results: { key: "TestGuardian-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24513.54873 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24436.01397 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 535085.97743 - tps: 3.37737889689e+06 - dtps: 22810.46133 - hps: 45696.19657 + dps: 537502.98929 + tps: 3.3926853902e+06 + dtps: 22535.91571 + hps: 45731.26236 } } dps_results: { key: "TestGuardian-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 458866.44281 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460277.3297 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-FlashingSteelTalisman-81265" value: { - dps: 463310.58186 - tps: 2.88761644404e+06 - dtps: 24499.15631 - hps: 45750.7831 + dps: 464823.18002 + tps: 2.89689917024e+06 + dtps: 24539.48579 + hps: 45766.04747 } } dps_results: { key: "TestGuardian-AllItems-FleetPrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 27146.38609 - hps: 45919.53027 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 27007.17788 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-ForlornPrimalDiamond" value: { - dps: 503118.61562 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 504945.86868 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 458172.88987 - tps: 2.85671478221e+06 - dtps: 24126.585 - hps: 45625.78258 + dps: 459550.66974 + tps: 2.86514901188e+06 + dtps: 24013.12741 + hps: 45660.08777 } } dps_results: { key: "TestGuardian-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 459316.58441 - tps: 2.85806713934e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460700.71834 + tps: 2.86650136901e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Fusion-FireCore-105459" value: { - dps: 463062.15155 - tps: 2.8844317685e+06 - dtps: 24899.23455 - hps: 45896.23399 + dps: 464446.88362 + tps: 2.89291466354e+06 + dtps: 24821.69979 + hps: 45930.53919 } } dps_results: { key: "TestGuardian-AllItems-GazeoftheTwins-96915" value: { - dps: 474118.76201 - tps: 2.9361070918e+06 - dtps: 25070.07508 - hps: 45909.25851 + dps: 476184.79537 + tps: 2.94827387403e+06 + dtps: 24952.8937 + hps: 45941.97314 } } dps_results: { key: "TestGuardian-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 465570.48606 - tps: 2.89707655437e+06 - dtps: 24808.7036 - hps: 45731.75399 + dps: 467397.20867 + tps: 2.90975942724e+06 + dtps: 24537.93754 + hps: 45763.4414 } } dps_results: { key: "TestGuardian-AllItems-Gladiator'sSanctuary" value: { - dps: 437902.47126 - tps: 2.74504522629e+06 - dtps: 38979.71219 - hps: 20100.99073 + dps: 437018.59558 + tps: 2.74472938628e+06 + dtps: 40027.63324 + hps: 19803.589 } } dps_results: { key: "TestGuardian-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 529546.33325 - tps: 3.34350169221e+06 - dtps: 25221.7541 - hps: 45700.24725 + dps: 532362.45488 + tps: 3.36218567759e+06 + dtps: 25000.67953 + hps: 45758.12503 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 464073.15079 - tps: 2.89257562192e+06 - dtps: 24295.68128 - hps: 45779.35518 + dps: 466028.38053 + tps: 2.90472970466e+06 + dtps: 23830.84893 + hps: 45782.1117 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 458712.7441 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460277.3297 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 460123.41384 - tps: 2.86766156492e+06 - dtps: 24899.23455 - hps: 45730.00564 + dps: 461423.4124 + tps: 2.87570699125e+06 + dtps: 24821.69979 + hps: 45747.56314 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 467229.4974 - tps: 2.90651307457e+06 - dtps: 24849.08853 - hps: 45634.84672 + dps: 469453.46801 + tps: 2.91911911315e+06 + dtps: 24711.73465 + hps: 45691.46466 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46374.07082 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46408.37602 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 467152.27915 - tps: 2.91072708934e+06 - dtps: 23724.06498 - hps: 45864.42913 + dps: 468596.77828 + tps: 2.91963092735e+06 + dtps: 23638.24168 + hps: 45898.73433 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 458779.0972 - tps: 2.85808891932e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460159.28467 + tps: 2.86652314898e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 460665.94254 - tps: 2.87082130703e+06 - dtps: 24899.23455 - hps: 45767.20201 + dps: 462048.31916 + tps: 2.87928771388e+06 + dtps: 24821.69979 + hps: 45801.5072 } } dps_results: { key: "TestGuardian-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 466985.72338 - tps: 2.91288429904e+06 - dtps: 23451.76458 - hps: 45653.77125 + dps: 470044.98498 + tps: 2.92562724727e+06 + dtps: 23692.46217 + hps: 45996.57851 } } dps_results: { key: "TestGuardian-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 + dps: 459759.64976 + tps: 2.86608890846e+06 dtps: 24151.6556 - hps: 46286.9628 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24462.39319 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24384.85843 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 466340.38662 - tps: 2.90266372689e+06 - dtps: 24795.48863 - hps: 45713.45203 + dps: 467939.5253 + tps: 2.9108929395e+06 + dtps: 24717.95387 + hps: 45747.94006 } } dps_results: { key: "TestGuardian-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 459618.59325 - tps: 2.86515497647e+06 - dtps: 24660.02779 - hps: 45715.07286 + dps: 460997.53799 + tps: 2.87359736024e+06 + dtps: 24542.84641 + hps: 45749.37806 } } dps_results: { key: "TestGuardian-AllItems-HeartofFire-81181" value: { - dps: 458172.88987 - tps: 2.85671478221e+06 - dtps: 24643.71206 - hps: 45625.78258 + dps: 459550.66974 + tps: 2.86514901188e+06 + dtps: 24528.35842 + hps: 45660.08777 } } dps_results: { key: "TestGuardian-AllItems-HeartwarmerMedallion-93260" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-HelmbreakerMedallion-93261" value: { - dps: 466212.07678 - tps: 2.90049521569e+06 - dtps: 24978.51355 - hps: 45789.15635 + dps: 469099.85965 + tps: 2.91587838821e+06 + dtps: 24716.31903 + hps: 45801.33144 } } dps_results: { key: "TestGuardian-AllItems-Horridon'sLastGasp-96757" value: { - dps: 458844.60308 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460223.70334 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-ImpassivePrimalDiamond" value: { - dps: 505057.88505 - tps: 3.16662590157e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 506701.64105 + tps: 3.17691465065e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-IndomitablePrimalDiamond" value: { - dps: 503032.71183 - tps: 3.15711782441e+06 - dtps: 23416.79861 - hps: 46049.38691 + dps: 504859.9649 + tps: 3.16870029556e+06 + dtps: 23186.7182 + hps: 46083.69211 } } dps_results: { key: "TestGuardian-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 458186.76328 - tps: 2.85662681763e+06 - dtps: 24328.13314 - hps: 45615.94101 + dps: 459565.59257 + tps: 2.86505623163e+06 + dtps: 24250.59838 + hps: 45650.17324 } } dps_results: { key: "TestGuardian-AllItems-InsigniaofKypariZar-84078" value: { - dps: 458363.48191 - tps: 2.85752579134e+06 - dtps: 24657.85356 - hps: 45637.61205 + dps: 459742.54827 + tps: 2.86596902639e+06 + dtps: 24583.86625 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-IronBellyWok-89083" value: { - dps: 464269.57878 - tps: 2.89524949168e+06 - dtps: 23864.05336 - hps: 45637.44466 + dps: 467489.15019 + tps: 2.90910313945e+06 + dtps: 23813.79211 + hps: 45959.05432 } } dps_results: { key: "TestGuardian-AllItems-IronProtectorTalisman-85181" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 + dps: 459759.64976 + tps: 2.86608890846e+06 dtps: 24517.10145 - hps: 46115.2214 + hps: 46149.5266 } } dps_results: { key: "TestGuardian-AllItems-JadeBanditFigurine-86772" value: { - dps: 466110.53682 - tps: 2.90488991944e+06 - dtps: 22911.9834 - hps: 45751.68535 + dps: 470157.26713 + tps: 2.92586416062e+06 + dtps: 24029.43961 + hps: 45892.28535 } } dps_results: { key: "TestGuardian-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 463542.42263 - tps: 2.88846001366e+06 - dtps: 23500.23226 - hps: 45736.36813 + dps: 467200.57401 + tps: 2.90613280939e+06 + dtps: 24704.54441 + hps: 45839.9938 } } dps_results: { key: "TestGuardian-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 464248.95827 - tps: 2.88783558417e+06 - dtps: 24785.77636 - hps: 45680.53363 + dps: 466920.01265 + tps: 2.90248418178e+06 + dtps: 24563.22846 + hps: 45692.70872 } } dps_results: { key: "TestGuardian-AllItems-JadeWarlordFigurine-86775" value: { - dps: 458378.55602 - tps: 2.85739718154e+06 - dtps: 24618.25388 - hps: 46245.88344 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24477.56636 + hps: 46280.18864 } } dps_results: { key: "TestGuardian-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 458667.85126 - tps: 2.85976471547e+06 + dps: 460046.98983 + tps: 2.86820845599e+06 dtps: 23980.37934 - hps: 60130.92144 + hps: 60208.80741 } } dps_results: { key: "TestGuardian-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 484233.14869 - tps: 3.03449785232e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 485703.61161 + tps: 3.04353544715e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 459357.97048 - tps: 2.86333628955e+06 - dtps: 24846.32356 - hps: 45698.95928 + dps: 460740.02953 + tps: 2.87203543417e+06 + dtps: 24682.22767 + hps: 45733.26447 } } dps_results: { key: "TestGuardian-AllItems-KnotofTenSongs-84073" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24579.50232 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24425.18046 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 458378.55602 - tps: 2.85739718154e+06 - dtps: 24587.98442 - hps: 46324.33016 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24435.71947 + hps: 46358.63535 } } dps_results: { key: "TestGuardian-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 466216.65155 - tps: 2.91137085502e+06 - dtps: 24195.51381 - hps: 45724.72362 + dps: 467625.61919 + tps: 2.92006607422e+06 + dtps: 24142.24022 + hps: 45757.37504 } } dps_results: { key: "TestGuardian-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 459649.3374 - tps: 2.86400861154e+06 - dtps: 24899.23455 - hps: 45696.64262 + dps: 460911.48499 + tps: 2.87181291777e+06 + dtps: 24821.69979 + hps: 45701.68965 } } dps_results: { key: "TestGuardian-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 463597.05416 - tps: 2.8897962433e+06 + dps: 465116.78292 + tps: 2.89747196742e+06 dtps: 23756.15022 - hps: 45741.14488 + hps: 45775.6329 } } dps_results: { key: "TestGuardian-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 462244.60999 - tps: 2.88200478858e+06 - dtps: 24163.85731 - hps: 45731.31861 + dps: 463976.5356 + tps: 2.89262447726e+06 + dtps: 23907.37742 + hps: 45784.44461 } } dps_results: { key: "TestGuardian-AllItems-LightoftheCosmos-87065" value: { - dps: 464582.58075 - tps: 2.90194810084e+06 - dtps: 24283.82958 - hps: 45630.58164 + dps: 465988.22264 + tps: 2.91062003983e+06 + dtps: 24230.55599 + hps: 45663.23306 } } dps_results: { key: "TestGuardian-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 503130.74301 - tps: 3.15711782441e+06 - dtps: 23416.79861 - hps: 45964.26119 + dps: 504957.99607 + tps: 3.16870029556e+06 + dtps: 23186.7182 + hps: 45998.56639 } } dps_results: { key: "TestGuardian-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 499005.43348 - tps: 3.13126936527e+06 - dtps: 23746.92186 - hps: 45967.25363 + dps: 500583.82254 + tps: 3.14110978848e+06 + dtps: 23692.6145 + hps: 46001.55882 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 462036.819 - tps: 2.88022374035e+06 - dtps: 24660.29675 - hps: 45717.65361 + dps: 464333.35116 + tps: 2.89437056458e+06 + dtps: 24118.7861 + hps: 45743.80704 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 458712.7441 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460277.3297 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 459515.93004 - tps: 2.86417097189e+06 - dtps: 24899.23455 - hps: 45697.77699 + dps: 460843.06021 + tps: 2.87235202025e+06 + dtps: 24821.69979 + hps: 45721.17641 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 464326.20159 - tps: 2.89080911432e+06 - dtps: 24846.71432 - hps: 45637.40699 + dps: 466183.17577 + tps: 2.90058277662e+06 + dtps: 24720.5289 + hps: 45669.33475 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46117.4486 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46151.75379 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 463493.30148 - tps: 2.88905931447e+06 - dtps: 24102.73138 - hps: 45745.95775 + dps: 465468.42643 + tps: 2.89991944758e+06 + dtps: 23978.63659 + hps: 45802.57593 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 458483.60993 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459861.38981 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 459892.14518 - tps: 2.86634313173e+06 - dtps: 24897.81584 - hps: 45725.70009 + dps: 461273.29003 + tps: 2.87480091621e+06 + dtps: 24820.28108 + hps: 45760.00528 } } dps_results: { key: "TestGuardian-AllItems-MarkoftheCatacombs-83731" value: { - dps: 461495.28204 - tps: 2.87416602099e+06 - dtps: 24627.26619 - hps: 45637.11056 + dps: 463326.73079 + tps: 2.88548745267e+06 + dtps: 24473.80186 + hps: 45690.23792 } } dps_results: { key: "TestGuardian-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 458281.60331 - tps: 2.85671834483e+06 - dtps: 24196.33366 - hps: 45637.75418 + dps: 459662.69706 + tps: 2.86541007175e+06 + dtps: 23930.99961 + hps: 45672.05937 } } dps_results: { key: "TestGuardian-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24764.86825 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24649.02349 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 458592.07997 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459969.85985 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MirrorScope-4700" value: { - dps: 499005.43348 - tps: 3.13126936527e+06 - dtps: 23746.92186 - hps: 45967.25363 + dps: 500583.82254 + tps: 3.14110978848e+06 + dtps: 23692.6145 + hps: 46001.55882 } } dps_results: { key: "TestGuardian-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 458460.43462 - tps: 2.85820463298e+06 - dtps: 24416.65176 - hps: 46286.9628 + dps: 459839.50098 + tps: 2.86664786803e+06 + dtps: 24352.3761 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-MistdancerDefenderStone-101087" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24490.03209 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24412.49733 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-MistdancerIdolofRage-101113" value: { - dps: 462604.57053 - tps: 2.88380640088e+06 + dps: 464398.73262 + tps: 2.89340318154e+06 dtps: 23713.94584 - hps: 45719.43148 + hps: 45753.91951 } } dps_results: { key: "TestGuardian-AllItems-MistdancerStoneofRage-101117" value: { - dps: 462039.04277 - tps: 2.88132485211e+06 - dtps: 24182.00116 - hps: 45719.48913 + dps: 463764.31866 + tps: 2.89191015434e+06 + dtps: 23911.16244 + hps: 45772.61513 } } dps_results: { key: "TestGuardian-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 458805.15168 - tps: 2.85808891932e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460184.01878 + tps: 2.86652314898e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-MithrilWristwatch-282033" value: { - dps: 467819.7498 - tps: 2.9095283545e+06 - dtps: 24849.08853 - hps: 45633.96957 + dps: 469686.00011 + tps: 2.9213517846e+06 + dtps: 24711.73465 + hps: 45690.40468 } } dps_results: { key: "TestGuardian-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 464849.9586 - tps: 2.89306604177e+06 - dtps: 23184.30978 - hps: 45618.36771 + dps: 466505.32287 + tps: 2.90344451784e+06 + dtps: 23141.67563 + hps: 45674.55146 } } dps_results: { key: "TestGuardian-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 458616.90367 - tps: 2.85739718154e+06 - dtps: 24402.96777 - hps: 45637.61205 + dps: 459996.42091 + tps: 2.8658314112e+06 + dtps: 24325.43301 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 459384.59629 - tps: 2.85804541412e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460767.10128 + tps: 2.86648441439e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-NitroBoosts-4223" value: { - dps: 503032.71183 - tps: 3.15711782441e+06 - dtps: 23416.79861 - hps: 46049.38691 + dps: 504859.9649 + tps: 3.16870029556e+06 + dtps: 23186.7182 + hps: 46083.69211 } } dps_results: { key: "TestGuardian-AllItems-OathswornDefenderIdol-101303" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24592.90731 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24528.63165 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-OathswornDefenderStone-101306" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24431.7388 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24354.20404 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-OathswornIdolofBattle-101295" value: { - dps: 466341.08322 - tps: 2.90265786844e+06 - dtps: 24798.06366 - hps: 45710.47944 + dps: 467941.44146 + tps: 2.91089561802e+06 + dtps: 24720.5289 + hps: 45744.96747 } } dps_results: { key: "TestGuardian-AllItems-OathswornStoneofBattle-101294" value: { - dps: 459409.61322 - tps: 2.86421507989e+06 - dtps: 24632.69762 - hps: 45703.24338 + dps: 460788.55797 + tps: 2.87265746366e+06 + dtps: 24515.51624 + hps: 45737.54858 } } dps_results: { key: "TestGuardian-AllItems-PhaseFingers-4697" value: { - dps: 502227.25466 - tps: 3.1531033767e+06 - dtps: 23297.66514 - hps: 46060.48259 + dps: 504022.39865 + tps: 3.16448094934e+06 + dtps: 23067.42134 + hps: 46094.78778 } } dps_results: { key: "TestGuardian-AllItems-PouchofWhiteAsh-103639" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-PowerfulPrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 46057.27014 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 46091.57534 } } dps_results: { key: "TestGuardian-AllItems-PriceofProgress-81266" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 465601.67982 - tps: 2.90099783008e+06 - dtps: 24206.81411 - hps: 45815.1465 + dps: 467389.82544 + tps: 2.91385908706e+06 + dtps: 23570.86051 + hps: 45813.8037 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 458825.53288 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460453.35659 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 460643.21024 - tps: 2.87064830747e+06 - dtps: 24899.23455 - hps: 45757.58223 + dps: 461919.99351 + tps: 2.87857768817e+06 + dtps: 24821.69979 + hps: 45770.14107 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 469776.12729 - tps: 2.92143143784e+06 - dtps: 24789.26941 - hps: 45677.70531 + dps: 471181.45109 + tps: 2.93001973481e+06 + dtps: 24624.89816 + hps: 45712.01051 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46593.82062 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46628.12581 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 469288.84521 - tps: 2.92311725263e+06 - dtps: 23177.84573 - hps: 45937.63865 + dps: 470846.27012 + tps: 2.9328115591e+06 + dtps: 23119.21965 + hps: 45992.83671 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 458853.38011 - tps: 2.85808891932e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460234.57096 + tps: 2.86652314898e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 461343.12387 - tps: 2.87476747936e+06 - dtps: 24899.23455 - hps: 45810.787 + dps: 462726.62607 + tps: 2.8832417653e+06 + dtps: 24821.69979 + hps: 45845.0922 } } dps_results: { key: "TestGuardian-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 471117.0978 - tps: 2.92892805712e+06 - dtps: 25036.53026 - hps: 45779.00106 + dps: 472802.73289 + tps: 2.93947838486e+06 + dtps: 24859.52975 + hps: 45835.43617 } } dps_results: { key: "TestGuardian-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 477839.09232 - tps: 2.99192522336e+06 - dtps: 23337.0985 - hps: 45601.97919 + dps: 479515.76579 + tps: 3.00246104982e+06 + dtps: 23336.94752 + hps: 45637.28366 } } dps_results: { key: "TestGuardian-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 479464.83362 - tps: 2.99192522336e+06 - dtps: 23337.0985 - hps: 45601.97919 + dps: 481147.63813 + tps: 3.00246104982e+06 + dtps: 23336.94752 + hps: 45637.28366 } } dps_results: { key: "TestGuardian-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 485213.96302 - tps: 3.04443881082e+06 - dtps: 24206.49458 - hps: 45850.34052 + dps: 487102.56495 + tps: 3.05647808002e+06 + dtps: 24052.30365 + hps: 45885.45093 } } dps_results: { key: "TestGuardian-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 458712.7441 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460091.84435 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-RelicofChi-Ji-79330" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-RelicofKypariZar-84075" value: { - dps: 462545.5792 - tps: 2.88325577549e+06 - dtps: 23827.28528 - hps: 45694.82688 + dps: 463900.12348 + tps: 2.89150293784e+06 + dtps: 23731.60028 + hps: 45727.75958 } } dps_results: { key: "TestGuardian-AllItems-RelicofNiuzao-79329" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46245.88344 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46280.18864 } } dps_results: { key: "TestGuardian-AllItems-RelicofXuen-79327" value: { - dps: 460540.58908 - tps: 2.87031646467e+06 - dtps: 25091.37273 - hps: 45772.84614 + dps: 461921.6572 + tps: 2.87877371202e+06 + dtps: 24974.19135 + hps: 45807.15133 } } dps_results: { key: "TestGuardian-AllItems-RelicofXuen-79328" value: { - dps: 465319.3488 - tps: 2.90098849942e+06 - dtps: 23875.52245 - hps: 45818.9235 + dps: 467409.23874 + tps: 2.91266376608e+06 + dtps: 23811.52375 + hps: 45853.75599 } } dps_results: { key: "TestGuardian-AllItems-RelicofYu'lon-79331" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 468967.96954 - tps: 2.92049693588e+06 - dtps: 24296.25581 - hps: 45899.34136 + dps: 470657.65254 + tps: 2.93160349863e+06 + dtps: 24155.39086 + hps: 45908.39009 } } dps_results: { key: "TestGuardian-AllItems-ResolveofNiuzao-103990" value: { - dps: 458172.88987 - tps: 2.85671478221e+06 - dtps: 24174.70359 - hps: 45625.78258 + dps: 459550.66974 + tps: 2.86514901188e+06 + dtps: 24061.04965 + hps: 45660.08777 } } dps_results: { key: "TestGuardian-AllItems-ReverberatingPrimalDiamond" value: { - dps: 516284.57871 - tps: 3.24265351706e+06 - dtps: 27408.97889 - hps: 45935.93689 + dps: 518180.09351 + tps: 3.25469060295e+06 + dtps: 27268.39278 + hps: 45970.24208 } } dps_results: { key: "TestGuardian-AllItems-RevitalizingPrimalDiamond" value: { - dps: 515996.41699 - tps: 3.24088691447e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 517891.4757 + tps: 3.25292080778e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-RuneofRe-Origination-96918" value: { - dps: 476243.3243 - tps: 2.93151237208e+06 - dtps: 23528.571 - hps: 45767.11273 + dps: 477412.20508 + tps: 2.93810832787e+06 + dtps: 23430.10506 + hps: 45803.07212 } } dps_results: { key: "TestGuardian-AllItems-SI:7Operative'sManual-92784" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SearingWords-81267" value: { - dps: 469892.27303 - tps: 2.92414982442e+06 - dtps: 24313.18364 - hps: 45805.35165 + dps: 470972.33324 + tps: 2.93048572486e+06 + dtps: 24235.64888 + hps: 45839.65684 } } dps_results: { key: "TestGuardian-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 464438.27645 - tps: 2.89927775889e+06 - dtps: 24022.24878 - hps: 45579.39583 + dps: 466249.74408 + tps: 2.90946280018e+06 + dtps: 23968.81181 + hps: 45610.64197 } } dps_results: { key: "TestGuardian-AllItems-SigilofCompassion-83736" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24764.86825 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24649.02349 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SigilofDevotion-83740" value: { - dps: 461286.28691 - tps: 2.87322601867e+06 - dtps: 24504.44794 - hps: 45625.28108 + dps: 463115.47791 + tps: 2.8845316461e+06 + dtps: 24356.65422 + hps: 45678.40845 } } dps_results: { key: "TestGuardian-AllItems-SigilofFidelity-83737" value: { - dps: 464294.01908 - tps: 2.8900200133e+06 - dtps: 23984.27785 - hps: 45706.64651 + dps: 466029.05659 + tps: 2.90093500862e+06 + dtps: 24175.29838 + hps: 45741.04956 } } dps_results: { key: "TestGuardian-AllItems-SigilofGrace-83738" value: { - dps: 462864.61527 - tps: 2.88692761158e+06 - dtps: 25030.32672 - hps: 45632.41106 + dps: 464416.81529 + tps: 2.89660956614e+06 + dtps: 24872.64424 + hps: 45664.82935 } } dps_results: { key: "TestGuardian-AllItems-SigilofKypariZar-84076" value: { - dps: 461563.40093 - tps: 2.87516581734e+06 - dtps: 24557.36503 - hps: 45625.28108 + dps: 463320.48925 + tps: 2.885966726e+06 + dtps: 24403.90025 + hps: 45678.40845 } } dps_results: { key: "TestGuardian-AllItems-SigilofPatience-83739" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24553.51638 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24478.69332 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SigilofRampage-105580" value: { - dps: 474148.27713 - tps: 2.95359016452e+06 - dtps: 22915.63741 - hps: 46050.57496 + dps: 475784.43209 + tps: 2.96383560457e+06 + dtps: 22838.10265 + hps: 46095.65439 } } dps_results: { key: "TestGuardian-AllItems-SigiloftheCatacombs-83732" value: { - dps: 465505.13003 - tps: 2.89243098615e+06 - dtps: 25487.59764 - hps: 45643.71203 + dps: 467431.47047 + tps: 2.90383799855e+06 + dtps: 25487.43426 + hps: 45674.24284 } } dps_results: { key: "TestGuardian-AllItems-SinisterPrimalDiamond" value: { - dps: 504662.42461 - tps: 3.16474864041e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 506313.58516 + tps: 3.17508922134e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 473836.39729 - tps: 2.92575166683e+06 - dtps: 24932.02714 - hps: 45911.60125 + dps: 475064.93177 + tps: 2.9328283302e+06 + dtps: 24814.84576 + hps: 45945.90644 } } dps_results: { key: "TestGuardian-AllItems-SkullrenderMedallion-93256" value: { - dps: 466212.07678 - tps: 2.90049521569e+06 - dtps: 24978.51355 - hps: 45789.15635 + dps: 469099.85965 + tps: 2.91587838821e+06 + dtps: 24716.31903 + hps: 45801.33144 } } dps_results: { key: "TestGuardian-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 458695.67254 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460074.77279 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SoulBarrier-96927" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46752.44631 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46786.75151 } } dps_results: { key: "TestGuardian-AllItems-SparkofZandalar-96770" value: { - dps: 466117.04783 - tps: 2.91217723739e+06 - dtps: 22782.01427 - hps: 45694.16813 + dps: 467581.18178 + tps: 2.92121201211e+06 + dtps: 22774.59774 + hps: 45728.54498 } } dps_results: { key: "TestGuardian-AllItems-SpiritsoftheSun-87163" value: { - dps: 458695.67254 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460074.77279 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 464026.43581 - tps: 2.88965042481e+06 - dtps: 23407.97863 - hps: 45565.53775 + dps: 465586.54279 + tps: 2.89937186196e+06 + dtps: 23365.35688 + hps: 45599.6909 } } dps_results: { key: "TestGuardian-AllItems-SpringrainIdolofRage-101009" value: { - dps: 462820.68843 - tps: 2.88525721741e+06 + dps: 464524.14484 + tps: 2.8942190351e+06 dtps: 23746.72966 - hps: 45745.75492 + hps: 45780.24295 } } dps_results: { key: "TestGuardian-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24435.85481 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24358.32005 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SpringrainStoneofRage-101012" value: { - dps: 462035.61486 - tps: 2.88106478626e+06 - dtps: 24098.81519 - hps: 45719.48913 + dps: 463762.62812 + tps: 2.89165008848e+06 + dtps: 23828.83252 + hps: 45772.61513 } } dps_results: { key: "TestGuardian-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 458910.3251 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460290.51257 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 464438.27645 - tps: 2.89927775889e+06 - dtps: 24022.24878 - hps: 45579.39583 + dps: 466249.74408 + tps: 2.90946280018e+06 + dtps: 23968.81181 + hps: 45610.64197 } } dps_results: { key: "TestGuardian-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 458172.88987 - tps: 2.85671478221e+06 - dtps: 24321.87607 - hps: 45625.78258 + dps: 459550.66974 + tps: 2.86514901188e+06 + dtps: 24207.82756 + hps: 45660.08777 } } dps_results: { key: "TestGuardian-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 464600.21785 - tps: 2.89600809634e+06 - dtps: 23407.25695 - hps: 45627.8058 + dps: 466178.82448 + tps: 2.9057776013e+06 + dtps: 23322.06542 + hps: 45684.71287 } } dps_results: { key: "TestGuardian-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 462765.47492 - tps: 2.88502191238e+06 + dps: 464434.59772 + tps: 2.89374339475e+06 dtps: 23789.95323 - hps: 45747.31003 + hps: 45781.79806 } } dps_results: { key: "TestGuardian-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 458620.21754 - tps: 2.85765467879e+06 - dtps: 24621.51952 - hps: 45637.61205 + dps: 459997.99742 + tps: 2.86608890846e+06 + dtps: 24543.98476 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 462244.60999 - tps: 2.88200478858e+06 - dtps: 24154.72225 - hps: 45731.31861 + dps: 463976.5356 + tps: 2.89262447726e+06 + dtps: 23883.88353 + hps: 45784.44461 } } dps_results: { key: "TestGuardian-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 458980.09328 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460360.28076 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-StuffofNightmares-87160" value: { - dps: 458257.93275 - tps: 2.85650592902e+06 - dtps: 24126.59032 - hps: 45639.00513 + dps: 459677.77964 + tps: 2.86523462775e+06 + dtps: 24012.19293 + hps: 45673.31032 } } dps_results: { key: "TestGuardian-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24588.39681 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24524.12115 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-SunsoulDefenderStone-101163" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24454.57208 - hps: 46286.9628 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24377.03732 + hps: 46321.26799 } } dps_results: { key: "TestGuardian-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 466397.6855 - tps: 2.90301095432e+06 - dtps: 24796.77615 - hps: 45713.46429 + dps: 467998.36667 + tps: 2.91125096442e+06 + dtps: 24719.24139 + hps: 45747.95232 } } dps_results: { key: "TestGuardian-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 459618.59325 - tps: 2.86515497647e+06 - dtps: 24594.45828 - hps: 45715.07286 + dps: 460997.53799 + tps: 2.87359736024e+06 + dtps: 24477.2769 + hps: 45749.37806 } } dps_results: { key: "TestGuardian-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 458764.63226 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460142.41214 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 504411.19014 - tps: 3.16506347911e+06 - dtps: 23413.49553 - hps: 46041.93232 + dps: 506244.21084 + tps: 3.1766863237e+06 + dtps: 23183.41511 + hps: 46076.23751 } } dps_results: { key: "TestGuardian-AllItems-SymboloftheCatacombs-83735" value: { - dps: 462653.46837 - tps: 2.8787130042e+06 - dtps: 24628.24202 - hps: 45720.84128 + dps: 464128.53426 + tps: 2.88778936951e+06 + dtps: 24495.48053 + hps: 45755.14648 } } dps_results: { @@ -2274,289 +2274,289 @@ dps_results: { dps_results: { key: "TestGuardian-AllItems-TalismanofBloodlust-96864" value: { - dps: 472435.12876 - tps: 2.95430920973e+06 - dtps: 22403.8987 - hps: 45812.37614 + dps: 475299.66834 + tps: 2.97169719264e+06 + dtps: 22356.61908 + hps: 45869.63559 } } dps_results: { key: "TestGuardian-AllItems-TerrorintheMists-87167" value: { - dps: 473989.55368 - tps: 2.93520079801e+06 - dtps: 24443.97772 - hps: 45874.54028 + dps: 475257.7407 + tps: 2.9426979982e+06 + dtps: 24250.00924 + hps: 45908.84548 } } dps_results: { key: "TestGuardian-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 459965.36331 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 461348.95405 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Thok'sTailTip-105609" value: { - dps: 481791.30237 - tps: 3.01193398705e+06 - dtps: 23337.0985 - hps: 45800.38673 + dps: 483477.63171 + tps: 3.02253740462e+06 + dtps: 23336.94752 + hps: 45835.6912 } } dps_results: { key: "TestGuardian-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 466970.0569 - tps: 2.90091899166e+06 - dtps: 23325.69792 - hps: 45609.66295 + dps: 468637.44184 + tps: 2.91132449264e+06 + dtps: 23222.64281 + hps: 45646.14851 } } dps_results: { key: "TestGuardian-AllItems-TickingEbonDetonator-105612" value: { - dps: 473875.682 - tps: 2.95395696284e+06 - dtps: 22923.41053 - hps: 45985.61204 + dps: 475066.27422 + tps: 2.96072644224e+06 + dtps: 22781.04724 + hps: 46019.91723 } } dps_results: { key: "TestGuardian-AllItems-Time-LostArtifact-103678" value: { - dps: 462153.24774 - tps: 2.88197833768e+06 + dps: 463611.98074 + tps: 2.89098363619e+06 dtps: 22487.67614 - hps: 45619.7611 + hps: 45654.06827 } } dps_results: { key: "TestGuardian-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 462695.34847 - tps: 2.88453707296e+06 + dps: 464327.50808 + tps: 2.89299981302e+06 dtps: 23769.4688 - hps: 45725.19196 + hps: 45759.67998 } } dps_results: { key: "TestGuardian-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 462248.0379 - tps: 2.88226485444e+06 - dtps: 24165.62051 - hps: 45731.31861 + dps: 463978.22614 + tps: 2.89288454312e+06 + dtps: 23894.78179 + hps: 45784.44461 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 463013.65604 - tps: 2.88615615819e+06 - dtps: 24506.32196 - hps: 45752.93545 + dps: 464993.85015 + tps: 2.89841593976e+06 + dtps: 24041.55595 + hps: 45758.51065 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 458712.7441 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460277.3297 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 459749.16043 - tps: 2.86551111028e+06 - dtps: 24899.23455 - hps: 45710.15049 + dps: 461065.874 + tps: 2.87364008947e+06 + dtps: 24821.69979 + hps: 45731.30703 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 465303.3358 - tps: 2.89684987105e+06 - dtps: 24798.06366 - hps: 45634.84672 + dps: 467302.60824 + tps: 2.90789185236e+06 + dtps: 24660.70977 + hps: 45691.46466 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 458381.86989 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 46215.69259 + dps: 459759.64976 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 46249.99779 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 463973.38696 - tps: 2.89164147538e+06 - dtps: 24123.6068 - hps: 45785.28214 + dps: 466134.68497 + tps: 2.90379729941e+06 + dtps: 23972.97468 + hps: 45841.90033 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 458559.06493 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459938.16518 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 460174.05634 - tps: 2.86794944542e+06 - dtps: 24899.23455 - hps: 45741.92217 + dps: 461554.86565 + tps: 2.87640488118e+06 + dtps: 24821.69979 + hps: 45776.22736 } } dps_results: { key: "TestGuardian-AllItems-TyrannicalPrimalDiamond" value: { - dps: 503020.58445 - tps: 3.15704860123e+06 - dtps: 27424.45928 - hps: 45919.53027 + dps: 504847.83751 + tps: 3.16863107239e+06 + dtps: 27283.87318 + hps: 45953.83547 } } dps_results: { key: "TestGuardian-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 458844.60308 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460223.70334 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-VaporshieldMedallion-93262" value: { - dps: 458281.60331 - tps: 2.85671834483e+06 - dtps: 24196.33366 - hps: 45637.75418 + dps: 459662.69706 + tps: 2.86541007175e+06 + dtps: 23930.99961 + hps: 45672.05937 } } dps_results: { key: "TestGuardian-AllItems-VialofDragon'sBlood-87063" value: { - dps: 458075.93716 - tps: 2.85603594057e+06 - dtps: 23781.84193 - hps: 45625.78258 + dps: 459453.71703 + tps: 2.86447017023e+06 + dtps: 23750.59081 + hps: 45660.08777 } } dps_results: { key: "TestGuardian-AllItems-VialofIchorousBlood-100963" value: { - dps: 458592.07997 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 459969.85985 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 465611.35914 - tps: 2.89740178857e+06 - dtps: 24358.96276 - hps: 45831.46608 + dps: 467017.79142 + tps: 2.90603658506e+06 + dtps: 24281.428 + hps: 45865.77128 } } dps_results: { key: "TestGuardian-AllItems-VisionofthePredator-81192" value: { - dps: 465760.32803 - tps: 2.88630399629e+06 - dtps: 24644.99968 - hps: 45699.95496 + dps: 467409.16664 + tps: 2.89658095397e+06 + dtps: 24567.46492 + hps: 45734.26016 } } dps_results: { key: "TestGuardian-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 463197.51016 - tps: 2.87627699516e+06 - dtps: 22419.17161 - hps: 45636.06786 + dps: 465001.20218 + tps: 2.88763691155e+06 + dtps: 22354.78328 + hps: 45670.70567 } } dps_results: { key: "TestGuardian-AllItems-WindsweptPages-81125" value: { - dps: 467958.90533 - tps: 2.92403281924e+06 - dtps: 22821.86346 - hps: 45739.22131 + dps: 469437.82987 + tps: 2.93391371155e+06 + dtps: 22553.83084 + hps: 45774.00003 } } dps_results: { key: "TestGuardian-AllItems-WoundripperMedallion-93253" value: { - dps: 468916.1723 - tps: 2.9179121204e+06 - dtps: 24655.42035 - hps: 45786.69352 + dps: 472702.49751 + tps: 2.93929635544e+06 + dtps: 24134.43593 + hps: 45839.08364 } } dps_results: { key: "TestGuardian-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 458885.86699 - tps: 2.85765467879e+06 - dtps: 24899.23455 - hps: 45637.61205 + dps: 460267.80582 + tps: 2.86608890846e+06 + dtps: 24821.69979 + hps: 45671.91725 } } dps_results: { key: "TestGuardian-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 489662.46492 - tps: 3.06013107824e+06 - dtps: 25338.55194 - hps: 45565.88089 + dps: 491441.39827 + tps: 3.07138291714e+06 + dtps: 24996.6954 + hps: 45599.8039 } } dps_results: { key: "TestGuardian-AllItems-Yu'lon'sBite-103987" value: { - dps: 470304.1333 - tps: 2.90104226941e+06 - dtps: 24749.06835 - hps: 45752.04308 + dps: 471683.14542 + tps: 2.90930882761e+06 + dtps: 24671.53359 + hps: 45786.34828 } } dps_results: { key: "TestGuardian-AllItems-ZenAlchemistStone-75274" value: { - dps: 463298.69843 - tps: 2.88652910205e+06 - dtps: 23901.75076 - hps: 45755.37289 + dps: 464811.06555 + tps: 2.89590800397e+06 + dtps: 23780.97512 + hps: 45811.32141 } } dps_results: { diff --git a/sim/druid/guardian/items.go b/sim/druid/guardian/items.go index 2f6494bbce..501e1590d0 100644 --- a/sim/druid/guardian/items.go +++ b/sim/druid/guardian/items.go @@ -195,7 +195,7 @@ var ItemSetArmorOfTheShatteredVale = core.NewItemSet(core.ItemSet{ }, }) -// 2PT16 : Free Frenzied Regeneration cast by the T16 2P bonus when Barkskin fades. +// 2PT16 : Free Frenzied Regeneration cast by the T16 2P bonus when Barkskin fades. // Always uses the unglyphed heal formula with a fixed 20-rage cost, regardless of glyph. func (bear *GuardianDruid) registerT162PFreeFrenziedRegen(_ *core.Aura) { const triggeredRageCost = 20.0 diff --git a/sim/hunter/beast_mastery/TestBeastMastery.results b/sim/hunter/beast_mastery/TestBeastMastery.results index 5956421aa0..b63697dd0e 100644 --- a/sim/hunter/beast_mastery/TestBeastMastery.results +++ b/sim/hunter/beast_mastery/TestBeastMastery.results @@ -33,64 +33,64 @@ character_stats_results: { dps_results: { key: "TestBeastMastery-AllItems-AgilePrimalDiamond" value: { - dps: 436703.43897 - tps: 171192.03954 + dps: 439925.84551 + tps: 172864.57754 hps: 17.83024 } } dps_results: { key: "TestBeastMastery-AllItems-AlacrityofXuen-103989" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 414536.36458 - tps: 190191.27841 + dps: 416172.92481 + tps: 191477.5637 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ArrowflightMedallion-93258" value: { - dps: 430315.36625 - tps: 196164.4601 + dps: 433232.75344 + tps: 197018.82983 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-AssuranceofConsequence-105472" value: { - dps: 477530.77491 - tps: 216806.56356 + dps: 482708.80267 + tps: 219368.07266 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-AusterePrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BadJuju-96781" value: { - dps: 445829.42868 - tps: 197616.29298 + dps: 450160.83944 + tps: 200211.17525 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BadgeofKypariZar-84079" value: { - dps: 416284.89308 - tps: 189283.10156 + dps: 422139.36384 + tps: 192231.58175 hps: 18.07442 } } @@ -113,304 +113,304 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 419114.17991 - tps: 192169.96243 + dps: 425049.73627 + tps: 194742.96451 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BlossomofPureSnow-89081" value: { - dps: 416890.36082 - tps: 191072.03354 + dps: 419928.59737 + tps: 191934.60569 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BottleofInfiniteStars-87057" value: { - dps: 433186.14141 - tps: 194115.06829 + dps: 438861.16366 + tps: 197316.05156 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BraidofTenSongs-84072" value: { - dps: 414918.96988 - tps: 189351.95513 + dps: 419789.738 + tps: 191275.06404 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Brawler'sStatue-282039" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 412242.55763 + tps: 189633.39808 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BreathoftheHydra-96827" value: { - dps: 418490.24237 - tps: 192420.24014 + dps: 423634.08795 + tps: 194385.97255 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 412242.55763 + tps: 189633.39808 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-BurningPrimalDiamond" value: { - dps: 433641.80226 - tps: 170148.71315 + dps: 437542.62341 + tps: 172066.44396 hps: 17.83024 } } dps_results: { key: "TestBeastMastery-AllItems-CapacitivePrimalDiamond" value: { - dps: 467017.94271 - tps: 206128.92974 + dps: 471809.85263 + tps: 207345.44692 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CarbonicCarbuncle-81138" value: { - dps: 416656.17062 - tps: 190610.55446 + dps: 422136.15701 + tps: 193756.23905 hps: 18.14931 } } dps_results: { key: "TestBeastMastery-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 418606.67181 - tps: 192202.69724 + dps: 424069.73794 + tps: 195033.98046 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-CharmofTenSongs-84071" value: { - dps: 415587.63169 - tps: 191086.72093 + dps: 421032.86831 + tps: 193040.83036 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 418113.68751 - tps: 189668.65274 + dps: 421918.8891 + tps: 191029.55163 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 418241.04864 - tps: 187923.43921 + dps: 423801.26312 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 432769.49209 - tps: 196544.6392 + dps: 438043.16196 + tps: 199270.01457 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-CoreofDecency-87497" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CourageousPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 418280.3476 - tps: 190507.9779 + dps: 421466.14667 + tps: 191973.32154 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 413497.88571 - tps: 189417.36704 + dps: 418170.65056 + tps: 192049.49547 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 423437.12868 - tps: 192497.91065 + dps: 428735.24776 + tps: 195584.13315 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 420056.52216 - tps: 191134.89588 + dps: 422986.75718 + tps: 192423.47392 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 413650.39637 - tps: 189445.64721 + dps: 418803.61656 + tps: 192206.39652 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 426076.08906 - tps: 193528.20136 + dps: 432165.66198 + tps: 197212.58711 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } @@ -425,440 +425,440 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-CutstitcherMedallion-93255" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Daelo'sFinalWords-87496" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411829.6149 + tps: 189073.58307 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 465913.11166 - tps: 205544.98759 + dps: 470936.0633 + tps: 207101.16619 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DarkmistVortex-87172" value: { - dps: 417380.7846 - tps: 190927.03624 + dps: 423324.31435 + tps: 193155.02218 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 424199.78926 - tps: 191507.84892 + dps: 427060.72389 + tps: 192579.8339 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DestructivePrimalDiamond" value: { - dps: 432621.93008 - tps: 167931.61172 + dps: 436792.3451 + tps: 169561.18498 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DisciplineofXuen-103986" value: { - dps: 449108.17508 - tps: 194776.74095 + dps: 454206.712 + tps: 197436.56518 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 414536.36458 - tps: 190191.27841 + dps: 416172.92481 + tps: 191477.5637 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 424199.78926 - tps: 191507.84892 + dps: 427060.72389 + tps: 192579.8339 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 414863.97534 - tps: 187923.43921 + dps: 417268.24029 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 414863.97534 - tps: 187923.43921 + dps: 417268.24029 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 418280.3476 - tps: 190507.9779 + dps: 421466.14667 + tps: 191973.32154 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 413497.88571 - tps: 189417.36704 + dps: 418170.65056 + tps: 192049.49547 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 423100.2361 - tps: 192347.47967 + dps: 428974.44591 + tps: 195700.86295 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 414863.97534 - tps: 187923.43921 + dps: 417268.24029 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EffulgentPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EmberPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EmblemofKypariZar-84077" value: { - dps: 416137.58639 - tps: 192635.3713 + dps: 421458.14111 + tps: 193658.19937 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 413852.84138 - tps: 188001.26048 + dps: 418709.64289 + tps: 189383.8054 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EmptyFruitBarrel-81133" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 463794.85858 - tps: 204626.5348 + dps: 469634.60281 + tps: 206435.99606 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 454616.46306 - tps: 201315.42156 + dps: 460412.45125 + tps: 203262.17325 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 465648.67425 - tps: 205156.90953 + dps: 472028.07766 + tps: 207247.53294 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 456028.31235 - tps: 203358.34168 + dps: 459494.03353 + tps: 203375.42567 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 454616.46306 - tps: 201315.42156 + dps: 460412.45125 + tps: 203262.17325 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 454616.46306 - tps: 201315.42156 + dps: 460402.57395 + tps: 203262.17325 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 454616.46306 - tps: 201315.42156 + dps: 460412.45125 + tps: 203262.17325 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 461973.71037 - tps: 203830.17925 + dps: 466537.1093 + tps: 205563.51692 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EnigmaticPrimalDiamond" value: { - dps: 432621.93008 - tps: 167931.61172 + dps: 436792.3451 + tps: 169561.18498 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EssenceofTerror-87175" value: { - dps: 414995.19058 - tps: 189924.91876 + dps: 420697.97889 + tps: 192289.28283 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EternalPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-EvilEyeofGalakras-105491" value: { - dps: 409536.3895 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 409536.33123 - tps: 187923.38094 + dps: 414931.79931 + tps: 190647.75044 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FearwurmBadge-84074" value: { - dps: 414106.96083 - tps: 190167.63537 + dps: 420812.66323 + tps: 192769.65447 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-FearwurmRelic-84070" value: { - dps: 415699.74708 - tps: 190354.65684 + dps: 420058.88324 + tps: 190605.59371 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 417382.47083 - tps: 188821.31255 + dps: 422883.66534 + tps: 190829.52301 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 418322.03606 - tps: 187923.43921 + dps: 423895.64243 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411749.16221 + tps: 189533.25274 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FlashingSteelTalisman-81265" value: { - dps: 421752.56277 - tps: 192133.65765 + dps: 424114.72946 + tps: 192345.77659 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FleetPrimalDiamond" value: { - dps: 432648.7501 - tps: 166881.58616 + dps: 436507.63506 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ForlornPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 417760.91945 - tps: 187923.43921 + dps: 423242.58896 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Fusion-FireCore-105459" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GazeoftheTwins-96915" value: { - dps: 418574.25165 - tps: 192267.25341 - hps: 17.88948 + dps: 424470.6831 + tps: 194629.03095 + hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 424639.55922 - tps: 192664.89461 + dps: 427663.64534 + tps: 194920.62354 hps: 17.84779 } } @@ -873,640 +873,640 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 439799.886 - tps: 195853.47571 + dps: 445623.35211 + tps: 197513.16344 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 426757.91202 - tps: 193949.11937 + dps: 429002.43171 + tps: 194857.87296 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 416601.21783 - tps: 191018.99241 + dps: 421750.08424 + tps: 193769.71024 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 434867.59554 - tps: 196355.28059 + dps: 440348.86973 + tps: 199588.1311 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Haromm'sTalisman-105527" value: { - dps: 463792.70955 - tps: 215928.54106 + dps: 469384.34492 + tps: 218327.04039 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 428761.14735 - tps: 196519.53887 + dps: 431468.22871 + tps: 197360.60437 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 418251.41419 - tps: 187923.43921 + dps: 423843.03664 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 414100.8557 - tps: 189754.20785 + dps: 419390.40599 + tps: 192554.09467 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 418300.02692 - tps: 187923.43921 + dps: 423892.96763 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-HeartofFire-81181" value: { - dps: 413516.99055 - tps: 187923.43921 + dps: 416232.52542 + tps: 189633.39808 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-HeartwarmerMedallion-93260" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-HelmbreakerMedallion-93261" value: { - dps: 417576.92564 - tps: 191345.74205 + dps: 420798.27179 + tps: 192308.57551 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Horridon'sLastGasp-96757" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ImpassivePrimalDiamond" value: { - dps: 432621.93008 - tps: 167931.61172 + dps: 436792.3451 + tps: 169561.18498 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-IndomitablePrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-InsigniaofKypariZar-84078" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-IronBellyWok-89083" value: { - dps: 415331.43105 - tps: 191069.46689 + dps: 418569.13663 + tps: 191937.3496 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-IronProtectorTalisman-85181" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-JadeBanditFigurine-86772" value: { - dps: 424671.0463 - tps: 194676.17039 + dps: 428689.41448 + tps: 195834.98399 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 413578.06236 - tps: 190037.74172 + dps: 417901.65224 + tps: 191706.91448 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 416170.47685 - tps: 190914.54849 + dps: 419142.49653 + tps: 191763.9435 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-JadeWarlordFigurine-86775" value: { - dps: 415833.7463 - tps: 187923.43921 + dps: 418235.81375 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 409545.04826 - tps: 187923.43921 - hps: 6082.5962 + dps: 414931.85758 + tps: 190647.8087 + hps: 6173.70062 } } dps_results: { key: "TestBeastMastery-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 419938.60622 - tps: 198386.42431 + dps: 425683.35263 + tps: 201272.98267 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 414863.97534 - tps: 187923.43921 + dps: 417268.24029 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-KnotofTenSongs-84073" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411744.7455 + tps: 189048.79215 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 416645.50977 - tps: 187923.43921 + dps: 419045.73778 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 413985.74148 - tps: 189394.89109 + dps: 419675.30709 + tps: 191897.60015 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411929.44489 + tps: 189417.73819 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 428729.77988 - tps: 192708.88258 + dps: 435000.06817 + tps: 196156.56416 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 430188.33514 - tps: 192073.6164 + dps: 435247.30781 + tps: 194808.39873 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LightoftheCosmos-87065" value: { - dps: 413985.74148 - tps: 189394.89109 + dps: 419675.30709 + tps: 191897.60015 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 465913.11166 - tps: 205544.98759 + dps: 470936.0633 + tps: 207101.16619 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 420056.52216 - tps: 191134.89588 + dps: 422986.75718 + tps: 192423.47392 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 413650.39637 - tps: 189445.64721 + dps: 418803.61656 + tps: 192206.39652 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 425979.98094 - tps: 193602.18629 + dps: 432217.72319 + tps: 197262.30942 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MarkoftheCatacombs-83731" value: { - dps: 415643.79094 - tps: 188643.53732 + dps: 421394.58387 + tps: 191743.61134 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 417125.45751 - tps: 187923.43921 + dps: 419524.59797 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 412438.42299 - tps: 187923.43921 + dps: 417858.63912 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MirrorScope-4700" value: { - dps: 457807.63723 - tps: 202292.92438 + dps: 463833.72735 + tps: 204502.90373 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MistdancerDefenderStone-101087" value: { - dps: 418467.66585 - tps: 187923.43921 + dps: 424062.75035 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MistdancerIdolofRage-101113" value: { - dps: 428981.72735 - tps: 192552.5868 + dps: 435096.83644 + tps: 196135.32809 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MistdancerStoneofRage-101117" value: { - dps: 430038.32422 - tps: 192073.6164 + dps: 435113.64438 + tps: 194808.39873 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MithrilWristwatch-282033" value: { - dps: 416958.78063 - tps: 191159.72241 + dps: 422192.55438 + tps: 193953.76786 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 420365.03481 - tps: 191506.41637 + dps: 425705.23001 + tps: 193160.99905 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 418233.18116 - tps: 187923.43921 + dps: 423746.13396 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-NitroBoosts-4223" value: { - dps: 467017.94271 - tps: 206128.92974 + dps: 471809.85263 + tps: 207345.44692 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-OathswornDefenderIdol-101303" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-OathswornDefenderStone-101306" value: { - dps: 418626.23408 - tps: 187923.43921 + dps: 424181.88268 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-OathswornIdolofBattle-101295" value: { - dps: 414100.8557 - tps: 189754.20785 + dps: 419390.40599 + tps: 192554.09467 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-OathswornStoneofBattle-101294" value: { - dps: 418291.92195 - tps: 187923.43921 + dps: 423876.72554 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PhaseFingers-4697" value: { - dps: 466532.77722 - tps: 206030.11089 + dps: 467438.85901 + tps: 205746.08644 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PouchofWhiteAsh-103639" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411744.7455 + tps: 189048.79215 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PowerfulPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PriceofProgress-81266" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 431872.32236 - tps: 195619.95917 + dps: 434659.95371 + tps: 196992.70974 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } @@ -1521,504 +1521,504 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 419142.15046 - tps: 192313.60667 + dps: 424481.64657 + tps: 195527.85808 hps: 18.07442 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 443502.74081 - tps: 199514.68552 + dps: 449198.24062 + tps: 203150.16588 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 418598.01305 - tps: 192202.69724 + dps: 424069.73794 + tps: 195033.98046 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 423176.25899 - tps: 195377.99301 + dps: 428783.52313 + tps: 197128.59951 hps: 17.89611 } } dps_results: { key: "TestBeastMastery-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 423176.25899 - tps: 195377.99301 + dps: 428783.52313 + tps: 197128.59951 hps: 17.89611 } } dps_results: { key: "TestBeastMastery-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 437823.14697 - tps: 181328.39216 + dps: 440417.28988 + tps: 182718.69508 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 411955.34037 - tps: 172823.56434 + dps: 417233.4086 + tps: 174647.11894 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofChi-Ji-79330" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofKypariZar-84075" value: { - dps: 413870.83568 - tps: 190193.02455 + dps: 419443.04035 + tps: 192272.39704 hps: 17.88948 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofNiuzao-79329" value: { - dps: 409536.3895 - tps: 187923.43921 + dps: 411766.74401 + tps: 188733.84206 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofXuen-79327" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofXuen-79328" value: { - dps: 431881.15785 - tps: 196205.63286 + dps: 437001.33951 + tps: 198894.35615 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-RelicofYu'lon-79331" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 440986.70617 - tps: 200112.26531 + dps: 445558.71923 + tps: 203278.50395 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ResolveofNiuzao-103990" value: { - dps: 417315.42415 - tps: 187923.43921 + dps: 422791.94999 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ReverberatingPrimalDiamond" value: { - dps: 433641.80226 - tps: 170148.71315 + dps: 437542.62341 + tps: 172066.44396 hps: 17.83024 } } dps_results: { key: "TestBeastMastery-AllItems-RevitalizingPrimalDiamond" value: { - dps: 433641.80226 - tps: 170148.71315 + dps: 437542.62341 + tps: 172066.44396 hps: 17.83024 } } dps_results: { key: "TestBeastMastery-AllItems-RuneofRe-Origination-96918" value: { - dps: 443174.64181 - tps: 207425.99701 + dps: 448762.69929 + tps: 209422.91011 hps: 16.44881 } } dps_results: { key: "TestBeastMastery-AllItems-SI:7Operative'sManual-92784" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411744.7455 + tps: 189048.79215 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411961.36584 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SearingWords-81267" value: { - dps: 428059.67863 - tps: 194918.45964 + dps: 433605.42433 + tps: 197584.79395 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 414057.69966 - tps: 189360.02548 + dps: 416695.91753 + tps: 190523.65493 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofCompassion-83736" value: { - dps: 412438.42299 - tps: 187923.43921 + dps: 417858.63912 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofDevotion-83740" value: { - dps: 415724.29497 - tps: 188643.53732 + dps: 421475.63007 + tps: 191743.61134 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofFidelity-83737" value: { - dps: 413992.49664 - tps: 189315.5231 + dps: 419061.48608 + tps: 191140.42534 hps: 18.07442 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofGrace-83738" value: { - dps: 414489.98576 - tps: 188592.57575 + dps: 420098.06041 + tps: 190103.26064 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofKypariZar-84076" value: { - dps: 416038.54015 - tps: 188741.95995 + dps: 421579.41587 + tps: 191712.96413 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofPatience-83739" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigilofRampage-105580" value: { - dps: 450552.16405 - tps: 202907.08828 + dps: 456587.86196 + tps: 205749.36147 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SigiloftheCatacombs-83732" value: { - dps: 415643.76024 - tps: 191913.8746 + dps: 422057.33051 + tps: 193276.21767 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SinisterPrimalDiamond" value: { - dps: 431988.468 - tps: 167662.87587 + dps: 436134.92359 + tps: 169332.56491 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SkullrenderMedallion-93256" value: { - dps: 417576.92564 - tps: 191345.74205 + dps: 420798.27179 + tps: 192308.57551 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SoulBarrier-96927" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SparkofZandalar-96770" value: { - dps: 418490.24237 - tps: 192420.24014 + dps: 423634.08795 + tps: 194385.97255 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpiritsoftheSun-87163" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 418693.74819 - tps: 190254.78598 + dps: 423529.99801 + tps: 191830.8205 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpringrainIdolofRage-101009" value: { - dps: 428770.11022 - tps: 192724.5646 + dps: 435353.59929 + tps: 196250.75708 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 418320.70216 - tps: 187923.43921 + dps: 423903.35314 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpringrainStoneofRage-101012" value: { - dps: 430084.79716 - tps: 192073.6164 + dps: 435157.23714 + tps: 194808.39873 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 414057.69966 - tps: 189360.02548 + dps: 416695.91753 + tps: 190523.65493 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 416424.43355 - tps: 187923.43921 + dps: 421890.67204 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 419167.1468 - tps: 190396.3767 + dps: 424114.87475 + tps: 192224.54794 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 428920.25147 - tps: 192817.56146 + dps: 434900.9483 + tps: 196029.73952 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 418342.3212 - tps: 187923.43921 + dps: 423922.74415 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 430080.26458 - tps: 192073.6164 + dps: 435121.49114 + tps: 194808.39873 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-StuffofNightmares-87160" value: { - dps: 415641.29971 - tps: 187923.43921 + dps: 421098.49616 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SunsoulDefenderStone-101163" value: { - dps: 418461.80871 - tps: 187923.43921 + dps: 423990.28345 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 414100.8557 - tps: 189754.20785 + dps: 419385.6293 + tps: 192554.09467 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 418332.24646 - tps: 187923.43921 + dps: 423923.64523 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 471225.1657 - tps: 207175.28927 + dps: 476289.33966 + tps: 208720.96102 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-SymboloftheCatacombs-83735" value: { - dps: 416278.84588 - tps: 189872.18469 + dps: 422053.69526 + tps: 192711.8985 hps: 18.07442 } } @@ -2033,264 +2033,264 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-TalismanofBloodlust-96864" value: { - dps: 439177.37409 - tps: 200630.43832 + dps: 443481.75186 + tps: 201876.259 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TerrorintheMists-87167" value: { - dps: 436657.24378 - tps: 198488.14068 + dps: 441994.8197 + tps: 202067.87428 hps: 19.87759 } } dps_results: { key: "TestBeastMastery-AllItems-TheGloamingBlade-88149" value: { - dps: 467017.94271 - tps: 206128.92974 + dps: 471809.85263 + tps: 207345.44692 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Thok'sTailTip-105609" value: { - dps: 423176.25899 - tps: 195377.99301 + dps: 428783.52313 + tps: 197128.59951 hps: 17.89611 } } dps_results: { key: "TestBeastMastery-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 409945.61654 - tps: 188016.3537 + dps: 415420.07373 + tps: 190842.12753 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TickingEbonDetonator-105612" value: { - dps: 461979.15273 - tps: 201831.96386 + dps: 467655.8412 + tps: 204844.1364 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Time-LostArtifact-103678" value: { - dps: 424509.42993 - tps: 192769.13469 + dps: 430953.41875 + tps: 194830.6088 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 429277.71642 - tps: 192869.61944 + dps: 435249.76388 + tps: 196131.01209 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 430081.71036 - tps: 192073.6164 + dps: 435137.81238 + tps: 194808.39873 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 422457.80753 - tps: 192039.52198 + dps: 425421.22109 + tps: 193441.70774 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 411447.77417 + tps: 188872.23687 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 414865.26174 - tps: 190046.82877 + dps: 420451.45207 + tps: 193036.94827 hps: 17.84779 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 429934.64608 - tps: 194962.39552 + dps: 435356.98429 + tps: 198282.9715 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-TyrannicalPrimalDiamond" value: { - dps: 430322.85914 - tps: 166881.58616 + dps: 434165.24466 + tps: 168742.34239 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VaporshieldMedallion-93262" value: { - dps: 417125.45751 - tps: 187923.43921 + dps: 419524.59797 + tps: 188723.28376 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VialofDragon'sBlood-87063" value: { - dps: 415256.76693 - tps: 187923.43921 + dps: 420709.52357 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VialofIchorousBlood-100963" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VialofLivingCorruption-105568" value: { - dps: 409545.04826 - tps: 187923.43921 + dps: 414931.85758 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 442453.95618 - tps: 198330.73092 + dps: 448602.53356 + tps: 201881.67537 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VisionofthePredator-81192" value: { - dps: 414915.11194 - tps: 190040.2413 + dps: 420059.51465 + tps: 193015.65218 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 413099.3702 - tps: 189538.7777 + dps: 419190.58532 + tps: 191675.58551 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-WindsweptPages-81125" value: { - dps: 426222.9497 - tps: 195848.48701 + dps: 430587.38499 + tps: 196962.14981 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-WoundripperMedallion-93253" value: { - dps: 430315.36625 - tps: 196164.4601 + dps: 433232.75344 + tps: 197018.82983 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 409536.3895 - tps: 187923.43921 + dps: 414926.84638 + tps: 190647.8087 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 417320.9251 - tps: 176867.85473 + dps: 423430.08215 + tps: 178271.48216 hps: 17.66285 } } dps_results: { key: "TestBeastMastery-AllItems-YaungolFireCarrier-86518" value: { - dps: 467017.94271 - tps: 206128.92974 + dps: 471809.85263 + tps: 207345.44692 hps: 17.66285 } } @@ -2305,16 +2305,16 @@ dps_results: { dps_results: { key: "TestBeastMastery-AllItems-Yu'lon'sBite-103987" value: { - dps: 419936.88953 - tps: 192625.86164 + dps: 425583.05779 + tps: 195527.66114 hps: 18.21674 } } dps_results: { key: "TestBeastMastery-AllItems-ZenAlchemistStone-75274" value: { - dps: 429910.82473 - tps: 193721.86456 + dps: 435245.18325 + tps: 196511.02823 hps: 17.66285 } } diff --git a/sim/hunter/marksmanship/TestMarksmanship.results b/sim/hunter/marksmanship/TestMarksmanship.results index 8276e75f2b..53b554a3bf 100644 --- a/sim/hunter/marksmanship/TestMarksmanship.results +++ b/sim/hunter/marksmanship/TestMarksmanship.results @@ -33,64 +33,64 @@ character_stats_results: { dps_results: { key: "TestMarksmanship-AllItems-AgilePrimalDiamond" value: { - dps: 433970.62145 - tps: 332809.58538 + dps: 436701.08522 + tps: 333616.39084 hps: 18.99596 } } dps_results: { key: "TestMarksmanship-AllItems-AlacrityofXuen-103989" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 418891.43554 - tps: 327576.04728 + dps: 421370.47552 + tps: 329780.84468 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ArrowflightMedallion-93258" value: { - dps: 428824.9218 - tps: 335485.828 + dps: 431616.7086 + tps: 337227.1497 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-AssuranceofConsequence-105472" value: { - dps: 462419.97626 - tps: 358565.49441 - hps: 18.70464 + dps: 468023.80419 + tps: 362961.28208 + hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-AusterePrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BadJuju-96781" value: { - dps: 441016.73985 - tps: 344422.89836 + dps: 443350.04745 + tps: 345492.14026 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BadgeofKypariZar-84079" value: { - dps: 418021.56998 - tps: 328143.83681 + dps: 421766.10535 + tps: 330395.75803 hps: 19.87759 } } @@ -113,752 +113,752 @@ dps_results: { dps_results: { key: "TestMarksmanship-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 425626.22836 - tps: 332865.91329 + dps: 428333.47749 + tps: 334131.78319 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BlossomofPureSnow-89081" value: { - dps: 417668.4158 - tps: 327283.71246 + dps: 420235.06711 + tps: 328715.32733 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BottleofInfiniteStars-87057" value: { - dps: 432455.99972 - tps: 338555.76978 + dps: 434709.34321 + tps: 339354.99649 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BraidofTenSongs-84072" value: { - dps: 418003.82556 - tps: 327760.87878 + dps: 422566.49848 + tps: 330720.337 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Brawler'sStatue-282039" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BreathoftheHydra-96827" value: { - dps: 421546.59013 - tps: 329740.09472 + dps: 426456.47215 + tps: 333164.09629 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-BurningPrimalDiamond" value: { - dps: 432099.54662 - tps: 331453.22374 + dps: 434861.06903 + tps: 332343.66653 hps: 18.99596 } } dps_results: { key: "TestMarksmanship-AllItems-CapacitivePrimalDiamond" value: { - dps: 466280.31224 - tps: 365444.62937 + dps: 469554.5742 + tps: 367101.18377 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CarbonicCarbuncle-81138" value: { - dps: 418070.11197 - tps: 327720.54349 - hps: 20.47882 + dps: 422450.42187 + tps: 330468.91484 + hps: 20.88569 } } dps_results: { key: "TestMarksmanship-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 419516.92214 - tps: 329009.86576 + dps: 423999.38643 + tps: 331834.74042 hps: 19.87759 } } dps_results: { key: "TestMarksmanship-AllItems-CharmofTenSongs-84071" value: { - dps: 422666.91075 - tps: 331665.1769 + dps: 424092.51169 + tps: 331601.54132 hps: 18.96199 } } dps_results: { key: "TestMarksmanship-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 418128.09141 - tps: 327036.93131 + dps: 421730.47909 + tps: 329623.49426 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 417420.55574 - tps: 327753.07942 + dps: 421138.25571 + tps: 330300.02007 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 431647.4347 - tps: 336551.2109 + dps: 436183.99319 + tps: 339382.92758 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-CoreofDecency-87497" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CourageousPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 420107.42295 - tps: 328271.01543 + dps: 422401.42838 + tps: 330001.08454 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 415646.10185 - tps: 325676.54231 + dps: 420081.7603 + tps: 328433.60779 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 424014.84123 - tps: 330865.95197 + dps: 428287.77144 + tps: 333456.48541 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 421404.16841 - tps: 329122.03281 + dps: 423482.24445 + tps: 330853.98262 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 416318.64599 - tps: 326264.73166 + dps: 420763.63148 + tps: 329014.13035 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 426131.77247 - tps: 332315.7994 + dps: 430124.20161 + tps: 334654.20643 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-CurseofHubris-105645" value: { - dps: 423282.95743 - tps: 331421.22087 - hps: 18.7682 + dps: 421362.91457 + tps: 329916.63376 + hps: 19.91185 } } dps_results: { key: "TestMarksmanship-AllItems-CutstitcherMedallion-93255" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Daelo'sFinalWords-87496" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 463267.89121 - tps: 362725.12195 + dps: 464238.16033 + tps: 362940.45311 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DarkmistVortex-87172" value: { - dps: 418140.54754 - tps: 326197.02175 + dps: 422114.28615 + tps: 328903.52898 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 420839.9647 - tps: 329150.24665 + dps: 426307.4453 + tps: 332975.58625 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DestructivePrimalDiamond" value: { - dps: 426446.63934 - tps: 325601.22901 + dps: 428973.1997 + tps: 326168.74794 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DisciplineofXuen-103986" value: { - dps: 434443.71681 - tps: 341031.09465 + dps: 438330.19025 + tps: 343353.36308 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 418891.43554 - tps: 327576.04728 + dps: 421370.47552 + tps: 329780.84468 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 420839.9647 - tps: 329150.24665 + dps: 426307.4453 + tps: 332975.58625 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 412966.2683 - tps: 323331.65828 + dps: 418806.47115 + tps: 327473.16578 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 412966.2683 - tps: 323331.65828 + dps: 418806.47115 + tps: 327473.16578 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 420107.42295 - tps: 328271.01543 + dps: 422401.42838 + tps: 330001.08454 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 415646.10185 - tps: 325676.54231 + dps: 420081.7603 + tps: 328433.60779 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 424045.08352 - tps: 330941.93643 + dps: 428159.12314 + tps: 333420.64013 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 412966.2683 - tps: 323331.65828 + dps: 418806.47115 + tps: 327473.16578 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EffulgentPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EmberPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EmblemofKypariZar-84077" value: { - dps: 422087.20925 - tps: 330972.08073 + dps: 425248.89288 + tps: 332663.99871 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 417459.95311 - tps: 327116.45068 + dps: 421806.1953 + tps: 329791.46139 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EmptyFruitBarrel-81133" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 464882.23079 - tps: 364106.40502 + dps: 468258.94796 + tps: 365871.17269 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 456505.04334 - tps: 358005.20778 + dps: 459774.47072 + tps: 359621.30983 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 464948.71871 - tps: 364186.69878 + dps: 468064.62103 + tps: 365701.12088 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 459947.03061 - tps: 361118.58262 + dps: 461186.26132 + tps: 361593.72355 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 456505.04334 - tps: 358005.20778 + dps: 459774.47072 + tps: 359621.30983 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 456505.04334 - tps: 358005.20778 + dps: 459759.21292 + tps: 359621.30983 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 456505.04334 - tps: 358005.20778 + dps: 459774.47072 + tps: 359621.30983 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 461882.56586 - tps: 362245.5758 + dps: 468294.85081 + tps: 367284.29085 hps: 19.271 } } dps_results: { key: "TestMarksmanship-AllItems-EnigmaticPrimalDiamond" value: { - dps: 426446.63934 - tps: 325601.22901 + dps: 428973.1997 + tps: 326168.74794 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EssenceofTerror-87175" value: { - dps: 419352.06586 - tps: 327963.961 + dps: 423234.66781 + tps: 330245.75711 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EternalPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-EvilEyeofGalakras-105491" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 411614.40408 - tps: 322166.317 + dps: 416256.60537 + tps: 325118.60053 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FearwurmBadge-84074" value: { - dps: 422544.10636 - tps: 331202.44386 + dps: 426039.39192 + tps: 333434.69071 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-FearwurmRelic-84070" value: { - dps: 420406.26631 - tps: 329539.23698 + dps: 423762.45196 + tps: 331298.16939 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 418159.72738 - tps: 326831.20876 + dps: 423354.06654 + tps: 330819.39572 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 416863.32123 - tps: 327224.34816 + dps: 420009.09337 + tps: 329049.494 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 415794.84978 + tps: 324961.20025 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FlashingSteelTalisman-81265" value: { - dps: 421913.85218 - tps: 328806.75974 + dps: 423677.38165 + tps: 330818.34597 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FleetPrimalDiamond" value: { - dps: 424881.65431 - tps: 324120.51267 + dps: 427396.02552 + tps: 324651.56975 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ForlornPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 418701.85033 - tps: 329037.57735 + dps: 421577.97723 + tps: 330700.23156 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Fusion-FireCore-105459" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GazeoftheTwins-96915" value: { - dps: 421806.79161 - tps: 330978.22528 + dps: 426513.51965 + tps: 334063.54811 hps: 20.53644 } } dps_results: { key: "TestMarksmanship-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 425273.62548 - tps: 332079.41974 + dps: 427073.92014 + tps: 334041.35117 hps: 19.02555 } } @@ -873,640 +873,640 @@ dps_results: { dps_results: { key: "TestMarksmanship-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 439352.36638 - tps: 345236.10431 + dps: 442858.2834 + tps: 347305.18963 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 426632.18912 - tps: 332789.15683 + dps: 427267.70896 + tps: 333836.0563 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 418166.4932 - tps: 327826.00371 + dps: 422579.5354 + tps: 330596.45148 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 434081.67186 - tps: 337898.97696 + dps: 438030.43528 + tps: 340242.61213 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Haromm'sTalisman-105527" value: { - dps: 460234.48054 - tps: 360057.08127 + dps: 462774.72984 + tps: 361683.60751 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 429587.47548 - tps: 334984.32436 + dps: 432389.35366 + tps: 337517.37838 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 415760.56505 - tps: 326452.0975 + dps: 417386.93513 + tps: 326693.76481 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 416680.4553 - tps: 326560.53047 + dps: 420966.13927 + tps: 329208.41297 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 414601.19369 - tps: 325390.52816 + dps: 418740.30621 + tps: 328107.5172 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-HeartofFire-81181" value: { - dps: 414961.00546 - tps: 325889.51706 + dps: 419678.40385 + tps: 328570.7838 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-HeartwarmerMedallion-93260" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-HelmbreakerMedallion-93261" value: { - dps: 418079.39956 - tps: 327608.70268 + dps: 420432.15864 + tps: 328877.69973 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Horridon'sLastGasp-96757" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ImpassivePrimalDiamond" value: { - dps: 426446.63934 - tps: 325601.22901 + dps: 428973.1997 + tps: 326168.74794 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-IndomitablePrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-InsigniaofKypariZar-84078" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-IronBellyWok-89083" value: { - dps: 418275.02671 - tps: 326508.68726 + dps: 421902.2517 + tps: 329726.7823 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-IronProtectorTalisman-85181" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-JadeBanditFigurine-86772" value: { - dps: 429135.98758 - tps: 335308.96626 + dps: 433791.46208 + tps: 339508.27475 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 419790.46418 - tps: 328456.27638 + dps: 424458.37125 + tps: 332598.86577 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 416852.64829 - tps: 326547.02413 + dps: 419760.50948 + tps: 328275.24147 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-JadeWarlordFigurine-86775" value: { - dps: 415469.36529 - tps: 326064.318 + dps: 417791.3741 + tps: 326831.0743 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 411713.7158 - tps: 322312.2922 - hps: 10322.92179 + dps: 416407.79809 + tps: 325274.16039 + hps: 10422.72151 } } dps_results: { key: "TestMarksmanship-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 427378.49895 - tps: 338185.8859 + dps: 431766.47536 + tps: 340577.16956 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 412966.2683 - tps: 323331.65828 + dps: 418806.47115 + tps: 327473.16578 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-KnotofTenSongs-84073" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 415662.45908 - tps: 326051.0216 + dps: 416654.92983 + tps: 325720.73402 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 417632.10983 - tps: 326384.15998 + dps: 420389.47315 + tps: 327549.15952 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 427580.22778 - tps: 334465.1606 + dps: 432946.95091 + tps: 338241.05311 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 424541.60382 - tps: 332279.96206 + dps: 427590.3658 + tps: 334068.42323 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LightoftheCosmos-87065" value: { - dps: 417632.10983 - tps: 326384.15998 + dps: 420389.47315 + tps: 327549.15952 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 463267.89121 - tps: 362725.12195 + dps: 464238.16033 + tps: 362940.45311 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 421404.16841 - tps: 329122.03281 + dps: 423482.24445 + tps: 330853.98262 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 416318.64599 - tps: 326264.73166 + dps: 420763.63148 + tps: 329014.13035 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 426006.64729 - tps: 332286.79249 + dps: 430303.51558 + tps: 334901.15911 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MarkoftheCatacombs-83731" value: { - dps: 417435.74315 - tps: 327377.58656 + dps: 423435.83739 + tps: 331673.70418 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 416861.76643 - tps: 327066.84145 + dps: 417956.4445 + tps: 326965.34476 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 415515.08923 - tps: 326107.75025 + dps: 418235.18222 + tps: 327517.77059 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MirrorScope-4700" value: { - dps: 459317.7997 - tps: 360529.43209 + dps: 462308.99712 + tps: 361834.15015 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MistdancerDefenderStone-101087" value: { - dps: 417136.05916 - tps: 327855.60769 + dps: 420227.80543 + tps: 329054.10542 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MistdancerIdolofRage-101113" value: { - dps: 427576.32643 - tps: 334576.02904 + dps: 432871.32774 + tps: 338273.27996 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MistdancerStoneofRage-101117" value: { - dps: 426222.91667 - tps: 334109.08428 + dps: 428854.83204 + tps: 335441.7689 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MithrilWristwatch-282033" value: { - dps: 418595.07459 - tps: 328185.00989 + dps: 422939.71111 + tps: 330913.13939 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 417240.06624 - tps: 326077.85658 + dps: 423466.76108 + tps: 330658.82606 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 414824.8571 - tps: 325593.95335 + dps: 419810.80296 + tps: 328888.4998 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-NitroBoosts-4223" value: { - dps: 466280.31224 - tps: 365444.62937 + dps: 469554.5742 + tps: 367101.18377 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-OathswornDefenderIdol-101303" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-OathswornDefenderStone-101306" value: { - dps: 417576.80603 - tps: 327981.47219 + dps: 422027.41775 + tps: 331027.58691 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-OathswornIdolofBattle-101295" value: { - dps: 416680.4553 - tps: 326560.53047 + dps: 420966.63887 + tps: 329208.41297 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-OathswornStoneofBattle-101294" value: { - dps: 415111.84392 - tps: 325652.27087 + dps: 419232.19808 + tps: 328303.08223 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PhaseFingers-4697" value: { - dps: 468080.90054 - tps: 367277.09648 + dps: 471446.74525 + tps: 369692.10771 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PouchofWhiteAsh-103639" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PowerfulPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PriceofProgress-81266" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 431140.26559 - tps: 335946.46638 + dps: 430784.26874 + tps: 336665.5867 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } @@ -1521,504 +1521,504 @@ dps_results: { dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 420225.22782 - tps: 329616.04802 + dps: 424565.00975 + tps: 332294.02045 hps: 19.87759 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 441742.95193 - tps: 343311.06194 + dps: 445585.03225 + tps: 345621.26314 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 419537.56275 - tps: 329009.86576 + dps: 423998.88683 + tps: 331834.74042 hps: 19.87759 } } dps_results: { key: "TestMarksmanship-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 427475.65625 - tps: 336649.78408 + dps: 432062.92839 + tps: 339532.49252 hps: 19.08559 } } dps_results: { key: "TestMarksmanship-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 427475.65625 - tps: 336649.78408 + dps: 432062.92839 + tps: 339532.49252 hps: 19.08559 } } dps_results: { key: "TestMarksmanship-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 431740.06021 - tps: 335027.65323 + dps: 438215.17017 + tps: 339760.76957 hps: 18.70464 } } dps_results: { key: "TestMarksmanship-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 411755.9146 - tps: 319848.80094 + dps: 417753.75847 + tps: 324110.6663 hps: 18.70464 } } dps_results: { key: "TestMarksmanship-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofChi-Ji-79330" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofKypariZar-84075" value: { - dps: 418112.39288 - tps: 327197.34913 - hps: 19.46479 + dps: 422063.76635 + tps: 329448.08426 + hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofNiuzao-79329" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofXuen-79327" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofXuen-79328" value: { - dps: 430318.94173 - tps: 335402.89117 + dps: 435377.5539 + tps: 338805.15412 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-RelicofYu'lon-79331" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 436409.97485 - tps: 339701.11744 + dps: 439685.92348 + tps: 341610.7758 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ResolveofNiuzao-103990" value: { - dps: 416837.27586 - tps: 327221.62882 + dps: 420339.935 + tps: 329407.64269 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ReverberatingPrimalDiamond" value: { - dps: 432099.54662 - tps: 331453.22374 + dps: 434861.06903 + tps: 332343.66653 hps: 18.99596 } } dps_results: { key: "TestMarksmanship-AllItems-RevitalizingPrimalDiamond" value: { - dps: 432099.54662 - tps: 331453.22374 + dps: 434861.06903 + tps: 332343.66653 hps: 18.99596 } } dps_results: { key: "TestMarksmanship-AllItems-RuneofRe-Origination-96918" value: { - dps: 442148.14246 - tps: 340268.41788 - hps: 17.1438 + dps: 446708.46394 + tps: 343216.87329 + hps: 17.03933 } } dps_results: { key: "TestMarksmanship-AllItems-SI:7Operative'sManual-92784" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SearingWords-81267" value: { - dps: 427621.48876 - tps: 333866.90081 + dps: 432501.01257 + tps: 336976.95903 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 417830.38422 - tps: 326980.39027 - hps: 18.7682 + dps: 420695.48925 + tps: 328389.11106 + hps: 18.70464 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofCompassion-83736" value: { - dps: 415515.08923 - tps: 326107.75025 + dps: 418235.18222 + tps: 327517.77059 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofDevotion-83740" value: { - dps: 418879.4917 - tps: 328808.17358 + dps: 424386.92568 + tps: 333115.73755 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofFidelity-83737" value: { - dps: 418764.45872 - tps: 328123.44483 + dps: 423619.48159 + tps: 331356.03963 hps: 19.87759 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofGrace-83738" value: { - dps: 416455.96652 - tps: 325933.15 + dps: 423484.32346 + tps: 331389.08946 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofKypariZar-84076" value: { - dps: 418505.00648 - tps: 328560.61246 + dps: 423365.09794 + tps: 332331.40737 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofPatience-83739" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SigilofRampage-105580" value: { - dps: 445589.78547 - tps: 344774.09208 + dps: 449785.87454 + tps: 347258.80825 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SigiloftheCatacombs-83732" value: { - dps: 418487.33643 - tps: 327763.9579 + dps: 423247.59763 + tps: 330842.63312 hps: 19.02555 } } dps_results: { key: "TestMarksmanship-AllItems-SinisterPrimalDiamond" value: { - dps: 425738.74161 - tps: 324972.19344 + dps: 428421.97961 + tps: 325721.87095 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SkullrenderMedallion-93256" value: { - dps: 418079.39956 - tps: 327608.70268 + dps: 420432.15864 + tps: 328877.69973 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SoulBarrier-96927" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SparkofZandalar-96770" value: { - dps: 421546.59013 - tps: 329740.09472 + dps: 426456.47215 + tps: 333164.09629 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpiritsoftheSun-87163" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 418815.12114 - tps: 327213.12601 + dps: 421001.34249 + tps: 327919.63498 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpringrainIdolofRage-101009" value: { - dps: 427900.73511 - tps: 334899.46756 + dps: 432881.06588 + tps: 338269.24602 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 417269.66109 - tps: 327833.23113 + dps: 419494.65196 + tps: 328660.9172 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpringrainStoneofRage-101012" value: { - dps: 426323.28184 - tps: 334249.27173 + dps: 429031.33475 + tps: 335634.36601 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 417830.38422 - tps: 326980.39027 - hps: 18.7682 + dps: 420695.48925 + tps: 328389.11106 + hps: 18.70464 } } dps_results: { key: "TestMarksmanship-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 417606.78092 - tps: 328093.85689 + dps: 422054.11397 + tps: 331080.16777 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 419688.34398 - tps: 328000.31583 + dps: 424846.55356 + tps: 331573.84835 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 427756.56481 - tps: 334836.52986 + dps: 432675.99866 + tps: 338117.59466 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 415628.58109 - tps: 326258.96209 + dps: 419584.09529 + tps: 328581.80018 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 425329.35604 - tps: 333308.47551 + dps: 428437.78911 + tps: 335011.14692 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-StuffofNightmares-87160" value: { - dps: 416818.66513 - tps: 327494.38382 + dps: 419844.87941 + tps: 328821.2631 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SunsoulDefenderStone-101163" value: { - dps: 418213.15774 - tps: 328953.13776 + dps: 421230.65225 + tps: 330410.58249 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 416680.4553 - tps: 326560.53047 + dps: 420966.13927 + tps: 329208.41297 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 417805.49949 - tps: 328497.11145 + dps: 419159.39395 + tps: 328366.65042 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 467491.26412 - tps: 365489.31242 + dps: 468442.68029 + tps: 365711.17004 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-SymboloftheCatacombs-83735" value: { - dps: 418860.54423 - tps: 328865.83599 + dps: 421532.41729 + tps: 330281.8399 hps: 19.87759 } } @@ -2033,264 +2033,264 @@ dps_results: { dps_results: { key: "TestMarksmanship-AllItems-TalismanofBloodlust-96864" value: { - dps: 437428.96635 - tps: 341239.82085 + dps: 443433.07963 + tps: 345654.40113 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TerrorintheMists-87167" value: { - dps: 434078.7889 - tps: 339971.35376 + dps: 438028.45011 + tps: 342339.09078 hps: 22.20193 } } dps_results: { key: "TestMarksmanship-AllItems-TheGloamingBlade-88149" value: { - dps: 466280.31224 - tps: 365444.62937 + dps: 469554.5742 + tps: 367101.18377 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Thok'sTailTip-105609" value: { - dps: 427475.65625 - tps: 336649.78408 + dps: 432062.92839 + tps: 339532.49252 hps: 19.08559 } } dps_results: { key: "TestMarksmanship-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 413323.73854 - tps: 323528.28294 + dps: 418338.83508 + tps: 326861.31637 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TickingEbonDetonator-105612" value: { - dps: 446921.65721 - tps: 347937.57638 + dps: 450630.8505 + tps: 349996.0979 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Time-LostArtifact-103678" value: { - dps: 423183.75406 - tps: 331506.3858 + dps: 426388.32003 + tps: 333157.81432 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 427940.46696 - tps: 334790.21641 + dps: 433043.01629 + tps: 338257.26305 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 425972.60671 - tps: 333809.62834 + dps: 428005.47061 + tps: 334597.60957 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 423313.85883 - tps: 330461.75343 + dps: 424799.79045 + tps: 331871.9166 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 417003.99445 - tps: 326862.08637 + dps: 421419.71735 + tps: 329614.94411 hps: 19.52835 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 429107.79217 - tps: 334366.44769 + dps: 433348.86095 + tps: 336971.81875 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416250.54277 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-TyrannicalPrimalDiamond" value: { - dps: 424509.29216 - tps: 323924.06975 + dps: 427260.28495 + tps: 324805.68656 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-VaporshieldMedallion-93262" value: { - dps: 416861.76643 - tps: 327066.84145 + dps: 417956.4445 + tps: 326965.34476 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-VialofDragon'sBlood-87063" value: { - dps: 416710.14311 - tps: 327526.61616 + dps: 419602.04842 + tps: 328887.37429 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-VialofIchorousBlood-100963" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-VialofLivingCorruption-105568" value: { - dps: 411713.7158 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 438861.94801 - tps: 340224.14016 + dps: 442395.90305 + tps: 342239.53771 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-VisionofthePredator-81192" value: { - dps: 416931.68237 - tps: 326746.61593 + dps: 421817.26591 + tps: 329869.48539 hps: 19.31803 } } dps_results: { key: "TestMarksmanship-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 415514.96065 - tps: 324833.97693 + dps: 419093.75809 + tps: 326641.28883 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-WindsweptPages-81125" value: { - dps: 425117.21039 - tps: 332128.28485 + dps: 430441.60616 + tps: 335785.12067 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-WoundripperMedallion-93253" value: { - dps: 428824.9218 - tps: 335485.828 + dps: 431616.7086 + tps: 337227.1497 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 411693.07519 - tps: 322312.2922 + dps: 416251.04237 + tps: 325107.31376 hps: 18.7682 } } dps_results: { key: "TestMarksmanship-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 416562.94345 - tps: 323426.26768 - hps: 18.7682 + dps: 421033.86299 + tps: 326150.54337 + hps: 18.70464 } } dps_results: { key: "TestMarksmanship-AllItems-YaungolFireCarrier-86518" value: { - dps: 466280.31224 - tps: 365444.62937 + dps: 469554.5742 + tps: 367101.18377 hps: 18.7682 } } @@ -2305,16 +2305,16 @@ dps_results: { dps_results: { key: "TestMarksmanship-AllItems-Yu'lon'sBite-103987" value: { - dps: 421774.26749 - tps: 330673.12508 - hps: 20.53713 + dps: 426204.06502 + tps: 333419.32268 + hps: 20.83366 } } dps_results: { key: "TestMarksmanship-AllItems-ZenAlchemistStone-75274" value: { - dps: 429464.2761 - tps: 336013.36361 + dps: 433906.63179 + tps: 338671.46919 hps: 18.7682 } } diff --git a/sim/hunter/survival/TestSurvival.results b/sim/hunter/survival/TestSurvival.results index cf4707f2fb..8d189cbcbf 100644 --- a/sim/hunter/survival/TestSurvival.results +++ b/sim/hunter/survival/TestSurvival.results @@ -33,57 +33,57 @@ character_stats_results: { dps_results: { key: "TestSurvival-AllItems-AgilePrimalDiamond" value: { - dps: 429915.14639 - tps: 336058.97963 + dps: 436560.55746 + tps: 340997.16786 } } dps_results: { key: "TestSurvival-AllItems-AlacrityofXuen-103989" value: { - dps: 403233.76179 - tps: 319346.56917 + dps: 407685.69215 + tps: 322465.11776 } } dps_results: { key: "TestSurvival-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 405988.35833 - tps: 321189.98557 + dps: 408904.11772 + tps: 323552.10603 } } dps_results: { key: "TestSurvival-AllItems-ArrowflightMedallion-93258" value: { - dps: 419592.16246 - tps: 332952.23858 + dps: 422419.10714 + tps: 335355.20359 } } dps_results: { key: "TestSurvival-AllItems-AssuranceofConsequence-105472" value: { - dps: 450676.92224 - tps: 354059.50147 + dps: 456142.42457 + tps: 358371.99665 } } dps_results: { key: "TestSurvival-AllItems-AusterePrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-BadJuju-96781" value: { - dps: 435328.29646 - tps: 345214.55481 + dps: 438914.88849 + tps: 347746.18236 } } dps_results: { key: "TestSurvival-AllItems-BadgeofKypariZar-84079" value: { - dps: 407368.03473 - tps: 323504.61275 + dps: 412000.04149 + tps: 326941.72494 } } dps_results: { @@ -103,659 +103,659 @@ dps_results: { dps_results: { key: "TestSurvival-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 412837.3883 - tps: 326004.76476 + dps: 418034.45644 + tps: 329900.63479 } } dps_results: { key: "TestSurvival-AllItems-BlossomofPureSnow-89081" value: { - dps: 406561.2618 - tps: 322561.98317 + dps: 409224.30883 + tps: 324859.33952 } } dps_results: { key: "TestSurvival-AllItems-BottleofInfiniteStars-87057" value: { - dps: 422692.12069 - tps: 335214.2944 + dps: 427450.66073 + tps: 338809.31227 } } dps_results: { key: "TestSurvival-AllItems-BraidofTenSongs-84072" value: { - dps: 409034.13826 - tps: 324039.0552 + dps: 412979.78667 + tps: 326817.6524 } } dps_results: { key: "TestSurvival-AllItems-Brawler'sStatue-282039" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 404669.04003 + tps: 321055.99965 } } dps_results: { key: "TestSurvival-AllItems-BreathoftheHydra-96827" value: { - dps: 409639.04811 - tps: 323611.31194 + dps: 414455.47126 + tps: 326815.85034 } } dps_results: { key: "TestSurvival-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 404669.04003 + tps: 321055.99965 } } dps_results: { key: "TestSurvival-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-BurningPrimalDiamond" value: { - dps: 427578.13706 - tps: 334212.51974 + dps: 434234.36246 + tps: 339148.24132 } } dps_results: { key: "TestSurvival-AllItems-CapacitivePrimalDiamond" value: { - dps: 466414.61677 - tps: 372324.68819 + dps: 472415.86639 + tps: 376846.51376 } } dps_results: { key: "TestSurvival-AllItems-CarbonicCarbuncle-81138" value: { - dps: 407391.74176 - tps: 323431.63091 + dps: 411864.47787 + tps: 326711.7566 } } dps_results: { key: "TestSurvival-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 409057.50218 - tps: 324790.60573 + dps: 413548.36486 + tps: 328079.71816 } } dps_results: { key: "TestSurvival-AllItems-CharmofTenSongs-84071" value: { - dps: 407981.72636 - tps: 322967.8071 + dps: 413059.26754 + tps: 326311.5379 } } dps_results: { key: "TestSurvival-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 408633.66338 - tps: 323271.4228 + dps: 413820.68479 + tps: 327231.88237 } } dps_results: { key: "TestSurvival-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 407007.55375 - tps: 323333.85835 + dps: 411660.47912 + tps: 326777.69732 } } dps_results: { key: "TestSurvival-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 423161.00198 - tps: 334937.07214 + dps: 427912.26283 + tps: 338364.80559 } } dps_results: { key: "TestSurvival-AllItems-CoreofDecency-87497" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CourageousPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 410597.03291 - tps: 325159.14968 + dps: 414217.12723 + tps: 328195.57603 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 405122.80283 - tps: 321342.38357 + dps: 409713.78181 + tps: 324759.32778 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 415525.79481 - tps: 329015.97463 + dps: 420087.00913 + tps: 332403.46744 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 412104.99786 - tps: 326265.38869 + dps: 415733.74548 + tps: 329315.91431 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 405638.5007 - tps: 321780.66069 + dps: 410238.77043 + tps: 325188.32728 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 417838.24348 - tps: 330697.96237 + dps: 422490.19836 + tps: 334140.66503 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-CurseofHubris-105645" value: { - dps: 413008.10716 - tps: 327482.70498 + dps: 413480.09944 + tps: 328024.12279 } } dps_results: { key: "TestSurvival-AllItems-CutstitcherMedallion-93255" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-Daelo'sFinalWords-87496" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 405757.06163 + tps: 321859.76085 } } dps_results: { key: "TestSurvival-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 461503.05391 - tps: 368726.64598 + dps: 467519.00445 + tps: 373237.01631 } } dps_results: { key: "TestSurvival-AllItems-DarkmistVortex-87172" value: { - dps: 408249.52536 - tps: 321379.82683 + dps: 411724.48255 + tps: 323886.57993 } } dps_results: { key: "TestSurvival-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 413655.97565 - tps: 328351.6839 + dps: 416390.46802 + tps: 330667.39193 } } dps_results: { key: "TestSurvival-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-DestructivePrimalDiamond" value: { - dps: 421949.60168 - tps: 328405.66489 + dps: 428278.48684 + tps: 333063.2096 } } dps_results: { key: "TestSurvival-AllItems-DisciplineofXuen-103986" value: { - dps: 430288.71068 - tps: 342595.0705 + dps: 435075.8129 + tps: 346169.60494 } } dps_results: { key: "TestSurvival-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 405988.35833 - tps: 321189.98557 + dps: 408904.11772 + tps: 323552.10603 } } dps_results: { key: "TestSurvival-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 413655.97565 - tps: 328351.6839 + dps: 416390.46802 + tps: 330667.39193 } } dps_results: { key: "TestSurvival-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 404568.67125 - tps: 321103.63489 + dps: 407198.44459 + tps: 323336.28728 } } dps_results: { key: "TestSurvival-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 404568.67125 - tps: 321103.63489 + dps: 407198.44459 + tps: 323336.28728 } } dps_results: { key: "TestSurvival-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 410597.03291 - tps: 325159.14968 + dps: 414217.12723 + tps: 328195.57603 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 405122.80283 - tps: 321342.38357 + dps: 409713.78181 + tps: 324759.32778 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 415558.90765 - tps: 329057.15995 + dps: 420201.42076 + tps: 332504.88168 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406443.49278 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 404568.67125 - tps: 321103.63489 + dps: 407198.44459 + tps: 323336.28728 } } dps_results: { key: "TestSurvival-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-EffulgentPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-EmberPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-EmblemofKypariZar-84077" value: { - dps: 409892.89665 - tps: 324624.10352 + dps: 413896.36727 + tps: 327215.93349 } } dps_results: { key: "TestSurvival-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 406634.42666 - tps: 322447.56755 + dps: 411427.71624 + tps: 325779.54676 } } dps_results: { key: "TestSurvival-AllItems-EmptyFruitBarrel-81133" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 464118.08986 - tps: 370151.48345 + dps: 469902.89197 + tps: 374478.14702 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 454697.60109 - tps: 362708.92226 + dps: 460903.90668 + tps: 367375.83699 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 464564.35707 - tps: 370468.45666 + dps: 470503.32716 + tps: 374953.75417 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 455364.71967 - tps: 363418.20842 + dps: 462385.55042 + tps: 368826.63095 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 454697.60109 - tps: 362708.92226 + dps: 460895.99811 + tps: 367375.83699 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 454697.60109 - tps: 362708.92226 + dps: 460897.82603 + tps: 367375.83699 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 454697.60109 - tps: 362708.92226 + dps: 460897.82603 + tps: 367375.83699 } } dps_results: { key: "TestSurvival-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 453344.61126 - tps: 360993.42136 + dps: 461633.38545 + tps: 367489.02805 } } dps_results: { key: "TestSurvival-AllItems-EnigmaticPrimalDiamond" value: { - dps: 421949.60168 - tps: 328405.66489 + dps: 428278.48684 + tps: 333063.2096 } } dps_results: { key: "TestSurvival-AllItems-EssenceofTerror-87175" value: { - dps: 408609.1563 - tps: 321718.92986 + dps: 412900.24736 + tps: 324824.09559 } } dps_results: { key: "TestSurvival-AllItems-EternalPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-EvilEyeofGalakras-105491" value: { - dps: 401895.55493 - tps: 318605.59089 + dps: 406446.22477 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-FearwurmBadge-84074" value: { - dps: 408541.21721 - tps: 323261.23285 + dps: 413414.73811 + tps: 326824.38273 } } dps_results: { key: "TestSurvival-AllItems-FearwurmRelic-84070" value: { - dps: 409269.61139 - tps: 323668.68528 + dps: 413635.55573 + tps: 326694.83305 } } dps_results: { key: "TestSurvival-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 409244.07023 - tps: 323606.14196 + dps: 414609.07335 + tps: 327585.31242 } } dps_results: { key: "TestSurvival-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 406943.61514 - tps: 323258.5311 + dps: 411613.09689 + tps: 326718.5279 } } dps_results: { key: "TestSurvival-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 405007.26365 + tps: 320974.79721 } } dps_results: { key: "TestSurvival-AllItems-FlashingSteelTalisman-81265" value: { - dps: 413489.24062 - tps: 326966.97346 + dps: 416205.41502 + tps: 329259.55569 } } dps_results: { key: "TestSurvival-AllItems-FleetPrimalDiamond" value: { - dps: 421478.90271 - tps: 328154.59991 + dps: 427991.86688 + tps: 332948.49979 } } dps_results: { key: "TestSurvival-AllItems-ForlornPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 407652.27639 - tps: 324243.63393 + dps: 412283.69188 + tps: 327675.56248 } } dps_results: { key: "TestSurvival-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Fusion-FireCore-105459" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-GazeoftheTwins-96915" value: { - dps: 411431.89753 - tps: 326900.787 + dps: 415570.1194 + tps: 329851.74543 } } dps_results: { key: "TestSurvival-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 415367.42098 - tps: 328795.30324 + dps: 418168.90443 + tps: 331327.24596 } } dps_results: { @@ -768,562 +768,562 @@ dps_results: { dps_results: { key: "TestSurvival-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 430772.01087 - tps: 344107.11926 + dps: 436756.12907 + tps: 348960.52235 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 417748.62197 - tps: 330550.86075 + dps: 421452.37367 + tps: 333686.99499 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 407802.26598 - tps: 323703.72444 + dps: 412425.03902 + tps: 327120.28985 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 427180.21498 - tps: 337948.16334 + dps: 431932.13662 + tps: 341509.30174 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Haromm'sTalisman-105527" value: { - dps: 455609.51016 - tps: 363620.87478 + dps: 461527.98657 + tps: 367534.91057 } } dps_results: { key: "TestSurvival-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 418817.93988 - tps: 330337.95435 + dps: 423050.11671 + tps: 334093.40817 } } dps_results: { key: "TestSurvival-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 401895.55493 - tps: 318605.59089 + dps: 406446.22477 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 407024.52384 - tps: 323355.73245 + dps: 411683.28431 + tps: 326805.56476 } } dps_results: { key: "TestSurvival-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 405899.52579 - tps: 321993.40989 + dps: 410440.74519 + tps: 325344.70962 } } dps_results: { key: "TestSurvival-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 406995.15199 - tps: 323333.91483 + dps: 411611.52549 + tps: 326741.69271 } } dps_results: { key: "TestSurvival-AllItems-HeartofFire-81181" value: { - dps: 404679.63835 - tps: 321331.28864 + dps: 407468.86179 + tps: 323800.84418 } } dps_results: { key: "TestSurvival-AllItems-HeartwarmerMedallion-93260" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-HelmbreakerMedallion-93261" value: { - dps: 406859.05091 - tps: 322805.85662 + dps: 409512.60801 + tps: 325097.40144 } } dps_results: { key: "TestSurvival-AllItems-Horridon'sLastGasp-96757" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-ImpassivePrimalDiamond" value: { - dps: 421949.60168 - tps: 328405.66489 + dps: 428278.48684 + tps: 333063.2096 } } dps_results: { key: "TestSurvival-AllItems-IndomitablePrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-InsigniaofKypariZar-84078" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-IronBellyWok-89083" value: { - dps: 406345.87767 - tps: 320391.25666 + dps: 410431.32438 + tps: 323940.63845 } } dps_results: { key: "TestSurvival-AllItems-IronProtectorTalisman-85181" value: { - dps: 401896.97716 - tps: 318605.59089 + dps: 406447.7228 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-JadeBanditFigurine-86772" value: { - dps: 418196.96355 - tps: 330576.95532 + dps: 420925.15077 + tps: 332476.1671 } } dps_results: { key: "TestSurvival-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 407026.98812 - tps: 321546.62868 + dps: 409884.12618 + tps: 323631.77648 } } dps_results: { key: "TestSurvival-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 406087.3104 - tps: 322174.43552 + dps: 408816.87488 + tps: 324547.26819 } } dps_results: { key: "TestSurvival-AllItems-JadeWarlordFigurine-86775" value: { - dps: 405055.17612 - tps: 321559.08963 + dps: 407688.12656 + tps: 323794.90177 } } dps_results: { key: "TestSurvival-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 401900.32582 - tps: 318605.59089 - hps: 10216.42654 + dps: 406451.07146 + tps: 321960.5451 + hps: 10325.27358 } } dps_results: { key: "TestSurvival-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 419963.71897 - tps: 336914.07644 + dps: 425088.4485 + tps: 340753.15536 } } dps_results: { key: "TestSurvival-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 404568.67125 - tps: 321103.63489 + dps: 407198.44459 + tps: 323336.28728 } } dps_results: { key: "TestSurvival-AllItems-KnotofTenSongs-84073" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 405334.23193 + tps: 321566.54373 } } dps_results: { key: "TestSurvival-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 405462.41339 - tps: 321940.33585 + dps: 408098.02328 + tps: 324178.79291 } } dps_results: { key: "TestSurvival-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 405482.92736 - tps: 320324.29777 + dps: 410549.2669 + tps: 323662.97415 } } dps_results: { key: "TestSurvival-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 404601.87528 + tps: 320981.62024 } } dps_results: { key: "TestSurvival-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 419314.33521 - tps: 332496.47238 + dps: 424093.45129 + tps: 336119.66702 } } dps_results: { key: "TestSurvival-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 418525.21215 - tps: 332536.01761 + dps: 423286.43191 + tps: 336109.40041 } } dps_results: { key: "TestSurvival-AllItems-LightoftheCosmos-87065" value: { - dps: 405482.92736 - tps: 320324.29777 + dps: 410549.2669 + tps: 323662.97415 } } dps_results: { key: "TestSurvival-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 461499.89476 - tps: 368726.64598 + dps: 467497.59493 + tps: 373237.01631 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 412104.99786 - tps: 326265.38869 + dps: 415733.74548 + tps: 329315.91431 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 405638.5007 - tps: 321780.66069 + dps: 410238.77043 + tps: 325188.32728 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 417928.039 - tps: 330820.29555 + dps: 422494.43731 + tps: 334202.21854 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MarkoftheCatacombs-83731" value: { - dps: 406761.90097 - tps: 322978.18923 + dps: 411373.60202 + tps: 326419.12497 } } dps_results: { key: "TestSurvival-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 405703.18871 - tps: 322165.7442 + dps: 408340.37098 + tps: 324405.76504 } } dps_results: { key: "TestSurvival-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 403925.98421 - tps: 320591.13459 + dps: 408505.13927 + tps: 323973.19677 } } dps_results: { key: "TestSurvival-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-MirrorScope-4700" value: { - dps: 456988.71631 - tps: 364691.21835 + dps: 463009.14441 + tps: 369229.81489 } } dps_results: { key: "TestSurvival-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MistdancerDefenderStone-101087" value: { - dps: 407068.92512 - tps: 323388.04991 + dps: 411710.94065 + tps: 326820.824 } } dps_results: { key: "TestSurvival-AllItems-MistdancerIdolofRage-101113" value: { - dps: 419053.23431 - tps: 332273.50741 + dps: 423723.71161 + tps: 335785.92831 } } dps_results: { key: "TestSurvival-AllItems-MistdancerStoneofRage-101117" value: { - dps: 418544.99298 - tps: 332572.15472 + dps: 423285.26157 + tps: 336125.11248 } } dps_results: { key: "TestSurvival-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-MithrilWristwatch-282033" value: { - dps: 408188.56116 - tps: 324056.85839 + dps: 412802.9046 + tps: 327460.50241 } } dps_results: { key: "TestSurvival-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 410577.45624 - tps: 324628.25442 + dps: 415975.39586 + tps: 328705.25546 } } dps_results: { key: "TestSurvival-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 406956.78179 - tps: 323280.7295 + dps: 411642.13008 + tps: 326756.97283 } } dps_results: { key: "TestSurvival-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-NitroBoosts-4223" value: { - dps: 466414.61677 - tps: 372324.68819 + dps: 472415.86639 + tps: 376846.51376 } } dps_results: { key: "TestSurvival-AllItems-OathswornDefenderIdol-101303" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-OathswornDefenderStone-101306" value: { - dps: 406915.64713 - tps: 323265.69367 + dps: 411608.54911 + tps: 326750.31644 } } dps_results: { key: "TestSurvival-AllItems-OathswornIdolofBattle-101295" value: { - dps: 405899.52579 - tps: 321993.40989 + dps: 410440.74519 + tps: 325344.70962 } } dps_results: { key: "TestSurvival-AllItems-OathswornStoneofBattle-101294" value: { - dps: 407059.97246 - tps: 323407.77039 + dps: 411634.61472 + tps: 326774.06087 } } dps_results: { key: "TestSurvival-AllItems-PhaseFingers-4697" value: { - dps: 462320.71926 - tps: 368671.7175 + dps: 464961.87434 + tps: 370946.45239 } } dps_results: { key: "TestSurvival-AllItems-PouchofWhiteAsh-103639" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 405334.23193 + tps: 321566.54373 } } dps_results: { key: "TestSurvival-AllItems-PowerfulPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-PriceofProgress-81266" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 422542.63149 - tps: 334182.14508 + dps: 426311.6321 + tps: 337381.75331 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { @@ -1336,435 +1336,435 @@ dps_results: { dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 409591.27205 - tps: 325253.04295 + dps: 414084.18923 + tps: 328529.26766 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 435234.93661 - tps: 344102.98778 + dps: 439781.56116 + tps: 347414.92146 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 409056.07995 - tps: 324790.60573 + dps: 413542.28421 + tps: 328079.71816 } } dps_results: { key: "TestSurvival-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 417493.06556 - tps: 333024.30346 + dps: 421762.80026 + tps: 335606.11639 } } dps_results: { key: "TestSurvival-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 417493.06556 - tps: 333024.30346 + dps: 421762.80026 + tps: 335606.11639 } } dps_results: { key: "TestSurvival-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 429229.76446 - tps: 339069.67174 + dps: 434001.09423 + tps: 342964.34323 } } dps_results: { key: "TestSurvival-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 405873.14436 - tps: 319924.16703 + dps: 411073.16926 + tps: 324193.1779 } } dps_results: { key: "TestSurvival-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-RelicofChi-Ji-79330" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-RelicofKypariZar-84075" value: { - dps: 407470.80823 - tps: 322753.89213 + dps: 412131.13071 + tps: 326082.32962 } } dps_results: { key: "TestSurvival-AllItems-RelicofNiuzao-79329" value: { - dps: 401896.97716 - tps: 318605.59089 + dps: 405650.49362 + tps: 321744.08443 } } dps_results: { key: "TestSurvival-AllItems-RelicofXuen-79327" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-RelicofXuen-79328" value: { - dps: 423231.88403 - tps: 335039.76147 + dps: 427877.12286 + tps: 338533.33744 } } dps_results: { key: "TestSurvival-AllItems-RelicofYu'lon-79331" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 430844.77913 - tps: 340739.83684 + dps: 434918.32651 + tps: 343655.0835 } } dps_results: { key: "TestSurvival-AllItems-ResolveofNiuzao-103990" value: { - dps: 407338.93057 - tps: 323937.91812 + dps: 411967.42536 + tps: 327365.67284 } } dps_results: { key: "TestSurvival-AllItems-ReverberatingPrimalDiamond" value: { - dps: 427578.13706 - tps: 334212.51974 + dps: 434234.36246 + tps: 339148.24132 } } dps_results: { key: "TestSurvival-AllItems-RevitalizingPrimalDiamond" value: { - dps: 427578.13706 - tps: 334212.51974 + dps: 434234.36246 + tps: 339148.24132 } } dps_results: { key: "TestSurvival-AllItems-RuneofRe-Origination-96918" value: { - dps: 425555.03701 - tps: 340691.17053 + dps: 431520.11591 + tps: 345541.02055 } } dps_results: { key: "TestSurvival-AllItems-SI:7Operative'sManual-92784" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 405334.23193 + tps: 321566.54373 } } dps_results: { key: "TestSurvival-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 404512.67361 + tps: 320820.91295 } } dps_results: { key: "TestSurvival-AllItems-SearingWords-81267" value: { - dps: 419503.7374 - tps: 332187.00747 + dps: 423947.068 + tps: 335478.28372 } } dps_results: { key: "TestSurvival-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 405878.16289 - tps: 321118.9242 + dps: 408012.35825 + tps: 322909.3351 } } dps_results: { key: "TestSurvival-AllItems-SigilofCompassion-83736" value: { - dps: 403925.98421 - tps: 320591.13459 + dps: 408499.05863 + tps: 323973.19677 } } dps_results: { key: "TestSurvival-AllItems-SigilofDevotion-83740" value: { - dps: 406941.27061 - tps: 323145.76396 + dps: 411559.71831 + tps: 326588.63935 } } dps_results: { key: "TestSurvival-AllItems-SigilofFidelity-83737" value: { - dps: 407397.86715 - tps: 322724.63242 + dps: 412208.55957 + tps: 326064.89382 } } dps_results: { key: "TestSurvival-AllItems-SigilofGrace-83738" value: { - dps: 407685.25016 - tps: 322932.36195 + dps: 411624.95478 + tps: 325550.92794 } } dps_results: { key: "TestSurvival-AllItems-SigilofKypariZar-84076" value: { - dps: 407240.38913 - tps: 323408.18665 + dps: 411846.11122 + tps: 326843.80725 } } dps_results: { key: "TestSurvival-AllItems-SigilofPatience-83739" value: { - dps: 401966.13288 - tps: 318666.80077 + dps: 406517.56859 + tps: 322022.27707 } } dps_results: { key: "TestSurvival-AllItems-SigilofRampage-105580" value: { - dps: 440622.22761 - tps: 347109.76869 + dps: 445036.10534 + tps: 350314.12606 } } dps_results: { key: "TestSurvival-AllItems-SigiloftheCatacombs-83732" value: { - dps: 408712.19337 - tps: 323679.87874 + dps: 412629.79052 + tps: 326220.59854 } } dps_results: { key: "TestSurvival-AllItems-SinisterPrimalDiamond" value: { - dps: 421350.74983 - tps: 327904.83195 + dps: 427768.86481 + tps: 332629.36954 } } dps_results: { key: "TestSurvival-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 403285.02802 - tps: 319722.87087 + dps: 407733.1368 + tps: 323000.27854 } } dps_results: { key: "TestSurvival-AllItems-SkullrenderMedallion-93256" value: { - dps: 406859.05091 - tps: 322805.85662 + dps: 409512.60801 + tps: 325097.40144 } } dps_results: { key: "TestSurvival-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SoulBarrier-96927" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SparkofZandalar-96770" value: { - dps: 409640.08664 - tps: 323612.35046 + dps: 414455.47126 + tps: 326815.85034 } } dps_results: { key: "TestSurvival-AllItems-SpiritsoftheSun-87163" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 409972.86627 - tps: 324311.55103 + dps: 415550.87149 + tps: 328587.62277 } } dps_results: { key: "TestSurvival-AllItems-SpringrainIdolofRage-101009" value: { - dps: 419485.57416 - tps: 332665.55541 + dps: 424263.58032 + tps: 336248.5422 } } dps_results: { key: "TestSurvival-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 406989.02355 - tps: 323315.51253 + dps: 411639.48096 + tps: 326756.8913 } } dps_results: { key: "TestSurvival-AllItems-SpringrainStoneofRage-101012" value: { - dps: 418492.44894 - tps: 332506.41476 + dps: 423252.6653 + tps: 336078.92889 } } dps_results: { key: "TestSurvival-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 405878.16289 - tps: 321118.9242 + dps: 408012.35825 + tps: 322909.3351 } } dps_results: { key: "TestSurvival-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 406715.14597 - tps: 323326.48651 + dps: 411334.89233 + tps: 326745.89356 } } dps_results: { key: "TestSurvival-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 410325.73342 - tps: 324326.97494 + dps: 414761.3617 + tps: 327613.6327 } } dps_results: { key: "TestSurvival-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 419342.38686 - tps: 332621.06481 + dps: 423982.56782 + tps: 336081.49139 } } dps_results: { key: "TestSurvival-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 406970.18687 - tps: 323320.44221 + dps: 411649.15492 + tps: 326791.22275 } } dps_results: { key: "TestSurvival-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 418556.76555 - tps: 332574.69598 + dps: 423310.47569 + tps: 336140.78467 } } dps_results: { key: "TestSurvival-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-StuffofNightmares-87160" value: { - dps: 406168.32567 - tps: 322789.07031 + dps: 410778.92908 + tps: 326201.14019 } } dps_results: { key: "TestSurvival-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SunsoulDefenderStone-101163" value: { - dps: 407009.99227 - tps: 323332.88393 + dps: 411656.39392 + tps: 326770.12948 } } dps_results: { key: "TestSurvival-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 405899.52579 - tps: 321993.40989 + dps: 410440.74519 + tps: 325344.70962 } } dps_results: { key: "TestSurvival-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 407003.41766 - tps: 323335.26669 + dps: 411668.68797 + tps: 326791.66948 } } dps_results: { key: "TestSurvival-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-SymboloftheCatacombs-83735" value: { - dps: 407163.94233 - tps: 323313.15521 + dps: 411890.39532 + tps: 326849.89626 } } dps_results: { @@ -1777,232 +1777,232 @@ dps_results: { dps_results: { key: "TestSurvival-AllItems-TalismanofBloodlust-96864" value: { - dps: 429526.81854 - tps: 339060.74928 + dps: 434597.80316 + tps: 343273.63369 } } dps_results: { key: "TestSurvival-AllItems-TerrorintheMists-87167" value: { - dps: 425051.65003 - tps: 337527.16536 + dps: 429725.84208 + tps: 340950.99665 } } dps_results: { key: "TestSurvival-AllItems-TheGloamingBlade-88149" value: { - dps: 466414.61677 - tps: 372324.68819 + dps: 472415.86639 + tps: 376846.51376 } } dps_results: { key: "TestSurvival-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-Thok'sTailTip-105609" value: { - dps: 417493.06556 - tps: 333024.30346 + dps: 421762.80026 + tps: 335606.11639 } } dps_results: { key: "TestSurvival-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-TickingEbonDetonator-105612" value: { - dps: 445127.24003 - tps: 352598.19167 + dps: 451860.54856 + tps: 357561.1106 } } dps_results: { key: "TestSurvival-AllItems-Time-LostArtifact-103678" value: { - dps: 413229.66762 - tps: 326991.98587 + dps: 416843.15127 + tps: 329409.91203 } } dps_results: { key: "TestSurvival-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 419590.18633 - tps: 332783.48684 + dps: 424165.35727 + tps: 336162.74535 } } dps_results: { key: "TestSurvival-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 418561.70524 - tps: 332584.35567 + dps: 423328.83278 + tps: 336164.05058 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 414396.63226 - tps: 328047.48061 + dps: 417966.54341 + tps: 331032.25974 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 405463.46303 + tps: 321576.80411 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 406333.95224 - tps: 322346.17064 + dps: 410900.06364 + tps: 325717.30711 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 421225.17312 - tps: 333338.97775 + dps: 426161.59413 + tps: 337055.28243 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 401898.90359 - tps: 318605.59089 + dps: 406449.57343 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-TyrannicalPrimalDiamond" value: { - dps: 420080.21304 - tps: 326791.53864 + dps: 426573.47275 + tps: 331566.67059 } } dps_results: { key: "TestSurvival-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-VaporshieldMedallion-93262" value: { - dps: 405703.18871 - tps: 322165.7442 + dps: 408340.37098 + tps: 324405.76504 } } dps_results: { key: "TestSurvival-AllItems-VialofDragon'sBlood-87063" value: { - dps: 405897.65985 - tps: 322525.1893 + dps: 410505.94114 + tps: 325933.6565 } } dps_results: { key: "TestSurvival-AllItems-VialofIchorousBlood-100963" value: { - dps: 401898.8723 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-VialofLivingCorruption-105568" value: { - dps: 401900.32582 - tps: 318605.59089 + dps: 406451.07146 + tps: 321960.5451 } } dps_results: { key: "TestSurvival-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 429481.74909 - tps: 338361.327 + dps: 433956.4355 + tps: 341735.35853 } } dps_results: { key: "TestSurvival-AllItems-VisionofthePredator-81192" value: { - dps: 406839.43491 - tps: 322862.63853 + dps: 411436.16783 + tps: 326277.60458 } } dps_results: { key: "TestSurvival-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 407287.66945 - tps: 321144.58296 + dps: 410833.49369 + tps: 323315.96273 } } dps_results: { key: "TestSurvival-AllItems-WindsweptPages-81125" value: { - dps: 417273.10158 - tps: 330148.23269 + dps: 420800.13721 + tps: 332182.43828 } } dps_results: { key: "TestSurvival-AllItems-WoundripperMedallion-93253" value: { - dps: 419592.16246 - tps: 332952.23858 + dps: 422419.10714 + tps: 335355.20359 } } dps_results: { key: "TestSurvival-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 401898.9344 - tps: 318604.19947 + dps: 406443.5994 + tps: 321959.15368 } } dps_results: { key: "TestSurvival-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 411056.56198 - tps: 324792.36977 + dps: 417683.97039 + tps: 329657.61847 } } dps_results: { key: "TestSurvival-AllItems-YaungolFireCarrier-86518" value: { - dps: 466457.59202 - tps: 372367.66344 + dps: 472227.57814 + tps: 376658.22551 } } dps_results: { @@ -2015,15 +2015,15 @@ dps_results: { dps_results: { key: "TestSurvival-AllItems-Yu'lon'sBite-103987" value: { - dps: 412209.95402 - tps: 327316.13979 + dps: 416756.10168 + tps: 330672.91429 } } dps_results: { key: "TestSurvival-AllItems-ZenAlchemistStone-75274" value: { - dps: 420665.0012 - tps: 333414.82086 + dps: 425412.16743 + tps: 336976.12427 } } dps_results: { diff --git a/sim/lib/library.go b/sim/lib/library.go index 742ec3d5f4..433ead2461 100644 --- a/sim/lib/library.go +++ b/sim/lib/library.go @@ -104,7 +104,10 @@ func getDatabase(itemIds *int32, numItems int32, enchantIds *int32, numEnchants Gems: make([]*proto.SimGem, numGems), } for i, itemId := range ids { - item := core.ItemsByID[itemId] + var item core.Item + if found := core.GetItemByID(itemId); found != nil { + item = *found + } simDB.Items[i] = &proto.SimItem{ Id: item.ID, Name: item.Name, @@ -120,20 +123,28 @@ func getDatabase(itemIds *int32, numItems int32, enchantIds *int32, numEnchants SetId: item.SetID, ScalingOptions: item.ScalingOptions, ItemEffects: item.ItemEffects, + Unique: item.Unique, + LimitCategory: item.LimitCategory, + EotbGemSocket: item.EotbGemSocket, } } for i, enchantId := range eids { - enchant := core.EnchantsByEffectID[enchantId] + var enchant core.Enchant + if found := core.GetEnchantByEffectID(enchantId); found != nil { + enchant = *found + } simDB.Enchants[i] = &proto.SimEnchant{ EffectId: enchant.EffectID, Stats: enchant.Stats[:], EnchantEffects: enchant.EnchantEffects, Name: enchant.Name, Type: enchant.Type, + EnchantType: enchant.EnchantType, + ExtraTypes: enchant.ExtraTypes, } } for i, gemId := range gids { - gem := core.GemsByID[gemId] + gem, _ := core.GetGemByID(gemId) simDB.Gems[i] = &proto.SimGem{ Id: gem.ID, Name: gem.Name, diff --git a/sim/mage/arcane/TestArcane.results b/sim/mage/arcane/TestArcane.results index 61988f1801..96ec35ca95 100644 --- a/sim/mage/arcane/TestArcane.results +++ b/sim/mage/arcane/TestArcane.results @@ -33,148 +33,148 @@ character_stats_results: { dps_results: { key: "TestArcane-AllItems-AgilePrimalDiamond" value: { - dps: 260590.73496 - tps: 251312.20439 + dps: 265451.35713 + tps: 255850.61913 } } dps_results: { key: "TestArcane-AllItems-AlacrityofXuen-103989" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 250996.53948 - tps: 241424.83094 + dps: 253198.26705 + tps: 243632.59572 } } dps_results: { key: "TestArcane-AllItems-ArrowflightMedallion-93258" value: { - dps: 246178.20339 - tps: 236467.35336 + dps: 249557.02626 + tps: 239834.21894 } } dps_results: { key: "TestArcane-AllItems-AssuranceofConsequence-105472" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.9061 + tps: 235506.12628 } } dps_results: { key: "TestArcane-AllItems-AusterePrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-BadJuju-96781" value: { - dps: 248133.34136 - tps: 238755.92558 + dps: 252192.86612 + tps: 242438.12378 } } dps_results: { key: "TestArcane-AllItems-BadgeofKypariZar-84079" value: { - dps: 243569.21941 - tps: 234314.73399 + dps: 247916.96872 + tps: 238289.05286 } } dps_results: { key: "TestArcane-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 284845.60088 - tps: 272544.4036 + dps: 290750.83762 + tps: 278072.08736 } } dps_results: { key: "TestArcane-AllItems-BlossomofPureSnow-89081" value: { - dps: 253980.83456 - tps: 244048.04676 + dps: 257740.84646 + tps: 247795.77747 } } dps_results: { key: "TestArcane-AllItems-BottleofInfiniteStars-87057" value: { - dps: 245939.06378 - tps: 236620.89685 + dps: 250219.59846 + tps: 240508.75307 } } dps_results: { key: "TestArcane-AllItems-BraidofTenSongs-84072" value: { - dps: 243569.21941 - tps: 234314.73399 + dps: 247916.96872 + tps: 238289.05286 } } dps_results: { key: "TestArcane-AllItems-Brawler'sStatue-282039" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 243800.14374 + tps: 234633.99257 } } dps_results: { key: "TestArcane-AllItems-BreathoftheHydra-96827" value: { - dps: 267949.12716 - tps: 257671.12631 + dps: 272255.03108 + tps: 261678.16393 } } dps_results: { key: "TestArcane-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 243800.14374 + tps: 234633.99257 } } dps_results: { key: "TestArcane-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 240868.62657 - tps: 231690.00198 + dps: 244758.70494 + tps: 235223.26414 } } dps_results: { key: "TestArcane-AllItems-BurningPrimalDiamond" value: { - dps: 262335.29643 - tps: 253014.41949 + dps: 267196.65129 + tps: 257553.31821 } } dps_results: { key: "TestArcane-AllItems-CapacitivePrimalDiamond" value: { - dps: 258313.61005 - tps: 249120.44209 + dps: 263001.0089 + tps: 253497.2714 } } dps_results: { key: "TestArcane-AllItems-CarbonicCarbuncle-81138" value: { - dps: 245169.33698 - tps: 235591.63611 + dps: 248945.05927 + tps: 239012.99662 } } dps_results: { key: "TestArcane-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 265510.40989 - tps: 254588.0057 + dps: 268716.9774 + tps: 257460.50811 } } dps_results: { key: "TestArcane-AllItems-CharmofTenSongs-84071" value: { - dps: 245701.94151 - tps: 236369.36204 + dps: 249834.83149 + tps: 240127.59378 } } dps_results: { @@ -187,568 +187,568 @@ dps_results: { dps_results: { key: "TestArcane-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 248049.4186 - tps: 238626.04285 + dps: 251653.35765 + tps: 241891.612 } } dps_results: { key: "TestArcane-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 255003.6017 - tps: 245102.63566 + dps: 259048.22888 + tps: 248781.25392 } } dps_results: { key: "TestArcane-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 248439.66057 - tps: 239004.26547 + dps: 252852.33083 + tps: 243084.5262 } } dps_results: { key: "TestArcane-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 253957.6642 - tps: 244399.62777 + dps: 257565.67107 + tps: 247649.05615 } } dps_results: { key: "TestArcane-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 246264.82246 - tps: 236821.84856 + dps: 250950.30407 + tps: 241148.21001 } } dps_results: { key: "TestArcane-AllItems-CoreofDecency-87497" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-CourageousPrimalDiamond" value: { - dps: 259667.44447 - tps: 250450.10918 + dps: 264393.11078 + tps: 254879.41427 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 248266.4312 - tps: 238606.64293 + dps: 249216.27146 + tps: 239591.46522 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 243528.39937 - tps: 234214.26694 + dps: 247777.07813 + tps: 238060.61768 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245059.66539 + tps: 235511.88556 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 250899.13187 - tps: 241071.73501 + dps: 254679.47292 + tps: 244449.94742 } } dps_results: { key: "TestArcane-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 244610.00549 + tps: 235050.09841 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 249502.19978 - tps: 239740.78895 + dps: 250455.26267 + tps: 240728.66524 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 243901.97448 - tps: 234564.03304 + dps: 248599.28879 + tps: 238880.68237 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 240671.80855 - tps: 231497.49126 + dps: 244392.63843 + tps: 234851.79083 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 253517.49082 - tps: 243605.1758 + dps: 256169.68503 + tps: 245869.87873 } } dps_results: { key: "TestArcane-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245059.66539 + tps: 235511.88556 } } dps_results: { key: "TestArcane-AllItems-CurseofHubris-105645" value: { - dps: 257278.3919 - tps: 246301.59147 + dps: 256473.45896 + tps: 245568.35773 } } dps_results: { key: "TestArcane-AllItems-CutstitcherMedallion-93255" value: { - dps: 250089.73112 - tps: 240617.39126 + dps: 251955.98318 + tps: 242471.00935 } } dps_results: { key: "TestArcane-AllItems-Daelo'sFinalWords-87496" value: { - dps: 240755.29442 - tps: 231577.27847 + dps: 243353.49581 + tps: 234002.05217 } } dps_results: { key: "TestArcane-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 268518.38421 - tps: 257224.8413 + dps: 271670.40009 + tps: 260026.67046 } } dps_results: { key: "TestArcane-AllItems-DarkmistVortex-87172" value: { - dps: 248625.61216 - tps: 239054.44027 + dps: 253392.41186 + tps: 243491.33833 } } dps_results: { key: "TestArcane-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-DestructivePrimalDiamond" value: { - dps: 258562.74369 - tps: 249367.52487 + dps: 263181.95443 + tps: 253677.19117 } } dps_results: { key: "TestArcane-AllItems-DisciplineofXuen-103986" value: { - dps: 252310.2767 - tps: 242163.76618 + dps: 256890.80684 + tps: 246327.09923 } } dps_results: { key: "TestArcane-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 250996.53948 - tps: 241424.83094 + dps: 253198.26705 + tps: 243632.59572 } } dps_results: { key: "TestArcane-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 247501.00945 - tps: 238130.5343 + dps: 249393.31002 + tps: 240010.25447 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 248266.4312 - tps: 238606.64293 + dps: 249216.27146 + tps: 239591.46522 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 243528.39937 - tps: 234214.26694 + dps: 247777.07813 + tps: 238060.61768 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245157.01619 + tps: 235617.41257 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 251346.73765 - tps: 241606.95579 + dps: 254492.77063 + tps: 244395.38143 } } dps_results: { key: "TestArcane-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 240783.25228 - tps: 231605.3459 + dps: 244513.28925 + tps: 234958.68436 } } dps_results: { key: "TestArcane-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 258164.97233 - tps: 248401.58058 + dps: 262461.57637 + tps: 252342.31974 } } dps_results: { key: "TestArcane-AllItems-EffulgentPrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-EmberPrimalDiamond" value: { - dps: 258863.83592 - tps: 249686.74699 + dps: 263606.29465 + tps: 254114.18746 } } dps_results: { key: "TestArcane-AllItems-EmblemofKypariZar-84077" value: { - dps: 242969.62283 - tps: 233660.97597 + dps: 247234.68178 + tps: 237548.12393 } } dps_results: { key: "TestArcane-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 241684.91849 - tps: 233289.82765 + dps: 246185.60284 + tps: 237461.52302 } } dps_results: { key: "TestArcane-AllItems-EmptyFruitBarrel-81133" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 266127.06038 - tps: 254968.66139 + dps: 270394.69678 + tps: 258811.24954 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 266126.95283 - tps: 254968.75108 + dps: 270394.69678 + tps: 258811.24954 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 266127.06038 - tps: 254968.66139 + dps: 270394.69678 + tps: 258811.24954 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 268809.79776 - tps: 257696.48249 + dps: 272842.98215 + tps: 261297.67568 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 266142.15999 - tps: 254983.761 + dps: 270222.98191 + tps: 258639.53467 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 273709.16208 - tps: 262122.62502 + dps: 277460.62491 + tps: 265475.49237 } } dps_results: { key: "TestArcane-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 270205.10911 - tps: 258719.05291 + dps: 273858.65824 + tps: 261963.57583 } } dps_results: { key: "TestArcane-AllItems-EnigmaticPrimalDiamond" value: { - dps: 258562.74369 - tps: 249367.52487 + dps: 263181.95443 + tps: 253677.19117 } } dps_results: { key: "TestArcane-AllItems-EssenceofTerror-87175" value: { - dps: 257178.93263 - tps: 247406.52813 + dps: 261259.85585 + tps: 251108.49951 } } dps_results: { key: "TestArcane-AllItems-EternalPrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-EvilEyeofGalakras-105491" value: { - dps: 240833.51349 - tps: 231657.24316 + dps: 244663.13294 + tps: 235119.51594 } } dps_results: { key: "TestArcane-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 240777.40984 - tps: 231599.3939 + dps: 244585.6407 + tps: 235049.34263 } } dps_results: { key: "TestArcane-AllItems-FearwurmBadge-84074" value: { - dps: 242969.62283 - tps: 233660.97597 + dps: 247234.68178 + tps: 237548.12393 } } dps_results: { key: "TestArcane-AllItems-FearwurmRelic-84070" value: { - dps: 247427.69518 - tps: 238092.68667 + dps: 250600.76517 + tps: 240930.49737 } } dps_results: { key: "TestArcane-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 250175.21897 - tps: 240706.33726 + dps: 253680.61327 + tps: 243875.20665 } } dps_results: { key: "TestArcane-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 255472.03455 - tps: 245480.52747 + dps: 259572.61245 + tps: 249227.31992 } } dps_results: { key: "TestArcane-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 260295.53629 - tps: 249895.62969 + dps: 263378.81078 + tps: 252561.94177 } } dps_results: { key: "TestArcane-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 248587.50862 - tps: 238633.50116 + dps: 251378.3508 + tps: 241364.48608 } } dps_results: { key: "TestArcane-AllItems-FlashingSteelTalisman-81265" value: { - dps: 240755.29442 - tps: 231577.27847 + dps: 244030.32077 + tps: 234840.56591 } } dps_results: { key: "TestArcane-AllItems-FleetPrimalDiamond" value: { - dps: 259112.36521 - tps: 249926.45313 + dps: 263889.40697 + tps: 254386.63259 } } dps_results: { key: "TestArcane-AllItems-ForlornPrimalDiamond" value: { - dps: 258863.83592 - tps: 249686.74699 + dps: 263606.29465 + tps: 254114.18746 } } dps_results: { key: "TestArcane-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 248169.15294 - tps: 238789.49246 + dps: 252597.70489 + tps: 242838.79973 } } dps_results: { key: "TestArcane-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 269954.45958 - tps: 258242.19131 + dps: 273387.7078 + tps: 261325.18088 } } dps_results: { key: "TestArcane-AllItems-Fusion-FireCore-105459" value: { - dps: 240755.07815 - tps: 231577.27847 + dps: 244882.57398 + tps: 235334.15314 } } dps_results: { key: "TestArcane-AllItems-GazeoftheTwins-96915" value: { - dps: 246855.66123 - tps: 237396.80128 + dps: 250568.62113 + tps: 240736.01762 } } dps_results: { key: "TestArcane-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 243029.37171 - tps: 233720.72485 + dps: 246247.32445 + tps: 236953.85211 } } dps_results: { @@ -761,646 +761,646 @@ dps_results: { dps_results: { key: "TestArcane-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 260295.53629 - tps: 249895.62969 + dps: 263378.81078 + tps: 252561.94177 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 253892.78002 - tps: 243861.7786 + dps: 254736.68078 + tps: 244740.23857 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 246024.31641 - tps: 236582.38019 + dps: 250580.40795 + tps: 240798.84938 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 244494.75319 + tps: 234940.1483 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 258007.5448 - tps: 247777.78421 + dps: 261784.77351 + tps: 251183.03475 } } dps_results: { key: "TestArcane-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 244606.26534 + tps: 235046.35826 } } dps_results: { key: "TestArcane-AllItems-Haromm'sTalisman-105527" value: { - dps: 254459.75597 - tps: 245280.03551 + dps: 258532.51543 + tps: 248986.993 } } dps_results: { key: "TestArcane-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 249183.11478 - tps: 239692.27831 + dps: 251064.01269 + tps: 241613.72004 } } dps_results: { key: "TestArcane-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 240868.62657 - tps: 231690.00198 + dps: 244599.94276 + tps: 235040.03568 } } dps_results: { key: "TestArcane-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 246805.2997 - tps: 237182.53131 + dps: 250868.19874 + tps: 240858.21302 } } dps_results: { key: "TestArcane-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 244083.42793 - tps: 234723.67545 + dps: 247964.69584 + tps: 238230.20782 } } dps_results: { key: "TestArcane-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 247618.72686 - tps: 237926.25075 + dps: 251519.82955 + tps: 241435.86197 } } dps_results: { key: "TestArcane-AllItems-HeartofFire-81181" value: { - dps: 244339.40147 - tps: 235063.95758 + dps: 247428.54324 + tps: 238164.85456 } } dps_results: { key: "TestArcane-AllItems-HeartwarmerMedallion-93260" value: { - dps: 250089.73112 - tps: 240617.39126 + dps: 251955.98318 + tps: 242471.00935 } } dps_results: { key: "TestArcane-AllItems-HelmbreakerMedallion-93261" value: { - dps: 246178.20339 - tps: 236467.35336 + dps: 249557.02626 + tps: 239834.21894 } } dps_results: { key: "TestArcane-AllItems-Horridon'sLastGasp-96757" value: { - dps: 253806.42261 - tps: 244195.62425 + dps: 258147.93057 + tps: 248208.02941 } } dps_results: { key: "TestArcane-AllItems-ImpassivePrimalDiamond" value: { - dps: 258562.74369 - tps: 249367.52487 + dps: 263181.95443 + tps: 253677.19117 } } dps_results: { key: "TestArcane-AllItems-IndomitablePrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-InsigniaofKypariZar-84078" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-IronBellyWok-89083" value: { - dps: 249183.11478 - tps: 239692.27831 + dps: 251064.01269 + tps: 241613.72004 } } dps_results: { key: "TestArcane-AllItems-IronProtectorTalisman-85181" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 244730.39903 + tps: 235194.95823 } } dps_results: { key: "TestArcane-AllItems-JadeBanditFigurine-86772" value: { - dps: 245447.49286 - tps: 235966.16263 + dps: 248700.96394 + tps: 239201.69887 } } dps_results: { key: "TestArcane-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 245447.49286 - tps: 235966.16263 + dps: 248700.96394 + tps: 239201.69887 } } dps_results: { key: "TestArcane-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 248597.94958 - tps: 239167.71041 + dps: 250473.57419 + tps: 241030.73144 } } dps_results: { key: "TestArcane-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 252405.26288 - tps: 242559.28577 + dps: 256083.54948 + tps: 246226.46952 } } dps_results: { key: "TestArcane-AllItems-JadeWarlordFigurine-86775" value: { - dps: 245889.51091 - tps: 236344.22819 + dps: 249416.91575 + tps: 239861.20976 } } dps_results: { key: "TestArcane-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 241373.69432 - tps: 232186.23464 - hps: 7529.56012 + dps: 245673.46081 + tps: 236114.94997 + hps: 7661.36918 } } dps_results: { key: "TestArcane-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 286182.93195 - tps: 274357.31163 + dps: 289781.16731 + tps: 277630.48502 } } dps_results: { key: "TestArcane-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 245121.81745 - tps: 235633.07654 + dps: 248644.25088 + tps: 239145.12367 } } dps_results: { key: "TestArcane-AllItems-KnotofTenSongs-84073" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245278.91642 + tps: 236098.84664 } } dps_results: { key: "TestArcane-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 246532.12194 - tps: 236939.50992 + dps: 250063.68817 + tps: 240460.62195 } } dps_results: { key: "TestArcane-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 245518.37465 - tps: 236859.60138 + dps: 249107.40757 + tps: 240126.56544 } } dps_results: { key: "TestArcane-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 243800.14374 + tps: 234633.99257 } } dps_results: { key: "TestArcane-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 245075.72938 - tps: 235780.24826 + dps: 248999.91346 + tps: 239316.97043 } } dps_results: { key: "TestArcane-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 247694.81309 - tps: 237979.35067 + dps: 251785.00966 + tps: 241660.0559 } } dps_results: { key: "TestArcane-AllItems-LightoftheCosmos-87065" value: { - dps: 253612.15131 - tps: 244596.21656 + dps: 257320.17621 + tps: 247979.99532 } } dps_results: { key: "TestArcane-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 266127.06038 - tps: 254968.66139 + dps: 270394.69678 + tps: 258811.24954 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 249502.19978 - tps: 239740.78895 + dps: 250455.26267 + tps: 240728.66524 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 243901.97448 - tps: 234564.03304 + dps: 248599.28879 + tps: 238880.68237 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 244881.20804 + tps: 235332.57093 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 254121.84057 - tps: 244192.41678 + dps: 256662.92658 + tps: 246355.32591 } } dps_results: { key: "TestArcane-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 240671.80855 - tps: 231497.49126 + dps: 244925.25373 + tps: 235364.81052 } } dps_results: { key: "TestArcane-AllItems-MarkoftheCatacombs-83731" value: { - dps: 246359.72749 - tps: 236852.76963 + dps: 250219.49557 + tps: 240349.56296 } } dps_results: { key: "TestArcane-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 240868.62657 - tps: 231690.00198 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 246912.05985 - tps: 237291.46481 + dps: 250446.08647 + tps: 240815.01893 } } dps_results: { key: "TestArcane-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 243366.09447 - tps: 234117.13656 + dps: 247710.27568 + tps: 238088.14407 } } dps_results: { key: "TestArcane-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 247501.00945 - tps: 238130.5343 + dps: 249393.31002 + tps: 240010.25447 } } dps_results: { key: "TestArcane-AllItems-MirrorScope-4700" value: { - dps: 266127.06038 - tps: 254968.66139 + dps: 270394.69678 + tps: 258811.24954 } } dps_results: { key: "TestArcane-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 240785.34248 - tps: 231610.30698 + dps: 244400.92813 + tps: 234860.08053 } } dps_results: { key: "TestArcane-AllItems-MistdancerDefenderStone-101087" value: { - dps: 247046.64117 - tps: 237447.00068 + dps: 251109.48176 + tps: 241106.89232 } } dps_results: { key: "TestArcane-AllItems-MistdancerIdolofRage-101113" value: { - dps: 245191.18686 - tps: 235894.98753 + dps: 249050.93873 + tps: 239384.28579 } } dps_results: { key: "TestArcane-AllItems-MistdancerStoneofRage-101117" value: { - dps: 247644.4244 - tps: 237946.65408 + dps: 251501.70843 + tps: 241395.56269 } } dps_results: { key: "TestArcane-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 248439.66057 - tps: 239004.26547 + dps: 252852.33083 + tps: 243084.5262 } } dps_results: { key: "TestArcane-AllItems-MithrilWristwatch-282033" value: { - dps: 257203.77854 - tps: 246856.04534 + dps: 262137.15787 + tps: 251425.45338 } } dps_results: { key: "TestArcane-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 249126.03207 - tps: 239768.42697 + dps: 253431.39825 + tps: 243779.34555 } } dps_results: { key: "TestArcane-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 255573.44596 - tps: 245618.08318 + dps: 259492.00843 + tps: 249169.44566 } } dps_results: { key: "TestArcane-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-NitroBoosts-4223" value: { - dps: 271929.45412 - tps: 260266.55107 + dps: 277008.79671 + tps: 264912.73429 } } dps_results: { key: "TestArcane-AllItems-OathswornDefenderIdol-101303" value: { - dps: 240719.97956 - tps: 231544.42744 + dps: 244612.46984 + tps: 235052.56276 } } dps_results: { key: "TestArcane-AllItems-OathswornDefenderStone-101306" value: { - dps: 247155.72851 - tps: 237510.63555 + dps: 250974.72644 + tps: 240927.1106 } } dps_results: { key: "TestArcane-AllItems-OathswornIdolofBattle-101295" value: { - dps: 244083.42793 - tps: 234723.67545 + dps: 248191.79106 + tps: 238459.3844 } } dps_results: { key: "TestArcane-AllItems-OathswornStoneofBattle-101294" value: { - dps: 247469.67861 - tps: 237756.08157 + dps: 251447.89483 + tps: 241328.56852 } } dps_results: { key: "TestArcane-AllItems-PhaseFingers-4697" value: { - dps: 271116.45632 - tps: 259479.49163 + dps: 273987.60384 + tps: 262200.18814 } } dps_results: { key: "TestArcane-AllItems-PouchofWhiteAsh-103639" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245278.91642 + tps: 236098.84664 } } dps_results: { key: "TestArcane-AllItems-PowerfulPrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-PriceofProgress-81266" value: { - dps: 247076.35974 - tps: 237705.9689 + dps: 251353.82446 + tps: 241620.70029 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 257557.1656 - tps: 247240.95208 + dps: 258420.62064 + tps: 248139.78958 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 247556.2679 - tps: 238059.16375 + dps: 252219.6289 + tps: 242384.0368 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 244652.63328 + tps: 235109.01628 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 263604.22113 - tps: 252927.58116 + dps: 267899.22314 + tps: 256886.41583 } } dps_results: { key: "TestArcane-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245000.53473 + tps: 235436.46483 } } dps_results: { key: "TestArcane-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 246957.70226 - tps: 237464.65746 + dps: 251613.16366 + tps: 241811.19719 } } dps_results: { key: "TestArcane-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 253386.0422 - tps: 244672.19782 + dps: 255725.76153 + tps: 246697.71925 } } dps_results: { key: "TestArcane-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 280205.9372 - tps: 269569.3638 + dps: 282868.99142 + tps: 271942.2425 } } dps_results: { key: "TestArcane-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 260000.21591 - tps: 249124.62352 + dps: 262555.00882 + tps: 251238.41801 } } dps_results: { key: "TestArcane-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 256928.14598 - tps: 246088.3508 + dps: 259811.24218 + tps: 248633.70734 } } dps_results: { key: "TestArcane-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { @@ -1420,358 +1420,358 @@ dps_results: { dps_results: { key: "TestArcane-AllItems-RelicofChi-Ji-79330" value: { - dps: 249469.29326 - tps: 240004.41857 + dps: 253785.84739 + tps: 243987.55667 } } dps_results: { key: "TestArcane-AllItems-RelicofKypariZar-84075" value: { - dps: 244011.50699 - tps: 235419.49113 + dps: 248500.84865 + tps: 239609.23721 } } dps_results: { key: "TestArcane-AllItems-RelicofNiuzao-79329" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 243438.30791 + tps: 234068.38478 } } dps_results: { key: "TestArcane-AllItems-RelicofXuen-79327" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-RelicofXuen-79328" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-RelicofYu'lon-79331" value: { - dps: 257853.08233 - tps: 247842.64786 + dps: 261597.45373 + tps: 251206.86579 } } dps_results: { key: "TestArcane-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 240704.27945 - tps: 231529.19721 + dps: 244975.75347 + tps: 235435.29257 } } dps_results: { key: "TestArcane-AllItems-ResolveofNiuzao-103990" value: { - dps: 247767.13483 - tps: 238398.41421 + dps: 252188.62491 + tps: 242441.16776 } } dps_results: { key: "TestArcane-AllItems-ReverberatingPrimalDiamond" value: { - dps: 260590.73496 - tps: 251312.20439 + dps: 265451.35713 + tps: 255850.61913 } } dps_results: { key: "TestArcane-AllItems-RevitalizingPrimalDiamond" value: { - dps: 260590.73496 - tps: 251312.20439 + dps: 265451.35713 + tps: 255850.61913 } } dps_results: { key: "TestArcane-AllItems-RuneofRe-Origination-96918" value: { - dps: 240679.99724 - tps: 231502.65126 + dps: 244624.19178 + tps: 235069.90201 } } dps_results: { key: "TestArcane-AllItems-SI:7Operative'sManual-92784" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245278.91642 + tps: 236098.84664 } } dps_results: { key: "TestArcane-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 249582.62385 - tps: 240125.50704 + dps: 251458.11459 + tps: 241988.3783 } } dps_results: { key: "TestArcane-AllItems-SearingWords-81267" value: { - dps: 243589.76685 - tps: 234257.92401 + dps: 247546.53432 + tps: 237832.09072 } } dps_results: { key: "TestArcane-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 254948.78901 - tps: 245482.26849 + dps: 257309.94813 + tps: 247806.55751 } } dps_results: { key: "TestArcane-AllItems-SigilofCompassion-83736" value: { - dps: 244507.26356 - tps: 235266.04406 + dps: 247581.55282 + tps: 237947.22785 } } dps_results: { key: "TestArcane-AllItems-SigilofDevotion-83740" value: { - dps: 242720.24038 - tps: 233411.59352 + dps: 246995.47397 + tps: 237332.80852 } } dps_results: { key: "TestArcane-AllItems-SigilofFidelity-83737" value: { - dps: 244974.83324 - tps: 236372.29813 + dps: 248770.81107 + tps: 239824.19608 } } dps_results: { key: "TestArcane-AllItems-SigilofGrace-83738" value: { - dps: 243366.09447 - tps: 234117.13656 + dps: 247710.27568 + tps: 238088.14407 } } dps_results: { key: "TestArcane-AllItems-SigilofKypariZar-84076" value: { - dps: 246679.25923 - tps: 237165.67602 + dps: 250628.61769 + tps: 240731.35053 } } dps_results: { key: "TestArcane-AllItems-SigilofPatience-83739" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-SigilofRampage-105580" value: { - dps: 240671.80855 - tps: 231497.49126 + dps: 244480.63604 + tps: 234945.94791 } } dps_results: { key: "TestArcane-AllItems-SigiloftheCatacombs-83732" value: { - dps: 247915.90602 - tps: 238542.77517 + dps: 252604.39324 + tps: 242829.58712 } } dps_results: { key: "TestArcane-AllItems-SinisterPrimalDiamond" value: { - dps: 271929.45412 - tps: 260266.55107 + dps: 277008.79671 + tps: 264912.73429 } } dps_results: { key: "TestArcane-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-SkullrenderMedallion-93256" value: { - dps: 246178.20339 - tps: 236467.35336 + dps: 249557.02626 + tps: 239834.21894 } } dps_results: { key: "TestArcane-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 252169.0414 - tps: 242679.25235 + dps: 257123.02812 + tps: 247285.76766 } } dps_results: { key: "TestArcane-AllItems-SoulBarrier-96927" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-SparkofZandalar-96770" value: { - dps: 246649.88298 - tps: 238006.38785 + dps: 250161.12004 + tps: 241238.95238 } } dps_results: { key: "TestArcane-AllItems-SpiritsoftheSun-87163" value: { - dps: 250569.92738 - tps: 241076.42404 + dps: 254803.8882 + tps: 244958.96695 } } dps_results: { key: "TestArcane-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 247950.31549 - tps: 238409.80968 + dps: 252416.37113 + tps: 242540.41518 } } dps_results: { key: "TestArcane-AllItems-SpringrainIdolofRage-101009" value: { - dps: 245075.72938 - tps: 235780.24826 + dps: 249049.01944 + tps: 239382.3665 } } dps_results: { key: "TestArcane-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 255861.25285 - tps: 245845.88897 + dps: 259943.854 + tps: 249558.82273 } } dps_results: { key: "TestArcane-AllItems-SpringrainStoneofRage-101012" value: { - dps: 247669.3257 - tps: 237947.33673 + dps: 252000.14832 + tps: 241881.85478 } } dps_results: { key: "TestArcane-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 248439.66057 - tps: 239004.26547 + dps: 252852.33083 + tps: 243084.5262 } } dps_results: { key: "TestArcane-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 254948.78901 - tps: 245482.26849 + dps: 257309.94813 + tps: 247806.55751 } } dps_results: { key: "TestArcane-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 240868.62657 - tps: 231690.00198 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 246963.09861 - tps: 237616.25772 + dps: 251370.46496 + tps: 241645.90381 } } dps_results: { key: "TestArcane-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 248560.37475 - tps: 239109.81431 + dps: 252942.98552 + tps: 243175.17334 } } dps_results: { key: "TestArcane-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 245105.37084 - tps: 235809.78016 + dps: 249458.76488 + tps: 239787.94912 } } dps_results: { key: "TestArcane-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 255216.24603 - tps: 245276.52861 + dps: 259600.3656 + tps: 249305.92326 } } dps_results: { key: "TestArcane-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 246763.36852 - tps: 237186.37226 + dps: 250873.91076 + tps: 240913.7394 } } dps_results: { key: "TestArcane-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 248439.66057 - tps: 239004.26547 + dps: 252852.33083 + tps: 243084.5262 } } dps_results: { key: "TestArcane-AllItems-StuffofNightmares-87160" value: { - dps: 246256.39309 - tps: 236928.78332 + dps: 250429.51629 + tps: 240707.93218 } } dps_results: { key: "TestArcane-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 240868.62657 - tps: 231690.00198 + dps: 244661.10083 + tps: 235117.48383 } } dps_results: { key: "TestArcane-AllItems-SunsoulDefenderStone-101163" value: { - dps: 247235.97043 - tps: 237537.99284 + dps: 251739.07621 + tps: 241644.15518 } } dps_results: { key: "TestArcane-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 244083.42793 - tps: 234723.67545 + dps: 248632.0378 + tps: 238895.46832 } } dps_results: { key: "TestArcane-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 247899.01623 - tps: 238204.23033 + dps: 252163.23792 + tps: 242059.83159 } } dps_results: { key: "TestArcane-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 248439.66057 - tps: 239004.26547 + dps: 252852.33083 + tps: 243084.5262 } } dps_results: { key: "TestArcane-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 266203.5065 - tps: 255015.07741 + dps: 271393.37185 + tps: 259814.72552 } } dps_results: { key: "TestArcane-AllItems-SymboloftheCatacombs-83735" value: { - dps: 243366.09447 - tps: 234117.13656 + dps: 247710.27568 + tps: 238088.14407 } } dps_results: { @@ -1784,239 +1784,239 @@ dps_results: { dps_results: { key: "TestArcane-AllItems-TalismanofBloodlust-96864" value: { - dps: 249633.66449 - tps: 240311.19974 + dps: 253073.88197 + tps: 243344.16344 } } dps_results: { key: "TestArcane-AllItems-TerrorintheMists-87167" value: { - dps: 249220.88648 - tps: 239115.91459 + dps: 253644.96359 + tps: 243149.74401 } } dps_results: { key: "TestArcane-AllItems-TheGloamingBlade-88149" value: { - dps: 271929.45412 - tps: 260266.55107 + dps: 277008.79671 + tps: 264912.73429 } } dps_results: { key: "TestArcane-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-Thok'sTailTip-105609" value: { - dps: 253386.0422 - tps: 244672.19782 + dps: 256144.10854 + tps: 247118.82309 } } dps_results: { key: "TestArcane-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 252355.77666 - tps: 242810.55631 + dps: 256701.8478 + tps: 246806.92868 } } dps_results: { key: "TestArcane-AllItems-TickingEbonDetonator-105612" value: { - dps: 250682.09046 - tps: 241235.04942 + dps: 254499.09114 + tps: 244669.52054 } } dps_results: { key: "TestArcane-AllItems-Time-LostArtifact-103678" value: { - dps: 245630.09119 - tps: 236319.52458 + dps: 250014.04187 + tps: 240327.43991 } } dps_results: { key: "TestArcane-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 245075.72938 - tps: 235780.24826 + dps: 249280.45781 + tps: 239608.78477 } } dps_results: { key: "TestArcane-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 247647.62114 - tps: 237934.05636 + dps: 251578.03103 + tps: 241472.95492 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 251233.03973 - tps: 241377.52235 + dps: 252116.56521 + tps: 242295.68214 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 240896.78621 - tps: 231718.16162 + dps: 243286.07084 + tps: 234128.27751 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 244497.47908 - tps: 235086.14615 + dps: 249203.48875 + tps: 239452.16365 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245002.54809 + tps: 235438.47819 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 254678.43704 - tps: 244610.6521 + dps: 258667.96288 + tps: 248250.65883 } } dps_results: { key: "TestArcane-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245059.66539 + tps: 235511.88556 } } dps_results: { key: "TestArcane-AllItems-TyrannicalPrimalDiamond" value: { - dps: 257154.26113 - tps: 248018.8683 + dps: 261895.88366 + tps: 252445.70942 } } dps_results: { key: "TestArcane-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 274577.05452 - tps: 262224.58918 + dps: 279037.54411 + tps: 266273.68022 } } dps_results: { key: "TestArcane-AllItems-VaporshieldMedallion-93262" value: { - dps: 246912.05985 - tps: 237291.46481 + dps: 250446.08647 + tps: 240815.01893 } } dps_results: { key: "TestArcane-AllItems-VialofDragon'sBlood-87063" value: { - dps: 245909.38798 - tps: 236591.22105 + dps: 250247.68263 + tps: 240536.83724 } } dps_results: { key: "TestArcane-AllItems-VialofIchorousBlood-100963" value: { - dps: 246678.74216 - tps: 237325.73344 + dps: 250489.80643 + tps: 240772.27632 } } dps_results: { key: "TestArcane-AllItems-VialofLivingCorruption-105568" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245053.40888 + tps: 235505.62906 } } dps_results: { key: "TestArcane-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 240755.09264 - tps: 231577.18626 + dps: 245057.63328 + tps: 235509.85346 } } dps_results: { key: "TestArcane-AllItems-VisionofthePredator-81192" value: { - dps: 251726.17349 - tps: 242033.68969 + dps: 256013.6406 + tps: 245962.28194 } } dps_results: { key: "TestArcane-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 257542.73434 - tps: 247770.80129 + dps: 262236.50226 + tps: 252108.54359 } } dps_results: { key: "TestArcane-AllItems-WindsweptPages-81125" value: { - dps: 244111.71746 - tps: 234741.60878 + dps: 248325.9142 + tps: 238620.96586 } } dps_results: { key: "TestArcane-AllItems-WoundripperMedallion-93253" value: { - dps: 246178.20339 - tps: 236467.35336 + dps: 249557.02626 + tps: 239834.21894 } } dps_results: { key: "TestArcane-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 264159.04705 - tps: 253277.70172 + dps: 266526.03269 + tps: 255284.69168 } } dps_results: { key: "TestArcane-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 287251.78088 - tps: 275958.25802 + dps: 290401.4749 + tps: 278737.6702 } } dps_results: { key: "TestArcane-AllItems-Yu'lon'sBite-103987" value: { - dps: 264642.67783 - tps: 253751.30233 + dps: 269405.34731 + tps: 258135.3066 } } dps_results: { key: "TestArcane-AllItems-ZenAlchemistStone-75274" value: { - dps: 256505.98852 - tps: 246284.16888 + dps: 260356.02591 + tps: 249751.49075 } } dps_results: { diff --git a/sim/mage/fire/TestFire.results b/sim/mage/fire/TestFire.results index 0b498f3f65..fc79c8d587 100644 --- a/sim/mage/fire/TestFire.results +++ b/sim/mage/fire/TestFire.results @@ -33,148 +33,148 @@ character_stats_results: { dps_results: { key: "TestFire-AllItems-AgilePrimalDiamond" value: { - dps: 131954.91122 - tps: 128135.89227 + dps: 133985.13075 + tps: 130086.53185 } } dps_results: { key: "TestFire-AllItems-AlacrityofXuen-103989" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 124681.91724 - tps: 121368.87141 + dps: 126915.11129 + tps: 123950.05899 } } dps_results: { key: "TestFire-AllItems-ArrowflightMedallion-93258" value: { - dps: 122699.19725 - tps: 119130.60017 + dps: 123428.96681 + tps: 120482.07196 } } dps_results: { key: "TestFire-AllItems-AssuranceofConsequence-105472" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-AusterePrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-BadJuju-96781" value: { - dps: 122454.61814 - tps: 119272.83173 + dps: 125935.93859 + tps: 122692.30382 } } dps_results: { key: "TestFire-AllItems-BadgeofKypariZar-84079" value: { - dps: 119795.54063 - tps: 116610.11427 + dps: 122489.32731 + tps: 119240.20083 } } dps_results: { key: "TestFire-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 155436.39214 - tps: 150664.68355 + dps: 160246.0617 + tps: 155363.26578 } } dps_results: { key: "TestFire-AllItems-BlossomofPureSnow-89081" value: { - dps: 128216.98523 - tps: 124540.07837 + dps: 128935.99819 + tps: 125902.04567 } } dps_results: { key: "TestFire-AllItems-BottleofInfiniteStars-87057" value: { - dps: 121283.02037 - tps: 118101.23396 + dps: 124368.42637 + tps: 121121.11834 } } dps_results: { key: "TestFire-AllItems-BraidofTenSongs-84072" value: { - dps: 119795.54063 - tps: 116610.11427 + dps: 122489.32731 + tps: 119240.20083 } } dps_results: { key: "TestFire-AllItems-Brawler'sStatue-282039" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 118798.92893 + tps: 116083.54079 } } dps_results: { key: "TestFire-AllItems-BreathoftheHydra-96827" value: { - dps: 140854.62193 - tps: 136614.94747 + dps: 143208.7665 + tps: 138869.28825 } } dps_results: { key: "TestFire-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 118798.92893 + tps: 116083.54079 } } dps_results: { key: "TestFire-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-BurningPrimalDiamond" value: { - dps: 133308.39198 - tps: 129471.25526 + dps: 134855.14684 + tps: 130935.72455 } } dps_results: { key: "TestFire-AllItems-CapacitivePrimalDiamond" value: { - dps: 130816.92789 - tps: 127004.39629 + dps: 133193.20644 + tps: 129276.07693 } } dps_results: { key: "TestFire-AllItems-CarbonicCarbuncle-81138" value: { - dps: 121983.61039 - tps: 118521.02159 + dps: 124624.11651 + tps: 121058.71179 } } dps_results: { key: "TestFire-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 138195.3209 - tps: 134170.89295 + dps: 141506.76846 + tps: 137423.18982 } } dps_results: { key: "TestFire-AllItems-CharmofTenSongs-84071" value: { - dps: 120774.73899 - tps: 117516.39974 + dps: 124375.88211 + tps: 121040.92496 } } dps_results: { @@ -187,561 +187,561 @@ dps_results: { dps_results: { key: "TestFire-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 122079.31322 - tps: 118794.08176 + dps: 125879.67327 + tps: 122519.77008 } } dps_results: { key: "TestFire-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 129454.89422 - tps: 126176.06259 + dps: 131960.15915 + tps: 128625.36825 } } dps_results: { key: "TestFire-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 123503.62724 - tps: 120219.73264 + dps: 126467.87936 + tps: 123124.79839 } } dps_results: { key: "TestFire-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 126883.74029 - tps: 123550.1977 + dps: 129769.21608 + tps: 126373.98559 } } dps_results: { key: "TestFire-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 122867.35246 - tps: 119567.37645 + dps: 126168.69658 + tps: 122794.87077 } } dps_results: { key: "TestFire-AllItems-CoreofDecency-87497" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CourageousPrimalDiamond" value: { - dps: 131281.43306 - tps: 127454.6864 + dps: 132772.93554 + tps: 128864.91472 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 121844.77461 - tps: 118507.18557 + dps: 122165.7585 + tps: 119315.60385 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 120853.01345 - tps: 117614.62437 + dps: 123466.27602 + tps: 120142.37861 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 118346.85909 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 124847.75827 - tps: 121429.1097 + dps: 127148.04834 + tps: 123641.37849 } } dps_results: { key: "TestFire-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 123138.89667 - tps: 119778.57267 + dps: 122957.58337 + tps: 120089.4478 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 121352.69683 - tps: 118120.11886 + dps: 123875.54112 + tps: 120557.14544 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 118346.85909 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 125943.54397 - tps: 122490.12042 + dps: 127915.87458 + tps: 124371.80334 } } dps_results: { key: "TestFire-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-CurseofHubris-105645" value: { - dps: 131240.22567 - tps: 127126.06278 + dps: 113448.70593 + tps: 110337.33787 } } dps_results: { key: "TestFire-AllItems-CutstitcherMedallion-93255" value: { - dps: 124341.16893 - tps: 121048.45658 + dps: 126318.97505 + tps: 123486.20418 } } dps_results: { key: "TestFire-AllItems-Daelo'sFinalWords-87496" value: { - dps: 118346.85909 - tps: 115162.16458 + dps: 121963.52673 + tps: 119192.1041 } } dps_results: { key: "TestFire-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 129204.76719 - tps: 125537.78412 + dps: 131613.52959 + tps: 127858.68223 } } dps_results: { key: "TestFire-AllItems-DarkmistVortex-87172" value: { - dps: 123529.94793 - tps: 120221.22656 + dps: 126080.07516 + tps: 122694.15696 } } dps_results: { key: "TestFire-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-DestructivePrimalDiamond" value: { - dps: 131217.82275 - tps: 127401.74858 + dps: 133306.06908 + tps: 129371.55544 } } dps_results: { key: "TestFire-AllItems-DisciplineofXuen-103986" value: { - dps: 128519.08623 - tps: 125340.24927 + dps: 129890.49206 + tps: 126658.73675 } } dps_results: { key: "TestFire-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 124681.91724 - tps: 121368.87141 + dps: 126915.11129 + tps: 123950.05899 } } dps_results: { key: "TestFire-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 123110.73818 - tps: 119847.91529 + dps: 123975.81768 + tps: 121167.12939 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 121844.77461 - tps: 118507.18557 + dps: 122165.7585 + tps: 119315.60385 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 120853.01345 - tps: 117614.62437 + dps: 123466.27602 + tps: 120142.37861 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 124498.36285 - tps: 121091.32331 + dps: 126519.10722 + tps: 123026.33814 } } dps_results: { key: "TestFire-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 118347.20575 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 130733.83832 - tps: 127352.26025 + dps: 133436.94547 + tps: 129983.18304 } } dps_results: { key: "TestFire-AllItems-EffulgentPrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-EmberPrimalDiamond" value: { - dps: 130788.27045 - tps: 126973.15873 + dps: 132278.78879 + tps: 128382.39248 } } dps_results: { key: "TestFire-AllItems-EmblemofKypariZar-84077" value: { - dps: 120170.73968 - tps: 116968.72487 + dps: 122642.61792 + tps: 119374.65186 } } dps_results: { key: "TestFire-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 121494.69484 - tps: 118228.84622 + dps: 124087.49733 + tps: 120753.40611 } } dps_results: { key: "TestFire-AllItems-EmptyFruitBarrel-81133" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 128828.77127 - tps: 125098.85097 + dps: 131234.60406 + tps: 127414.87784 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 128828.77127 - tps: 125098.85097 + dps: 131234.60406 + tps: 127414.87784 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 128828.77127 - tps: 125098.85097 + dps: 131234.60406 + tps: 127414.87784 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 128274.25948 - tps: 124473.22842 + dps: 130559.83471 + tps: 126670.56203 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 128780.93724 - tps: 125051.71731 + dps: 131186.61444 + tps: 127367.58858 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 132529.53393 - tps: 128688.32058 + dps: 134951.48572 + tps: 131028.5868 } } dps_results: { key: "TestFire-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 131902.52016 - tps: 128117.27277 + dps: 134029.03791 + tps: 130137.40842 } } dps_results: { key: "TestFire-AllItems-EnigmaticPrimalDiamond" value: { - dps: 131217.82275 - tps: 127401.74858 + dps: 133306.06908 + tps: 129371.55544 } } dps_results: { key: "TestFire-AllItems-EternalPrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-EvilEyeofGalakras-105491" value: { - dps: 118345.65553 - tps: 115160.22916 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121137.89245 + tps: 117887.93011 } } dps_results: { key: "TestFire-AllItems-FearwurmBadge-84074" value: { - dps: 120170.73968 - tps: 116968.72487 + dps: 122642.61792 + tps: 119374.65186 } } dps_results: { key: "TestFire-AllItems-FearwurmRelic-84070" value: { - dps: 123662.7851 - tps: 120409.34111 + dps: 125292.25349 + tps: 121979.25256 } } dps_results: { key: "TestFire-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 123572.8531 - tps: 120262.39017 + dps: 127742.07259 + tps: 124348.1414 } } dps_results: { key: "TestFire-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 128568.43014 - tps: 125291.83644 + dps: 131846.21568 + tps: 128501.68023 } } dps_results: { key: "TestFire-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 130490.2698 - tps: 126818.20758 + dps: 132356.19333 + tps: 128601.11979 } } dps_results: { key: "TestFire-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 123454.12572 - tps: 120009.44636 + dps: 120646.3145 + tps: 117734.61092 } } dps_results: { key: "TestFire-AllItems-FlashingSteelTalisman-81265" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 120486.34592 + tps: 117743.12248 } } dps_results: { key: "TestFire-AllItems-FleetPrimalDiamond" value: { - dps: 130463.87853 - tps: 126669.24656 + dps: 132471.13614 + tps: 128597.72464 } } dps_results: { key: "TestFire-AllItems-ForlornPrimalDiamond" value: { - dps: 130788.27045 - tps: 126973.15873 + dps: 132278.78879 + tps: 128382.39248 } } dps_results: { key: "TestFire-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 122454.61814 - tps: 119272.83173 + dps: 125935.93859 + tps: 122692.30382 } } dps_results: { key: "TestFire-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 138073.35241 - tps: 133798.17583 + dps: 141508.13829 + tps: 137154.24704 } } dps_results: { key: "TestFire-AllItems-Fusion-FireCore-105459" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-GazeoftheTwins-96915" value: { - dps: 123856.85805 - tps: 120404.6402 + dps: 127640.32081 + tps: 124076.89156 } } dps_results: { key: "TestFire-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 120200.93095 - tps: 116997.3184 + dps: 120765.88253 + tps: 118030.10456 } } dps_results: { @@ -754,639 +754,639 @@ dps_results: { dps_results: { key: "TestFire-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 130490.2698 - tps: 126818.20758 + dps: 132356.19333 + tps: 128601.11979 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 125812.57083 - tps: 122323.60908 + dps: 126133.49246 + tps: 123190.63904 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 122584.23025 - tps: 119285.1684 + dps: 126072.05784 + tps: 122699.99949 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 129282.33224 - tps: 125659.24307 + dps: 131993.55713 + tps: 128306.29842 } } dps_results: { key: "TestFire-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 118346.85909 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-Haromm'sTalisman-105527" value: { - dps: 124511.68825 - tps: 121359.71089 + dps: 127586.60717 + tps: 124372.86362 } } dps_results: { key: "TestFire-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 121946.93041 - tps: 118628.02486 + dps: 121017.03697 + tps: 118124.44648 } } dps_results: { key: "TestFire-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 118341.1298 - tps: 115156.01859 + dps: 121183.34367 + tps: 117934.53236 } } dps_results: { key: "TestFire-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 122198.33625 - tps: 119009.36573 + dps: 125050.27458 + tps: 121802.58132 } } dps_results: { key: "TestFire-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 121615.42649 - tps: 118380.26954 + dps: 124362.09528 + tps: 121039.58239 } } dps_results: { key: "TestFire-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 121903.57895 - tps: 118719.16487 + dps: 124372.42409 + tps: 121124.57468 } } dps_results: { key: "TestFire-AllItems-HeartofFire-81181" value: { - dps: 120142.96533 - tps: 116957.53897 + dps: 120833.33387 + tps: 118116.08973 } } dps_results: { key: "TestFire-AllItems-HeartwarmerMedallion-93260" value: { - dps: 124341.16893 - tps: 121048.45658 + dps: 126318.97505 + tps: 123486.20418 } } dps_results: { key: "TestFire-AllItems-HelmbreakerMedallion-93261" value: { - dps: 122699.19725 - tps: 119130.60017 + dps: 123428.96681 + tps: 120482.07196 } } dps_results: { key: "TestFire-AllItems-Horridon'sLastGasp-96757" value: { - dps: 127255.33443 - tps: 123914.31636 + dps: 130324.28021 + tps: 126920.33493 } } dps_results: { key: "TestFire-AllItems-ImpassivePrimalDiamond" value: { - dps: 131217.82275 - tps: 127401.74858 + dps: 133306.06908 + tps: 129371.55544 } } dps_results: { key: "TestFire-AllItems-IndomitablePrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-InsigniaofKypariZar-84078" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-IronBellyWok-89083" value: { - dps: 121946.93041 - tps: 118628.02486 + dps: 121017.03697 + tps: 118124.44648 } } dps_results: { key: "TestFire-AllItems-IronProtectorTalisman-85181" value: { - dps: 118345.56416 - tps: 115160.79961 + dps: 121188.1247 + tps: 117939.31338 } } dps_results: { key: "TestFire-AllItems-JadeBanditFigurine-86772" value: { - dps: 120999.20069 - tps: 117690.33751 + dps: 121372.28909 + tps: 118474.02409 } } dps_results: { key: "TestFire-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 120999.20069 - tps: 117690.33751 + dps: 121372.28909 + tps: 118474.02409 } } dps_results: { key: "TestFire-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 123765.33432 - tps: 120487.74372 + dps: 124726.84655 + tps: 121904.52651 } } dps_results: { key: "TestFire-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 127295.12339 - tps: 123696.63624 + dps: 127322.67931 + tps: 124354.13378 } } dps_results: { key: "TestFire-AllItems-JadeWarlordFigurine-86775" value: { - dps: 120458.92324 - tps: 117272.85406 + dps: 121806.57452 + tps: 119065.74937 } } dps_results: { key: "TestFire-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 118347.24429 - tps: 115162.16458 - hps: 3684.48543 + dps: 121189.80482 + tps: 117940.67835 + hps: 3773.35885 } } dps_results: { key: "TestFire-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 145678.45835 - tps: 141398.10735 + dps: 149449.56056 + tps: 145095.3704 } } dps_results: { key: "TestFire-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 120121.08834 - tps: 116935.01916 + dps: 121604.88789 + tps: 118864.06274 } } dps_results: { key: "TestFire-AllItems-KnotofTenSongs-84073" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 116815.90596 + tps: 114095.7718 } } dps_results: { key: "TestFire-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 120890.9671 - tps: 117701.98062 + dps: 122385.16544 + tps: 119646.41674 } } dps_results: { key: "TestFire-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 124151.31347 - tps: 120527.04521 + dps: 126872.39605 + tps: 123160.83953 } } dps_results: { key: "TestFire-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 118798.92893 + tps: 116083.54079 } } dps_results: { key: "TestFire-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 120475.11862 - tps: 117289.69225 + dps: 123975.71077 + tps: 120728.40273 } } dps_results: { key: "TestFire-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 122628.49896 - tps: 119444.62162 + dps: 125351.83591 + tps: 122112.77234 } } dps_results: { key: "TestFire-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 128828.77127 - tps: 125098.85097 + dps: 131234.60406 + tps: 127414.87784 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 123138.89667 - tps: 119778.57267 + dps: 122957.58337 + tps: 120089.4478 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 121352.69683 - tps: 118120.11886 + dps: 123875.54112 + tps: 120557.14544 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 118347.20575 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 126284.12973 - tps: 122831.56423 + dps: 128291.67481 + tps: 124748.77816 } } dps_results: { key: "TestFire-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-MarkoftheCatacombs-83731" value: { - dps: 122081.00782 - tps: 118879.77687 + dps: 124102.09428 + tps: 120834.73752 } } dps_results: { key: "TestFire-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 121102.34791 - tps: 117915.01065 + dps: 122489.29275 + tps: 119750.54405 } } dps_results: { key: "TestFire-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 119658.45841 - tps: 116473.03204 + dps: 122394.85055 + tps: 119145.72407 } } dps_results: { key: "TestFire-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 123110.73818 - tps: 119847.91529 + dps: 123975.81768 + tps: 121167.12939 } } dps_results: { key: "TestFire-AllItems-MirrorScope-4700" value: { - dps: 128828.77127 - tps: 125098.85097 + dps: 131234.60406 + tps: 127414.87784 } } dps_results: { key: "TestFire-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 118345.91082 - tps: 115160.79961 + dps: 121188.1247 + tps: 117939.31338 } } dps_results: { key: "TestFire-AllItems-MistdancerDefenderStone-101087" value: { - dps: 123512.1764 - tps: 120333.15939 + dps: 126061.71803 + tps: 122822.31568 } } dps_results: { key: "TestFire-AllItems-MistdancerIdolofRage-101113" value: { - dps: 120473.1832 - tps: 117287.75683 + dps: 123975.71077 + tps: 120728.40273 } } dps_results: { key: "TestFire-AllItems-MistdancerStoneofRage-101117" value: { - dps: 122911.17299 - tps: 119721.66895 + dps: 125143.49636 + tps: 121897.2769 } } dps_results: { key: "TestFire-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 123503.62724 - tps: 120219.73264 + dps: 126467.87936 + tps: 123124.79839 } } dps_results: { key: "TestFire-AllItems-MithrilWristwatch-282033" value: { - dps: 129217.1247 - tps: 125652.42772 + dps: 132742.91974 + tps: 129110.73343 } } dps_results: { key: "TestFire-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 125525.82096 - tps: 122174.8669 + dps: 128207.63219 + tps: 124788.92207 } } dps_results: { key: "TestFire-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 129195.69856 - tps: 125914.09032 + dps: 132452.58722 + tps: 129112.72106 } } dps_results: { key: "TestFire-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-NitroBoosts-4223" value: { - dps: 133308.39198 - tps: 129471.25526 + dps: 134855.14684 + tps: 130935.72455 } } dps_results: { key: "TestFire-AllItems-OathswornDefenderIdol-101303" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 121230.8121 + tps: 117981.68562 } } dps_results: { key: "TestFire-AllItems-OathswornDefenderStone-101306" value: { - dps: 124045.18444 - tps: 120866.99698 + dps: 126136.03725 + tps: 122897.55481 } } dps_results: { key: "TestFire-AllItems-OathswornIdolofBattle-101295" value: { - dps: 121615.42649 - tps: 118380.26954 + dps: 124362.09528 + tps: 121039.58239 } } dps_results: { key: "TestFire-AllItems-OathswornStoneofBattle-101294" value: { - dps: 122578.52055 - tps: 119385.60384 + dps: 125242.45696 + tps: 121994.46852 } } dps_results: { key: "TestFire-AllItems-PhaseFingers-4697" value: { - dps: 132813.91163 - tps: 128974.64175 + dps: 132110.34975 + tps: 128793.56416 } } dps_results: { key: "TestFire-AllItems-PouchofWhiteAsh-103639" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 116815.90596 + tps: 114095.7718 } } dps_results: { key: "TestFire-AllItems-PowerfulPrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-PriceofProgress-81266" value: { - dps: 123282.2013 - tps: 120015.33927 + dps: 125532.24337 + tps: 122205.3566 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 128306.47722 - tps: 124716.51935 + dps: 127909.84496 + tps: 124900.38969 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 123829.5933 - tps: 120505.03781 + dps: 127101.96429 + tps: 123712.40134 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 133422.37299 - tps: 129656.90199 + dps: 135680.96623 + tps: 131850.58345 } } dps_results: { key: "TestFire-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 118344.03668 - tps: 115158.99551 + dps: 121186.2092 + tps: 117937.46792 } } dps_results: { key: "TestFire-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 123435.85962 - tps: 120125.29602 + dps: 126838.76689 + tps: 123457.62447 } } dps_results: { key: "TestFire-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 124177.34286 - tps: 120923.41721 + dps: 126656.41675 + tps: 123347.193 } } dps_results: { key: "TestFire-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 145736.28493 - tps: 141948.32408 + dps: 148918.25651 + tps: 145051.58789 } } dps_results: { key: "TestFire-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 128363.34074 - tps: 124766.88382 + dps: 130586.79282 + tps: 126908.45899 } } dps_results: { key: "TestFire-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 124253.04658 - tps: 120717.35671 + dps: 127060.40684 + tps: 123439.8403 } } dps_results: { key: "TestFire-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { @@ -1406,358 +1406,358 @@ dps_results: { dps_results: { key: "TestFire-AllItems-RelicofChi-Ji-79330" value: { - dps: 124370.22346 - tps: 121077.29375 + dps: 127108.98958 + tps: 123754.29476 } } dps_results: { key: "TestFire-AllItems-RelicofKypariZar-84075" value: { - dps: 124846.66578 - tps: 121482.98201 + dps: 126914.32207 + tps: 123472.69835 } } dps_results: { key: "TestFire-AllItems-RelicofNiuzao-79329" value: { - dps: 118346.85909 - tps: 115162.16458 + dps: 122048.37425 + tps: 119276.19719 } } dps_results: { key: "TestFire-AllItems-RelicofXuen-79327" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-RelicofXuen-79328" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-RelicofYu'lon-79331" value: { - dps: 128746.78227 - tps: 125279.15799 + dps: 132107.69701 + tps: 128551.51511 } } dps_results: { key: "TestFire-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-ResolveofNiuzao-103990" value: { - dps: 122271.57113 - tps: 119089.78472 + dps: 125752.64815 + tps: 122508.58006 } } dps_results: { key: "TestFire-AllItems-ReverberatingPrimalDiamond" value: { - dps: 131954.91122 - tps: 128135.89227 + dps: 133985.13075 + tps: 130086.53185 } } dps_results: { key: "TestFire-AllItems-RevitalizingPrimalDiamond" value: { - dps: 131954.91122 - tps: 128135.89227 + dps: 133985.13075 + tps: 130086.53185 } } dps_results: { key: "TestFire-AllItems-RuneofRe-Origination-96918" value: { - dps: 117940.12691 - tps: 114698.145 + dps: 120851.91808 + tps: 117548.82512 } } dps_results: { key: "TestFire-AllItems-SI:7Operative'sManual-92784" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 116815.90596 + tps: 114095.7718 } } dps_results: { key: "TestFire-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 123969.33397 - tps: 120682.33648 + dps: 125669.24573 + tps: 122838.72144 } } dps_results: { key: "TestFire-AllItems-SearingWords-81267" value: { - dps: 121013.30072 - tps: 117773.99438 + dps: 123518.24756 + tps: 120194.35016 } } dps_results: { key: "TestFire-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 130715.30835 - tps: 126780.09592 + dps: 129593.04209 + tps: 126300.38986 } } dps_results: { key: "TestFire-AllItems-SigilofCompassion-83736" value: { - dps: 119658.45841 - tps: 116473.33096 + dps: 122394.85055 + tps: 119146.08997 } } dps_results: { key: "TestFire-AllItems-SigilofDevotion-83740" value: { - dps: 120129.19831 - tps: 116927.96737 + dps: 122611.49036 + tps: 119343.21172 } } dps_results: { key: "TestFire-AllItems-SigilofFidelity-83737" value: { - dps: 124703.49321 - tps: 121363.49593 + dps: 126942.63395 + tps: 123529.51256 } } dps_results: { key: "TestFire-AllItems-SigilofGrace-83738" value: { - dps: 119658.45841 - tps: 116473.03204 + dps: 122394.85055 + tps: 119145.72407 } } dps_results: { key: "TestFire-AllItems-SigilofKypariZar-84076" value: { - dps: 122138.86626 - tps: 118936.85146 + dps: 124605.05189 + tps: 121338.0077 } } dps_results: { key: "TestFire-AllItems-SigilofPatience-83739" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SigilofRampage-105580" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SigiloftheCatacombs-83732" value: { - dps: 120608.85083 - tps: 117392.71758 + dps: 122995.72666 + tps: 119730.66112 } } dps_results: { key: "TestFire-AllItems-SinisterPrimalDiamond" value: { - dps: 137558.5715 - tps: 133614.14408 + dps: 140071.01253 + tps: 136018.08212 } } dps_results: { key: "TestFire-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SkullrenderMedallion-93256" value: { - dps: 122699.19725 - tps: 119130.60017 + dps: 123428.96681 + tps: 120482.07196 } } dps_results: { key: "TestFire-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 125982.28212 - tps: 122675.32525 + dps: 129007.48832 + tps: 125630.49609 } } dps_results: { key: "TestFire-AllItems-SoulBarrier-96927" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SparkofZandalar-96770" value: { - dps: 125422.5691 - tps: 121794.88812 + dps: 128636.4171 + tps: 124921.93473 } } dps_results: { key: "TestFire-AllItems-SpiritsoftheSun-87163" value: { - dps: 125027.20718 - tps: 121724.21353 + dps: 127536.96253 + tps: 124173.47647 } } dps_results: { key: "TestFire-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 125118.60158 - tps: 121814.25363 + dps: 128291.59116 + tps: 124918.50094 } } dps_results: { key: "TestFire-AllItems-SpringrainIdolofRage-101009" value: { - dps: 120475.11862 - tps: 117289.69225 + dps: 123975.71077 + tps: 120728.40273 } } dps_results: { key: "TestFire-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 127520.52141 - tps: 124232.81596 + dps: 130707.21462 + tps: 127361.839 } } dps_results: { key: "TestFire-AllItems-SpringrainStoneofRage-101012" value: { - dps: 123522.99506 - tps: 120340.45494 + dps: 125805.81441 + tps: 122569.8505 } } dps_results: { key: "TestFire-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 123503.62724 - tps: 120219.73264 + dps: 126467.87936 + tps: 123124.79839 } } dps_results: { key: "TestFire-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 130715.30835 - tps: 126780.09592 + dps: 129593.04209 + tps: 126300.38986 } } dps_results: { key: "TestFire-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 121818.9516 - tps: 118637.16519 + dps: 125404.70311 + tps: 122160.51266 } } dps_results: { key: "TestFire-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 123912.25337 - tps: 120657.97422 + dps: 127242.52235 + tps: 123915.98697 } } dps_results: { key: "TestFire-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 120475.11862 - tps: 117289.69225 + dps: 123975.71077 + tps: 120728.40273 } } dps_results: { key: "TestFire-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 127799.46285 - tps: 124516.84577 + dps: 131006.45745 + tps: 127664.81012 } } dps_results: { key: "TestFire-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 122887.17277 - tps: 119702.40331 + dps: 124192.41038 + tps: 120946.38598 } } dps_results: { key: "TestFire-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 123503.62724 - tps: 120219.73264 + dps: 126467.87936 + tps: 123124.79839 } } dps_results: { key: "TestFire-AllItems-StuffofNightmares-87160" value: { - dps: 121430.54442 - tps: 118248.75801 + dps: 125063.01139 + tps: 121819.25426 } } dps_results: { key: "TestFire-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-SunsoulDefenderStone-101163" value: { - dps: 123730.51973 - tps: 120547.72484 + dps: 126225.29014 + tps: 122985.20569 } } dps_results: { key: "TestFire-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 121615.42649 - tps: 118380.26954 + dps: 124362.09528 + tps: 121039.58239 } } dps_results: { key: "TestFire-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 122978.11228 - tps: 119786.90103 + dps: 124677.31923 + tps: 121425.55158 } } dps_results: { key: "TestFire-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 123503.62724 - tps: 120219.73264 + dps: 126467.87936 + tps: 123124.79839 } } dps_results: { key: "TestFire-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 129318.79863 - tps: 125651.62675 + dps: 131725.86325 + tps: 127970.81366 } } dps_results: { key: "TestFire-AllItems-SymboloftheCatacombs-83735" value: { - dps: 119658.45841 - tps: 116473.03204 + dps: 122394.85055 + tps: 119145.72407 } } dps_results: { @@ -1770,232 +1770,232 @@ dps_results: { dps_results: { key: "TestFire-AllItems-TalismanofBloodlust-96864" value: { - dps: 121728.57253 - tps: 118519.54479 + dps: 124677.6644 + tps: 121411.37528 } } dps_results: { key: "TestFire-AllItems-TerrorintheMists-87167" value: { - dps: 126593.50782 - tps: 122948.41181 + dps: 129999.27817 + tps: 126259.27081 } } dps_results: { key: "TestFire-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-Thok'sTailTip-105609" value: { - dps: 124177.34286 - tps: 120923.41721 + dps: 126656.41675 + tps: 123347.193 } } dps_results: { key: "TestFire-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 126497.75949 - tps: 123170.90327 + dps: 129415.77755 + tps: 126027.19665 } } dps_results: { key: "TestFire-AllItems-TickingEbonDetonator-105612" value: { - dps: 124353.76169 - tps: 121175.5331 + dps: 127064.04456 + tps: 123821.00799 } } dps_results: { key: "TestFire-AllItems-Time-LostArtifact-103678" value: { - dps: 121156.53816 - tps: 117974.75175 + dps: 124236.85668 + tps: 120989.54864 } } dps_results: { key: "TestFire-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 120475.11862 - tps: 117289.69225 + dps: 123975.71077 + tps: 120728.40273 } } dps_results: { key: "TestFire-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 123454.43977 - tps: 120268.93839 + dps: 126230.77497 + tps: 122977.58796 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 124357.1469 - tps: 120928.71892 + dps: 124542.43313 + tps: 121644.92082 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 118347.24429 - tps: 115162.16458 + dps: 119116.90945 + tps: 116400.57163 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 122238.00776 - tps: 119001.26784 + dps: 124660.8 + tps: 121337.36404 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 118347.20575 - tps: 115162.16458 + dps: 121189.41962 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 127308.34161 - tps: 123796.857 + dps: 129914.89495 + tps: 126313.69731 } } dps_results: { key: "TestFire-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-TyrannicalPrimalDiamond" value: { - dps: 129417.38721 - tps: 125620.78937 + dps: 131391.75908 + tps: 127516.04113 } } dps_results: { key: "TestFire-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 141902.59087 - tps: 136934.89801 + dps: 145500.91026 + tps: 140364.4128 } } dps_results: { key: "TestFire-AllItems-VaporshieldMedallion-93262" value: { - dps: 121102.34791 - tps: 117915.01065 + dps: 122489.29275 + tps: 119750.54405 } } dps_results: { key: "TestFire-AllItems-VialofDragon'sBlood-87063" value: { - dps: 121283.02037 - tps: 118101.23396 + dps: 124368.42637 + tps: 121121.11834 } } dps_results: { key: "TestFire-AllItems-VialofIchorousBlood-100963" value: { - dps: 122858.13361 - tps: 119599.72768 + dps: 125050.61185 + tps: 121731.27597 } } dps_results: { key: "TestFire-AllItems-VialofLivingCorruption-105568" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 118347.59094 - tps: 115162.16458 + dps: 121189.80482 + tps: 117940.67835 } } dps_results: { key: "TestFire-AllItems-VisionofthePredator-81192" value: { - dps: 127685.84443 - tps: 124155.22199 + dps: 130740.67185 + tps: 127137.79118 } } dps_results: { key: "TestFire-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 130285.32702 - tps: 126814.76853 + dps: 132410.25686 + tps: 128865.4176 } } dps_results: { key: "TestFire-AllItems-WindsweptPages-81125" value: { - dps: 122146.65777 - tps: 118891.64981 + dps: 124451.02051 + tps: 121120.33491 } } dps_results: { key: "TestFire-AllItems-WoundripperMedallion-93253" value: { - dps: 122699.19725 - tps: 119130.60017 + dps: 123428.96681 + tps: 120482.07196 } } dps_results: { key: "TestFire-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 132455.60334 - tps: 128644.03571 + dps: 136047.84305 + tps: 132106.88128 } } dps_results: { key: "TestFire-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 147575.0228 - tps: 143587.2451 + dps: 150789.98468 + tps: 146685.55549 } } dps_results: { key: "TestFire-AllItems-Yu'lon'sBite-103987" value: { - dps: 139927.56081 - tps: 135901.81354 + dps: 143460.26644 + tps: 139341.73042 } } dps_results: { key: "TestFire-AllItems-ZenAlchemistStone-75274" value: { - dps: 126641.44471 - tps: 123172.61198 + dps: 129198.3589 + tps: 125646.40796 } } dps_results: { diff --git a/sim/mage/frost/TestFrost.results b/sim/mage/frost/TestFrost.results index ac6369506e..26049c4cdc 100644 --- a/sim/mage/frost/TestFrost.results +++ b/sim/mage/frost/TestFrost.results @@ -33,148 +33,148 @@ character_stats_results: { dps_results: { key: "TestFrost-AllItems-AgilePrimalDiamond" value: { - dps: 456441.08448 - tps: 290312.80741 + dps: 461163.11015 + tps: 293592.57389 } } dps_results: { key: "TestFrost-AllItems-AlacrityofXuen-103989" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 425489.13179 - tps: 262261.53434 + dps: 428448.25004 + tps: 264012.24529 } } dps_results: { key: "TestFrost-AllItems-ArrowflightMedallion-93258" value: { - dps: 418959.4631 - tps: 258345.83793 + dps: 423486.22194 + tps: 261065.69314 } } dps_results: { key: "TestFrost-AllItems-AssuranceofConsequence-105472" value: { - dps: 413653.77992 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-AusterePrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-BadJuju-96781" value: { - dps: 422615.44003 - tps: 255306.35156 + dps: 427638.67817 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-BadgeofKypariZar-84079" value: { - dps: 417063.33929 - tps: 255306.35156 + dps: 422025.89714 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 462895.45058 - tps: 285449.03782 + dps: 468151.4484 + tps: 288864.53127 } } dps_results: { key: "TestFrost-AllItems-BlossomofPureSnow-89081" value: { - dps: 429250.47047 - tps: 264614.72306 + dps: 433682.28117 + tps: 267243.74037 } } dps_results: { key: "TestFrost-AllItems-BottleofInfiniteStars-87057" value: { - dps: 419888.22769 - tps: 255306.35156 + dps: 424878.81742 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-BraidofTenSongs-84072" value: { - dps: 417063.33929 - tps: 255306.35156 + dps: 422025.89714 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Brawler'sStatue-282039" value: { - dps: 413601.60901 - tps: 255306.35156 + dps: 416279.26694 + tps: 257174.23761 } } dps_results: { key: "TestFrost-AllItems-BreathoftheHydra-96827" value: { - dps: 443928.77645 - tps: 273876.13865 + dps: 450796.6218 + tps: 278512.64616 } } dps_results: { key: "TestFrost-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 413601.60901 - tps: 255306.35156 + dps: 416279.26694 + tps: 257174.23761 } } dps_results: { key: "TestFrost-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 413653.71841 - tps: 255306.35156 + dps: 418579.14685 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-BurningPrimalDiamond" value: { - dps: 458569.39939 - tps: 291664.30539 + dps: 463234.90447 + tps: 294909.52167 } } dps_results: { key: "TestFrost-AllItems-CapacitivePrimalDiamond" value: { - dps: 450432.00769 - tps: 285462.67058 + dps: 454864.91463 + tps: 288592.48262 } } dps_results: { key: "TestFrost-AllItems-CarbonicCarbuncle-81138" value: { - dps: 418700.20691 - tps: 258177.24672 + dps: 423653.28524 + tps: 261309.06615 } } dps_results: { key: "TestFrost-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 445882.25322 - tps: 274737.77846 + dps: 449222.01139 + tps: 277022.52596 } } dps_results: { key: "TestFrost-AllItems-CharmofTenSongs-84071" value: { - dps: 419288.20694 - tps: 258564.35538 + dps: 423551.59854 + tps: 261189.8245 } } dps_results: { @@ -187,568 +187,568 @@ dps_results: { dps_results: { key: "TestFrost-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 424146.35746 - tps: 258518.16227 + dps: 430976.65483 + tps: 262944.22485 } } dps_results: { key: "TestFrost-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 430142.40303 - tps: 261446.89965 + dps: 434922.34814 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 423697.16401 - tps: 261446.89965 + dps: 428448.40942 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 429725.79856 - tps: 265113.35191 + dps: 434466.90227 + tps: 268164.71887 } } dps_results: { key: "TestFrost-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 419639.4742 - tps: 258671.84166 + dps: 424247.23063 + tps: 261618.9045 } } dps_results: { key: "TestFrost-AllItems-CoreofDecency-87497" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CourageousPrimalDiamond" value: { - dps: 452037.56423 - tps: 286555.55443 + dps: 456602.30412 + tps: 289729.65448 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 421981.32858 - tps: 260740.77743 + dps: 424644.34429 + tps: 262425.24757 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 417007.98445 - tps: 257228.30659 + dps: 422002.66095 + tps: 260423.27762 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 413636.58508 - tps: 255306.35156 + dps: 418567.74743 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 425608.95841 - tps: 262935.16589 + dps: 430395.76637 + tps: 266027.82844 } } dps_results: { key: "TestFrost-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 413610.99573 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 423471.15822 - tps: 261700.24863 + dps: 426162.33935 + tps: 263376.52723 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 417532.74436 - tps: 257571.32094 + dps: 422407.33915 + tps: 260659.80538 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 413638.86119 - tps: 255306.35156 + dps: 418581.18124 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 427575.79353 - tps: 264108.26084 + dps: 432319.342 + tps: 267134.50017 } } dps_results: { key: "TestFrost-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 413617.60978 - tps: 255306.35156 + dps: 418566.26162 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-CurseofHubris-105645" value: { - dps: 426327.43399 - tps: 262067.1557 + dps: 426199.86693 + tps: 261852.92845 } } dps_results: { key: "TestFrost-AllItems-CutstitcherMedallion-93255" value: { - dps: 424963.56678 - tps: 262213.14889 + dps: 429006.81308 + tps: 264642.9742 } } dps_results: { key: "TestFrost-AllItems-Daelo'sFinalWords-87496" value: { - dps: 413651.27714 - tps: 255306.35156 + dps: 416521.2285 + tps: 257001.72434 } } dps_results: { key: "TestFrost-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 463773.11741 - tps: 294440.12918 + dps: 470241.00889 + tps: 298888.15475 } } dps_results: { key: "TestFrost-AllItems-DarkmistVortex-87172" value: { - dps: 423754.43728 - tps: 262532.76098 + dps: 427789.34342 + tps: 264944.29672 } } dps_results: { key: "TestFrost-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-DestructivePrimalDiamond" value: { - dps: 450985.27315 - tps: 285773.87363 + dps: 455349.6584 + tps: 288883.24644 } } dps_results: { key: "TestFrost-AllItems-DisciplineofXuen-103986" value: { - dps: 426271.22258 - tps: 255306.35156 + dps: 431432.28198 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 425489.13179 - tps: 262261.53434 + dps: 428448.25004 + tps: 264012.24529 } } dps_results: { key: "TestFrost-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 421660.22691 - tps: 260227.12892 + dps: 425677.91614 + tps: 262655.02776 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 421981.32858 - tps: 260740.77743 + dps: 424644.34429 + tps: 262425.24757 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 417007.98445 - tps: 257228.30659 + dps: 422002.66095 + tps: 260423.27762 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 413629.17124 - tps: 255306.35156 + dps: 418551.93514 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 425323.1349 - tps: 262789.12438 + dps: 430108.6437 + tps: 265811.12518 } } dps_results: { key: "TestFrost-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 413622.01332 - tps: 255306.35156 + dps: 418567.54018 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 436238.25232 - tps: 269127.54887 + dps: 441055.70654 + tps: 272224.98605 } } dps_results: { key: "TestFrost-AllItems-EffulgentPrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-EmberPrimalDiamond" value: { - dps: 450978.737 - tps: 285882.98643 + dps: 455491.99371 + tps: 289022.69054 } } dps_results: { key: "TestFrost-AllItems-EmblemofKypariZar-84077" value: { - dps: 416511.41666 - tps: 256967.02169 + dps: 421267.51426 + tps: 260025.84033 } } dps_results: { key: "TestFrost-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 415556.25229 - tps: 256086.32769 + dps: 421701.54093 + tps: 260199.0877 } } dps_results: { key: "TestFrost-AllItems-EmptyFruitBarrel-81133" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 463128.85621 - tps: 294227.41036 + dps: 469459.1503 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 463128.85621 - tps: 294227.41036 + dps: 469459.1503 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 463128.85621 - tps: 294227.41036 + dps: 469459.1503 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 466595.71341 - tps: 297292.78463 + dps: 472181.94465 + tps: 301263.92107 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 463036.91502 - tps: 294227.41036 + dps: 469406.10484 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 470970.62613 - tps: 299172.24691 + dps: 477254.49096 + tps: 303442.42526 } } dps_results: { key: "TestFrost-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 466059.38703 - tps: 295137.45019 + dps: 473190.8389 + tps: 300097.34106 } } dps_results: { key: "TestFrost-AllItems-EnigmaticPrimalDiamond" value: { - dps: 450985.27315 - tps: 285773.87363 + dps: 455349.6584 + tps: 288883.24644 } } dps_results: { key: "TestFrost-AllItems-EssenceofTerror-87175" value: { - dps: 435862.73401 - tps: 269523.76815 + dps: 442190.29431 + tps: 273744.13612 } } dps_results: { key: "TestFrost-AllItems-EternalPrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-EvilEyeofGalakras-105491" value: { - dps: 413653.82455 - tps: 255306.35156 + dps: 418582.66705 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 413593.56205 - tps: 255306.35156 + dps: 418537.56779 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-FearwurmBadge-84074" value: { - dps: 416511.41666 - tps: 256967.02169 + dps: 421267.51426 + tps: 260025.84033 } } dps_results: { key: "TestFrost-AllItems-FearwurmRelic-84070" value: { - dps: 419987.49963 - tps: 259691.49119 + dps: 423534.3948 + tps: 261904.68059 } } dps_results: { key: "TestFrost-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 426912.50028 - tps: 260431.12719 + dps: 433774.73077 + tps: 264887.92436 } } dps_results: { key: "TestFrost-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 430947.37223 - tps: 261446.89965 + dps: 435792.15324 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 420013.53053 - tps: 260402.64128 + dps: 425303.8259 + tps: 263925.51897 } } dps_results: { key: "TestFrost-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 421778.49758 - tps: 260360.257 + dps: 423897.77547 + tps: 261536.69703 } } dps_results: { key: "TestFrost-AllItems-FlashingSteelTalisman-81265" value: { - dps: 413649.00191 - tps: 255306.35156 + dps: 416589.04461 + tps: 257120.83857 } } dps_results: { key: "TestFrost-AllItems-FleetPrimalDiamond" value: { - dps: 451253.70626 - tps: 284663.59609 + dps: 455844.40254 + tps: 287839.88199 } } dps_results: { key: "TestFrost-AllItems-ForlornPrimalDiamond" value: { - dps: 450978.737 - tps: 285882.98643 + dps: 455491.99371 + tps: 289022.69054 } } dps_results: { key: "TestFrost-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 422615.54893 - tps: 255306.35156 + dps: 427630.35969 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 446915.4642 - tps: 275736.85732 + dps: 451191.61972 + tps: 278541.48495 } } dps_results: { key: "TestFrost-AllItems-Fusion-FireCore-105459" value: { - dps: 413651.44319 - tps: 255306.35156 + dps: 418585.52779 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-GazeoftheTwins-96915" value: { - dps: 420942.6121 - tps: 259488.90254 + dps: 425232.29154 + tps: 262244.31673 } } dps_results: { key: "TestFrost-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 416566.47989 - tps: 257009.90584 + dps: 419283.00715 + tps: 258864.43143 } } dps_results: { @@ -761,632 +761,632 @@ dps_results: { dps_results: { key: "TestFrost-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 420013.53053 - tps: 260402.64128 + dps: 425303.8259 + tps: 263925.51897 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 428753.58446 - tps: 265154.73493 + dps: 431448.10531 + tps: 266787.08101 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 419301.06064 - tps: 258459.15165 + dps: 423910.78435 + tps: 261419.49129 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 413599.33289 - tps: 255306.35156 + dps: 418550.26447 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 435090.06303 - tps: 268861.73766 + dps: 439801.06162 + tps: 271835.04987 } } dps_results: { key: "TestFrost-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 413653.77992 - tps: 255306.35156 + dps: 418581.18124 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Haromm'sTalisman-105527" value: { - dps: 433530.89783 - tps: 275183.53099 + dps: 438302.75886 + tps: 278167.38215 } } dps_results: { key: "TestFrost-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 417662.40722 - tps: 257729.2905 + dps: 419414.745 + tps: 259011.49751 } } dps_results: { key: "TestFrost-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 413621.21107 - tps: 255306.35156 + dps: 418566.26162 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 420191.07605 - tps: 255306.35156 + dps: 425173.05406 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 417728.40788 - tps: 257675.8725 + dps: 422598.30381 + tps: 260751.4286 } } dps_results: { key: "TestFrost-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 420724.80752 - tps: 255306.35156 + dps: 425655.16495 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-HeartofFire-81181" value: { - dps: 417938.91238 - tps: 255306.35156 + dps: 420637.95587 + tps: 257174.23761 } } dps_results: { key: "TestFrost-AllItems-HeartwarmerMedallion-93260" value: { - dps: 424963.56678 - tps: 262213.14889 + dps: 429006.81308 + tps: 264642.9742 } } dps_results: { key: "TestFrost-AllItems-HelmbreakerMedallion-93261" value: { - dps: 418959.4631 - tps: 258345.83793 + dps: 423486.22194 + tps: 261065.69314 } } dps_results: { key: "TestFrost-AllItems-Horridon'sLastGasp-96757" value: { - dps: 430636.76408 - tps: 265672.77608 + dps: 435376.42901 + tps: 268737.97039 } } dps_results: { key: "TestFrost-AllItems-ImpassivePrimalDiamond" value: { - dps: 450985.27315 - tps: 285773.87363 + dps: 455349.6584 + tps: 288883.24644 } } dps_results: { key: "TestFrost-AllItems-IndomitablePrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-InsigniaofKypariZar-84078" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-IronBellyWok-89083" value: { - dps: 417662.40722 - tps: 257729.2905 + dps: 419414.745 + tps: 259011.49751 } } dps_results: { key: "TestFrost-AllItems-IronProtectorTalisman-85181" value: { - dps: 413623.48718 - tps: 255306.35156 + dps: 418586.14157 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-JadeBanditFigurine-86772" value: { - dps: 418959.57085 - tps: 258946.24017 + dps: 422068.03361 + tps: 260691.37122 } } dps_results: { key: "TestFrost-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 418959.57085 - tps: 258946.24017 + dps: 422068.03361 + tps: 260691.37122 } } dps_results: { key: "TestFrost-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 423057.53056 - tps: 261083.53839 + dps: 427133.49809 + tps: 263526.49813 } } dps_results: { key: "TestFrost-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 427404.10432 - tps: 263549.73074 + dps: 431838.66432 + tps: 266157.26996 } } dps_results: { key: "TestFrost-AllItems-JadeWarlordFigurine-86775" value: { - dps: 418606.97543 - tps: 255306.35156 + dps: 422676.01251 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 413653.76168 - tps: 255304.36044 - hps: 11077.74772 + dps: 418583.86217 + tps: 258440.07013 + hps: 11197.95688 } } dps_results: { key: "TestFrost-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 417835.10951 - tps: 255306.35156 + dps: 421904.66345 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-KnotofTenSongs-84073" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 413633.93024 - tps: 255306.35156 + dps: 416565.66201 + tps: 257115.58344 } } dps_results: { key: "TestFrost-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 419252.11709 - tps: 255306.35156 + dps: 423320.72218 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 418385.85849 - tps: 257043.9114 + dps: 422333.59041 + tps: 259980.12284 } } dps_results: { key: "TestFrost-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 413601.60901 - tps: 255306.35156 + dps: 416279.26694 + tps: 257174.23761 } } dps_results: { key: "TestFrost-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 418854.57748 - tps: 255306.35156 + dps: 423849.03485 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 420504.04955 - tps: 255306.35156 + dps: 425633.45151 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-LightoftheCosmos-87065" value: { - dps: 431330.99186 - tps: 265108.74648 + dps: 435359.64143 + tps: 268057.62377 } } dps_results: { key: "TestFrost-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 463128.85621 - tps: 294227.41036 + dps: 469459.1503 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 423471.15822 - tps: 261700.24863 + dps: 426162.33935 + tps: 263376.52723 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 417532.74436 - tps: 257571.32094 + dps: 422407.33915 + tps: 260659.80538 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 413649.92092 - tps: 255306.35156 + dps: 418581.18124 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 427731.07308 - tps: 264262.82307 + dps: 432539.78983 + tps: 267335.12353 } } dps_results: { key: "TestFrost-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 413651.54933 - tps: 255306.35156 + dps: 418585.85329 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MarkoftheCatacombs-83731" value: { - dps: 420316.95961 - tps: 256892.44467 + dps: 425148.3354 + tps: 259977.71155 } } dps_results: { key: "TestFrost-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 413608.56756 - tps: 255306.35156 + dps: 418564.28874 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 419632.28986 - tps: 255306.35156 + dps: 423700.64037 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 416814.23297 - tps: 255306.35156 + dps: 421774.543 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 421660.22691 - tps: 260227.12892 + dps: 425677.91614 + tps: 262655.02776 } } dps_results: { key: "TestFrost-AllItems-MirrorScope-4700" value: { - dps: 463128.85621 - tps: 294227.41036 + dps: 469459.1503 + tps: 298545.34028 } } dps_results: { key: "TestFrost-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 413651.54933 - tps: 255306.35156 + dps: 418585.5893 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MistdancerDefenderStone-101087" value: { - dps: 419828.72825 - tps: 255306.35156 + dps: 424870.15981 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MistdancerIdolofRage-101113" value: { - dps: 418869.75286 - tps: 255306.35156 + dps: 423864.25576 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MistdancerStoneofRage-101117" value: { - dps: 420181.98747 - tps: 255306.35156 + dps: 425188.44592 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 423697.16401 - tps: 261446.89965 + dps: 428448.40942 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-MithrilWristwatch-282033" value: { - dps: 433857.96857 - tps: 267995.75631 + dps: 438410.92362 + tps: 270868.58482 } } dps_results: { key: "TestFrost-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 424614.10472 - tps: 259010.05806 + dps: 429409.91313 + tps: 262489.16179 } } dps_results: { key: "TestFrost-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 430548.5563 - tps: 261446.89965 + dps: 435322.96877 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-NitroBoosts-4223" value: { - dps: 470740.92661 - tps: 298992.94241 + dps: 477135.12824 + tps: 303388.37447 } } dps_results: { key: "TestFrost-AllItems-OathswornDefenderIdol-101303" value: { - dps: 413610.65123 - tps: 255306.35156 + dps: 418558.80315 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-OathswornDefenderStone-101306" value: { - dps: 420060.08712 - tps: 255306.35156 + dps: 425109.12981 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-OathswornIdolofBattle-101295" value: { - dps: 417730.78984 - tps: 257675.8725 + dps: 422598.30381 + tps: 260751.4286 } } dps_results: { key: "TestFrost-AllItems-OathswornStoneofBattle-101294" value: { - dps: 420265.88358 - tps: 255306.35156 + dps: 425301.5067 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-PhaseFingers-4697" value: { - dps: 470340.42572 - tps: 297565.73561 + dps: 473196.86098 + tps: 299474.80019 } } dps_results: { key: "TestFrost-AllItems-PouchofWhiteAsh-103639" value: { - dps: 413633.93024 - tps: 255306.35156 + dps: 416565.66201 + tps: 257115.58344 } } dps_results: { key: "TestFrost-AllItems-PowerfulPrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-PriceofProgress-81266" value: { - dps: 422035.79626 - tps: 260431.4331 + dps: 426823.12613 + tps: 263472.86739 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 433438.7075 - tps: 268182.06162 + dps: 436045.53984 + tps: 269752.6633 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 421137.6645 - tps: 259601.41252 + dps: 425905.85831 + tps: 262626.45337 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 413599.9806 - tps: 255306.35156 + dps: 418557.09426 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 441960.58546 - tps: 273316.77408 + dps: 446887.96298 + tps: 276433.30252 } } dps_results: { key: "TestFrost-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 413601.56348 - tps: 255306.35156 + dps: 418550.26447 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 420393.30919 - tps: 259170.95282 + dps: 425101.12872 + tps: 262195.24556 } } dps_results: { key: "TestFrost-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 435485.57153 - tps: 264526.22739 + dps: 441901.42438 + tps: 268378.45277 } } dps_results: { key: "TestFrost-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 423223.66858 - tps: 262221.02055 + dps: 425154.15441 + tps: 263510.74645 } } dps_results: { key: "TestFrost-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 418695.84106 - tps: 259506.52155 + dps: 420686.74596 + tps: 260805.91268 } } dps_results: { key: "TestFrost-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { @@ -1406,358 +1406,358 @@ dps_results: { dps_results: { key: "TestFrost-AllItems-RelicofChi-Ji-79330" value: { - dps: 425042.66801 - tps: 262240.96482 + dps: 429794.46696 + tps: 265260.01769 } } dps_results: { key: "TestFrost-AllItems-RelicofKypariZar-84075" value: { - dps: 419110.72039 - tps: 258217.07665 + dps: 425098.7118 + tps: 262341.30539 } } dps_results: { key: "TestFrost-AllItems-RelicofNiuzao-79329" value: { - dps: 413634.15781 - tps: 255306.35156 + dps: 416344.1933 + tps: 256690.58176 } } dps_results: { key: "TestFrost-AllItems-RelicofXuen-79327" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-RelicofXuen-79328" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-RelicofYu'lon-79331" value: { - dps: 432396.78039 - tps: 266650.64455 + dps: 437209.23708 + tps: 269719.47746 } } dps_results: { key: "TestFrost-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 413529.55878 - tps: 255266.24164 + dps: 418595.39515 + tps: 258470.06644 } } dps_results: { key: "TestFrost-AllItems-ResolveofNiuzao-103990" value: { - dps: 422088.25026 - tps: 255306.35156 + dps: 427129.46175 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-ReverberatingPrimalDiamond" value: { - dps: 456441.08448 - tps: 290312.80741 + dps: 461163.11015 + tps: 293592.57389 } } dps_results: { key: "TestFrost-AllItems-RevitalizingPrimalDiamond" value: { - dps: 456441.08448 - tps: 290312.80741 + dps: 461163.11015 + tps: 293592.57389 } } dps_results: { key: "TestFrost-AllItems-RuneofRe-Origination-96918" value: { - dps: 414171.63788 - tps: 254091.07247 + dps: 419322.38018 + tps: 257244.55668 } } dps_results: { key: "TestFrost-AllItems-SI:7Operative'sManual-92784" value: { - dps: 413633.93024 - tps: 255306.35156 + dps: 416565.66201 + tps: 257115.58344 } } dps_results: { key: "TestFrost-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 424261.19167 - tps: 261801.96208 + dps: 428303.45629 + tps: 264231.959 } } dps_results: { key: "TestFrost-AllItems-SearingWords-81267" value: { - dps: 417196.05684 - tps: 257335.25443 + dps: 422109.99357 + tps: 260483.15747 } } dps_results: { key: "TestFrost-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 432526.72571 - tps: 266520.9251 + dps: 435155.29326 + tps: 268423.30968 } } dps_results: { key: "TestFrost-AllItems-SigilofCompassion-83736" value: { - dps: 416787.93774 - tps: 255306.35156 + dps: 421752.43676 + tps: 258435.64743 } } dps_results: { key: "TestFrost-AllItems-SigilofDevotion-83740" value: { - dps: 416373.92476 - tps: 256892.44467 + dps: 421149.79067 + tps: 259977.71155 } } dps_results: { key: "TestFrost-AllItems-SigilofFidelity-83737" value: { - dps: 418703.61139 - tps: 257981.07448 + dps: 424869.43472 + tps: 262038.39347 } } dps_results: { key: "TestFrost-AllItems-SigilofGrace-83738" value: { - dps: 416814.23297 - tps: 255306.35156 + dps: 421774.543 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SigilofKypariZar-84076" value: { - dps: 420481.8807 - tps: 256967.02169 + dps: 425298.12259 + tps: 260025.84033 } } dps_results: { key: "TestFrost-AllItems-SigilofPatience-83739" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SigilofRampage-105580" value: { - dps: 413653.71841 - tps: 255306.35156 + dps: 418585.52779 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SigiloftheCatacombs-83732" value: { - dps: 420130.60322 - tps: 259480.05177 + dps: 424329.66236 + tps: 262404.00013 } } dps_results: { key: "TestFrost-AllItems-SinisterPrimalDiamond" value: { - dps: 470740.92661 - tps: 298992.94241 + dps: 477135.12824 + tps: 303388.37447 } } dps_results: { key: "TestFrost-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SkullrenderMedallion-93256" value: { - dps: 418959.4631 - tps: 258345.83793 + dps: 423486.22194 + tps: 261065.69314 } } dps_results: { key: "TestFrost-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 427940.74725 - tps: 264132.68622 + dps: 432656.03686 + tps: 267127.40851 } } dps_results: { key: "TestFrost-AllItems-SoulBarrier-96927" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SparkofZandalar-96770" value: { - dps: 419194.91527 - tps: 258769.30844 + dps: 425969.88441 + tps: 263358.64375 } } dps_results: { key: "TestFrost-AllItems-SpiritsoftheSun-87163" value: { - dps: 426376.12555 - tps: 263063.51337 + dps: 431164.77754 + tps: 266103.22208 } } dps_results: { key: "TestFrost-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 424425.72837 - tps: 258552.69809 + dps: 430079.55167 + tps: 262815.8846 } } dps_results: { key: "TestFrost-AllItems-SpringrainIdolofRage-101009" value: { - dps: 418886.98558 - tps: 255306.35156 + dps: 423859.48936 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 430519.352 - tps: 261446.89965 + dps: 435391.5218 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-SpringrainStoneofRage-101012" value: { - dps: 420401.08331 - tps: 255306.35156 + dps: 425338.76799 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 423697.16401 - tps: 261446.89965 + dps: 428448.40942 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 432526.72571 - tps: 266520.9251 + dps: 435155.29326 + tps: 268423.30968 } } dps_results: { key: "TestFrost-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 413608.56756 - tps: 255306.35156 + dps: 418564.28874 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 421115.52892 - tps: 255306.35156 + dps: 426147.84188 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 425241.43374 - tps: 258972.96113 + dps: 430252.06135 + tps: 262459.00291 } } dps_results: { key: "TestFrost-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 418882.52782 - tps: 255306.35156 + dps: 423857.74596 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 430555.08612 - tps: 261446.89965 + dps: 435345.26684 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 420243.18 - tps: 255306.35156 + dps: 425204.10824 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 423697.16401 - tps: 261446.89965 + dps: 428448.40942 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-StuffofNightmares-87160" value: { - dps: 420280.74885 - tps: 255306.35156 + dps: 425307.72858 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 413634.15781 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SunsoulDefenderStone-101163" value: { - dps: 420506.86447 - tps: 255306.35156 + dps: 425565.27642 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 417768.08665 - tps: 257675.8725 + dps: 422620.6819 + tps: 260751.4286 } } dps_results: { key: "TestFrost-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 420139.26841 - tps: 255306.35156 + dps: 425165.46931 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 423697.16401 - tps: 261446.89965 + dps: 428448.40942 + tps: 264460.18649 } } dps_results: { key: "TestFrost-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 463808.6128 - tps: 294440.12918 + dps: 470278.8689 + tps: 298889.00945 } } dps_results: { key: "TestFrost-AllItems-SymboloftheCatacombs-83735" value: { - dps: 416814.23297 - tps: 255306.35156 + dps: 421774.543 + tps: 258442.06125 } } dps_results: { @@ -1770,232 +1770,232 @@ dps_results: { dps_results: { key: "TestFrost-AllItems-TalismanofBloodlust-96864" value: { - dps: 422273.14924 - tps: 260821.89947 + dps: 427292.17638 + tps: 264306.95599 } } dps_results: { key: "TestFrost-AllItems-TerrorintheMists-87167" value: { - dps: 421980.08883 - tps: 259996.90983 + dps: 426845.87281 + tps: 263112.7921 } } dps_results: { key: "TestFrost-AllItems-TheGloamingBlade-88149" value: { - dps: 470740.92661 - tps: 298992.94241 + dps: 477135.12824 + tps: 303388.37447 } } dps_results: { key: "TestFrost-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Thok'sTailTip-105609" value: { - dps: 435449.14995 - tps: 264526.22739 + dps: 441845.77985 + tps: 268378.45277 } } dps_results: { key: "TestFrost-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 428684.9687 - tps: 264495.73163 + dps: 433451.97973 + tps: 267541.11552 } } dps_results: { key: "TestFrost-AllItems-TickingEbonDetonator-105612" value: { - dps: 425632.27535 - tps: 255306.35156 + dps: 430667.6704 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-Time-LostArtifact-103678" value: { - dps: 419559.10265 - tps: 255306.35156 + dps: 424544.18109 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 418883.31157 - tps: 255306.35156 + dps: 423859.48936 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 420498.73166 - tps: 255306.35156 + dps: 425480.77109 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 425452.39385 - tps: 262983.41435 + dps: 428203.29455 + tps: 264694.75679 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 413601.10909 - tps: 255306.35156 + dps: 416324.88228 + tps: 257036.72502 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 418134.11744 - tps: 257839.34316 + dps: 422953.22279 + tps: 260925.27052 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 413638.90493 - tps: 255306.35156 + dps: 418572.64256 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 413586.68939 - tps: 255306.35156 + dps: 418550.26447 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 430702.12441 - tps: 266138.13978 + dps: 435611.78742 + tps: 269230.50736 } } dps_results: { key: "TestFrost-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 413616.18076 - tps: 255306.35156 + dps: 418557.09426 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-TyrannicalPrimalDiamond" value: { - dps: 448892.27623 - tps: 284563.09146 + dps: 453459.8955 + tps: 287735.69342 } } dps_results: { key: "TestFrost-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 447911.93912 - tps: 275407.43563 + dps: 452315.08194 + tps: 277819.34053 } } dps_results: { key: "TestFrost-AllItems-VaporshieldMedallion-93262" value: { - dps: 419632.28986 - tps: 255306.35156 + dps: 423700.64037 + tps: 257797.45018 } } dps_results: { key: "TestFrost-AllItems-VialofDragon'sBlood-87063" value: { - dps: 419857.44115 - tps: 255306.35156 + dps: 424880.90079 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-VialofIchorousBlood-100963" value: { - dps: 421049.60738 - tps: 259867.05813 + dps: 425947.65852 + tps: 262965.81658 } } dps_results: { key: "TestFrost-AllItems-VialofLivingCorruption-105568" value: { - dps: 413655.7528 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 413638.90582 - tps: 255306.35156 + dps: 418587.56218 + tps: 258442.06125 } } dps_results: { key: "TestFrost-AllItems-VisionofthePredator-81192" value: { - dps: 427200.88395 - tps: 263361.48865 + dps: 431701.49746 + tps: 266248.3355 } } dps_results: { key: "TestFrost-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 436285.40506 - tps: 269798.98511 + dps: 439964.45025 + tps: 272094.25425 } } dps_results: { key: "TestFrost-AllItems-WindsweptPages-81125" value: { - dps: 418438.2582 - tps: 258447.81246 + dps: 421738.98107 + tps: 260963.49821 } } dps_results: { key: "TestFrost-AllItems-WoundripperMedallion-93253" value: { - dps: 418959.4631 - tps: 258345.83793 + dps: 423486.22194 + tps: 261065.69314 } } dps_results: { key: "TestFrost-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 436341.02457 - tps: 269502.5236 + dps: 441877.82629 + tps: 272992.80009 } } dps_results: { key: "TestFrost-AllItems-Yu'lon'sBite-103987" value: { - dps: 441325.26484 - tps: 271459.6515 + dps: 446272.57614 + tps: 274582.11478 } } dps_results: { key: "TestFrost-AllItems-ZenAlchemistStone-75274" value: { - dps: 431147.57756 - tps: 263743.39383 + dps: 436230.30868 + tps: 266913.53467 } } dps_results: { diff --git a/sim/monk/brewmaster/TestBrewmaster.results b/sim/monk/brewmaster/TestBrewmaster.results index 3e71fc3053..b1eba806ef 100644 --- a/sim/monk/brewmaster/TestBrewmaster.results +++ b/sim/monk/brewmaster/TestBrewmaster.results @@ -33,28 +33,28 @@ character_stats_results: { dps_results: { key: "TestBrewmaster-AllItems-AgilePrimalDiamond" value: { - dps: 562065.03251 - tps: 3.00737743834e+06 - dtps: 41502.70851 - hps: 83300.67778 + dps: 564051.1348 + tps: 3.01837891889e+06 + dtps: 41247.19757 + hps: 83325.03825 } } dps_results: { key: "TestBrewmaster-AllItems-AlacrityofXuen-103989" value: { - dps: 564073.71249 - tps: 3.05101060673e+06 - dtps: 42735.57957 - hps: 78620.78001 + dps: 565888.33988 + tps: 3.05879576228e+06 + dtps: 42920.29377 + hps: 79429.67289 } } dps_results: { key: "TestBrewmaster-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 556315.82096 - tps: 2.99803140802e+06 - dtps: 43483.61118 - hps: 79881.39415 + dps: 560283.7551 + tps: 3.01922829381e+06 + dtps: 41292.92819 + hps: 79510.63839 } } dps_results: { @@ -78,46 +78,46 @@ dps_results: { dps_results: { key: "TestBrewmaster-AllItems-ArrowflightMedallion-93258" value: { - dps: 567699.42544 - tps: 3.06059770084e+06 - dtps: 40664.13528 - hps: 82154.55006 + dps: 569140.78445 + tps: 3.06858609802e+06 + dtps: 40240.69031 + hps: 82051.35623 } } dps_results: { key: "TestBrewmaster-AllItems-AssuranceofConsequence-105472" value: { - dps: 565894.65267 - tps: 3.05633723415e+06 - dtps: 40453.17575 - hps: 82061.70192 + dps: 566815.69291 + tps: 3.05715122896e+06 + dtps: 40705.22097 + hps: 82671.83478 } } dps_results: { key: "TestBrewmaster-AllItems-AusterePrimalDiamond" value: { - dps: 551991.08753 - tps: 2.94213807507e+06 - dtps: 42120.50211 - hps: 82611.37221 + dps: 553177.17248 + tps: 2.952071588e+06 + dtps: 41274.8419 + hps: 81964.4002 } } dps_results: { key: "TestBrewmaster-AllItems-BadJuju-96781" value: { - dps: 561307.24247 - tps: 3.02923871199e+06 - dtps: 39419.85932 - hps: 80107.10542 + dps: 562881.99937 + tps: 3.03701227545e+06 + dtps: 39934.63709 + hps: 81175.1151 } } dps_results: { key: "TestBrewmaster-AllItems-BadgeofKypariZar-84079" value: { - dps: 557757.64425 - tps: 3.00820629744e+06 - dtps: 42199.07849 - hps: 81501.86083 + dps: 560602.15555 + tps: 3.021372252e+06 + dtps: 41336.96269 + hps: 81389.19682 } } dps_results: { @@ -141,766 +141,766 @@ dps_results: { dps_results: { key: "TestBrewmaster-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 563269.89648 - tps: 3.02896434281e+06 - dtps: 41931.06082 - hps: 81051.86197 + dps: 565092.43025 + tps: 3.04020675646e+06 + dtps: 41589.63724 + hps: 81336.35426 } } dps_results: { key: "TestBrewmaster-AllItems-BlossomofPureSnow-89081" value: { - dps: 555679.86719 - tps: 2.99388298347e+06 - dtps: 43416.23932 - hps: 82304.8501 + dps: 559769.98589 + tps: 3.01489689747e+06 + dtps: 41887.78844 + hps: 81906.86455 } } dps_results: { key: "TestBrewmaster-AllItems-BottleofInfiniteStars-87057" value: { - dps: 562455.30979 - tps: 3.03420273205e+06 - dtps: 39618.6652 - hps: 80526.47599 + dps: 563112.88208 + tps: 3.03990592431e+06 + dtps: 39751.36812 + hps: 80488.11376 } } dps_results: { key: "TestBrewmaster-AllItems-BraidofTenSongs-84072" value: { - dps: 552975.71581 - tps: 2.97939975185e+06 - dtps: 43396.19256 - hps: 81594.34391 + dps: 557519.06441 + tps: 3.00773385573e+06 + dtps: 42620.26692 + hps: 81573.64176 } } dps_results: { key: "TestBrewmaster-AllItems-Brawler'sStatue-282039" value: { - dps: 555596.32562 - tps: 2.99558780577e+06 - dtps: 40101.774 - hps: 80957.60354 + dps: 561100.50054 + tps: 3.02364943306e+06 + dtps: 37962.05486 + hps: 79946.10079 } } dps_results: { key: "TestBrewmaster-AllItems-BreathoftheHydra-96827" value: { - dps: 557030.93175 - tps: 2.99377493441e+06 - dtps: 41952.28757 - hps: 80507.25214 + dps: 560425.77544 + tps: 3.00775395198e+06 + dtps: 41353.55123 + hps: 80597.08486 } } dps_results: { key: "TestBrewmaster-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 553263.77187 - tps: 2.98285116934e+06 - dtps: 42943.28042 - hps: 80854.32849 + dps: 555756.94537 + tps: 2.99481406084e+06 + dtps: 42443.74989 + hps: 80991.54581 } } dps_results: { key: "TestBrewmaster-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 555488.42768 - tps: 2.99283543831e+06 - dtps: 43366.0847 - hps: 82059.18806 + dps: 558582.04919 + tps: 3.00724797125e+06 + dtps: 42230.93202 + hps: 81942.85927 } } dps_results: { key: "TestBrewmaster-AllItems-BurningPrimalDiamond" value: { - dps: 561928.82996 - tps: 3.00366243826e+06 - dtps: 42408.60294 - hps: 83632.42526 + dps: 563486.17695 + tps: 3.01629571732e+06 + dtps: 41475.65542 + hps: 83374.88287 } } dps_results: { key: "TestBrewmaster-AllItems-CapacitivePrimalDiamond" value: { - dps: 581954.24427 - tps: 3.14270472529e+06 - dtps: 42013.57415 - hps: 82220.14777 + dps: 583614.06695 + tps: 3.15937350555e+06 + dtps: 41074.93015 + hps: 82199.73378 } } dps_results: { key: "TestBrewmaster-AllItems-CarbonicCarbuncle-81138" value: { - dps: 557071.98564 - tps: 3.00027743252e+06 - dtps: 43136.62041 - hps: 82332.48982 + dps: 560525.42302 + tps: 3.0176166399e+06 + dtps: 42082.79104 + hps: 82155.94733 } } dps_results: { key: "TestBrewmaster-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 557988.5673 - tps: 3.0060613306e+06 - dtps: 43441.14069 - hps: 83274.40876 + dps: 561116.68557 + tps: 3.02127270421e+06 + dtps: 42277.35208 + hps: 83168.20704 } } dps_results: { key: "TestBrewmaster-AllItems-CharmofTenSongs-84071" value: { - dps: 560161.34773 - tps: 3.01934445553e+06 - dtps: 43140.74724 - hps: 82449.06327 + dps: 561048.36392 + tps: 3.02417151235e+06 + dtps: 42858.04041 + hps: 82401.83527 } } dps_results: { key: "TestBrewmaster-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 560951.18092 - tps: 3.02609405558e+06 - dtps: 41553.23243 - hps: 79549.75902 + dps: 562272.66725 + tps: 3.03083044407e+06 + dtps: 41255.79067 + hps: 79924.47753 } } dps_results: { key: "TestBrewmaster-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 551371.18946 - tps: 2.97246967533e+06 - dtps: 42234.39754 - hps: 80313.87562 + dps: 554383.99303 + tps: 2.98732029382e+06 + dtps: 40932.10885 + hps: 80009.71565 } } dps_results: { key: "TestBrewmaster-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 563424.65218 - tps: 3.03532743957e+06 - dtps: 43456.21805 - hps: 83778.67594 + dps: 566441.6511 + tps: 3.04977384697e+06 + dtps: 42276.9274 + hps: 83653.63843 } } dps_results: { key: "TestBrewmaster-AllItems-CoreofDecency-87497" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-CourageousPrimalDiamond" value: { - dps: 551295.15538 - tps: 2.93721913332e+06 - dtps: 42463.01001 - hps: 82608.55975 + dps: 552800.81997 + tps: 2.94948605368e+06 + dtps: 41539.23253 + hps: 82023.77484 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 558593.8258 - tps: 3.01032183604e+06 - dtps: 41917.86443 - hps: 81390.31222 + dps: 561743.47597 + tps: 3.03010850018e+06 + dtps: 40846.25171 + hps: 81438.3666 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 552857.43562 - tps: 2.97884796487e+06 - dtps: 43382.14548 - hps: 81519.91472 + dps: 555492.5764 + tps: 2.99009398042e+06 + dtps: 42219.426 + hps: 81270.50556 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 555518.59331 - tps: 2.99675563503e+06 - dtps: 43225.53125 - hps: 82360.51773 + dps: 558487.70757 + tps: 3.00951585451e+06 + dtps: 42071.21524 + hps: 82377.62914 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 552387.78483 - tps: 2.97868992684e+06 - dtps: 43258.06354 - hps: 81498.18207 + dps: 554949.89817 + tps: 2.98989794536e+06 + dtps: 42096.24475 + hps: 81277.39859 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 553544.49193 - tps: 2.98481642722e+06 - dtps: 42750.99382 - hps: 80547.71391 + dps: 554790.52623 + tps: 2.98765174278e+06 + dtps: 42073.59056 + hps: 80500.6964 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 558210.6766 - tps: 3.00536164172e+06 - dtps: 41346.7963 - hps: 81460.67281 + dps: 560163.22902 + tps: 3.01532232777e+06 + dtps: 41047.05691 + hps: 81977.02499 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 553481.02781 - tps: 2.98216348802e+06 - dtps: 43456.4035 - hps: 81716.40959 + dps: 556204.32644 + tps: 2.99386604481e+06 + dtps: 42293.47682 + hps: 81466.25055 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 558921.5879 - tps: 3.01117446712e+06 - dtps: 41780.47315 - hps: 81539.61325 + dps: 561114.12482 + tps: 3.02614573428e+06 + dtps: 40677.30451 + hps: 81752.60793 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 553060.79207 - tps: 2.9798422131e+06 - dtps: 43380.61706 - hps: 81550.59176 + dps: 555882.55174 + tps: 2.99241140717e+06 + dtps: 42219.19982 + hps: 81382.32324 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 555884.24721 - tps: 2.99805450093e+06 - dtps: 43250.63919 - hps: 82442.24424 + dps: 559116.63219 + tps: 3.0126984321e+06 + dtps: 42070.93493 + hps: 82315.16463 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 552387.78483 - tps: 2.97868992684e+06 - dtps: 43258.06354 - hps: 81498.18207 + dps: 554968.39087 + tps: 2.99002739427e+06 + dtps: 42096.24012 + hps: 81242.17439 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 554220.50473 - tps: 2.98917825441e+06 - dtps: 42879.59688 - hps: 80616.43604 + dps: 554787.79087 + tps: 2.98736506611e+06 + dtps: 42201.71571 + hps: 80656.67446 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 560286.86459 - tps: 3.01774980089e+06 - dtps: 41185.22696 - hps: 81825.37976 + dps: 561735.43593 + tps: 3.02947572946e+06 + dtps: 40943.43545 + hps: 81930.37957 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 553625.05028 - tps: 2.98256864995e+06 - dtps: 43376.22656 - hps: 81620.42063 + dps: 556751.26965 + tps: 2.9969385753e+06 + dtps: 42291.49398 + hps: 81507.62881 } } dps_results: { key: "TestBrewmaster-AllItems-CurseofHubris-105645" value: { - dps: 565831.39928 - tps: 3.05014840679e+06 - dtps: 42848.38467 - hps: 82676.6723 + dps: 566789.37551 + tps: 3.05660293658e+06 + dtps: 42253.70916 + hps: 82929.11822 } } dps_results: { key: "TestBrewmaster-AllItems-CutstitcherMedallion-93255" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Daelo'sFinalWords-87496" value: { - dps: 556577.93727 - tps: 3.01498819291e+06 - dtps: 43462.91241 - hps: 82265.90602 + dps: 558693.83631 + tps: 3.02176324542e+06 + dtps: 43008.41416 + hps: 82111.46093 } } dps_results: { key: "TestBrewmaster-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 581001.09352 - tps: 3.1376494835e+06 - dtps: 42014.84347 - hps: 82220.14777 + dps: 582515.07471 + tps: 3.15273582832e+06 + dtps: 41074.77428 + hps: 82110.32638 } } dps_results: { key: "TestBrewmaster-AllItems-DarkmistVortex-87172" value: { - dps: 562307.31605 - tps: 3.0314163503e+06 - dtps: 41876.72644 - hps: 78151.02735 + dps: 562380.97993 + tps: 3.03478387758e+06 + dtps: 42174.94574 + hps: 78700.07053 } } dps_results: { key: "TestBrewmaster-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 558348.92601 - tps: 3.01053076999e+06 - dtps: 40744.68438 - hps: 81508.12368 + dps: 559337.01529 + tps: 3.0141913856e+06 + dtps: 40865.52494 + hps: 81221.13683 } } dps_results: { key: "TestBrewmaster-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 554452.08228 - tps: 2.98703913458e+06 - dtps: 38034.27022 - hps: 79391.59195 + dps: 557173.61595 + tps: 3.00279218284e+06 + dtps: 37909.7219 + hps: 79483.74278 } } dps_results: { key: "TestBrewmaster-AllItems-DestructivePrimalDiamond" value: { - dps: 553008.75053 - tps: 2.94524645606e+06 - dtps: 42486.62871 - hps: 82577.9009 + dps: 554892.93515 + tps: 2.96044853364e+06 + dtps: 41529.02306 + hps: 82015.13297 } } dps_results: { key: "TestBrewmaster-AllItems-DisciplineofXuen-103986" value: { - dps: 564526.1769 - tps: 3.04028749243e+06 - dtps: 38594.247 - hps: 81249.18122 + dps: 567200.13208 + tps: 3.05700515618e+06 + dtps: 37735.33795 + hps: 80755.2742 } } dps_results: { key: "TestBrewmaster-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 556315.82096 - tps: 2.99803140802e+06 - dtps: 43483.61118 - hps: 79881.39415 + dps: 560283.7551 + tps: 3.01922829381e+06 + dtps: 41292.92819 + hps: 79510.63839 } } dps_results: { key: "TestBrewmaster-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 558348.92601 - tps: 3.01053076999e+06 - dtps: 40744.68438 - hps: 81508.12368 + dps: 559337.01529 + tps: 3.0141913856e+06 + dtps: 40865.52494 + hps: 81221.13683 } } dps_results: { key: "TestBrewmaster-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 554552.41573 - tps: 2.98980663941e+06 - dtps: 40815.01919 - hps: 81330.80577 + dps: 555160.52271 + tps: 2.99144736584e+06 + dtps: 40914.56428 + hps: 81223.93942 } } dps_results: { key: "TestBrewmaster-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 553493.43335 - tps: 2.98259854448e+06 - dtps: 42641.00957 - hps: 81184.87524 + dps: 556128.85009 + tps: 2.99433072973e+06 + dtps: 41925.4325 + hps: 81196.17639 } } dps_results: { key: "TestBrewmaster-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 558593.8258 - tps: 3.01032183604e+06 - dtps: 41917.86443 - hps: 81390.31222 + dps: 561743.47597 + tps: 3.03010850018e+06 + dtps: 40846.25171 + hps: 81438.3666 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 552857.43562 - tps: 2.97884796487e+06 - dtps: 43382.14548 - hps: 81519.91472 + dps: 555492.5764 + tps: 2.99009398042e+06 + dtps: 42219.426 + hps: 81270.50556 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 555518.59331 - tps: 2.99675563503e+06 - dtps: 43225.53125 - hps: 82360.51773 + dps: 558487.70757 + tps: 3.00951585451e+06 + dtps: 42071.21524 + hps: 82377.62914 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 552387.78483 - tps: 2.97868992684e+06 - dtps: 43258.06354 - hps: 81498.18207 + dps: 554949.89817 + tps: 2.98989794536e+06 + dtps: 42096.24475 + hps: 81277.39859 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 553544.49193 - tps: 2.98481642722e+06 - dtps: 42750.99382 - hps: 80547.71391 + dps: 554790.52623 + tps: 2.98765174278e+06 + dtps: 42073.59056 + hps: 80500.6964 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 558062.14268 - tps: 3.0040654587e+06 - dtps: 41613.68443 - hps: 81470.39049 + dps: 560459.43561 + tps: 3.01558364119e+06 + dtps: 41458.10784 + hps: 82012.7104 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 553477.99861 - tps: 2.98212586114e+06 - dtps: 43456.60379 - hps: 81676.64405 + dps: 556408.75456 + tps: 2.9952453713e+06 + dtps: 42294.18884 + hps: 81555.16368 } } dps_results: { key: "TestBrewmaster-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 554552.41573 - tps: 2.98980663941e+06 - dtps: 40815.01919 - hps: 81330.80577 + dps: 555160.52271 + tps: 2.99144736584e+06 + dtps: 40914.56428 + hps: 81223.93942 } } dps_results: { key: "TestBrewmaster-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-EffulgentPrimalDiamond" value: { - dps: 551869.30351 - tps: 2.9405930661e+06 - dtps: 42386.41511 - hps: 82548.94222 + dps: 552911.13477 + tps: 2.95020932406e+06 + dtps: 41536.91776 + hps: 82009.31037 } } dps_results: { key: "TestBrewmaster-AllItems-EmberPrimalDiamond" value: { - dps: 551295.15538 - tps: 2.93721913332e+06 - dtps: 42463.01001 - hps: 82608.55975 + dps: 552800.81997 + tps: 2.94948605368e+06 + dtps: 41539.23253 + hps: 82023.77484 } } dps_results: { key: "TestBrewmaster-AllItems-EmblemofKypariZar-84077" value: { - dps: 558570.04578 - tps: 3.00519557121e+06 - dtps: 43725.43782 - hps: 82510.89229 + dps: 560601.15042 + tps: 3.01479514527e+06 + dtps: 43255.76569 + hps: 82627.45818 } } dps_results: { key: "TestBrewmaster-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 557943.406 - tps: 2.99365281453e+06 - dtps: 42458.39593 - hps: 80371.53653 + dps: 560553.57081 + tps: 3.00961148672e+06 + dtps: 41805.13737 + hps: 80721.15225 } } dps_results: { key: "TestBrewmaster-AllItems-EmptyFruitBarrel-81133" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 578849.76364 - tps: 3.12383356267e+06 - dtps: 41587.36312 - hps: 82144.67294 + dps: 581644.96104 + tps: 3.14561349671e+06 + dtps: 40754.14791 + hps: 82029.25544 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 574150.037 - tps: 3.09247263564e+06 - dtps: 43087.56947 - hps: 83249.26343 + dps: 578329.73575 + tps: 3.12703055188e+06 + dtps: 41921.26024 + hps: 82578.57249 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 575522.21466 - tps: 3.09832501759e+06 - dtps: 43472.68795 - hps: 83470.46725 + dps: 578771.16856 + tps: 3.12956303528e+06 + dtps: 42308.00973 + hps: 82960.96568 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 573738.96377 - tps: 3.08998480517e+06 - dtps: 43427.21441 - hps: 83214.95889 + dps: 577445.89985 + tps: 3.12123338267e+06 + dtps: 42273.20236 + hps: 82747.82142 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 575874.68469 - tps: 3.11732779897e+06 - dtps: 40442.04119 - hps: 81300.64705 + dps: 577341.27998 + tps: 3.1275051361e+06 + dtps: 40357.23134 + hps: 81189.53933 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 573738.96377 - tps: 3.08998480517e+06 - dtps: 43427.21441 - hps: 83214.95889 + dps: 577445.89985 + tps: 3.12123338267e+06 + dtps: 42273.20236 + hps: 82747.82142 } } dps_results: { key: "TestBrewmaster-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 577592.18559 - tps: 3.12259607157e+06 - dtps: 43281.84072 - hps: 83330.93881 + dps: 578728.43541 + tps: 3.12467075213e+06 + dtps: 42924.3437 + hps: 83459.72055 } } dps_results: { key: "TestBrewmaster-AllItems-EnigmaticPrimalDiamond" value: { - dps: 553008.75053 - tps: 2.94524645606e+06 - dtps: 42486.62871 - hps: 82577.9009 + dps: 554892.93515 + tps: 2.96044853364e+06 + dtps: 41529.02306 + hps: 82015.13297 } } dps_results: { key: "TestBrewmaster-AllItems-EssenceofTerror-87175" value: { - dps: 559714.36716 - tps: 3.01330535836e+06 - dtps: 42567.95556 - hps: 79360.47741 + dps: 562606.3122 + tps: 3.03176777318e+06 + dtps: 42001.06968 + hps: 79422.27417 } } dps_results: { key: "TestBrewmaster-AllItems-EternalPrimalDiamond" value: { - dps: 551161.22209 - tps: 2.93861446952e+06 - dtps: 41349.58273 - hps: 82007.31074 + dps: 552875.8346 + tps: 2.94791383868e+06 + dtps: 41101.81523 + hps: 81859.95535 } } dps_results: { key: "TestBrewmaster-AllItems-EvilEyeofGalakras-105491" value: { - dps: 555104.87911 - tps: 2.98859647222e+06 - dtps: 43314.5633 - hps: 82100.95429 + dps: 558128.35849 + tps: 3.00239240659e+06 + dtps: 42204.32888 + hps: 81890.36814 } } dps_results: { key: "TestBrewmaster-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 566122.91231 - tps: 3.0713418684e+06 - dtps: 41838.69589 - hps: 81428.33741 + dps: 568139.41624 + tps: 3.07846806142e+06 + dtps: 41300.79841 + hps: 81372.72568 } } dps_results: { key: "TestBrewmaster-AllItems-FearwurmBadge-84074" value: { - dps: 559036.20172 - tps: 3.0165262685e+06 - dtps: 43293.28407 - hps: 82413.75665 + dps: 560528.54594 + tps: 3.0187570598e+06 + dtps: 42733.59321 + hps: 82384.44412 } } dps_results: { key: "TestBrewmaster-AllItems-FearwurmRelic-84070" value: { - dps: 558188.15367 - tps: 2.99885223823e+06 - dtps: 43512.38681 - hps: 81868.52148 + dps: 559307.70871 + tps: 3.01058788852e+06 + dtps: 43302.02422 + hps: 82065.60153 } } dps_results: { key: "TestBrewmaster-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 558993.83843 - tps: 3.02087997698e+06 - dtps: 40751.15179 - hps: 80205.27228 + dps: 558933.74008 + tps: 3.01776905824e+06 + dtps: 40120.52906 + hps: 80085.47361 } } dps_results: { key: "TestBrewmaster-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 551473.90692 - tps: 2.97419876023e+06 - dtps: 41982.45975 - hps: 80241.56676 + dps: 554680.40384 + tps: 2.98823961644e+06 + dtps: 40541.55702 + hps: 79998.97944 } } dps_results: { key: "TestBrewmaster-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 597683.81254 - tps: 3.2699624076e+06 - dtps: 41700.21882 - hps: 83275.40749 + dps: 598194.90563 + tps: 3.27368520046e+06 + dtps: 42780.90691 + hps: 83691.18086 } } dps_results: { @@ -924,1360 +924,1360 @@ dps_results: { dps_results: { key: "TestBrewmaster-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 555172.06716 - tps: 3.00721270621e+06 - dtps: 43473.15225 - hps: 82053.32745 + dps: 557328.39614 + tps: 3.01430909912e+06 + dtps: 42998.54187 + hps: 81899.81703 } } dps_results: { key: "TestBrewmaster-AllItems-FlashingSteelTalisman-81265" value: { - dps: 559520.6564 - tps: 3.03520541213e+06 - dtps: 42789.02751 - hps: 82431.77172 + dps: 562658.48053 + tps: 3.04516099378e+06 + dtps: 42131.20357 + hps: 82075.79776 } } dps_results: { key: "TestBrewmaster-AllItems-FleetPrimalDiamond" value: { - dps: 551919.28949 - tps: 2.94262042354e+06 - dtps: 42067.87968 - hps: 82258.2288 + dps: 553325.22151 + tps: 2.9549005272e+06 + dtps: 41150.95433 + hps: 81719.49451 } } dps_results: { key: "TestBrewmaster-AllItems-ForlornPrimalDiamond" value: { - dps: 551295.15538 - tps: 2.93721913332e+06 - dtps: 42463.01001 - hps: 82608.55975 + dps: 552800.81997 + tps: 2.94948605368e+06 + dtps: 41539.23253 + hps: 82023.77484 } } dps_results: { key: "TestBrewmaster-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 552369.3183 - tps: 2.97872629718e+06 - dtps: 41179.34935 - hps: 79760.07596 + dps: 554513.64237 + tps: 2.98850887095e+06 + dtps: 40340.47352 + hps: 79412.77538 } } dps_results: { key: "TestBrewmaster-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Fusion-FireCore-105459" value: { - dps: 557151.06734 - tps: 3.00300048976e+06 - dtps: 43351.78024 - hps: 82348.50182 + dps: 560082.63055 + tps: 3.01611865758e+06 + dtps: 42218.62135 + hps: 82321.22502 } } dps_results: { key: "TestBrewmaster-AllItems-GazeoftheTwins-96915" value: { - dps: 563191.69949 - tps: 3.03444185955e+06 - dtps: 43324.26572 - hps: 83165.57152 + dps: 565484.76676 + tps: 3.04428340907e+06 + dtps: 42275.72794 + hps: 83102.76038 } } dps_results: { key: "TestBrewmaster-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 557282.74029 - tps: 3.0002003939e+06 - dtps: 41992.43404 - hps: 82667.85016 + dps: 560131.40619 + tps: 3.01923373164e+06 + dtps: 41135.46123 + hps: 82376.36936 } } dps_results: { key: "TestBrewmaster-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 591764.13849 - tps: 3.24814866799e+06 - dtps: 46179.83576 - hps: 84898.15616 + dps: 590811.23929 + tps: 3.2382890895e+06 + dtps: 44824.04578 + hps: 84845.72138 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 558176.46301 - tps: 3.00299737629e+06 - dtps: 41880.33895 - hps: 82172.94216 + dps: 562220.80381 + tps: 3.03448193181e+06 + dtps: 39986.19226 + hps: 81441.74544 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 553765.20203 - tps: 2.98328620697e+06 - dtps: 43375.32277 - hps: 81608.98197 + dps: 556716.64733 + tps: 2.99675754718e+06 + dtps: 42293.52066 + hps: 81633.81145 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 558049.01793 - tps: 3.00981631567e+06 - dtps: 43230.90216 - hps: 82942.73792 + dps: 561513.93983 + tps: 3.02728077832e+06 + dtps: 42063.81386 + hps: 82699.68635 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 552406.03808 - tps: 2.97881769963e+06 - dtps: 43258.60382 - hps: 81463.41396 + dps: 554968.39087 + tps: 2.99002739427e+06 + dtps: 42096.24012 + hps: 81242.17439 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 554478.41878 - tps: 2.98919985592e+06 - dtps: 42692.94134 - hps: 80339.36686 + dps: 555042.42321 + tps: 2.98719483213e+06 + dtps: 42015.17721 + hps: 80275.90573 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 564836.24622 - tps: 3.0491410847e+06 - dtps: 40782.39094 - hps: 81628.3707 + dps: 566731.59411 + tps: 3.06264293597e+06 + dtps: 40195.29883 + hps: 82058.33766 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 554829.55407 - tps: 2.98883213821e+06 - dtps: 43424.27142 - hps: 81822.57346 + dps: 557982.21001 + tps: 3.00349424755e+06 + dtps: 42282.73697 + hps: 81663.27408 } } dps_results: { key: "TestBrewmaster-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 563278.26447 - tps: 3.0295607543e+06 - dtps: 41000.98999 - hps: 81104.44359 + dps: 566694.81794 + tps: 3.05656264281e+06 + dtps: 40467.66214 + hps: 82237.84313 } } dps_results: { key: "TestBrewmaster-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 553537.35194 - tps: 2.98088849864e+06 - dtps: 41610.36682 - hps: 80769.16087 + dps: 555532.39601 + tps: 2.99482997899e+06 + dtps: 41000.36002 + hps: 80002.10252 } } dps_results: { key: "TestBrewmaster-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 553083.31428 - tps: 2.98146343112e+06 - dtps: 41823.78219 - hps: 79516.66669 + dps: 555769.92108 + tps: 2.99182907893e+06 + dtps: 40718.33962 + hps: 79328.11262 } } dps_results: { key: "TestBrewmaster-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 557396.21543 - tps: 3.00367610108e+06 - dtps: 43405.89679 - hps: 82589.47564 + dps: 560578.32382 + tps: 3.01819945034e+06 + dtps: 42192.23843 + hps: 82632.3025 } } dps_results: { key: "TestBrewmaster-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 552958.47693 - tps: 2.98207068458e+06 - dtps: 41612.30299 - hps: 80333.61135 + dps: 556109.84825 + tps: 2.99571180713e+06 + dtps: 40167.54252 + hps: 80043.85071 } } dps_results: { key: "TestBrewmaster-AllItems-HeartofFire-81181" value: { - dps: 553487.60733 - tps: 2.9820741875e+06 - dtps: 41378.56298 - hps: 80539.64406 + dps: 554363.05073 + tps: 2.98702777908e+06 + dtps: 39779.39865 + hps: 79675.01549 } } dps_results: { key: "TestBrewmaster-AllItems-HeartwarmerMedallion-93260" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-HelmbreakerMedallion-93261" value: { - dps: 557631.3244 - tps: 3.0025814263e+06 - dtps: 43402.93282 - hps: 82397.87953 + dps: 561567.962 + tps: 3.02357730893e+06 + dtps: 41873.87678 + hps: 82141.2657 } } dps_results: { key: "TestBrewmaster-AllItems-Horridon'sLastGasp-96757" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-ImpassivePrimalDiamond" value: { - dps: 553008.75053 - tps: 2.94524645606e+06 - dtps: 42486.62871 - hps: 82577.9009 + dps: 554892.93515 + tps: 2.96044853364e+06 + dtps: 41529.02306 + hps: 82015.13297 } } dps_results: { key: "TestBrewmaster-AllItems-IndomitablePrimalDiamond" value: { - dps: 550928.7923 - tps: 2.93374214268e+06 - dtps: 37103.46258 - hps: 80079.97263 + dps: 551221.81206 + tps: 2.93728601182e+06 + dtps: 37121.16848 + hps: 80278.06464 } } dps_results: { key: "TestBrewmaster-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 552250.02975 - tps: 2.976452455e+06 - dtps: 42503.96991 - hps: 80842.56136 + dps: 554991.40581 + tps: 2.98889532991e+06 + dtps: 41343.12796 + hps: 80602.72182 } } dps_results: { key: "TestBrewmaster-AllItems-InsigniaofKypariZar-84078" value: { - dps: 556564.89723 - tps: 3.00418151978e+06 - dtps: 40362.41279 - hps: 80861.94483 + dps: 555854.25505 + tps: 2.99663629364e+06 + dtps: 40004.14983 + hps: 80992.68879 } } dps_results: { key: "TestBrewmaster-AllItems-IronBellyWok-89083" value: { - dps: 560343.84208 - tps: 3.00710128019e+06 - dtps: 43448.57876 - hps: 82663.20424 + dps: 562616.93019 + tps: 3.03161651348e+06 + dtps: 41298.37349 + hps: 81981.3971 } } dps_results: { key: "TestBrewmaster-AllItems-IronProtectorTalisman-85181" value: { - dps: 551878.63473 - tps: 2.97391815842e+06 - dtps: 42205.75771 - hps: 80833.35041 + dps: 553685.8666 + tps: 2.98401428636e+06 + dtps: 41100.9796 + hps: 80418.79282 } } dps_results: { key: "TestBrewmaster-AllItems-JadeBanditFigurine-86772" value: { - dps: 564641.72097 - tps: 3.03487221122e+06 - dtps: 41699.98289 - hps: 80484.78969 + dps: 564437.53361 + tps: 3.04761320792e+06 + dtps: 40923.00849 + hps: 81338.20617 } } dps_results: { key: "TestBrewmaster-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 560716.60391 - tps: 3.01045234112e+06 - dtps: 42635.93759 - hps: 80621.96854 + dps: 558234.94131 + tps: 3.00957606978e+06 + dtps: 41486.57787 + hps: 80929.71352 } } dps_results: { key: "TestBrewmaster-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 555066.83129 - tps: 2.99015462573e+06 - dtps: 43418.56191 - hps: 82304.8501 + dps: 559225.14191 + tps: 3.012298734e+06 + dtps: 41862.39811 + hps: 81954.98929 } } dps_results: { key: "TestBrewmaster-AllItems-JadeWarlordFigurine-86775" value: { - dps: 552805.14766 - tps: 2.98005687195e+06 - dtps: 42527.62101 - hps: 80210.80933 + dps: 556396.73389 + tps: 2.99854246273e+06 + dtps: 41980.22068 + hps: 80127.9113 } } dps_results: { key: "TestBrewmaster-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 551635.51361 - tps: 2.9710480345e+06 - dtps: 43419.68027 - hps: 81551.46665 + dps: 554480.53096 + tps: 2.98370805667e+06 + dtps: 42256.66824 + hps: 81411.09681 } } dps_results: { key: "TestBrewmaster-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 554125.16061 - tps: 2.98949411432e+06 - dtps: 39134.51875 - hps: 93788.50747 + dps: 555655.35316 + tps: 2.99599329854e+06 + dtps: 39256.30306 + hps: 93868.53593 } } dps_results: { key: "TestBrewmaster-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 575705.65002 - tps: 3.14113304798e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 578080.50186 + tps: 3.15038730494e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 553493.43335 - tps: 2.98259854448e+06 - dtps: 42641.00957 - hps: 81184.87524 + dps: 556128.85009 + tps: 2.99433072973e+06 + dtps: 41925.4325 + hps: 81196.17639 } } dps_results: { key: "TestBrewmaster-AllItems-KnotofTenSongs-84073" value: { - dps: 556148.14476 - tps: 3.00200347819e+06 - dtps: 40623.07266 - hps: 81227.79539 + dps: 557815.26745 + tps: 3.00936099309e+06 + dtps: 39834.73486 + hps: 80913.95085 } } dps_results: { key: "TestBrewmaster-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 552560.44357 - tps: 2.97805336982e+06 - dtps: 42375.86664 - hps: 80163.64444 + dps: 555244.71196 + tps: 2.99027035125e+06 + dtps: 41871.90191 + hps: 80044.79592 } } dps_results: { key: "TestBrewmaster-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 564613.44726 - tps: 3.03912814614e+06 - dtps: 42396.33243 - hps: 82210.77899 + dps: 567550.30438 + tps: 3.05676400151e+06 + dtps: 41956.05648 + hps: 82295.36252 } } dps_results: { key: "TestBrewmaster-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 552802.46445 - tps: 2.9774821951e+06 - dtps: 43406.71337 - hps: 81610.91888 + dps: 555870.49754 + tps: 2.99196603214e+06 + dtps: 42245.07603 + hps: 81540.93379 } } dps_results: { key: "TestBrewmaster-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 559260.6267 - tps: 3.01570269895e+06 - dtps: 40451.46782 - hps: 80435.97812 + dps: 561718.28792 + tps: 3.03124567404e+06 + dtps: 39575.44835 + hps: 80272.8277 } } dps_results: { key: "TestBrewmaster-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 560602.65541 - tps: 3.02261724452e+06 - dtps: 39505.5803 - hps: 80153.61794 + dps: 562688.59394 + tps: 3.03230424947e+06 + dtps: 38990.55714 + hps: 80171.31598 } } dps_results: { key: "TestBrewmaster-AllItems-LightoftheCosmos-87065" value: { - dps: 562562.30579 - tps: 3.02915936458e+06 - dtps: 42413.52292 - hps: 81979.78407 + dps: 565496.22919 + tps: 3.04680836662e+06 + dtps: 41942.08211 + hps: 82016.43483 } } dps_results: { key: "TestBrewmaster-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 581001.09352 - tps: 3.1376494835e+06 - dtps: 42014.84347 - hps: 82220.14777 + dps: 582515.07471 + tps: 3.15273582832e+06 + dtps: 41074.77428 + hps: 82110.32638 } } dps_results: { key: "TestBrewmaster-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 573738.96377 - tps: 3.08998480517e+06 - dtps: 43427.21441 - hps: 83214.95889 + dps: 577445.89985 + tps: 3.12123338267e+06 + dtps: 42273.20236 + hps: 82747.82142 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 558921.5879 - tps: 3.01117446712e+06 - dtps: 41780.47315 - hps: 81539.61325 + dps: 561114.12482 + tps: 3.02614573428e+06 + dtps: 40677.30451 + hps: 81752.60793 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 553060.79207 - tps: 2.9798422131e+06 - dtps: 43380.61706 - hps: 81550.59176 + dps: 555882.55174 + tps: 2.99241140717e+06 + dtps: 42219.19982 + hps: 81382.32324 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 555884.24721 - tps: 2.99805450093e+06 - dtps: 43250.63919 - hps: 82442.24424 + dps: 559116.63219 + tps: 3.0126984321e+06 + dtps: 42070.93493 + hps: 82315.16463 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 552387.78483 - tps: 2.97868992684e+06 - dtps: 43258.06354 - hps: 81498.18207 + dps: 554968.39087 + tps: 2.99002739427e+06 + dtps: 42096.24012 + hps: 81242.17439 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 554220.50473 - tps: 2.98917825441e+06 - dtps: 42879.59688 - hps: 80616.43604 + dps: 554787.79087 + tps: 2.98736506611e+06 + dtps: 42201.71571 + hps: 80656.67446 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 561351.72378 - tps: 3.02567824964e+06 - dtps: 40817.80826 - hps: 81413.62965 + dps: 562544.53927 + tps: 3.03397185982e+06 + dtps: 40688.84304 + hps: 81496.69218 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 553605.52164 - tps: 2.98246746675e+06 - dtps: 43374.86855 - hps: 81657.40382 + dps: 556730.16718 + tps: 2.99683677054e+06 + dtps: 42291.04028 + hps: 81550.72063 } } dps_results: { key: "TestBrewmaster-AllItems-MarkoftheCatacombs-83731" value: { - dps: 555207.01647 - tps: 2.99294697614e+06 - dtps: 42634.47953 - hps: 81681.68115 + dps: 558052.60615 + tps: 3.00529781263e+06 + dtps: 41660.67737 + hps: 81509.64556 } } dps_results: { key: "TestBrewmaster-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 557485.21995 - tps: 3.00681793441e+06 - dtps: 39936.87827 - hps: 80987.75773 + dps: 556923.33362 + tps: 3.00176403301e+06 + dtps: 40116.61702 + hps: 80646.24124 } } dps_results: { key: "TestBrewmaster-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 555954.98673 - tps: 2.99910392877e+06 - dtps: 41489.09154 - hps: 80199.05448 + dps: 556391.98013 + tps: 2.99977276589e+06 + dtps: 41514.94001 + hps: 80446.5723 } } dps_results: { key: "TestBrewmaster-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-MirrorScope-4700" value: { - dps: 573738.96377 - tps: 3.08998480517e+06 - dtps: 43427.21441 - hps: 83214.95889 + dps: 577445.89985 + tps: 3.12123338267e+06 + dtps: 42273.20236 + hps: 82747.82142 } } dps_results: { key: "TestBrewmaster-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 554565.55747 - tps: 2.99032893551e+06 - dtps: 41956.79492 - hps: 80705.85654 + dps: 556610.48335 + tps: 3.00083493766e+06 + dtps: 41554.00912 + hps: 80396.1412 } } dps_results: { key: "TestBrewmaster-AllItems-MistdancerDefenderStone-101087" value: { - dps: 554478.2151 - tps: 2.99157668469e+06 - dtps: 41741.89637 - hps: 79798.07553 + dps: 556899.08932 + tps: 3.00003368664e+06 + dtps: 40615.78343 + hps: 79609.23448 } } dps_results: { key: "TestBrewmaster-AllItems-MistdancerIdolofRage-101113" value: { - dps: 558850.25068 - tps: 3.01480360135e+06 - dtps: 40498.35689 - hps: 80504.90234 + dps: 560074.43683 + tps: 3.02230094343e+06 + dtps: 40900.60406 + hps: 80903.1058 } } dps_results: { key: "TestBrewmaster-AllItems-MistdancerStoneofRage-101117" value: { - dps: 560618.11239 - tps: 3.02076126583e+06 - dtps: 39195.77635 - hps: 79625.94915 + dps: 563109.93542 + tps: 3.03355088428e+06 + dtps: 38412.15412 + hps: 79800.19491 } } dps_results: { key: "TestBrewmaster-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-MithrilWristwatch-282033" value: { - dps: 557383.79935 - tps: 3.00389012689e+06 - dtps: 43440.07708 - hps: 83147.45685 + dps: 560387.59987 + tps: 3.01815749021e+06 + dtps: 42277.75634 + hps: 83040.04966 } } dps_results: { key: "TestBrewmaster-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 555331.44302 - tps: 2.98759761327e+06 - dtps: 41429.91862 - hps: 80049.29941 + dps: 558094.63764 + tps: 3.00596731844e+06 + dtps: 40855.01478 + hps: 80269.96046 } } dps_results: { key: "TestBrewmaster-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 551228.55806 - tps: 2.97309221497e+06 - dtps: 41798.4709 - hps: 80164.97131 + dps: 554197.69176 + tps: 2.98581799789e+06 + dtps: 40357.54646 + hps: 79841.4207 } } dps_results: { key: "TestBrewmaster-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-NitroBoosts-4223" value: { - dps: 581954.24427 - tps: 3.14270472529e+06 - dtps: 42013.57415 - hps: 82220.14777 + dps: 583614.06695 + tps: 3.15937350555e+06 + dtps: 41074.93015 + hps: 82199.73378 } } dps_results: { key: "TestBrewmaster-AllItems-OathswornDefenderIdol-101303" value: { - dps: 553286.49076 - tps: 2.98106094423e+06 - dtps: 41516.91616 - hps: 80702.39132 + dps: 555364.52614 + tps: 2.99619381703e+06 + dtps: 40831.40755 + hps: 79959.21898 } } dps_results: { key: "TestBrewmaster-AllItems-OathswornDefenderStone-101306" value: { - dps: 552212.20413 - tps: 2.9771549743e+06 - dtps: 41896.84349 - hps: 79757.70901 + dps: 554609.83952 + tps: 2.98737879171e+06 + dtps: 40893.73043 + hps: 79554.11643 } } dps_results: { key: "TestBrewmaster-AllItems-OathswornIdolofBattle-101295" value: { - dps: 557460.82964 - tps: 3.00392065787e+06 - dtps: 43401.6469 - hps: 82635.43746 + dps: 560619.35335 + tps: 3.01829230284e+06 + dtps: 42213.92821 + hps: 82676.8363 } } dps_results: { key: "TestBrewmaster-AllItems-OathswornStoneofBattle-101294" value: { - dps: 552314.46215 - tps: 2.97770049171e+06 - dtps: 42353.61797 - hps: 80882.56581 + dps: 554951.82082 + tps: 2.98818754599e+06 + dtps: 41120.74957 + hps: 80432.77398 } } dps_results: { key: "TestBrewmaster-AllItems-PhaseFingers-4697" value: { - dps: 581567.76378 - tps: 3.13175485518e+06 - dtps: 41225.16631 - hps: 81636.25108 + dps: 583711.75235 + tps: 3.14337804185e+06 + dtps: 40475.10031 + hps: 81669.0934 } } dps_results: { key: "TestBrewmaster-AllItems-PouchofWhiteAsh-103639" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-PowerfulPrimalDiamond" value: { - dps: 551869.30351 - tps: 2.9405930661e+06 - dtps: 42386.41511 - hps: 82548.94222 + dps: 552911.13477 + tps: 2.95020932406e+06 + dtps: 41536.91776 + hps: 82009.31037 } } dps_results: { key: "TestBrewmaster-AllItems-PriceofProgress-81266" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 563738.81727 - tps: 3.04183942814e+06 - dtps: 40584.47091 - hps: 81511.7129 + dps: 566781.28784 + tps: 3.06429159605e+06 + dtps: 39484.94929 + hps: 81196.38974 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 554367.93377 - tps: 2.98623307672e+06 - dtps: 43370.23068 - hps: 81661.31684 + dps: 556885.89054 + tps: 2.99688933158e+06 + dtps: 42210.55347 + hps: 81450.59438 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 560617.58093 - tps: 3.02293562181e+06 - dtps: 43188.38436 - hps: 83163.3141 + dps: 564155.49088 + tps: 3.04127025157e+06 + dtps: 41834.52454 + hps: 82736.51644 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 553157.90118 - tps: 2.98233766952e+06 - dtps: 43165.56006 - hps: 81320.48393 + dps: 555717.45608 + tps: 2.9935257761e+06 + dtps: 42003.05908 + hps: 81100.46634 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 553815.48035 - tps: 2.98822348948e+06 - dtps: 43164.03415 - hps: 80305.74962 + dps: 554264.03094 + tps: 2.98630193404e+06 + dtps: 42486.57215 + hps: 80267.72735 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 566614.76254 - tps: 3.04893033689e+06 - dtps: 39973.32057 - hps: 81745.57342 + dps: 568967.73558 + tps: 3.06601452452e+06 + dtps: 39978.70668 + hps: 81957.21139 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 555437.92663 - tps: 2.99144114258e+06 - dtps: 43314.36474 - hps: 81845.40957 + dps: 558782.60809 + tps: 3.0072835759e+06 + dtps: 42275.96223 + hps: 81736.69919 } } dps_results: { key: "TestBrewmaster-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 560651.27381 - tps: 3.01944418037e+06 - dtps: 43426.59167 - hps: 83624.76444 + dps: 563735.78483 + tps: 3.03444895608e+06 + dtps: 42286.26573 + hps: 83555.60353 } } dps_results: { key: "TestBrewmaster-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 572134.94012 - tps: 3.07997521533e+06 - dtps: 41509.28127 - hps: 81893.81312 + dps: 576716.9733 + tps: 3.11206095097e+06 + dtps: 41248.35963 + hps: 82036.47156 } } dps_results: { key: "TestBrewmaster-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 572134.94012 - tps: 3.07997521533e+06 - dtps: 41509.28127 - hps: 81893.81312 + dps: 576716.9733 + tps: 3.11206095097e+06 + dtps: 41248.35963 + hps: 82036.47156 } } dps_results: { key: "TestBrewmaster-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 566218.93459 - tps: 3.06246752596e+06 - dtps: 43259.0421 - hps: 80765.7406 + dps: 565908.06367 + tps: 3.05491735912e+06 + dtps: 43149.76701 + hps: 80630.82099 } } dps_results: { key: "TestBrewmaster-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofChi-Ji-79330" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofKypariZar-84075" value: { - dps: 561358.15333 - tps: 3.00800618309e+06 - dtps: 42040.6844 - hps: 81041.73649 + dps: 564282.51363 + tps: 3.02845829948e+06 + dtps: 41416.44732 + hps: 81332.33196 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofNiuzao-79329" value: { - dps: 552683.16151 - tps: 2.97445739863e+06 - dtps: 40619.75431 - hps: 80033.69897 + dps: 556372.97697 + tps: 2.99813295194e+06 + dtps: 40449.76988 + hps: 79906.90648 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofXuen-79327" value: { - dps: 554542.36037 - tps: 2.98772152391e+06 - dtps: 43449.21128 - hps: 81869.29915 + dps: 557480.50264 + tps: 3.00087758705e+06 + dtps: 42288.11007 + hps: 81749.28939 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofXuen-79328" value: { - dps: 564377.3493 - tps: 3.0442196912e+06 - dtps: 40120.90064 - hps: 81330.23998 + dps: 568071.30481 + tps: 3.06532152582e+06 + dtps: 39629.85493 + hps: 81699.19482 } } dps_results: { key: "TestBrewmaster-AllItems-RelicofYu'lon-79331" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 566931.18338 - tps: 3.05914521259e+06 - dtps: 38664.09701 - hps: 80285.97869 + dps: 566828.41525 + tps: 3.05851743511e+06 + dtps: 39296.83265 + hps: 81279.96156 } } dps_results: { key: "TestBrewmaster-AllItems-ResolveofNiuzao-103990" value: { - dps: 553750.3373 - tps: 2.98483241788e+06 - dtps: 40156.87614 - hps: 80568.99734 + dps: 555600.18437 + tps: 2.99283037317e+06 + dtps: 39492.63457 + hps: 80521.75907 } } dps_results: { key: "TestBrewmaster-AllItems-ReverberatingPrimalDiamond" value: { - dps: 562228.10196 - tps: 3.00516819835e+06 - dtps: 42407.53869 - hps: 83683.484 + dps: 563785.68687 + tps: 3.01780599023e+06 + dtps: 41473.22094 + hps: 83425.72742 } } dps_results: { key: "TestBrewmaster-AllItems-RevitalizingPrimalDiamond" value: { - dps: 561928.82996 - tps: 3.00366243826e+06 - dtps: 42408.60294 - hps: 83632.42526 + dps: 563486.17695 + tps: 3.01629571732e+06 + dtps: 41475.65542 + hps: 83374.88287 } } dps_results: { key: "TestBrewmaster-AllItems-RuneofRe-Origination-96918" value: { - dps: 582288.13185 - tps: 3.11549577761e+06 - dtps: 40714.49078 - hps: 87200.12858 + dps: 584810.18214 + tps: 3.12606746145e+06 + dtps: 40064.9598 + hps: 87845.93878 } } dps_results: { key: "TestBrewmaster-AllItems-SI:7Operative'sManual-92784" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-SearingWords-81267" value: { - dps: 564076.29452 - tps: 3.04395262544e+06 - dtps: 39961.9874 - hps: 81913.24503 + dps: 564547.55688 + tps: 3.05067355838e+06 + dtps: 40382.66847 + hps: 82398.47138 } } dps_results: { key: "TestBrewmaster-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 560899.27572 - tps: 3.0137645447e+06 - dtps: 43096.53846 - hps: 82844.35623 + dps: 562126.2138 + tps: 3.01931216698e+06 + dtps: 43352.23475 + hps: 83121.26171 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofCompassion-83736" value: { - dps: 553056.41666 - tps: 2.98291138569e+06 - dtps: 42574.81961 - hps: 80486.89907 + dps: 555517.47261 + tps: 2.99306661448e+06 + dtps: 41789.34246 + hps: 80321.19507 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofDevotion-83740" value: { - dps: 555198.25904 - tps: 2.99280722619e+06 - dtps: 42630.55018 - hps: 81455.33021 + dps: 557729.18461 + tps: 3.00303239846e+06 + dtps: 41819.15018 + hps: 81342.38002 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofFidelity-83737" value: { - dps: 561662.47392 - tps: 3.00906465078e+06 - dtps: 42733.11767 - hps: 81384.98141 + dps: 565723.60142 + tps: 3.03752977487e+06 + dtps: 42242.40687 + hps: 81752.68813 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofGrace-83738" value: { - dps: 557662.46564 - tps: 2.99572060148e+06 - dtps: 41792.87387 - hps: 81020.08837 + dps: 558760.31918 + tps: 3.0008469892e+06 + dtps: 41349.67117 + hps: 81374.44345 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofKypariZar-84076" value: { - dps: 555852.69122 - tps: 2.99735966403e+06 - dtps: 42250.45067 - hps: 81542.30862 + dps: 558472.77711 + tps: 3.00727217965e+06 + dtps: 41185.50858 + hps: 81229.07053 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofPatience-83739" value: { - dps: 557548.26281 - tps: 3.0102368043e+06 - dtps: 40623.83588 - hps: 80327.73973 + dps: 557718.21091 + tps: 3.00721111293e+06 + dtps: 40381.58984 + hps: 80088.81615 } } dps_results: { key: "TestBrewmaster-AllItems-SigilofRampage-105580" value: { - dps: 567395.50618 - tps: 3.06704303423e+06 - dtps: 40022.91681 - hps: 82013.56779 + dps: 570716.51267 + tps: 3.08523525127e+06 + dtps: 39138.09035 + hps: 81871.72204 } } dps_results: { key: "TestBrewmaster-AllItems-SigiloftheCatacombs-83732" value: { - dps: 563066.48802 - tps: 3.04140531563e+06 - dtps: 42533.44718 - hps: 81748.82601 + dps: 563346.29801 + tps: 3.03749225719e+06 + dtps: 41735.28177 + hps: 81798.30799 } } dps_results: { key: "TestBrewmaster-AllItems-SinisterPrimalDiamond" value: { - dps: 552616.94615 - tps: 2.94290836423e+06 - dtps: 42486.26498 - hps: 82577.9009 + dps: 554521.45569 + tps: 2.95825578172e+06 + dtps: 41528.92364 + hps: 82061.66368 } } dps_results: { key: "TestBrewmaster-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 567867.17921 - tps: 3.05405410138e+06 - dtps: 43366.35306 - hps: 84238.31343 + dps: 570504.55011 + tps: 3.0663998557e+06 + dtps: 42259.0608 + hps: 84533.94711 } } dps_results: { key: "TestBrewmaster-AllItems-SkullrenderMedallion-93256" value: { - dps: 557631.3244 - tps: 3.0025814263e+06 - dtps: 43402.93282 - hps: 82397.87953 + dps: 561567.962 + tps: 3.02357730893e+06 + dtps: 41873.87678 + hps: 82141.2657 } } dps_results: { key: "TestBrewmaster-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-SoulBarrier-96927" value: { - dps: 553652.89513 - tps: 2.98848867787e+06 - dtps: 43132.54695 - hps: 80176.32496 + dps: 554105.13925 + tps: 2.98654886251e+06 + dtps: 42458.61234 + hps: 80127.54295 } } dps_results: { key: "TestBrewmaster-AllItems-SparkofZandalar-96770" value: { - dps: 558418.80823 - tps: 2.99992449219e+06 - dtps: 42023.03447 - hps: 80853.50378 + dps: 561733.55005 + tps: 3.0132645989e+06 + dtps: 41425.85789 + hps: 80820.63029 } } dps_results: { key: "TestBrewmaster-AllItems-SpiritsoftheSun-87163" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 556763.21248 - tps: 2.99998355988e+06 - dtps: 41017.38116 - hps: 80105.0756 + dps: 559367.51471 + tps: 3.0186742274e+06 + dtps: 41166.94717 + hps: 80044.46656 } } dps_results: { key: "TestBrewmaster-AllItems-SpringrainIdolofRage-101009" value: { - dps: 559605.70083 - tps: 3.01416603382e+06 - dtps: 40154.74069 - hps: 80282.90811 + dps: 561961.92313 + tps: 3.02849804353e+06 + dtps: 39853.99777 + hps: 80588.60724 } } dps_results: { key: "TestBrewmaster-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 550850.20484 - tps: 2.96901458142e+06 - dtps: 42136.92283 - hps: 80022.67273 + dps: 553567.5274 + tps: 2.98141573293e+06 + dtps: 40978.83198 + hps: 79801.66915 } } dps_results: { key: "TestBrewmaster-AllItems-SpringrainStoneofRage-101012" value: { - dps: 559950.7746 - tps: 3.017753851e+06 - dtps: 39545.75097 - hps: 80042.26834 + dps: 562692.7665 + tps: 3.03328188407e+06 + dtps: 38876.61355 + hps: 80305.89917 } } dps_results: { key: "TestBrewmaster-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 560899.27572 - tps: 3.0137645447e+06 - dtps: 43096.53846 - hps: 82844.35623 + dps: 562126.2138 + tps: 3.01931216698e+06 + dtps: 43352.23475 + hps: 83121.26171 } } dps_results: { key: "TestBrewmaster-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 555323.67154 - tps: 2.99160655394e+06 - dtps: 40490.51254 - hps: 80150.53284 + dps: 556871.00526 + tps: 2.997074349e+06 + dtps: 39924.43518 + hps: 80224.26707 } } dps_results: { key: "TestBrewmaster-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 556554.8363 - tps: 2.99439236505e+06 - dtps: 41963.00423 - hps: 80340.90061 + dps: 558385.50882 + tps: 3.00501510183e+06 + dtps: 41758.38696 + hps: 80257.49214 } } dps_results: { key: "TestBrewmaster-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 559290.37003 - tps: 3.01248748482e+06 - dtps: 39955.4402 - hps: 80201.28923 + dps: 561307.67204 + tps: 3.02303278102e+06 + dtps: 39882.84417 + hps: 80279.41566 } } dps_results: { key: "TestBrewmaster-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 551761.26006 - tps: 2.97779261379e+06 - dtps: 41981.99522 - hps: 80592.71063 + dps: 554156.41024 + tps: 2.98552902722e+06 + dtps: 40700.48082 + hps: 80256.70221 } } dps_results: { key: "TestBrewmaster-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 560010.47563 - tps: 3.01689967955e+06 - dtps: 39783.61989 - hps: 80143.63651 + dps: 562713.4931 + tps: 3.03181911333e+06 + dtps: 39128.05571 + hps: 80406.34238 } } dps_results: { key: "TestBrewmaster-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-StuffofNightmares-87160" value: { - dps: 557089.11979 - tps: 3.00497679546e+06 - dtps: 39997.19626 - hps: 80656.75242 + dps: 558340.56313 + tps: 3.00958686869e+06 + dtps: 39528.71171 + hps: 80851.92466 } } dps_results: { key: "TestBrewmaster-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 554072.60447 - tps: 2.98376503944e+06 - dtps: 42020.45515 - hps: 80929.71124 + dps: 555300.82955 + tps: 2.99384538481e+06 + dtps: 41501.41277 + hps: 80478.3279 } } dps_results: { key: "TestBrewmaster-AllItems-SunsoulDefenderStone-101163" value: { - dps: 553542.89607 - tps: 2.98575784487e+06 - dtps: 41731.97976 - hps: 79984.74342 + dps: 555804.84299 + tps: 2.99344882497e+06 + dtps: 40608.44972 + hps: 79715.33994 } } dps_results: { key: "TestBrewmaster-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 557486.15429 - tps: 3.00407922077e+06 - dtps: 43372.00495 - hps: 82596.86043 + dps: 560639.45825 + tps: 3.01839573821e+06 + dtps: 42214.40509 + hps: 82638.98347 } } dps_results: { key: "TestBrewmaster-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 553383.12986 - tps: 2.98634797551e+06 - dtps: 41657.48409 - hps: 80462.53978 + dps: 555793.14612 + tps: 2.9941706225e+06 + dtps: 40372.80366 + hps: 79983.38945 } } dps_results: { key: "TestBrewmaster-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 582634.14216 - tps: 3.14566056116e+06 - dtps: 42029.73041 - hps: 82381.60287 + dps: 584162.98731 + tps: 3.16087523293e+06 + dtps: 41114.76134 + hps: 82320.38329 } } dps_results: { key: "TestBrewmaster-AllItems-SymboloftheCatacombs-83735" value: { - dps: 556382.06158 - tps: 2.99875000256e+06 - dtps: 42599.47307 - hps: 81394.06406 + dps: 559891.04864 + tps: 3.01737418955e+06 + dtps: 41814.43695 + hps: 81321.61391 } } dps_results: { @@ -2292,298 +2292,298 @@ dps_results: { dps_results: { key: "TestBrewmaster-AllItems-TalismanofBloodlust-96864" value: { - dps: 571694.62151 - tps: 3.07249032108e+06 - dtps: 40754.67372 - hps: 81851.01888 + dps: 572911.96001 + tps: 3.0788412019e+06 + dtps: 40860.82126 + hps: 81891.64492 } } dps_results: { key: "TestBrewmaster-AllItems-TerrorintheMists-87167" value: { - dps: 571562.64191 - tps: 3.08259331965e+06 - dtps: 39672.08141 - hps: 81818.03394 + dps: 573551.47631 + tps: 3.09376878605e+06 + dtps: 39198.82254 + hps: 81546.68683 } } dps_results: { key: "TestBrewmaster-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 552862.73813 - tps: 2.99753700005e+06 - dtps: 43363.41975 - hps: 81195.21774 + dps: 553880.17778 + tps: 2.99763772909e+06 + dtps: 43229.15013 + hps: 81104.91343 } } dps_results: { key: "TestBrewmaster-AllItems-TickingEbonDetonator-105612" value: { - dps: 566012.59513 - tps: 3.05066843546e+06 - dtps: 37826.55899 - hps: 80101.57654 + dps: 566548.54104 + tps: 3.05786898749e+06 + dtps: 38450.45386 + hps: 80613.72533 } } dps_results: { key: "TestBrewmaster-AllItems-Time-LostArtifact-103678" value: { - dps: 560472.72123 - tps: 3.0084185634e+06 - dtps: 42557.87449 - hps: 81847.89846 + dps: 562695.57701 + tps: 3.01938239732e+06 + dtps: 42129.58399 + hps: 81583.13127 } } dps_results: { key: "TestBrewmaster-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 558983.70679 - tps: 3.01310448849e+06 - dtps: 40342.39661 - hps: 80354.66297 + dps: 561142.65646 + tps: 3.02396965641e+06 + dtps: 40482.61265 + hps: 80472.67237 } } dps_results: { key: "TestBrewmaster-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 559965.51663 - tps: 3.0167328808e+06 - dtps: 39491.84245 - hps: 79819.48651 + dps: 562478.03656 + tps: 3.02952435703e+06 + dtps: 38730.98525 + hps: 79995.43689 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 557165.86708 - tps: 3.0018504008e+06 - dtps: 41889.72545 - hps: 81669.84645 + dps: 559161.43649 + tps: 3.0150564759e+06 + dtps: 40755.36552 + hps: 81647.21736 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 553330.71106 - tps: 2.98116189825e+06 - dtps: 43378.58837 - hps: 81591.31 + dps: 556131.35207 + tps: 2.99362443775e+06 + dtps: 42217.20896 + hps: 81473.68601 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 557015.58594 - tps: 3.00428891753e+06 - dtps: 43230.25016 - hps: 82682.8488 + dps: 560168.66117 + tps: 3.01909089056e+06 + dtps: 42071.80376 + hps: 82434.32338 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 552406.03808 - tps: 2.97881769963e+06 - dtps: 43258.60382 - hps: 81463.41396 + dps: 554968.39087 + tps: 2.99002739427e+06 + dtps: 42096.24012 + hps: 81242.17439 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 554655.98007 - tps: 2.99082329679e+06 - dtps: 42789.15673 - hps: 80515.00698 + dps: 555219.68532 + tps: 2.98902915694e+06 + dtps: 42111.13828 + hps: 80511.66763 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 561940.95861 - tps: 3.02644611358e+06 - dtps: 41047.39167 - hps: 81633.72611 + dps: 563389.57482 + tps: 3.03429658868e+06 + dtps: 40566.3271 + hps: 81665.45597 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 553978.35872 - tps: 2.98423036634e+06 - dtps: 43347.4599 - hps: 81716.91614 + dps: 556899.23766 + tps: 2.99718923419e+06 + dtps: 42315.60151 + hps: 81523.56663 } } dps_results: { key: "TestBrewmaster-AllItems-TyrannicalPrimalDiamond" value: { - dps: 551295.15538 - tps: 2.93721913332e+06 - dtps: 42463.01001 - hps: 82608.55975 + dps: 552800.81997 + tps: 2.94948605368e+06 + dtps: 41539.23253 + hps: 82023.77484 } } dps_results: { key: "TestBrewmaster-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-VaporshieldMedallion-93262" value: { - dps: 557485.21995 - tps: 3.00681793441e+06 - dtps: 39936.87827 - hps: 80987.75773 + dps: 556923.33362 + tps: 3.00176403301e+06 + dtps: 40116.61702 + hps: 80646.24124 } } dps_results: { key: "TestBrewmaster-AllItems-VialofDragon'sBlood-87063" value: { - dps: 553179.38845 - tps: 2.98150247749e+06 - dtps: 40107.15068 - hps: 79985.16607 + dps: 554393.96736 + tps: 2.98489506056e+06 + dtps: 40385.6028 + hps: 80161.70389 } } dps_results: { key: "TestBrewmaster-AllItems-VialofIchorousBlood-100963" value: { - dps: 551461.9364 - tps: 2.97142705262e+06 - dtps: 43416.59525 - hps: 81507.13913 + dps: 554149.99733 + tps: 2.98287377323e+06 + dtps: 42256.29255 + hps: 81259.49521 } } dps_results: { key: "TestBrewmaster-AllItems-VialofLivingCorruption-105568" value: { - dps: 552449.31965 - tps: 2.98001830901e+06 - dtps: 43258.01198 - hps: 79698.13554 + dps: 552910.27169 + tps: 2.9781394491e+06 + dtps: 42607.35892 + hps: 79736.25314 } } dps_results: { key: "TestBrewmaster-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 564983.17407 - tps: 3.06061151064e+06 - dtps: 42570.79294 - hps: 81918.41721 + dps: 565889.93419 + tps: 3.06395841408e+06 + dtps: 42650.95182 + hps: 82528.95637 } } dps_results: { key: "TestBrewmaster-AllItems-VisionofthePredator-81192" value: { - dps: 555612.04025 - tps: 2.99296495228e+06 - dtps: 43257.28903 - hps: 82165.11508 + dps: 559346.64951 + tps: 3.01153557459e+06 + dtps: 41986.58459 + hps: 81636.34424 } } dps_results: { key: "TestBrewmaster-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 558342.44163 - tps: 3.0138380444e+06 - dtps: 42419.36068 - hps: 79602.4602 + dps: 561079.44171 + tps: 3.03063941946e+06 + dtps: 42068.9901 + hps: 79006.43757 } } dps_results: { key: "TestBrewmaster-AllItems-WindsweptPages-81125" value: { - dps: 566944.03403 - tps: 3.05826714008e+06 - dtps: 40817.71853 - hps: 81447.30593 + dps: 569689.65131 + tps: 3.07326112466e+06 + dtps: 40427.44883 + hps: 81394.54119 } } dps_results: { key: "TestBrewmaster-AllItems-WoundripperMedallion-93253" value: { - dps: 567699.42544 - tps: 3.06059770084e+06 - dtps: 40664.13528 - hps: 82154.55006 + dps: 569140.78445 + tps: 3.06858609802e+06 + dtps: 40240.69031 + hps: 82051.35623 } } dps_results: { key: "TestBrewmaster-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 563211.49956 - tps: 3.05837983623e+06 - dtps: 41727.66751 - hps: 81020.57835 + dps: 564251.48491 + tps: 3.05805291545e+06 + dtps: 41377.66461 + hps: 81031.43579 } } dps_results: { key: "TestBrewmaster-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 558438.72283 - tps: 3.01491379856e+06 - dtps: 45386.25051 - hps: 84004.72955 + dps: 560473.52633 + tps: 3.02847900103e+06 + dtps: 44888.44567 + hps: 84009.01283 } } dps_results: { key: "TestBrewmaster-AllItems-YaungolFireCarrier-86518" value: { - dps: 581954.24427 - tps: 3.14270472529e+06 - dtps: 42013.57415 - hps: 82220.14777 + dps: 583614.06695 + tps: 3.15937350555e+06 + dtps: 41074.93015 + hps: 82199.73378 } } dps_results: { key: "TestBrewmaster-AllItems-Yu'lon'sBite-103987" value: { - dps: 561637.63608 - tps: 3.0211974126e+06 - dtps: 43323.71893 - hps: 82913.95738 + dps: 564760.11197 + tps: 3.03596282086e+06 + dtps: 42134.37591 + hps: 82519.15968 } } dps_results: { key: "TestBrewmaster-AllItems-ZenAlchemistStone-75274" value: { - dps: 560413.25261 - tps: 3.01503486597e+06 - dtps: 40164.99979 - hps: 81155.42235 + dps: 561862.31661 + tps: 3.03131998666e+06 + dtps: 39894.824 + hps: 81078.58697 } } dps_results: { diff --git a/sim/monk/windwalker/TestWindwalker.results b/sim/monk/windwalker/TestWindwalker.results index d25a08f51f..38ba369b93 100644 --- a/sim/monk/windwalker/TestWindwalker.results +++ b/sim/monk/windwalker/TestWindwalker.results @@ -7,12 +7,12 @@ character_stats_results: { final_stats: 257 final_stats: 271 final_stats: 2550 - final_stats: 11782 - final_stats: 11800 + final_stats: 11792 + final_stats: 11795 final_stats: 2604 final_stats: 29911 final_stats: 0 - final_stats: 14801 + final_stats: 14796 final_stats: 71342.7 final_stats: 0 final_stats: 0 @@ -25,2297 +25,2297 @@ character_stats_results: { final_stats: 0 final_stats: 7.5 final_stats: 15.15882 - final_stats: 57.73108 - final_stats: 26.48667 + final_stats: 57.74775 + final_stats: 26.50333 final_stats: 0 } } dps_results: { key: "TestWindwalker-AllItems-AgilePrimalDiamond" value: { - dps: 501120.08132 - tps: 484853.5808 - hps: 12157.48174 + dps: 507883.42728 + tps: 491516.41716 + hps: 12248.06005 } } dps_results: { key: "TestWindwalker-AllItems-AlacrityofXuen-103989" value: { - dps: 469093.96037 - tps: 453949.63365 - hps: 11012.15047 + dps: 477992.29358 + tps: 462576.68576 + hps: 11016.73161 } } dps_results: { key: "TestWindwalker-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 457653.6417 - tps: 442587.54795 - hps: 10582.25614 + dps: 458364.92279 + tps: 443287.61509 + hps: 10773.84604 } } dps_results: { key: "TestWindwalker-AllItems-ArmorofSevenSacredSeals" value: { - dps: 341846.99657 - tps: 327245.64701 - hps: 9136.74832 + dps: 337648.34016 + tps: 323043.47277 + hps: 9233.55266 } } dps_results: { key: "TestWindwalker-AllItems-ArmoroftheRedCrane" value: { - dps: 318695.54161 - tps: 304841.65158 - hps: 8823.1435 + dps: 320114.41975 + tps: 306400.54116 + hps: 8824.3606 } } dps_results: { key: "TestWindwalker-AllItems-ArrowflightMedallion-93258" value: { - dps: 461726.21466 - tps: 444686.66039 - hps: 12798.48584 + dps: 461971.3869 + tps: 444837.71323 + hps: 12985.79794 } } dps_results: { key: "TestWindwalker-AllItems-AssuranceofConsequence-105472" value: { - dps: 491152.35211 - tps: 475152.86848 - hps: 12097.6863 + dps: 500184.62208 + tps: 483994.41805 + hps: 11986.80009 } } dps_results: { key: "TestWindwalker-AllItems-AusterePrimalDiamond" value: { - dps: 489182.07675 - tps: 473022.9038 - hps: 11965.61574 + dps: 495788.36789 + tps: 479527.39587 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-BadJuju-96781" value: { - dps: 488318.33503 - tps: 472863.30194 - hps: 11766.7395 + dps: 493159.56045 + tps: 477604.9197 + hps: 11848.96303 } } dps_results: { key: "TestWindwalker-AllItems-BadgeofKypariZar-84079" value: { - dps: 449952.57242 - tps: 435332.92453 - hps: 11912.70925 + dps: 451060.57868 + tps: 436268.38372 + hps: 11983.87409 } } dps_results: { key: "TestWindwalker-AllItems-BattlegearofSevenSacredSeals" value: { - dps: 344539.91851 - tps: 330103.25817 - hps: 8991.84352 + dps: 332796.64354 + tps: 316747.97057 + hps: 12481.72468 } } dps_results: { key: "TestWindwalker-AllItems-BattlegearoftheRedCrane" value: { - dps: 323255.36344 - tps: 309423.39071 - hps: 8629.34215 + dps: 323401.57991 + tps: 309846.88151 + hps: 8746.08131 } } dps_results: { key: "TestWindwalker-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 404705.44383 - tps: 389275.00283 - hps: 9928.17513 + dps: 405782.7065 + tps: 390300.47217 + hps: 10150.53514 } } dps_results: { key: "TestWindwalker-AllItems-BlossomofPureSnow-89081" value: { - dps: 451356.70225 - tps: 434946.04674 - hps: 12353.90652 + dps: 451528.45437 + tps: 435030.27908 + hps: 12537.99155 } } dps_results: { key: "TestWindwalker-AllItems-BottleofInfiniteStars-87057" value: { - dps: 483646.98981 - tps: 468782.83381 - hps: 11564.23698 + dps: 487049.36448 + tps: 472096.06095 + hps: 11646.088 } } dps_results: { key: "TestWindwalker-AllItems-BraidofTenSongs-84072" value: { - dps: 465813.6172 - tps: 451172.10815 - hps: 10612.89008 + dps: 468689.49114 + tps: 453971.82996 + hps: 10883.32195 } } dps_results: { key: "TestWindwalker-AllItems-Brawler'sStatue-282039" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 467057.6953 + tps: 452785.43574 + hps: 11141.08546 } } dps_results: { key: "TestWindwalker-AllItems-BreathoftheHydra-96827" value: { - dps: 404136.35667 - tps: 388744.48138 - hps: 10229.76423 + dps: 408138.72091 + tps: 392705.18436 + hps: 10091.21295 } } dps_results: { key: "TestWindwalker-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 464391.40866 - tps: 450255.84357 - hps: 11104.61334 + dps: 467067.40842 + tps: 452795.14885 + hps: 11141.08546 } } dps_results: { key: "TestWindwalker-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 470764.70593 - tps: 456081.57703 - hps: 11375.3823 + dps: 474991.94254 + tps: 460207.4583 + hps: 11450.65019 } } dps_results: { key: "TestWindwalker-AllItems-BurningPrimalDiamond" value: { - dps: 498988.37044 - tps: 482826.9017 - hps: 12083.17709 + dps: 505793.56011 + tps: 489530.2923 + hps: 12173.73444 } } dps_results: { key: "TestWindwalker-AllItems-CapacitivePrimalDiamond" value: { - dps: 520423.33181 - tps: 504054.72412 - hps: 12125.31225 + dps: 523734.93832 + tps: 507403.51766 + hps: 12227.31608 } } dps_results: { key: "TestWindwalker-AllItems-CarbonicCarbuncle-81138" value: { - dps: 457596.73479 - tps: 442842.79479 - hps: 11657.86241 + dps: 459155.03746 + tps: 444271.87913 + hps: 11843.16588 } } dps_results: { key: "TestWindwalker-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 388673.48217 - tps: 371585.34866 - hps: 13737.5437 + dps: 396352.56906 + tps: 379163.8586 + hps: 14010.30357 } } dps_results: { key: "TestWindwalker-AllItems-CharmofTenSongs-84071" value: { - dps: 400192.90387 - tps: 383241.44848 - hps: 12658.05202 + dps: 405579.64704 + tps: 388557.27015 + hps: 12836.8777 } } dps_results: { key: "TestWindwalker-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 467612.96653 - tps: 453140.99623 - hps: 10721.6737 + dps: 479064.31789 + tps: 464401.15196 + hps: 10792.2777 } } dps_results: { key: "TestWindwalker-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 469136.19069 - tps: 455000.6256 - hps: 11104.61334 + dps: 472833.89969 + tps: 458591.90867 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 397795.44307 - tps: 379724.87587 - hps: 14413.43273 + dps: 405723.03513 + tps: 387562.35312 + hps: 14721.23188 } } dps_results: { key: "TestWindwalker-AllItems-CoreofDecency-87497" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CourageousPrimalDiamond" value: { - dps: 489176.06816 - tps: 473016.89521 - hps: 11965.61574 + dps: 495785.4016 + tps: 479524.42957 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 471488.39206 - tps: 456892.1588 - hps: 11300.62833 + dps: 473331.25264 + tps: 458581.51253 + hps: 11351.89228 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 466818.71716 - tps: 452489.81722 - hps: 11197.958 + dps: 469139.92816 + tps: 454666.66723 + hps: 11251.84071 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 386317.78402 - tps: 369316.43716 - hps: 13673.1534 + dps: 394106.39319 + tps: 377004.33385 + hps: 13945.21467 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 464392.1793 - tps: 450256.61421 - hps: 11104.61334 + dps: 468416.36252 + tps: 454174.3715 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 476249.35097 - tps: 461579.79306 - hps: 11480.51258 + dps: 479969.20868 + tps: 465213.73111 + hps: 11559.3572 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 468351.61757 - tps: 454000.23077 - hps: 11279.06593 + dps: 472217.36876 + tps: 457758.07037 + hps: 11357.87366 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 472778.42648 - tps: 458089.25329 - hps: 11336.43537 + dps: 474812.80322 + tps: 459972.61677 + hps: 11386.78602 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 467263.44571 - tps: 452899.19519 - hps: 11215.02573 + dps: 469574.7677 + tps: 455065.3392 + hps: 11268.4731 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 386705.91202 - tps: 369689.51237 - hps: 13685.34694 + dps: 394392.3677 + tps: 377274.49361 + hps: 13957.75751 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 464393.21586 - tps: 450257.65077 - hps: 11104.61334 + dps: 468418.39897 + tps: 454176.40795 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 478733.67773 - tps: 463969.69493 - hps: 11549.7411 + dps: 481924.00715 + tps: 467068.03912 + hps: 11610.58469 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 469114.58112 - tps: 454729.10702 - hps: 11310.39078 + dps: 473048.58312 + tps: 458556.95744 + hps: 11388.57268 } } dps_results: { key: "TestWindwalker-AllItems-CurseofHubris-105645" value: { - dps: 458895.24999 - tps: 442120.71397 - hps: 12430.3773 + dps: 456798.2367 + tps: 440028.35093 + hps: 12363.7298 } } dps_results: { key: "TestWindwalker-AllItems-CutstitcherMedallion-93255" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-Daelo'sFinalWords-87496" value: { - dps: 468531.86188 - tps: 453953.46235 - hps: 11064.16432 + dps: 472990.8358 + tps: 458284.21084 + hps: 11211.22865 } } dps_results: { key: "TestWindwalker-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 518690.84244 - tps: 502342.35289 - hps: 12091.14512 + dps: 522127.94817 + tps: 505816.93854 + hps: 12192.75047 } } dps_results: { key: "TestWindwalker-AllItems-DarkmistVortex-87172" value: { - dps: 472879.69368 - tps: 457923.0421 - hps: 11072.90411 + dps: 479939.16367 + tps: 464829.20942 + hps: 11081.69281 } } dps_results: { key: "TestWindwalker-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 474523.09292 - tps: 459996.12702 - hps: 11383.31339 + dps: 478606.04678 + tps: 463965.90572 + hps: 11441.90481 } } dps_results: { key: "TestWindwalker-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-DestructivePrimalDiamond" value: { - dps: 417513.96737 - tps: 397820.72162 - hps: 15055.07411 + dps: 417653.33738 + tps: 398175.09106 + hps: 15040.10382 } } dps_results: { key: "TestWindwalker-AllItems-DisciplineofXuen-103986" value: { - dps: 488300.91967 - tps: 473380.7076 - hps: 11675.44853 + dps: 492350.67254 + tps: 477323.52898 + hps: 11753.2722 } } dps_results: { key: "TestWindwalker-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 457653.6417 - tps: 442587.54795 - hps: 10582.25614 + dps: 458364.92279 + tps: 443287.61509 + hps: 10773.84604 } } dps_results: { key: "TestWindwalker-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 474523.09292 - tps: 459996.12702 - hps: 11383.31339 + dps: 478606.04678 + tps: 463965.90572 + hps: 11441.90481 } } dps_results: { key: "TestWindwalker-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 466775.6641 - tps: 452640.09901 - hps: 11104.61334 + dps: 470584.76818 + tps: 456303.4809 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 469540.32085 - tps: 455254.25429 - hps: 11237.40204 + dps: 473349.88158 + tps: 458917.98292 + hps: 11296.34791 } } dps_results: { key: "TestWindwalker-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 471488.39206 - tps: 456892.1588 - hps: 11300.62833 + dps: 473331.25264 + tps: 458581.51253 + hps: 11351.89228 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 466818.71716 - tps: 452489.81722 - hps: 11197.958 + dps: 469139.92816 + tps: 454666.66723 + hps: 11251.84071 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 386317.78402 - tps: 369316.43716 - hps: 13673.1534 + dps: 394106.39319 + tps: 377004.33385 + hps: 13945.21467 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 464392.1793 - tps: 450256.61421 - hps: 11104.61334 + dps: 468416.36252 + tps: 454174.3715 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 476303.44725 - tps: 461661.60563 - hps: 11470.65175 + dps: 479872.27016 + tps: 465143.11789 + hps: 11538.28512 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 468365.88038 - tps: 454001.9024 - hps: 11278.47272 + dps: 472262.05 + tps: 457793.81344 + hps: 11353.47403 } } dps_results: { key: "TestWindwalker-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 466775.6641 - tps: 452640.09901 - hps: 11104.61334 + dps: 470584.76818 + tps: 456303.4809 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-EffulgentPrimalDiamond" value: { - dps: 489182.07675 - tps: 473022.9038 - hps: 11965.61574 + dps: 495788.36789 + tps: 479527.39587 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-EmberPrimalDiamond" value: { - dps: 489176.06816 - tps: 473016.89521 - hps: 11965.61574 + dps: 495785.4016 + tps: 479524.42957 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-EmblemofKypariZar-84077" value: { - dps: 401726.79559 - tps: 384833.31384 - hps: 12639.74335 + dps: 406697.94277 + tps: 389757.71936 + hps: 13018.29743 } } dps_results: { key: "TestWindwalker-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 440308.77826 - tps: 425190.86234 - hps: 10526.32413 + dps: 447141.2499 + tps: 431881.23485 + hps: 10614.05354 } } dps_results: { key: "TestWindwalker-AllItems-EmptyFruitBarrel-81133" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 520523.22986 - tps: 504022.26114 - hps: 12112.70658 + dps: 522528.0533 + tps: 506084.10299 + hps: 12188.2385 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 514119.73445 - tps: 497894.33704 - hps: 11844.56597 + dps: 516448.65631 + tps: 500298.15425 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 504451.02557 - tps: 488370.16338 - hps: 11880.05491 + dps: 508336.39617 + tps: 491882.95758 + hps: 12114.41805 } } dps_results: { key: "TestWindwalker-AllItems-EnigmaticPrimalDiamond" value: { - dps: 417513.96737 - tps: 397820.72162 - hps: 15055.07411 + dps: 417653.33738 + tps: 398175.09106 + hps: 15040.10382 } } dps_results: { key: "TestWindwalker-AllItems-EssenceofTerror-87175" value: { - dps: 477387.33568 - tps: 462689.99673 - hps: 10875.58787 + dps: 470107.84618 + tps: 455184.92362 + hps: 10894.81164 } } dps_results: { key: "TestWindwalker-AllItems-EternalPrimalDiamond" value: { - dps: 489176.06816 - tps: 473016.89521 - hps: 11965.61574 + dps: 495785.4016 + tps: 479524.42957 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-EvilEyeofGalakras-105491" value: { - dps: 473986.7414 - tps: 459316.33099 - hps: 11566.74369 + dps: 477922.99719 + tps: 463147.81841 + hps: 11647.95397 } } dps_results: { key: "TestWindwalker-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 468976.15841 - tps: 454151.57108 - hps: 11339.01421 + dps: 480654.377 + tps: 465538.85221 + hps: 11327.15754 } } dps_results: { key: "TestWindwalker-AllItems-FearwurmBadge-84074" value: { - dps: 402918.94471 - tps: 385973.87009 - hps: 12736.2074 + dps: 411039.33848 + tps: 394005.15479 + hps: 12885.17532 } } dps_results: { key: "TestWindwalker-AllItems-FearwurmRelic-84070" value: { - dps: 403479.73056 - tps: 386691.48051 - hps: 12551.90562 + dps: 407361.16622 + tps: 390435.02052 + hps: 12782.34734 } } dps_results: { key: "TestWindwalker-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 463390.54853 - tps: 448837.47641 - hps: 10667.86422 + dps: 474505.56668 + tps: 459907.38364 + hps: 10895.94618 } } dps_results: { key: "TestWindwalker-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 469575.18918 - tps: 455439.62409 - hps: 11104.61334 + dps: 473565.23898 + tps: 459323.24796 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Fire-CharmArmor" value: { - dps: 341627.38891 - tps: 326782.22958 - hps: 9360.09621 + dps: 343557.84859 + tps: 328761.32174 + hps: 9366.04447 } } dps_results: { key: "TestWindwalker-AllItems-Fire-CharmBattlegear" value: { - dps: 354305.59206 - tps: 339714.86955 - hps: 9162.3248 + dps: 353735.4907 + tps: 338957.35586 + hps: 9022.96553 } } dps_results: { key: "TestWindwalker-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 465924.62072 - tps: 451676.37652 - hps: 10953.19596 + dps: 463029.81844 + tps: 448709.01523 + hps: 11138.52707 } } dps_results: { key: "TestWindwalker-AllItems-FlashingSteelTalisman-81265" value: { - dps: 474248.30637 - tps: 459172.63695 - hps: 11268.03872 + dps: 477402.59443 + tps: 462262.82168 + hps: 11459.44347 } } dps_results: { key: "TestWindwalker-AllItems-FleetPrimalDiamond" value: { - dps: 490831.46683 - tps: 474672.2575 - hps: 11965.61574 + dps: 497477.38403 + tps: 481216.37562 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-ForlornPrimalDiamond" value: { - dps: 489176.06816 - tps: 473016.89521 - hps: 11965.61574 + dps: 495785.4016 + tps: 479524.42957 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 470796.85604 - tps: 456661.29095 - hps: 11104.61334 + dps: 474863.49467 + tps: 460621.50366 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Fusion-FireCore-105459" value: { - dps: 474899.52177 - tps: 459875.61955 - hps: 11541.93459 + dps: 479305.79388 + tps: 464170.3128 + hps: 11621.68551 } } dps_results: { key: "TestWindwalker-AllItems-GazeoftheTwins-96915" value: { - dps: 455451.93681 - tps: 440237.84387 - hps: 12184.76625 + dps: 465811.47694 + tps: 450470.24535 + hps: 12241.28455 } } dps_results: { key: "TestWindwalker-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 391524.92138 - tps: 373863.68062 - hps: 13950.9198 + dps: 399308.54052 + tps: 381550.33391 + hps: 14228.77571 } } dps_results: { key: "TestWindwalker-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 503652.44857 - tps: 487753.07902 - hps: 11426.46171 + dps: 495936.59265 + tps: 480345.47209 + hps: 11488.18667 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 477490.24517 - tps: 462481.50054 - hps: 11460.57233 + dps: 479455.37167 + tps: 464289.01219 + hps: 11507.7567 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 468803.94873 - tps: 454317.24673 - hps: 11274.14695 + dps: 471081.016 + tps: 456446.306 + hps: 11326.08635 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 388185.60675 - tps: 371127.05763 - hps: 13720.04473 + dps: 395789.55721 + tps: 378623.59089 + hps: 13992.80461 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 464396.83028 - tps: 450261.26519 - hps: 11104.61334 + dps: 468425.49989 + tps: 454183.50887 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 485495.14535 - tps: 470380.45914 - hps: 11748.47865 + dps: 488557.78473 + tps: 473344.08011 + hps: 11799.26615 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 471813.33817 - tps: 457284.94792 - hps: 11420.1832 + dps: 475704.76575 + tps: 461074.86066 + hps: 11500.08762 } } dps_results: { key: "TestWindwalker-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 478536.2566 - tps: 462985.6837 - hps: 10956.92391 + dps: 476891.04041 + tps: 461231.49696 + hps: 11019.40692 } } dps_results: { key: "TestWindwalker-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 464395.60376 - tps: 450260.03867 - hps: 11104.61334 + dps: 468423.09027 + tps: 454181.09925 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 469927.7966 - tps: 455792.23151 - hps: 11104.61334 + dps: 473473.85054 + tps: 459231.85952 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 390339.09971 - tps: 372986.39861 - hps: 13933.32549 + dps: 398075.14684 + tps: 380624.70404 + hps: 14212.41797 } } dps_results: { key: "TestWindwalker-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 472640.03329 - tps: 458314.65929 - hps: 11272.08333 + dps: 476753.35997 + tps: 462321.94218 + hps: 11351.4407 } } dps_results: { key: "TestWindwalker-AllItems-HeartofFire-81181" value: { - dps: 467485.55225 - tps: 453349.98716 - hps: 11104.61334 + dps: 470201.18943 + tps: 455928.92987 + hps: 11141.08546 } } dps_results: { key: "TestWindwalker-AllItems-HeartwarmerMedallion-93260" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-HelmbreakerMedallion-93261" value: { - dps: 455431.33279 - tps: 438761.5583 - hps: 12568.85336 + dps: 455545.46809 + tps: 438785.00202 + hps: 12754.4757 } } dps_results: { key: "TestWindwalker-AllItems-Horridon'sLastGasp-96757" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-ImpassivePrimalDiamond" value: { - dps: 417513.96737 - tps: 397820.72162 - hps: 15055.07411 + dps: 417653.33738 + tps: 398175.09106 + hps: 15040.10382 } } dps_results: { key: "TestWindwalker-AllItems-IndomitablePrimalDiamond" value: { - dps: 489182.07675 - tps: 473022.9038 - hps: 11965.61574 + dps: 495788.36789 + tps: 479527.39587 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-InsigniaofKypariZar-84078" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-IronBellyWok-89083" value: { - dps: 471989.11092 - tps: 456768.17843 - hps: 10770.09837 + dps: 470488.14843 + tps: 455141.61045 + hps: 10833.297 } } dps_results: { key: "TestWindwalker-AllItems-IronProtectorTalisman-85181" value: { - dps: 464393.18873 - tps: 450257.62364 - hps: 11104.61334 + dps: 468418.34566 + tps: 454176.35464 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-JadeBanditFigurine-86772" value: { - dps: 455508.1283 - tps: 439881.75038 - hps: 11049.14424 + dps: 464497.65256 + tps: 448842.80716 + hps: 11016.53525 } } dps_results: { key: "TestWindwalker-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 450053.72333 - tps: 434705.0672 - hps: 10881.68455 + dps: 458986.8416 + tps: 443622.00634 + hps: 10851.11575 } } dps_results: { key: "TestWindwalker-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 451183.80862 - tps: 434780.55701 - hps: 12341.71298 + dps: 451155.68507 + tps: 434665.58903 + hps: 12532.25861 } } dps_results: { key: "TestWindwalker-AllItems-JadeWarlordFigurine-86775" value: { - dps: 467219.83226 - tps: 453084.26717 - hps: 11104.61334 + dps: 470966.50906 + tps: 456685.22178 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 463267.09528 - tps: 449141.77377 - hps: 25331.97889 + dps: 469048.83627 + tps: 454806.22464 + hps: 25576.79715 } } dps_results: { key: "TestWindwalker-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 490004.98261 - tps: 475869.41752 - hps: 11104.61334 + dps: 493859.92731 + tps: 479617.93629 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 469540.32085 - tps: 455254.25429 - hps: 11237.40204 + dps: 473349.88158 + tps: 458917.98292 + hps: 11296.34791 } } dps_results: { key: "TestWindwalker-AllItems-KnotofTenSongs-84073" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 462862.46562 + tps: 448739.77005 + hps: 11156.51219 } } dps_results: { key: "TestWindwalker-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 467585.57398 - tps: 453450.00889 - hps: 11104.61334 + dps: 471279.85277 + tps: 456998.56549 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 404373.74441 - tps: 388600.67572 - hps: 10083.99064 + dps: 405989.62559 + tps: 390145.93389 + hps: 10407.20919 } } dps_results: { key: "TestWindwalker-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 467495.40167 - tps: 453106.40909 - hps: 11219.22188 + dps: 470115.80786 + tps: 455590.14263 + hps: 11246.89488 } } dps_results: { key: "TestWindwalker-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 480761.78436 - tps: 466044.97373 - hps: 11497.76709 + dps: 484354.50379 + tps: 469550.3174 + hps: 11574.86549 } } dps_results: { key: "TestWindwalker-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 479316.5385 - tps: 464697.42029 - hps: 11456.42529 + dps: 483004.11746 + tps: 468286.49952 + hps: 11535.06986 } } dps_results: { key: "TestWindwalker-AllItems-LightoftheCosmos-87065" value: { - dps: 400210.48214 - tps: 384755.66498 - hps: 9895.62769 + dps: 402069.09535 + tps: 386539.4234 + hps: 10207.535 } } dps_results: { key: "TestWindwalker-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 518690.84244 - tps: 502342.35289 - hps: 12091.14512 + dps: 522127.94817 + tps: 505816.93854 + hps: 12192.75047 } } dps_results: { key: "TestWindwalker-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 472778.42648 - tps: 458089.25329 - hps: 11336.43537 + dps: 474812.80322 + tps: 459972.61677 + hps: 11386.78602 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 467263.44571 - tps: 452899.19519 - hps: 11215.02573 + dps: 469574.7677 + tps: 455065.3392 + hps: 11268.4731 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 386705.91202 - tps: 369689.51237 - hps: 13685.34694 + dps: 394392.3677 + tps: 377274.49361 + hps: 13957.75751 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 464393.21586 - tps: 450257.65077 - hps: 11104.61334 + dps: 468418.39897 + tps: 454176.40795 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 478403.05349 - tps: 463642.68107 - hps: 11538.93822 + dps: 481779.39814 + tps: 466923.74045 + hps: 11610.21641 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 469046.5723 - tps: 454649.20342 - hps: 11301.50494 + dps: 472973.38219 + tps: 458471.2006 + hps: 11386.93582 } } dps_results: { key: "TestWindwalker-AllItems-MarkoftheCatacombs-83731" value: { - dps: 434569.87531 - tps: 417907.70059 - hps: 12988.51453 + dps: 432667.69082 + tps: 415947.62562 + hps: 13125.24649 } } dps_results: { key: "TestWindwalker-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 467791.4953 - tps: 453655.93021 - hps: 11104.61334 + dps: 471454.55198 + tps: 457173.2647 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 466644.00543 - tps: 452508.44034 - hps: 11104.61334 + dps: 470679.569 + tps: 456437.57798 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-MirrorScope-4700" value: { - dps: 512652.90864 - tps: 496585.18996 - hps: 11844.56597 + dps: 514734.25598 + tps: 498740.20146 + hps: 11929.64219 } } dps_results: { key: "TestWindwalker-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 464395.60376 - tps: 450260.03867 - hps: 11104.61334 + dps: 468423.09027 + tps: 454181.09925 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MistdancerDefenderStone-101087" value: { - dps: 469593.58491 - tps: 455458.01982 - hps: 11104.61334 + dps: 473049.8377 + tps: 458807.84669 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MistdancerIdolofRage-101113" value: { - dps: 480535.27281 - tps: 465793.77022 - hps: 11495.09409 + dps: 484396.46342 + tps: 469564.88471 + hps: 11556.04311 } } dps_results: { key: "TestWindwalker-AllItems-MistdancerStoneofRage-101117" value: { - dps: 479272.23976 - tps: 464653.12155 - hps: 11456.42529 + dps: 483107.09669 + tps: 468389.47875 + hps: 11535.06986 } } dps_results: { key: "TestWindwalker-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-MithrilWristwatch-282033" value: { - dps: 388401.45409 - tps: 371330.96905 - hps: 13737.5437 + dps: 395928.6048 + tps: 378761.99299 + hps: 14010.30357 } } dps_results: { key: "TestWindwalker-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 467814.59801 - tps: 453192.20648 - hps: 10696.16709 + dps: 471940.6428 + tps: 457063.16231 + hps: 10854.90154 } } dps_results: { key: "TestWindwalker-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 469417.55076 - tps: 455281.98567 - hps: 11104.61334 + dps: 473304.73057 + tps: 459062.73955 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-NitroBoosts-4223" value: { - dps: 520423.33181 - tps: 504054.72412 - hps: 12125.31225 + dps: 523734.93832 + tps: 507403.51766 + hps: 12227.31608 } } dps_results: { key: "TestWindwalker-AllItems-OathswornDefenderIdol-101303" value: { - dps: 464395.60376 - tps: 450260.03867 - hps: 11104.61334 + dps: 468423.09027 + tps: 454181.09925 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-OathswornDefenderStone-101306" value: { - dps: 469038.70449 - tps: 454903.1394 - hps: 11104.61334 + dps: 472816.71189 + tps: 458574.72088 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-OathswornIdolofBattle-101295" value: { - dps: 390386.56143 - tps: 373035.04411 - hps: 13924.73447 + dps: 398145.61441 + tps: 380697.51367 + hps: 14209.02398 } } dps_results: { key: "TestWindwalker-AllItems-OathswornStoneofBattle-101294" value: { - dps: 472330.10882 - tps: 458004.73482 - hps: 11272.08333 + dps: 476748.10288 + tps: 462316.68509 + hps: 11351.4407 } } dps_results: { key: "TestWindwalker-AllItems-PhaseFingers-4697" value: { - dps: 454313.04828 - tps: 436284.09222 - hps: 11170.04362 + dps: 457975.05051 + tps: 439799.18967 + hps: 10941.11003 } } dps_results: { key: "TestWindwalker-AllItems-PouchofWhiteAsh-103639" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 462862.46562 + tps: 448739.77005 + hps: 11156.51219 } } dps_results: { key: "TestWindwalker-AllItems-PowerfulPrimalDiamond" value: { - dps: 489182.07675 - tps: 473022.9038 - hps: 11965.61574 + dps: 495788.36789 + tps: 479527.39587 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-PriceofProgress-81266" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 481088.53058 - tps: 465802.19245 - hps: 11566.78867 + dps: 483089.22418 + tps: 467642.10155 + hps: 11611.25994 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 470122.08748 - tps: 455530.60928 - hps: 11324.7343 + dps: 472369.84453 + tps: 457627.93682 + hps: 11375.3834 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 388867.85119 - tps: 371770.05225 - hps: 13765.60814 + dps: 396601.26187 + tps: 379397.77874 + hps: 14044.7504 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 464399.91827 - tps: 450264.35318 - hps: 11104.61334 + dps: 468431.56659 + tps: 454189.57557 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 491861.95037 - tps: 476485.71768 - hps: 11966.84256 + dps: 495025.14528 + tps: 479539.07249 + hps: 12023.34004 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 473966.69583 - tps: 459317.96783 - hps: 11526.65965 + dps: 477685.47844 + tps: 462931.18796 + hps: 11593.60322 } } dps_results: { key: "TestWindwalker-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 394121.56809 - tps: 376585.05017 - hps: 14114.91808 + dps: 402019.92734 + tps: 384378.25742 + hps: 14395.60024 } } dps_results: { key: "TestWindwalker-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 493609.92509 - tps: 479617.53046 - hps: 11073.33326 + dps: 494070.99985 + tps: 479827.77762 + hps: 11149.01408 } } dps_results: { key: "TestWindwalker-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 493609.92509 - tps: 479617.53046 - hps: 11073.33326 + dps: 494070.99985 + tps: 479827.77762 + hps: 11149.01408 } } dps_results: { key: "TestWindwalker-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 474818.50534 - tps: 458701.27858 - hps: 11905.65415 + dps: 479037.17884 + tps: 462967.44938 + hps: 11993.39193 } } dps_results: { key: "TestWindwalker-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 457378.61982 - tps: 441925.01996 - hps: 11537.13053 + dps: 461297.00116 + tps: 445854.34438 + hps: 11619.67896 } } dps_results: { key: "TestWindwalker-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-RelicofChi-Ji-79330" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-RelicofKypariZar-84075" value: { - dps: 401643.36969 - tps: 385814.84727 - hps: 11655.67644 + dps: 403231.61093 + tps: 387347.24186 + hps: 11634.18651 } } dps_results: { key: "TestWindwalker-AllItems-RelicofNiuzao-79329" value: { - dps: 464395.02307 - tps: 450259.45798 - hps: 11104.61334 + dps: 468373.34702 + tps: 454084.15695 + hps: 11209.24686 } } dps_results: { key: "TestWindwalker-AllItems-RelicofXuen-79327" value: { - dps: 470827.38146 - tps: 456337.95433 - hps: 11405.29492 + dps: 474756.27904 + tps: 460158.35238 + hps: 11477.24664 } } dps_results: { key: "TestWindwalker-AllItems-RelicofXuen-79328" value: { - dps: 482287.4569 - tps: 467233.38401 - hps: 11705.37758 + dps: 485926.05494 + tps: 470787.54523 + hps: 11776.85159 } } dps_results: { key: "TestWindwalker-AllItems-RelicofYu'lon-79331" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 484002.23907 - tps: 468396.60994 - hps: 11868.19912 + dps: 486727.60617 + tps: 471020.15576 + hps: 11967.19792 } } dps_results: { key: "TestWindwalker-AllItems-ResolveofNiuzao-103990" value: { - dps: 470449.26061 - tps: 456313.69552 - hps: 11104.61334 + dps: 474513.29825 + tps: 460271.30723 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-ReverberatingPrimalDiamond" value: { - dps: 499707.70694 - tps: 483505.52378 - hps: 12118.59873 + dps: 506517.39138 + tps: 490213.39231 + hps: 12209.16822 } } dps_results: { key: "TestWindwalker-AllItems-RevitalizingPrimalDiamond" value: { - dps: 498988.37044 - tps: 482826.9017 - hps: 12083.17709 + dps: 505793.56011 + tps: 489530.2923 + hps: 12173.73444 } } dps_results: { key: "TestWindwalker-AllItems-RuneofRe-Origination-96918" value: { - dps: 462852.20467 - tps: 448189.01109 - hps: 11397.52035 + dps: 467213.14133 + tps: 452382.91754 + hps: 11437.76254 } } dps_results: { key: "TestWindwalker-AllItems-SI:7Operative'sManual-92784" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 462862.46562 + tps: 448739.77005 + hps: 11156.51219 } } dps_results: { key: "TestWindwalker-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468539.06707 + tps: 454257.77979 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-SearingWords-81267" value: { - dps: 394714.25394 - tps: 376721.79452 - hps: 14205.2067 + dps: 402272.76366 + tps: 384169.08084 + hps: 14474.92737 } } dps_results: { key: "TestWindwalker-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 403902.79385 - tps: 388512.49786 - hps: 10097.33966 + dps: 403986.89325 + tps: 388575.5919 + hps: 10038.65538 } } dps_results: { key: "TestWindwalker-AllItems-SigilofCompassion-83736" value: { - dps: 466644.00543 - tps: 452508.44034 - hps: 11104.61334 + dps: 470679.569 + tps: 456437.57798 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SigilofDevotion-83740" value: { - dps: 429182.87209 - tps: 412540.36318 - hps: 12934.00104 + dps: 433933.38054 + tps: 417151.31762 + hps: 12963.52371 } } dps_results: { key: "TestWindwalker-AllItems-SigilofFidelity-83737" value: { - dps: 404752.29861 - tps: 389037.83529 - hps: 11401.00179 + dps: 405498.04044 + tps: 389657.48524 + hps: 11444.5413 } } dps_results: { key: "TestWindwalker-AllItems-SigilofGrace-83738" value: { - dps: 462245.21235 - tps: 447614.32313 - hps: 10688.66761 + dps: 466247.54073 + tps: 451376.04219 + hps: 10759.05818 } } dps_results: { key: "TestWindwalker-AllItems-SigilofKypariZar-84076" value: { - dps: 433268.66926 - tps: 416596.61209 - hps: 13021.49586 + dps: 436421.27813 + tps: 419669.12344 + hps: 13134.99343 } } dps_results: { key: "TestWindwalker-AllItems-SigilofPatience-83739" value: { - dps: 467323.00343 - tps: 453187.43834 - hps: 11104.61334 + dps: 471411.68833 + tps: 457169.69731 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SigilofRampage-105580" value: { - dps: 493725.69237 - tps: 477261.73051 - hps: 12027.58196 + dps: 498925.78005 + tps: 482390.38967 + hps: 12091.74211 } } dps_results: { key: "TestWindwalker-AllItems-SigiloftheCatacombs-83732" value: { - dps: 403696.45106 - tps: 386662.46414 - hps: 12697.14301 + dps: 405437.91628 + tps: 388317.00069 + hps: 12983.21167 } } dps_results: { key: "TestWindwalker-AllItems-SinisterPrimalDiamond" value: { - dps: 496876.2812 - tps: 480597.01175 - hps: 12138.14249 + dps: 499025.57767 + tps: 482710.88547 + hps: 12066.0895 } } dps_results: { key: "TestWindwalker-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 483349.6847 - tps: 467727.56623 - hps: 12290.89474 + dps: 485076.71588 + tps: 469379.90632 + hps: 12293.30129 } } dps_results: { key: "TestWindwalker-AllItems-SkullrenderMedallion-93256" value: { - dps: 455431.33279 - tps: 438761.5583 - hps: 12568.85336 + dps: 455545.46809 + tps: 438785.00202 + hps: 12754.4757 } } dps_results: { key: "TestWindwalker-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SoulBarrier-96927" value: { - dps: 464402.15421 - tps: 450266.58912 - hps: 11104.61334 + dps: 468435.95935 + tps: 454193.96833 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SparkofZandalar-96770" value: { - dps: 409369.1776 - tps: 393751.51578 - hps: 10421.16925 + dps: 413249.20114 + tps: 397610.62347 + hps: 10312.7999 } } dps_results: { key: "TestWindwalker-AllItems-SpiritsoftheSun-87163" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 466539.23634 - tps: 451967.57624 - hps: 10773.66244 + dps: 468911.96427 + tps: 454058.19232 + hps: 10863.7236 } } dps_results: { key: "TestWindwalker-AllItems-SpringrainIdolofRage-101009" value: { - dps: 481312.32782 - tps: 466589.49791 - hps: 11489.30259 + dps: 484497.91133 + tps: 469682.23944 + hps: 11559.16161 } } dps_results: { key: "TestWindwalker-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 469441.11546 - tps: 455305.55037 - hps: 11104.61334 + dps: 473195.29492 + tps: 458953.3039 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SpringrainStoneofRage-101012" value: { - dps: 479662.85987 - tps: 465043.74166 - hps: 11456.42529 + dps: 483686.47481 + tps: 468968.85687 + hps: 11535.06986 } } dps_results: { key: "TestWindwalker-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 403902.79385 - tps: 388512.49786 - hps: 10097.33966 + dps: 403986.89325 + tps: 388575.5919 + hps: 10038.65538 } } dps_results: { key: "TestWindwalker-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 469754.06976 - tps: 455618.50467 - hps: 11104.61334 + dps: 473812.90541 + tps: 459570.91439 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 475223.14662 - tps: 460690.4573 - hps: 10823.86707 + dps: 481344.40295 + tps: 466661.51866 + hps: 10786.02992 } } dps_results: { key: "TestWindwalker-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 480279.90984 - tps: 465545.8263 - hps: 11477.49684 + dps: 483758.86973 + tps: 468932.36147 + hps: 11550.69711 } } dps_results: { key: "TestWindwalker-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 469407.92094 - tps: 455272.35585 - hps: 11104.61334 + dps: 472972.92258 + tps: 458730.93157 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 478815.99147 - tps: 464196.87326 - hps: 11456.42529 + dps: 483089.30502 + tps: 468371.68708 + hps: 11535.06986 } } dps_results: { key: "TestWindwalker-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-StuffofNightmares-87160" value: { - dps: 469143.03359 - tps: 455007.4685 - hps: 11104.61334 + dps: 473197.29696 + tps: 458955.30594 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 464395.60376 - tps: 450260.03867 - hps: 11104.61334 + dps: 468423.09027 + tps: 454181.09925 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SunsoulDefenderStone-101163" value: { - dps: 469316.29929 - tps: 455180.7342 - hps: 11104.61334 + dps: 473132.50631 + tps: 458890.51529 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 390425.92877 - tps: 373078.01553 - hps: 13929.98454 + dps: 398154.7102 + tps: 380708.78125 + hps: 14202.12995 } } dps_results: { key: "TestWindwalker-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 473062.20195 - tps: 458736.82795 - hps: 11272.08333 + dps: 477004.50068 + tps: 462573.08289 + hps: 11351.4407 } } dps_results: { key: "TestWindwalker-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 522479.261 - tps: 505870.05189 - hps: 12244.52912 + dps: 525805.2526 + tps: 509231.60734 + hps: 12345.21047 } } dps_results: { key: "TestWindwalker-AllItems-SymboloftheCatacombs-83735" value: { - dps: 454248.50393 - tps: 439641.03812 - hps: 11953.07356 + dps: 461363.37757 + tps: 446671.66801 + hps: 12083.00107 } } dps_results: { key: "TestWindwalker-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 456354.33634 - tps: 438113.88056 - hps: 11235.27045 + dps: 457975.05051 + tps: 439799.18967 + hps: 10941.11003 } } dps_results: { key: "TestWindwalker-AllItems-TalismanofBloodlust-96864" value: { - dps: 477501.91724 - tps: 461992.41967 - hps: 11334.43872 + dps: 474197.28702 + tps: 458561.47001 + hps: 11403.79211 } } dps_results: { key: "TestWindwalker-AllItems-TerrorintheMists-87167" value: { - dps: 480562.63882 - tps: 465151.96958 - hps: 12133.68303 + dps: 479407.57249 + tps: 463938.58304 + hps: 12208.80372 } } dps_results: { key: "TestWindwalker-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-Thok'sTailTip-105609" value: { - dps: 504317.81668 - tps: 489612.15014 - hps: 11512.77751 + dps: 505094.30515 + tps: 490134.26936 + hps: 11584.50489 } } dps_results: { key: "TestWindwalker-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 470377.69473 - tps: 456010.90329 - hps: 11020.07039 + dps: 473970.72269 + tps: 459401.10319 + hps: 11037.40279 } } dps_results: { key: "TestWindwalker-AllItems-TickingEbonDetonator-105612" value: { - dps: 497521.02144 - tps: 481551.62815 - hps: 12045.45186 + dps: 502017.49393 + tps: 485992.88689 + hps: 12133.33201 } } dps_results: { key: "TestWindwalker-AllItems-Time-LostArtifact-103678" value: { - dps: 475441.44444 - tps: 460878.83303 - hps: 10752.52118 + dps: 479171.69857 + tps: 464354.69255 + hps: 10875.79587 } } dps_results: { key: "TestWindwalker-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 480588.9105 - tps: 465854.4168 - hps: 11487.96609 + dps: 483992.79159 + tps: 469172.17885 + hps: 11561.72324 } } dps_results: { key: "TestWindwalker-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 479711.69059 - tps: 465092.57238 - hps: 11456.42529 + dps: 483491.51711 + tps: 468773.89917 + hps: 11535.06986 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 474458.79976 - tps: 459630.73557 - hps: 11384.05836 + dps: 476500.33666 + tps: 461523.79879 + hps: 11433.19042 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 466761.75934 + tps: 452486.3015 + hps: 11160.87693 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 467853.74263 - tps: 453442.57059 - hps: 11237.68007 + dps: 470151.93874 + tps: 455594.5043 + hps: 11290.54961 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 387250.09832 - tps: 370213.28666 - hps: 13702.54577 + dps: 394909.68476 + tps: 377771.47973 + hps: 13975.30564 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 464394.59976 - tps: 450259.03467 - hps: 11104.61334 + dps: 468421.11779 + tps: 454179.12677 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 480756.32871 - tps: 465881.9732 - hps: 11617.07404 + dps: 484539.2203 + tps: 469575.87068 + hps: 11698.2517 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 470020.1523 - tps: 455569.61616 - hps: 11350.6422 + dps: 473920.76314 + tps: 459363.79138 + hps: 11432.32727 } } dps_results: { key: "TestWindwalker-AllItems-TyrannicalPrimalDiamond" value: { - dps: 489176.06816 - tps: 473016.89521 - hps: 11965.61574 + dps: 495785.4016 + tps: 479524.42957 + hps: 12055.83227 } } dps_results: { key: "TestWindwalker-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-VaporshieldMedallion-93262" value: { - dps: 467791.4953 - tps: 453655.93021 - hps: 11104.61334 + dps: 471454.55198 + tps: 457173.2647 + hps: 11163.88179 } } dps_results: { key: "TestWindwalker-AllItems-VialofDragon'sBlood-87063" value: { - dps: 468843.00386 - tps: 454707.43877 - hps: 11104.61334 + dps: 472895.02215 + tps: 458653.03114 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-VialofIchorousBlood-100963" value: { - dps: 464386.46462 - tps: 450250.89953 - hps: 11104.61334 + dps: 468405.13539 + tps: 454163.14437 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-VialofLivingCorruption-105568" value: { - dps: 464407.40759 - tps: 450271.8425 - hps: 11104.61334 + dps: 468446.2802 + tps: 454204.28918 + hps: 11184.60749 } } dps_results: { key: "TestWindwalker-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 478914.28514 - tps: 463571.01684 - hps: 11455.30008 + dps: 488331.9322 + tps: 472779.14836 + hps: 11599.0401 } } dps_results: { key: "TestWindwalker-AllItems-VisionofthePredator-81192" value: { - dps: 454229.22702 - tps: 439600.90758 - hps: 11577.38482 + dps: 455642.4244 + tps: 440886.0779 + hps: 11764.55801 } } dps_results: { key: "TestWindwalker-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 478721.38659 - tps: 464383.87186 - hps: 10828.29056 + dps: 471256.0389 + tps: 456730.23959 + hps: 10968.33413 } } dps_results: { key: "TestWindwalker-AllItems-WindsweptPages-81125" value: { - dps: 480981.15865 - tps: 465992.85726 - hps: 10974.36947 + dps: 486813.96157 + tps: 471695.58995 + hps: 11000.49115 } } dps_results: { key: "TestWindwalker-AllItems-WoundripperMedallion-93253" value: { - dps: 461726.21466 - tps: 444686.66039 - hps: 12798.48584 + dps: 461971.3869 + tps: 444837.71323 + hps: 12985.79794 } } dps_results: { key: "TestWindwalker-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 462796.23872 - tps: 448514.97325 - hps: 10908.65779 + dps: 474357.81784 + tps: 459769.26276 + hps: 10997.02813 } } dps_results: { key: "TestWindwalker-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 470604.32115 - tps: 455589.20862 - hps: 11532.10656 + dps: 472969.53504 + tps: 457863.00949 + hps: 11381.26441 } } dps_results: { key: "TestWindwalker-AllItems-YaungolFireCarrier-86518" value: { - dps: 520423.33181 - tps: 504054.72412 - hps: 12125.31225 + dps: 523734.93832 + tps: 507403.51766 + hps: 12227.31608 } } dps_results: { key: "TestWindwalker-AllItems-Yu'lon'sBite-103987" value: { - dps: 465848.02615 - tps: 450994.17199 - hps: 11685.55229 + dps: 468551.72337 + tps: 453607.56634 + hps: 11824.28811 } } dps_results: { key: "TestWindwalker-AllItems-ZenAlchemistStone-75274" value: { - dps: 481236.80087 - tps: 466529.30636 - hps: 11533.47118 + dps: 484852.14502 + tps: 470027.17918 + hps: 11599.05393 } } dps_results: { key: "TestWindwalker-Average-Default" value: { - dps: 521027.9686 - tps: 504188.33038 - hps: 12253.93853 + dps: 521131.71484 + tps: 504304.95588 + hps: 12250.08156 } } dps_results: { @@ -2417,97 +2417,97 @@ dps_results: { dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.68958595396e+06 - tps: 1.00124893735e+06 - hps: 10114.86129 + dps: 2.70000222609e+06 + tps: 1.00822885828e+06 + hps: 10018.65326 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 522215.71808 - tps: 505600.57049 - hps: 12062.31895 + dps: 529562.0416 + tps: 513012.01182 + hps: 12125.41869 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 635884.26949 - tps: 587543.26802 + dps: 636047.19337 + tps: 587716.2999 hps: 13323.89536 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.14439465169e+06 - tps: 796787.31643 - hps: 8113.44209 + dps: 2.14496159966e+06 + tps: 796356.52168 + hps: 7886.04551 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 407408.43563 - tps: 396073.97212 - hps: 10604.50754 + dps: 400133.49766 + tps: 388869.29864 + hps: 10507.92422 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 425572.05164 - tps: 396065.52524 - hps: 11546.34719 + dps: 425548.67081 + tps: 396032.85703 + hps: 11540.89019 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.99274550419e+06 - tps: 1.20030478278e+06 - hps: 11728.27298 + dps: 3.02954746506e+06 + tps: 1.20728685966e+06 + hps: 11972.49714 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 504410.04348 - tps: 502195.98673 - hps: 12128.12543 + dps: 501623.31295 + tps: 499409.2562 + hps: 12452.87647 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 579922.04827 - tps: 565012.59954 - hps: 13491.51283 + dps: 579543.02969 + tps: 564633.50615 + hps: 13421.22778 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.34061380987e+06 - tps: 936741.17009 - hps: 10063.06423 + dps: 2.33792265374e+06 + tps: 939331.14317 + hps: 10292.07521 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 389148.1714 - tps: 389148.1714 - hps: 10441.59291 + dps: 388083.58039 + tps: 388083.58039 + hps: 10515.06244 } } dps_results: { key: "TestWindwalker-Settings-Orc-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 395537.72265 - tps: 395537.72265 - hps: 10888.67 + dps: 395973.23921 + tps: 395973.23921 + hps: 10894.127 } } dps_results: { @@ -2609,104 +2609,104 @@ dps_results: { dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.72395355595e+06 - tps: 1.01804963462e+06 - hps: 10122.64951 + dps: 2.72985744005e+06 + tps: 1.02202951815e+06 + hps: 10223.47725 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 522233.18931 - tps: 505845.41955 - hps: 12196.87437 + dps: 523734.93832 + tps: 507403.51766 + hps: 12227.31608 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 615256.96614 - tps: 567788.30183 - hps: 13747.66324 + dps: 613540.48096 + tps: 566058.52624 + hps: 13755.16662 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.12510638259e+06 - tps: 789429.58787 - hps: 7868.88355 + dps: 2.14837008492e+06 + tps: 798846.22371 + hps: 7878.5506 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 412076.84676 - tps: 400989.62938 - hps: 10504.37548 + dps: 406473.17219 + tps: 395392.59936 + hps: 10439.77848 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-DefaultTalents-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 441880.94 - tps: 413128.20236 + dps: 442130.33802 + tps: 413382.62428 hps: 11024.20743 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 3.09046964461e+06 - tps: 1.24200916715e+06 - hps: 11700.5787 + dps: 3.10917793421e+06 + tps: 1.24640360636e+06 + hps: 11805.06288 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 511150.68966 - tps: 508936.47268 - hps: 12184.06413 + dps: 511749.799 + tps: 509535.58202 + hps: 12259.38565 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 609484.10606 - tps: 594617.577 - hps: 13234.49157 + dps: 611286.88733 + tps: 596420.28513 + hps: 13265.60305 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 2.39819544902e+06 - tps: 963545.52377 - hps: 10088.33881 + dps: 2.36249701832e+06 + tps: 950358.26507 + hps: 10170.6949 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 388676.97325 - tps: 388676.97325 - hps: 10433.31357 + dps: 390557.92806 + tps: 390557.92806 + hps: 10482.03187 } } dps_results: { key: "TestWindwalker-Settings-Troll-p5_bis-RushingJadeWindTalent-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 392894.41219 - tps: 392894.41219 - hps: 11031.37508 + dps: 394875.14979 + tps: 394875.14979 + hps: 11081.39708 } } dps_results: { key: "TestWindwalker-SwitchInFrontOfTarget-Default" value: { - dps: 445393.95309 - tps: 429577.25938 - hps: 12205.03501 + dps: 442369.93552 + tps: 426596.47547 + hps: 12107.5081 } } diff --git a/sim/paladin/protection/TestProtection.results b/sim/paladin/protection/TestProtection.results index 3bc0d30eb8..b561c45c1d 100644 --- a/sim/paladin/protection/TestProtection.results +++ b/sim/paladin/protection/TestProtection.results @@ -33,73 +33,73 @@ character_stats_results: { dps_results: { key: "TestProtection-AllItems-AgilePrimalDiamond" value: { - dps: 561990.45566 - tps: 3.51640427969e+06 - dtps: 44314.6275 - hps: 82338.2581 + dps: 564068.87605 + tps: 3.52816378923e+06 + dtps: 44009.53663 + hps: 82307.37102 } } dps_results: { key: "TestProtection-AllItems-AlacrityofXuen-103989" value: { - dps: 549013.91745 - tps: 3.49205424762e+06 - dtps: 42893.22956 - hps: 81142.16874 + dps: 552327.02104 + tps: 3.51327238292e+06 + dtps: 42007.3443 + hps: 80629.39425 } } dps_results: { key: "TestProtection-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 534547.01816 - tps: 3.40298111098e+06 - dtps: 43798.24893 - hps: 80044.38237 + dps: 542956.66202 + tps: 3.44336404548e+06 + dtps: 43658.41857 + hps: 80913.33363 } } dps_results: { key: "TestProtection-AllItems-ArrowflightMedallion-93258" value: { - dps: 551429.51061 - tps: 3.49173322227e+06 - dtps: 46054.30563 - hps: 80222.75699 + dps: 551825.32056 + tps: 3.49454202514e+06 + dtps: 46176.41307 + hps: 80463.79964 } } dps_results: { key: "TestProtection-AllItems-AssuranceofConsequence-105472" value: { - dps: 540932.25572 - tps: 3.42799540718e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542871.26157 + tps: 3.44343015814e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-AusterePrimalDiamond" value: { - dps: 554121.24557 - tps: 3.46764764398e+06 - dtps: 43339.07399 - hps: 81848.54586 + dps: 556186.23956 + tps: 3.47937318495e+06 + dtps: 43045.53333 + hps: 81865.23263 } } dps_results: { key: "TestProtection-AllItems-BadJuju-96781" value: { - dps: 540432.47581 - tps: 3.42449694785e+06 - dtps: 42920.34473 - hps: 79399.18012 + dps: 542318.07114 + tps: 3.43955782518e+06 + dtps: 43033.902 + hps: 79488.25708 } } dps_results: { key: "TestProtection-AllItems-BadgeofKypariZar-84079" value: { - dps: 545166.17922 - tps: 3.45154876201e+06 - dtps: 44700.82344 - hps: 79842.30119 + dps: 546852.9796 + tps: 3.46474686231e+06 + dtps: 44822.52226 + hps: 80052.10598 } } dps_results: { @@ -123,1522 +123,1522 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 546947.63056 - tps: 3.47006934231e+06 - dtps: 42445.24562 - hps: 79923.08661 + dps: 549646.89908 + tps: 3.48736215332e+06 + dtps: 41957.52755 + hps: 80067.62026 } } dps_results: { key: "TestProtection-AllItems-BlossomofPureSnow-89081" value: { - dps: 550998.31267 - tps: 3.48809822616e+06 - dtps: 46054.30563 - hps: 80262.74836 + dps: 551604.84756 + tps: 3.49208541211e+06 + dtps: 46176.41307 + hps: 80499.38005 } } dps_results: { key: "TestProtection-AllItems-BottleofInfiniteStars-87057" value: { - dps: 540122.88116 - tps: 3.42232978528e+06 - dtps: 43844.19275 - hps: 79577.52266 + dps: 541787.22342 + tps: 3.43584189115e+06 + dtps: 43993.83546 + hps: 79787.55946 } } dps_results: { key: "TestProtection-AllItems-BraidofTenSongs-84072" value: { - dps: 534003.6266 - tps: 3.40075559603e+06 - dtps: 43255.81807 - hps: 80573.45961 + dps: 535779.15934 + tps: 3.41369602909e+06 + dtps: 43503.87054 + hps: 80623.72951 } } dps_results: { key: "TestProtection-AllItems-Brawler'sStatue-282039" value: { - dps: 537279.03415 - tps: 3.40715124982e+06 - dtps: 45748.68048 - hps: 80022.34838 + dps: 541921.71916 + tps: 3.43172832827e+06 + dtps: 45709.1637 + hps: 80123.91594 } } dps_results: { key: "TestProtection-AllItems-BreathoftheHydra-96827" value: { - dps: 542215.18144 - tps: 3.45115402342e+06 - dtps: 41988.96654 - hps: 80086.03015 + dps: 543563.27309 + tps: 3.46281521965e+06 + dtps: 41539.98762 + hps: 80259.47429 } } dps_results: { key: "TestProtection-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 550125.5159 - tps: 3.48487447046e+06 - dtps: 43937.31536 - hps: 81373.05447 + dps: 551664.1842 + tps: 3.49479298555e+06 + dtps: 43654.2489 + hps: 81004.79701 } } dps_results: { key: "TestProtection-AllItems-BurningPrimalDiamond" value: { - dps: 561933.26469 - tps: 3.51576490088e+06 - dtps: 44314.6275 - hps: 82338.2581 + dps: 564013.08604 + tps: 3.52753059373e+06 + dtps: 44009.53663 + hps: 82307.37102 } } dps_results: { key: "TestProtection-AllItems-CapacitivePrimalDiamond" value: { - dps: 586378.27845 - tps: 3.69306304202e+06 - dtps: 45130.97308 - hps: 82623.48967 + dps: 590280.61513 + tps: 3.71713808596e+06 + dtps: 44618.56423 + hps: 82681.05635 } } dps_results: { key: "TestProtection-AllItems-CarbonicCarbuncle-81138" value: { - dps: 552699.17379 - tps: 3.49359180464e+06 - dtps: 45813.31238 - hps: 80857.77764 + dps: 556166.12895 + tps: 3.51002374906e+06 + dtps: 46072.47049 + hps: 80885.04953 } } dps_results: { key: "TestProtection-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 554132.89044 - tps: 3.50649069341e+06 - dtps: 46054.30563 - hps: 80392.59167 + dps: 555195.99113 + tps: 3.51611703229e+06 + dtps: 46176.41307 + hps: 80630.30975 } } dps_results: { key: "TestProtection-AllItems-CharmofTenSongs-84071" value: { - dps: 546474.54796 - tps: 3.46993754677e+06 - dtps: 45108.69359 - hps: 80140.91231 + dps: 548427.60044 + tps: 3.48373420077e+06 + dtps: 45871.29698 + hps: 80521.98594 } } dps_results: { key: "TestProtection-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 540434.79064 - tps: 3.44134165582e+06 - dtps: 42914.28054 - hps: 81070.91129 + dps: 541143.77115 + tps: 3.45008641031e+06 + dtps: 42419.10144 + hps: 81089.13277 } } dps_results: { key: "TestProtection-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 539697.96996 - tps: 3.4181940701e+06 - dtps: 42095.39453 - hps: 79373.53803 + dps: 541475.93797 + tps: 3.43249259749e+06 + dtps: 42179.22635 + hps: 79612.96462 } } dps_results: { key: "TestProtection-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 540657.73994 - tps: 3.42396024878e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 542220.77239 + tps: 3.43675422725e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 540476.7562 - tps: 3.4224507772e+06 - dtps: 46054.30563 - hps: 80120.88123 + dps: 542295.91426 + tps: 3.43708572285e+06 + dtps: 46176.41307 + hps: 80330.40701 } } dps_results: { key: "TestProtection-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 556291.77219 - tps: 3.51974691711e+06 - dtps: 45790.11298 - hps: 80779.07844 + dps: 557609.75907 + tps: 3.53053021503e+06 + dtps: 45917.36368 + hps: 80998.64908 } } dps_results: { key: "TestProtection-AllItems-CoreofDecency-87497" value: { - dps: 539952.16122 - tps: 3.41953725809e+06 - dtps: 46054.30563 - hps: 80075.83863 + dps: 541570.01885 + tps: 3.43233870555e+06 + dtps: 46176.41307 + hps: 80285.36442 } } dps_results: { key: "TestProtection-AllItems-CourageousPrimalDiamond" value: { - dps: 554377.15537 - tps: 3.46921166287e+06 - dtps: 44314.6275 - hps: 82136.26095 + dps: 556443.4818 + tps: 3.48094308471e+06 + dtps: 44009.53663 + hps: 82109.82228 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 539853.36841 - tps: 3.42044319604e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541663.59386 + tps: 3.43497648419e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 540084.51376 - tps: 3.42061830998e+06 - dtps: 46054.30563 - hps: 80074.21136 + dps: 541654.22598 + tps: 3.4323940545e+06 + dtps: 46176.41307 + hps: 80276.40811 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 542052.21281 - tps: 3.43692510147e+06 - dtps: 46053.75476 - hps: 80331.95819 + dps: 543493.35758 + tps: 3.44661140641e+06 + dtps: 45698.37413 + hps: 80793.07145 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 546280.00003 - tps: 3.45949283893e+06 - dtps: 46054.30563 - hps: 80170.02891 + dps: 547874.06958 + tps: 3.47209821284e+06 + dtps: 46176.41307 + hps: 80395.95993 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 539800.25016 - tps: 3.4200713683e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541578.77789 + tps: 3.43438277242e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 540364.61614 - tps: 3.42100239479e+06 - dtps: 46054.30563 - hps: 80095.34782 + dps: 542192.60358 + tps: 3.43563937686e+06 + dtps: 46176.41307 + hps: 80304.87361 } } dps_results: { key: "TestProtection-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 546388.36516 - tps: 3.4570515412e+06 - dtps: 46120.93725 - hps: 80350.55072 + dps: 549683.4991 + tps: 3.48308760972e+06 + dtps: 45072.13338 + hps: 80606.86452 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 539853.36841 - tps: 3.42044319604e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541790.1902 + tps: 3.4358626586e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 540152.61244 - tps: 3.42061830998e+06 - dtps: 46054.30563 - hps: 80083.38264 + dps: 541752.5906 + tps: 3.43264925297e+06 + dtps: 46176.41307 + hps: 80292.81335 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 544771.74982 - tps: 3.44852730366e+06 - dtps: 46361.98913 - hps: 80262.19044 + dps: 543960.82325 + tps: 3.4494133402e+06 + dtps: 45677.15163 + hps: 80854.16166 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 547101.18459 - tps: 3.46508824458e+06 - dtps: 46054.30563 - hps: 80170.02891 + dps: 548444.76598 + tps: 3.47594020133e+06 + dtps: 46176.41307 + hps: 80395.95993 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 540039.14789 - tps: 3.42174365238e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541577.23351 + tps: 3.43437196175e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 540338.33351 - tps: 3.42136848138e+06 - dtps: 46054.30563 - hps: 80108.13605 + dps: 542150.30071 + tps: 3.43590228049e+06 + dtps: 46176.41307 + hps: 80317.66183 } } dps_results: { key: "TestProtection-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 546215.182 - tps: 3.46191697498e+06 - dtps: 45375.39031 - hps: 80526.4545 + dps: 548756.1079 + tps: 3.47942574107e+06 + dtps: 44392.00118 + hps: 80522.2175 } } dps_results: { key: "TestProtection-AllItems-CurseofHubris-105645" value: { - dps: 571095.80944 - tps: 3.61141903412e+06 - dtps: 46054.30563 - hps: 80475.37488 + dps: 568020.66996 + tps: 3.59499368702e+06 + dtps: 46219.02814 + hps: 80820.78367 } } dps_results: { key: "TestProtection-AllItems-CutstitcherMedallion-93255" value: { - dps: 540170.97027 - tps: 3.4214997335e+06 - dtps: 46054.30563 - hps: 80114.20273 + dps: 541952.26356 + tps: 3.43582153786e+06 + dtps: 46176.41307 + hps: 80323.72852 } } dps_results: { key: "TestProtection-AllItems-Daelo'sFinalWords-87496" value: { - dps: 546140.48362 - tps: 3.4578208529e+06 - dtps: 45948.44938 - hps: 80538.20543 + dps: 545984.28021 + tps: 3.46420120273e+06 + dtps: 44689.09805 + hps: 80579.66573 } } dps_results: { key: "TestProtection-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 586378.27845 - tps: 3.69306304202e+06 - dtps: 45130.97308 - hps: 82623.48967 + dps: 590280.61513 + tps: 3.71713808596e+06 + dtps: 44618.56423 + hps: 82681.05635 } } dps_results: { key: "TestProtection-AllItems-DarkmistVortex-87172" value: { - dps: 544697.08403 - tps: 3.47168735402e+06 - dtps: 41511.74598 - hps: 80750.93538 + dps: 545724.91561 + tps: 3.47641734498e+06 + dtps: 41145.97645 + hps: 80762.32941 } } dps_results: { key: "TestProtection-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 539534.21233 - tps: 3.41820319065e+06 - dtps: 45693.62305 - hps: 80018.33219 + dps: 541531.06048 + tps: 3.4340428377e+06 + dtps: 45905.72911 + hps: 80195.74774 } } dps_results: { key: "TestProtection-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 539482.10307 - tps: 3.4152919245e+06 - dtps: 45800.50723 - hps: 79988.62712 + dps: 541925.2319 + tps: 3.42825952566e+06 + dtps: 45675.48924 + hps: 80122.24179 } } dps_results: { key: "TestProtection-AllItems-DestructivePrimalDiamond" value: { - dps: 557604.56211 - tps: 3.49024142887e+06 - dtps: 44314.6275 - hps: 82227.24576 + dps: 559346.91998 + tps: 3.49972675084e+06 + dtps: 44009.53663 + hps: 82200.80709 } } dps_results: { key: "TestProtection-AllItems-DisciplineofXuen-103986" value: { - dps: 540153.36453 - tps: 3.42463590565e+06 - dtps: 40554.13002 - hps: 78263.10584 + dps: 541917.86871 + tps: 3.43885638495e+06 + dtps: 40653.24473 + hps: 78518.59972 } } dps_results: { key: "TestProtection-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 534547.01816 - tps: 3.40298111098e+06 - dtps: 43798.24893 - hps: 80044.38237 + dps: 542956.66202 + tps: 3.44336404548e+06 + dtps: 43658.41857 + hps: 80913.33363 } } dps_results: { key: "TestProtection-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 539534.21233 - tps: 3.41820319065e+06 - dtps: 45693.62305 - hps: 80018.33219 + dps: 541531.06048 + tps: 3.4340428377e+06 + dtps: 45905.72911 + hps: 80195.74774 } } dps_results: { key: "TestProtection-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 539100.4881 - tps: 3.41709755408e+06 - dtps: 45683.68996 - hps: 80255.52528 + dps: 543109.99862 + tps: 3.43721678764e+06 + dtps: 46555.21104 + hps: 80283.90122 } } dps_results: { key: "TestProtection-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 542084.93225 - tps: 3.43838783054e+06 - dtps: 45174.84148 - hps: 80599.66791 + dps: 546044.21958 + tps: 3.45628245522e+06 + dtps: 45956.62183 + hps: 80481.67136 } } dps_results: { key: "TestProtection-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 540063.12199 - tps: 3.42129486059e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 541843.13547 + tps: 3.43561666495e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 539853.36841 - tps: 3.42044319604e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541663.59386 + tps: 3.43497648419e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 540084.51376 - tps: 3.42061830998e+06 - dtps: 46054.30563 - hps: 80074.21136 + dps: 541654.22598 + tps: 3.4323940545e+06 + dtps: 46176.41307 + hps: 80276.40811 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 542052.21281 - tps: 3.43692510147e+06 - dtps: 46053.75476 - hps: 80331.95819 + dps: 543493.35758 + tps: 3.44661140641e+06 + dtps: 45698.37413 + hps: 80793.07145 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 546280.00003 - tps: 3.45949283893e+06 - dtps: 46054.30563 - hps: 80170.02891 + dps: 547874.06958 + tps: 3.47209821284e+06 + dtps: 46176.41307 + hps: 80395.95993 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 539889.58343 - tps: 3.42069670119e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541577.23351 + tps: 3.43437196175e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 540322.49235 - tps: 3.42125759326e+06 - dtps: 46054.30563 - hps: 80087.55575 + dps: 542149.19997 + tps: 3.43589457533e+06 + dtps: 46176.41307 + hps: 80297.08153 } } dps_results: { key: "TestProtection-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 545988.81968 - tps: 3.45908841653e+06 - dtps: 46137.61047 - hps: 80450.43776 + dps: 549313.16575 + tps: 3.48044320529e+06 + dtps: 45135.34633 + hps: 80627.23401 } } dps_results: { key: "TestProtection-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 539100.4881 - tps: 3.41709755408e+06 - dtps: 45683.68996 - hps: 80255.52528 + dps: 543109.99862 + tps: 3.43721678764e+06 + dtps: 46555.21104 + hps: 80283.90122 } } dps_results: { key: "TestProtection-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 541576.51564 - tps: 3.42820650717e+06 - dtps: 46054.30563 - hps: 80134.22561 + dps: 543245.03577 + tps: 3.44134584542e+06 + dtps: 46176.41307 + hps: 80360.15664 } } dps_results: { key: "TestProtection-AllItems-EffulgentPrimalDiamond" value: { - dps: 554121.24557 - tps: 3.46764764398e+06 - dtps: 44314.6275 - hps: 82134.03444 + dps: 556186.23956 + tps: 3.47937318495e+06 + dtps: 44009.53663 + hps: 82107.59576 } } dps_results: { key: "TestProtection-AllItems-EmberPrimalDiamond" value: { - dps: 554213.11812 - tps: 3.46806340208e+06 - dtps: 44314.6275 - hps: 82134.03444 + dps: 556279.44454 + tps: 3.47979482393e+06 + dtps: 44009.53663 + hps: 82107.59576 } } dps_results: { key: "TestProtection-AllItems-EmblemofKypariZar-84077" value: { - dps: 547048.36975 - tps: 3.47667260417e+06 - dtps: 44814.65861 - hps: 80264.20533 + dps: 548325.37381 + tps: 3.48712912402e+06 + dtps: 45834.61768 + hps: 80488.78989 } } dps_results: { key: "TestProtection-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 539022.52062 - tps: 3.42856342624e+06 - dtps: 41698.49582 - hps: 79252.09468 + dps: 538840.08103 + tps: 3.42852354879e+06 + dtps: 41981.95285 + hps: 79339.42983 } } dps_results: { key: "TestProtection-AllItems-EmptyFruitBarrel-81133" value: { - dps: 539906.60549 - tps: 3.41926587045e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541727.16101 + tps: 3.43387146914e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 587642.63701 - tps: 3.70128322392e+06 - dtps: 45664.41003 - hps: 82065.28085 + dps: 590109.21849 + tps: 3.71528792529e+06 + dtps: 45128.96363 + hps: 82282.14766 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 581711.33576 - tps: 3.668730444e+06 - dtps: 44559.6164 - hps: 82138.38849 + dps: 585134.12442 + tps: 3.68472055478e+06 + dtps: 44826.01194 + hps: 82135.91209 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 583505.97665 - tps: 3.67744599946e+06 - dtps: 45306.9988 - hps: 82258.37811 + dps: 586623.04037 + tps: 3.68541857291e+06 + dtps: 45589.03407 + hps: 82255.90171 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 582084.76084 - tps: 3.67060533544e+06 - dtps: 45306.9988 - hps: 82316.61352 + dps: 585494.11996 + tps: 3.68649428032e+06 + dtps: 45589.03407 + hps: 82314.13712 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 585195.04742 - tps: 3.6936562515e+06 - dtps: 43782.30436 - hps: 82379.67184 + dps: 586511.63458 + tps: 3.70354820159e+06 + dtps: 43391.28398 + hps: 81904.34423 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 581896.18581 - tps: 3.66912730073e+06 - dtps: 45306.9988 - hps: 82322.06514 + dps: 585534.89937 + tps: 3.68662172664e+06 + dtps: 45589.03407 + hps: 82319.58874 } } dps_results: { key: "TestProtection-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 585706.73458 - tps: 3.70614784606e+06 - dtps: 41997.2312 - hps: 81889.64594 + dps: 587430.30362 + tps: 3.70937373418e+06 + dtps: 42326.95599 + hps: 81739.78897 } } dps_results: { key: "TestProtection-AllItems-EnigmaticPrimalDiamond" value: { - dps: 557604.56211 - tps: 3.49024142887e+06 - dtps: 44314.6275 - hps: 82227.24576 + dps: 559346.91998 + tps: 3.49972675084e+06 + dtps: 44009.53663 + hps: 82200.80709 } } dps_results: { key: "TestProtection-AllItems-EssenceofTerror-87175" value: { - dps: 541334.0512 - tps: 3.44321505885e+06 - dtps: 44594.12371 - hps: 80527.1313 + dps: 542744.76187 + tps: 3.45278210812e+06 + dtps: 44303.55506 + hps: 80612.23868 } } dps_results: { key: "TestProtection-AllItems-EternalPrimalDiamond" value: { - dps: 553764.15375 - tps: 3.46662119353e+06 - dtps: 43884.71895 - hps: 82273.52757 + dps: 554418.62684 + tps: 3.47126679973e+06 + dtps: 42969.91521 + hps: 82571.9242 } } dps_results: { key: "TestProtection-AllItems-EvilEyeofGalakras-105491" value: { - dps: 553770.66123 - tps: 3.51538916152e+06 - dtps: 42219.80555 - hps: 80760.58369 + dps: 558219.42038 + tps: 3.54479707612e+06 + dtps: 41187.55557 + hps: 80901.35011 } } dps_results: { key: "TestProtection-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 550356.42547 - tps: 3.48602617754e+06 - dtps: 43433.64644 - hps: 80693.59435 + dps: 550845.63624 + tps: 3.4883740296e+06 + dtps: 42421.94059 + hps: 80576.03493 } } dps_results: { key: "TestProtection-AllItems-FearwurmBadge-84074" value: { - dps: 543068.42926 - tps: 3.45036878635e+06 - dtps: 45025.29946 - hps: 80597.38431 + dps: 544025.4764 + tps: 3.45743660809e+06 + dtps: 46099.77874 + hps: 80837.73978 } } dps_results: { key: "TestProtection-AllItems-FearwurmRelic-84070" value: { - dps: 545684.00376 - tps: 3.47459262191e+06 - dtps: 45120.02955 - hps: 80598.75629 + dps: 548105.62783 + tps: 3.4923680572e+06 + dtps: 45388.71259 + hps: 80640.01668 } } dps_results: { key: "TestProtection-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 538751.86215 - tps: 3.43248156462e+06 - dtps: 41604.54787 - hps: 80405.62046 + dps: 542112.36693 + tps: 3.45536191736e+06 + dtps: 41804.30334 + hps: 80585.03266 } } dps_results: { key: "TestProtection-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 539822.5406 - tps: 3.41906621815e+06 - dtps: 41468.27451 - hps: 78957.38161 + dps: 541605.66702 + tps: 3.4334008544e+06 + dtps: 41562.94148 + hps: 79176.34336 } } dps_results: { key: "TestProtection-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 608325.27858 - tps: 3.86878451668e+06 - dtps: 43944.26691 - hps: 79881.2935 + dps: 612644.2172 + tps: 3.89886191012e+06 + dtps: 44393.45253 + hps: 80091.5709 } } dps_results: { key: "TestProtection-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 540087.94624 - tps: 3.41879615983e+06 - dtps: 46054.30563 - hps: 80097.7617 + dps: 542170.78193 + tps: 3.43347176463e+06 + dtps: 46176.41307 + hps: 80274.99007 } } dps_results: { key: "TestProtection-AllItems-FlashingSteelTalisman-81265" value: { - dps: 539549.91887 - tps: 3.41831904926e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541434.55926 + tps: 3.43337324198e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-FleetPrimalDiamond" value: { - dps: 554218.89402 - tps: 3.46833118313e+06 - dtps: 43499.98575 - hps: 81886.81345 + dps: 556284.23794 + tps: 3.48005917366e+06 + dtps: 43180.94789 + hps: 81879.06826 } } dps_results: { key: "TestProtection-AllItems-ForlornPrimalDiamond" value: { - dps: 554213.11812 - tps: 3.46806340208e+06 - dtps: 44314.6275 - hps: 82134.03444 + dps: 556279.44454 + tps: 3.47979482393e+06 + dtps: 44009.53663 + hps: 82107.59576 } } dps_results: { key: "TestProtection-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 539672.07506 - tps: 3.41917414255e+06 - dtps: 42920.34473 - hps: 79399.18012 + dps: 541449.4575 + tps: 3.43347752969e+06 + dtps: 43033.902 + hps: 79488.25708 } } dps_results: { key: "TestProtection-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 542761.97681 - tps: 3.43041037321e+06 - dtps: 46054.30563 - hps: 80203.79914 + dps: 544369.41012 + tps: 3.44504589433e+06 + dtps: 46176.41307 + hps: 80420.01096 } } dps_results: { key: "TestProtection-AllItems-Fusion-FireCore-105459" value: { - dps: 557577.96488 - tps: 3.53852923339e+06 - dtps: 42164.25808 - hps: 80894.27114 + dps: 561228.36307 + tps: 3.56172955259e+06 + dtps: 41395.71041 + hps: 81033.68406 } } dps_results: { key: "TestProtection-AllItems-GazeoftheTwins-96915" value: { - dps: 557118.56986 - tps: 3.52056984493e+06 - dtps: 45453.41482 - hps: 81435.8173 + dps: 561006.14942 + tps: 3.53930095935e+06 + dtps: 45902.14799 + hps: 81400.16872 } } dps_results: { key: "TestProtection-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 546183.73923 - tps: 3.45975913428e+06 - dtps: 46054.30563 - hps: 80134.22561 + dps: 547346.38683 + tps: 3.4693534715e+06 + dtps: 46176.41307 + hps: 80360.15664 } } dps_results: { key: "TestProtection-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 612449.86432 - tps: 3.88891190614e+06 - dtps: 43746.78578 - hps: 80670.23559 + dps: 617762.95255 + tps: 3.93070316092e+06 + dtps: 44104.12698 + hps: 80778.77819 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 540062.22665 - tps: 3.42190520375e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541860.42806 + tps: 3.4363543236e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 540418.38953 - tps: 3.4212621491e+06 - dtps: 46054.30563 - hps: 80097.7617 + dps: 541966.97435 + tps: 3.43275213288e+06 + dtps: 46176.41307 + hps: 80309.04501 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 547755.71738 - tps: 3.47191932064e+06 - dtps: 45164.98254 - hps: 80239.93955 + dps: 545555.55401 + tps: 3.46035599631e+06 + dtps: 44520.03775 + hps: 81135.96944 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 549864.56744 - tps: 3.48015252355e+06 - dtps: 46054.30563 - hps: 80243.45342 + dps: 551118.16574 + tps: 3.49034658262e+06 + dtps: 46176.41307 + hps: 80469.38444 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 540750.69075 - tps: 3.42672445239e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542290.9739 + tps: 3.4393681445e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 541051.9237 - tps: 3.42413039894e+06 - dtps: 46054.30563 - hps: 80134.71586 + dps: 542934.56526 + tps: 3.43869938746e+06 + dtps: 46176.41307 + hps: 80344.24165 } } dps_results: { key: "TestProtection-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 548084.37795 - tps: 3.47507311401e+06 - dtps: 43083.86924 - hps: 80581.25314 + dps: 547738.76546 + tps: 3.47431286843e+06 + dtps: 41988.46384 + hps: 80687.30644 } } dps_results: { key: "TestProtection-AllItems-Haromm'sTalisman-105527" value: { - dps: 571033.20982 - tps: 3.63870208594e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 573328.90003 + tps: 3.65663362738e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 535775.06749 - tps: 3.39982471495e+06 - dtps: 43655.10452 - hps: 79424.73663 + dps: 544076.5167 + tps: 3.45488694987e+06 + dtps: 42867.85657 + hps: 79755.36018 } } dps_results: { key: "TestProtection-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 542033.28015 - tps: 3.4388958048e+06 - dtps: 44360.23898 - hps: 79858.53587 + dps: 541608.61654 + tps: 3.43707654141e+06 + dtps: 42821.01342 + hps: 79723.14027 } } dps_results: { key: "TestProtection-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 539090.19385 - tps: 3.41510646646e+06 - dtps: 42039.34094 - hps: 79159.40951 + dps: 540868.3505 + tps: 3.42941527302e+06 + dtps: 42161.53467 + hps: 79348.0575 } } dps_results: { key: "TestProtection-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 554059.9736 - tps: 3.50438761184e+06 - dtps: 46056.10734 - hps: 80517.22221 + dps: 556544.80547 + tps: 3.52547344256e+06 + dtps: 45344.32299 + hps: 80834.06547 } } dps_results: { key: "TestProtection-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 542428.23378 - tps: 3.43877614072e+06 - dtps: 42176.27089 - hps: 79604.52559 + dps: 545231.59901 + tps: 3.45119756352e+06 + dtps: 42609.56986 + hps: 79839.49946 } } dps_results: { key: "TestProtection-AllItems-HeartofFire-81181" value: { - dps: 539450.47054 - tps: 3.41762291095e+06 - dtps: 44394.40039 - hps: 79656.76583 + dps: 541227.16366 + tps: 3.43192147282e+06 + dtps: 44543.07121 + hps: 79866.64698 } } dps_results: { key: "TestProtection-AllItems-HeartwarmerMedallion-93260" value: { - dps: 540170.97027 - tps: 3.4214997335e+06 - dtps: 46054.30563 - hps: 80114.20273 + dps: 541952.26356 + tps: 3.43582153786e+06 + dtps: 46176.41307 + hps: 80323.72852 } } dps_results: { key: "TestProtection-AllItems-HelmbreakerMedallion-93261" value: { - dps: 552866.49992 - tps: 3.50246176347e+06 - dtps: 45986.90345 - hps: 81034.01587 + dps: 555418.52935 + tps: 3.50948689612e+06 + dtps: 46246.78198 + hps: 81109.46231 } } dps_results: { key: "TestProtection-AllItems-Horridon'sLastGasp-96757" value: { - dps: 540999.70755 - tps: 3.4251404279e+06 - dtps: 46054.30563 - hps: 80120.88123 + dps: 542819.02545 + tps: 3.43977606834e+06 + dtps: 46176.41307 + hps: 80330.40701 } } dps_results: { key: "TestProtection-AllItems-ImpassivePrimalDiamond" value: { - dps: 557604.56211 - tps: 3.49024142887e+06 - dtps: 44314.6275 - hps: 82227.24576 + dps: 559346.91998 + tps: 3.49972675084e+06 + dtps: 44009.53663 + hps: 82200.80709 } } dps_results: { key: "TestProtection-AllItems-IndomitablePrimalDiamond" value: { - dps: 553524.73497 - tps: 3.46462630836e+06 - dtps: 34131.85783 - hps: 78739.19922 + dps: 554540.09177 + tps: 3.46900438905e+06 + dtps: 33865.1297 + hps: 78615.25335 } } dps_results: { key: "TestProtection-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 45244.54478 - hps: 80062.47136 + dps: 541236.70106 + tps: 3.43198823461e+06 + dtps: 45340.15255 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-InsigniaofKypariZar-84078" value: { - dps: 541536.79323 - tps: 3.43425644728e+06 - dtps: 45826.80599 - hps: 80275.2614 + dps: 545453.12488 + tps: 3.45557836179e+06 + dtps: 45164.90566 + hps: 80401.97715 } } dps_results: { key: "TestProtection-AllItems-IronBellyWok-89083" value: { - dps: 540565.45249 - tps: 3.43398013241e+06 - dtps: 42398.65547 - hps: 79934.0791 + dps: 547079.86269 + tps: 3.47276271682e+06 + dtps: 39777.64633 + hps: 79931.54617 } } dps_results: { key: "TestProtection-AllItems-IronProtectorTalisman-85181" value: { - dps: 540317.72269 - tps: 3.42650603191e+06 - dtps: 45459.49547 - hps: 79931.87418 + dps: 542497.63873 + tps: 3.43871926429e+06 + dtps: 44010.9617 + hps: 80030.69537 } } dps_results: { key: "TestProtection-AllItems-JadeBanditFigurine-86772" value: { - dps: 531935.6021 - tps: 3.38183324672e+06 - dtps: 43353.5402 - hps: 79590.5638 + dps: 543461.08644 + tps: 3.45094617934e+06 + dtps: 42866.06737 + hps: 79851.93687 } } dps_results: { key: "TestProtection-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 534866.1265 - tps: 3.40057837548e+06 - dtps: 42736.40719 - hps: 79601.80909 + dps: 544995.70912 + tps: 3.45605768321e+06 + dtps: 41336.60182 + hps: 79873.47326 } } dps_results: { key: "TestProtection-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 540063.12199 - tps: 3.42129486059e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 541843.13547 + tps: 3.43561666495e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 549450.65062 - tps: 3.47753333343e+06 - dtps: 46054.30563 - hps: 80262.74836 + dps: 550376.12528 + tps: 3.48588923184e+06 + dtps: 46176.41307 + hps: 80444.35627 } } dps_results: { key: "TestProtection-AllItems-JadeWarlordFigurine-86775" value: { - dps: 539086.89413 - tps: 3.41507196325e+06 - dtps: 45500.49177 - hps: 79945.20265 + dps: 541082.51523 + tps: 3.43090302101e+06 + dtps: 45713.02581 + hps: 80122.6182 } } dps_results: { key: "TestProtection-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 540989.52748 - tps: 3.42861599462e+06 - dtps: 45816.50093 - hps: 80556.16247 + dps: 542274.35349 + tps: 3.43671354733e+06 + dtps: 46281.25314 + hps: 80665.98031 } } dps_results: { key: "TestProtection-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 540272.01425 - tps: 3.42466640986e+06 - dtps: 45145.71309 - hps: 97147.80193 + dps: 542812.2776 + tps: 3.44274822722e+06 + dtps: 44401.87892 + hps: 97374.22608 } } dps_results: { key: "TestProtection-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 574360.76424 - tps: 3.65274957026e+06 - dtps: 46054.30563 - hps: 80334.05483 + dps: 575833.22181 + tps: 3.66484249559e+06 + dtps: 46176.41307 + hps: 80530.42885 } } dps_results: { key: "TestProtection-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 542084.93225 - tps: 3.43838783054e+06 - dtps: 45174.84148 - hps: 80599.66791 + dps: 546044.21958 + tps: 3.45628245522e+06 + dtps: 45956.62183 + hps: 80481.67136 } } dps_results: { key: "TestProtection-AllItems-KnotofTenSongs-84073" value: { - dps: 541455.56263 - tps: 3.43046099484e+06 - dtps: 45893.66927 - hps: 80250.64477 + dps: 543834.52006 + tps: 3.4449397598e+06 + dtps: 45063.94847 + hps: 80397.43343 } } dps_results: { key: "TestProtection-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 539086.89413 - tps: 3.41507196325e+06 - dtps: 45435.71138 - hps: 79938.42841 + dps: 541082.51523 + tps: 3.43090302101e+06 + dtps: 45648.60365 + hps: 80115.84396 } } dps_results: { key: "TestProtection-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 543763.38801 - tps: 3.46329440465e+06 - dtps: 42264.55077 - hps: 80619.81741 + dps: 547566.48091 + tps: 3.48882232593e+06 + dtps: 42786.40118 + hps: 81176.19813 } } dps_results: { key: "TestProtection-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 546756.47433 - tps: 3.45960599999e+06 - dtps: 47018.18674 - hps: 81313.50797 + dps: 545886.21038 + tps: 3.45625192484e+06 + dtps: 46701.58115 + hps: 81651.69715 } } dps_results: { key: "TestProtection-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 539933.92297 - tps: 3.42100707793e+06 - dtps: 44157.41559 - hps: 79630.11891 + dps: 541712.44213 + tps: 3.43531842208e+06 + dtps: 44306.13755 + hps: 79840.07306 } } dps_results: { key: "TestProtection-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 539579.13529 - tps: 3.41852905655e+06 - dtps: 41240.54839 - hps: 78895.76153 + dps: 541358.83314 + tps: 3.43284865149e+06 + dtps: 41395.03558 + hps: 79114.72329 } } dps_results: { key: "TestProtection-AllItems-LightoftheCosmos-87065" value: { - dps: 543818.52488 - tps: 3.46199253479e+06 - dtps: 42317.40139 - hps: 80061.54681 + dps: 543615.6567 + tps: 3.46250187234e+06 + dtps: 42453.18674 + hps: 80263.87492 } } dps_results: { key: "TestProtection-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 586660.92883 - tps: 3.69376246961e+06 - dtps: 45130.97308 - hps: 82683.6155 + dps: 590566.28023 + tps: 3.71784510861e+06 + dtps: 44618.56423 + hps: 82741.18217 } } dps_results: { key: "TestProtection-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 581711.33576 - tps: 3.668730444e+06 - dtps: 45306.9988 - hps: 82258.37811 + dps: 585133.80782 + tps: 3.68471833855e+06 + dtps: 45589.03407 + hps: 82255.90171 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 539853.36841 - tps: 3.42044319604e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541790.1902 + tps: 3.4358626586e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 540152.61244 - tps: 3.42061830998e+06 - dtps: 46054.30563 - hps: 80083.38264 + dps: 541752.5906 + tps: 3.43264925297e+06 + dtps: 46176.41307 + hps: 80292.81335 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 544771.74982 - tps: 3.44852730366e+06 - dtps: 46361.98913 - hps: 80262.19044 + dps: 543960.82325 + tps: 3.4494133402e+06 + dtps: 45677.15163 + hps: 80854.16166 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 547101.18459 - tps: 3.46508824458e+06 - dtps: 46054.30563 - hps: 80170.02891 + dps: 548444.76598 + tps: 3.47594020133e+06 + dtps: 46176.41307 + hps: 80395.95993 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 540092.24134 - tps: 3.42211530653e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541630.74066 + tps: 3.4347465118e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 540338.33351 - tps: 3.42136848138e+06 - dtps: 46054.30563 - hps: 80121.1207 + dps: 542150.30071 + tps: 3.43590228049e+06 + dtps: 46176.41307 + hps: 80330.64648 } } dps_results: { key: "TestProtection-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 546887.23048 - tps: 3.46657226422e+06 - dtps: 45173.13684 - hps: 80346.35508 + dps: 549444.53392 + tps: 3.48418543943e+06 + dtps: 44197.44541 + hps: 80340.6595 } } dps_results: { key: "TestProtection-AllItems-MarkoftheCatacombs-83731" value: { - dps: 545397.95889 - tps: 3.45453515143e+06 - dtps: 44361.09104 - hps: 79812.58414 + dps: 546764.38721 + tps: 3.46555984701e+06 + dtps: 44559.39076 + hps: 79977.27253 } } dps_results: { key: "TestProtection-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.54201 + tps: 3.43198712124e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 538524.0271 - tps: 3.41405607285e+06 - dtps: 44137.6429 - hps: 80113.54356 + dps: 542762.10744 + tps: 3.4357877017e+06 + dtps: 44898.70133 + hps: 80132.94737 } } dps_results: { key: "TestProtection-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 538962.58606 - tps: 3.41844267081e+06 - dtps: 45023.40395 - hps: 79862.98747 + dps: 543082.57193 + tps: 3.43898634766e+06 + dtps: 44986.64942 + hps: 80031.27174 } } dps_results: { key: "TestProtection-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 540063.12199 - tps: 3.42129486059e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 541843.13547 + tps: 3.43561666495e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-MirrorScope-4700" value: { - dps: 581711.33576 - tps: 3.668730444e+06 - dtps: 45306.9988 - hps: 82258.37811 + dps: 585133.80782 + tps: 3.68471833855e+06 + dtps: 45589.03407 + hps: 82255.90171 } } dps_results: { key: "TestProtection-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 541153.41073 - tps: 3.42794807855e+06 - dtps: 45064.0083 - hps: 79745.08187 + dps: 540665.27339 + tps: 3.43047338414e+06 + dtps: 43380.22875 + hps: 79737.28205 } } dps_results: { key: "TestProtection-AllItems-MistdancerDefenderStone-101087" value: { - dps: 539959.45081 - tps: 3.4211859264e+06 - dtps: 41833.47074 - hps: 78813.34924 + dps: 541742.75915 + tps: 3.43553079479e+06 + dtps: 41932.88448 + hps: 79032.72395 } } dps_results: { key: "TestProtection-AllItems-MistdancerIdolofRage-101113" value: { - dps: 539941.47396 - tps: 3.4210599349e+06 - dtps: 44157.41559 - hps: 79630.11891 + dps: 541720.15751 + tps: 3.43537242978e+06 + dtps: 44306.13755 + hps: 79840.07306 } } dps_results: { key: "TestProtection-AllItems-MistdancerStoneofRage-101117" value: { - dps: 539392.9053 - tps: 3.41722529307e+06 - dtps: 42064.16007 - hps: 79316.03528 + dps: 541166.88631 + tps: 3.43150487016e+06 + dtps: 42183.00252 + hps: 79534.57136 } } dps_results: { key: "TestProtection-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 540413.83064 - tps: 3.42222340824e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 542239.03094 + tps: 3.43685256165e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-MithrilWristwatch-282033" value: { - dps: 550564.12893 - tps: 3.48504945404e+06 - dtps: 46054.30563 - hps: 80253.88412 + dps: 551849.39201 + tps: 3.49546516654e+06 + dtps: 46176.41307 + hps: 80479.81514 } } dps_results: { key: "TestProtection-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 538494.37625 - tps: 3.43185268446e+06 - dtps: 42593.21699 - hps: 80109.41928 + dps: 541466.38257 + tps: 3.45442696466e+06 + dtps: 41826.488 + hps: 80198.47471 } } dps_results: { key: "TestProtection-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 540675.75129 - tps: 3.42503335417e+06 - dtps: 41737.55279 - hps: 78848.25152 + dps: 542452.12326 + tps: 3.43932070933e+06 + dtps: 41881.69501 + hps: 79067.62623 } } dps_results: { key: "TestProtection-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-NitroBoosts-4223" value: { - dps: 586378.27845 - tps: 3.69306304202e+06 - dtps: 45130.97308 - hps: 82623.48967 + dps: 590280.61513 + tps: 3.71713808596e+06 + dtps: 44618.56423 + hps: 82681.05635 } } dps_results: { key: "TestProtection-AllItems-OathswornDefenderIdol-101303" value: { - dps: 541273.61927 - tps: 3.43327659393e+06 - dtps: 44371.78222 - hps: 79734.84625 + dps: 542308.92828 + tps: 3.43875215703e+06 + dtps: 43480.14688 + hps: 79921.66539 } } dps_results: { key: "TestProtection-AllItems-OathswornDefenderStone-101306" value: { - dps: 539030.84139 - tps: 3.41469099925e+06 - dtps: 42680.38572 - hps: 79337.77784 + dps: 540808.40883 + tps: 3.42899568129e+06 + dtps: 42811.1882 + hps: 79547.31635 } } dps_results: { key: "TestProtection-AllItems-OathswornIdolofBattle-101295" value: { - dps: 553426.50059 - tps: 3.50664878382e+06 - dtps: 45938.31708 - hps: 80857.67868 + dps: 556844.69792 + tps: 3.528138364e+06 + dtps: 45033.21693 + hps: 81148.29398 } } dps_results: { key: "TestProtection-AllItems-OathswornStoneofBattle-101294" value: { - dps: 541753.97409 - tps: 3.43406166167e+06 - dtps: 41957.92205 - hps: 79735.82326 + dps: 544571.20206 + tps: 3.44658012365e+06 + dtps: 42259.19632 + hps: 79942.00245 } } dps_results: { key: "TestProtection-AllItems-PhaseFingers-4697" value: { - dps: 588798.35018 - tps: 3.71401331069e+06 - dtps: 43202.21078 - hps: 83236.93298 + dps: 590702.80409 + tps: 3.72569507417e+06 + dtps: 42562.21444 + hps: 83101.12431 } } dps_results: { @@ -1662,109 +1662,109 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-PouchofWhiteAsh-103639" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-PowerfulPrimalDiamond" value: { - dps: 554121.24557 - tps: 3.46764764398e+06 - dtps: 44314.6275 - hps: 82134.03444 + dps: 556186.23956 + tps: 3.47937318495e+06 + dtps: 44009.53663 + hps: 82107.59576 } } dps_results: { key: "TestProtection-AllItems-PriceofProgress-81266" value: { - dps: 540063.12199 - tps: 3.4212958717e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 541843.13547 + tps: 3.43561741863e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 540227.28739 - tps: 3.42306062892e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542077.9107 + tps: 3.43787670209e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 540922.26753 - tps: 3.42331081478e+06 - dtps: 46054.30563 - hps: 80110.33739 + dps: 542116.45417 + tps: 3.43285161923e+06 + dtps: 46176.41307 + hps: 80309.04501 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 550508.62327 - tps: 3.48902584849e+06 - dtps: 43925.98012 - hps: 80314.1143 + dps: 547504.62486 + tps: 3.47262097227e+06 + dtps: 43753.5576 + hps: 81148.65416 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 553029.42619 - tps: 3.49937737221e+06 - dtps: 46054.30563 - hps: 80287.89013 + dps: 554266.82776 + tps: 3.50945805413e+06 + dtps: 46176.41307 + hps: 80513.82115 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 540842.77307 - tps: 3.42736902868e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542457.86857 + tps: 3.44053640714e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 541341.22544 - tps: 3.4247530449e+06 - dtps: 46054.30563 - hps: 80160.89358 + dps: 543162.8517 + tps: 3.43932644127e+06 + dtps: 46176.41307 + hps: 80370.41937 } } dps_results: { key: "TestProtection-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 548021.45759 - tps: 3.4741119693e+06 - dtps: 42675.20981 - hps: 80812.48947 + dps: 550073.71453 + tps: 3.48699694296e+06 + dtps: 42680.25731 + hps: 81055.80944 } } dps_results: { @@ -1779,496 +1779,496 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 558932.16786 - tps: 3.5390420014e+06 - dtps: 46143.02787 - hps: 80818.96452 + dps: 562157.86523 + tps: 3.55556935046e+06 + dtps: 46354.39528 + hps: 81304.41006 } } dps_results: { key: "TestProtection-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 549146.36519 - tps: 3.49355515004e+06 - dtps: 42255.25832 - hps: 79896.28007 + dps: 549904.9719 + tps: 3.49882774412e+06 + dtps: 41938.06155 + hps: 79879.11967 } } dps_results: { key: "TestProtection-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 553666.70667 - tps: 3.50981297699e+06 - dtps: 42255.25832 - hps: 80065.00067 + dps: 554347.66634 + tps: 3.51537299923e+06 + dtps: 41938.06155 + hps: 80042.97907 } } dps_results: { key: "TestProtection-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 583996.95124 - tps: 3.69438663337e+06 - dtps: 43164.7476 - hps: 80807.74015 + dps: 585511.3328 + tps: 3.7026011151e+06 + dtps: 42673.66563 + hps: 80731.97367 } } dps_results: { key: "TestProtection-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 540458.10232 - tps: 3.42098889958e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542076.24444 + tps: 3.4337923384e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-RelicofChi-Ji-79330" value: { - dps: 540170.97027 - tps: 3.4214997335e+06 - dtps: 46054.30563 - hps: 80114.20273 + dps: 541952.26356 + tps: 3.43582153786e+06 + dtps: 46176.41307 + hps: 80323.72852 } } dps_results: { key: "TestProtection-AllItems-RelicofKypariZar-84075" value: { - dps: 547363.00352 - tps: 3.4819720252e+06 - dtps: 43891.6464 - hps: 79873.87795 + dps: 547377.71839 + tps: 3.48341729412e+06 + dtps: 43670.4516 + hps: 79984.18034 } } dps_results: { key: "TestProtection-AllItems-RelicofNiuzao-79329" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-RelicofXuen-79327" value: { - dps: 548118.48653 - tps: 3.47303147402e+06 - dtps: 44550.54345 - hps: 80813.79863 + dps: 551010.61287 + tps: 3.49266729668e+06 + dtps: 44194.5232 + hps: 80972.0127 } } dps_results: { key: "TestProtection-AllItems-RelicofXuen-79328" value: { - dps: 540290.82462 - tps: 3.42350538949e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542069.43788 + tps: 3.43781739233e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-RelicofYu'lon-79331" value: { - dps: 540917.98916 - tps: 3.42452172758e+06 - dtps: 46054.30563 - hps: 80154.50186 + dps: 542750.13365 + tps: 3.43918780905e+06 + dtps: 46176.41307 + hps: 80364.02765 } } dps_results: { key: "TestProtection-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 541523.63578 - tps: 3.4323547527e+06 - dtps: 45808.90572 - hps: 80515.02782 + dps: 542887.94975 + tps: 3.44100872113e+06 + dtps: 46281.25314 + hps: 80665.98031 } } dps_results: { key: "TestProtection-AllItems-ResolveofNiuzao-103990" value: { - dps: 539616.2389 - tps: 3.41878328943e+06 - dtps: 43124.90212 - hps: 79413.51237 + dps: 541393.2817 + tps: 3.43308429911e+06 + dtps: 43276.41222 + hps: 79532.91913 } } dps_results: { key: "TestProtection-AllItems-ReverberatingPrimalDiamond" value: { - dps: 563846.93147 - tps: 3.53128528193e+06 - dtps: 43855.06908 - hps: 82529.83187 + dps: 565641.66463 + tps: 3.5410580545e+06 + dtps: 43437.83541 + hps: 82515.66383 } } dps_results: { key: "TestProtection-AllItems-RevitalizingPrimalDiamond" value: { - dps: 561836.66727 - tps: 3.51532776093e+06 - dtps: 44314.6275 - hps: 82338.2581 + dps: 563915.08766 + tps: 3.52708727046e+06 + dtps: 44009.53663 + hps: 82307.37102 } } dps_results: { key: "TestProtection-AllItems-RuneofRe-Origination-96918" value: { - dps: 539562.09718 - tps: 3.43036382585e+06 - dtps: 47378.93333 - hps: 84584.50083 + dps: 540979.51119 + tps: 3.44005940498e+06 + dtps: 46870.90516 + hps: 84996.08715 } } dps_results: { key: "TestProtection-AllItems-SI:7Operative'sManual-92784" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 540141.70271 - tps: 3.42129486059e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 541922.996 + tps: 3.43561666495e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-SearingWords-81267" value: { - dps: 546634.97457 - tps: 3.4619776607e+06 - dtps: 46054.30563 - hps: 80170.02891 + dps: 548148.59513 + tps: 3.47401989169e+06 + dtps: 46176.41307 + hps: 80395.95993 } } dps_results: { key: "TestProtection-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 543003.98122 - tps: 3.45660023201e+06 - dtps: 42650.14619 - hps: 80068.3344 + dps: 542979.71447 + tps: 3.45973901599e+06 + dtps: 42572.24264 + hps: 80265.76554 } } dps_results: { key: "TestProtection-AllItems-SigilofCompassion-83736" value: { - dps: 539440.28609 - tps: 3.4175516198e+06 - dtps: 44766.59111 - hps: 79737.34243 + dps: 541205.47425 + tps: 3.43176964696e+06 + dtps: 44888.15553 + hps: 79947.12708 } } dps_results: { key: "TestProtection-AllItems-SigilofDevotion-83740" value: { - dps: 545147.42919 - tps: 3.45278144354e+06 - dtps: 44169.2878 - hps: 79707.33792 + dps: 546525.24118 + tps: 3.46388582478e+06 + dtps: 44296.15601 + hps: 79868.08986 } } dps_results: { key: "TestProtection-AllItems-SigilofFidelity-83737" value: { - dps: 545798.55464 - tps: 3.47125753469e+06 - dtps: 43322.3175 - hps: 79798.52784 + dps: 546075.00636 + tps: 3.47438631011e+06 + dtps: 43570.56524 + hps: 79883.26932 } } dps_results: { key: "TestProtection-AllItems-SigilofGrace-83738" value: { - dps: 541067.90304 - tps: 3.45006728645e+06 - dtps: 43351.04254 - hps: 80388.61307 + dps: 542260.13013 + tps: 3.45888174885e+06 + dtps: 43984.64567 + hps: 80277.52925 } } dps_results: { key: "TestProtection-AllItems-SigilofKypariZar-84076" value: { - dps: 545577.02508 - tps: 3.45551213525e+06 - dtps: 43988.47481 - hps: 79771.05288 + dps: 546955.74294 + tps: 3.4666189643e+06 + dtps: 44136.90723 + hps: 79937.48893 } } dps_results: { key: "TestProtection-AllItems-SigilofPatience-83739" value: { - dps: 538792.71312 - tps: 3.41737982498e+06 - dtps: 43931.30369 - hps: 80083.91408 + dps: 542745.88874 + tps: 3.43527638254e+06 + dtps: 44448.93119 + hps: 80060.37324 } } dps_results: { key: "TestProtection-AllItems-SigilofRampage-105580" value: { - dps: 540470.58541 - tps: 3.42476371504e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 542324.6916 + tps: 3.43960416837e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-SigiloftheCatacombs-83732" value: { - dps: 548481.50426 - tps: 3.48573666601e+06 - dtps: 44255.16008 - hps: 80450.31963 + dps: 549290.6836 + tps: 3.49279599292e+06 + dtps: 44706.80404 + hps: 80437.62334 } } dps_results: { key: "TestProtection-AllItems-SinisterPrimalDiamond" value: { - dps: 556608.80366 - tps: 3.48352665727e+06 - dtps: 42737.94506 - hps: 81991.44711 + dps: 558379.62642 + tps: 3.49321123347e+06 + dtps: 42235.89988 + hps: 81965.00843 } } dps_results: { key: "TestProtection-AllItems-SkullrenderMedallion-93256" value: { - dps: 552866.49992 - tps: 3.50246176347e+06 - dtps: 45986.90345 - hps: 81034.01587 + dps: 555418.52935 + tps: 3.50948689612e+06 + dtps: 46246.78198 + hps: 81109.46231 } } dps_results: { key: "TestProtection-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 540292.58003 - tps: 3.42179205028e+06 - dtps: 46054.30563 - hps: 80120.88123 + dps: 542110.59405 + tps: 3.4364189877e+06 + dtps: 46176.41307 + hps: 80330.40701 } } dps_results: { key: "TestProtection-AllItems-SoulBarrier-96927" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 45616.50377 - hps: 80062.47136 + dps: 541236.54201 + tps: 3.43198712124e+06 + dtps: 45704.0286 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-SparkofZandalar-96770" value: { - dps: 544251.24637 - tps: 3.4662994706e+06 - dtps: 40861.27266 - hps: 80047.474 + dps: 545527.05942 + tps: 3.477402025e+06 + dtps: 40266.75007 + hps: 80134.4959 } } dps_results: { key: "TestProtection-AllItems-SpiritsoftheSun-87163" value: { - dps: 540292.58003 - tps: 3.42179205028e+06 - dtps: 46054.30563 - hps: 80114.20273 + dps: 542110.59405 + tps: 3.4364189877e+06 + dtps: 46176.41307 + hps: 80323.72852 } } dps_results: { key: "TestProtection-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 538724.57153 - tps: 3.4292990751e+06 - dtps: 42580.16927 - hps: 80938.04463 + dps: 540577.98157 + tps: 3.44103155988e+06 + dtps: 42579.30512 + hps: 81047.4528 } } dps_results: { key: "TestProtection-AllItems-SpringrainIdolofRage-101009" value: { - dps: 539977.68898 - tps: 3.42131344005e+06 - dtps: 44157.41559 - hps: 79630.11891 + dps: 541666.15789 + tps: 3.43499443243e+06 + dtps: 44306.13755 + hps: 79840.07306 } } dps_results: { key: "TestProtection-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 539836.02865 - tps: 3.41916063446e+06 - dtps: 42001.69305 - hps: 79295.53375 + dps: 541619.15507 + tps: 3.43349527072e+06 + dtps: 42144.72504 + hps: 79514.49551 } } dps_results: { key: "TestProtection-AllItems-SpringrainStoneofRage-101012" value: { - dps: 539635.90927 - tps: 3.41892647438e+06 - dtps: 41813.81955 - hps: 79183.58334 + dps: 541403.55487 + tps: 3.43316170358e+06 + dtps: 41955.73369 + hps: 79402.54509 } } dps_results: { key: "TestProtection-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 540635.8305 - tps: 3.42377740725e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 542417.4377 + tps: 3.43810140898e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 543003.98122 - tps: 3.45660023201e+06 - dtps: 42650.14619 - hps: 80068.3344 + dps: 542979.71447 + tps: 3.45973901599e+06 + dtps: 42572.24264 + hps: 80265.76554 } } dps_results: { key: "TestProtection-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.54201 + tps: 3.43198712124e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 539576.32479 - tps: 3.41850389069e+06 - dtps: 43444.27913 - hps: 79479.29976 + dps: 541353.3676 + tps: 3.43280490037e+06 + dtps: 43595.18796 + hps: 79660.22843 } } dps_results: { key: "TestProtection-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 537023.28225 - tps: 3.42568340172e+06 - dtps: 42732.67924 - hps: 80605.41627 + dps: 538007.69254 + tps: 3.4336066197e+06 + dtps: 42767.02531 + hps: 80711.68285 } } dps_results: { key: "TestProtection-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 539944.26659 - tps: 3.42107948331e+06 - dtps: 44157.41559 - hps: 79630.11891 + dps: 541632.3218 + tps: 3.43475757979e+06 + dtps: 44306.13755 + hps: 79840.07306 } } dps_results: { key: "TestProtection-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 539786.36468 - tps: 3.4188129867e+06 - dtps: 42449.8 - hps: 79196.22504 + dps: 541568.68406 + tps: 3.43314197369e+06 + dtps: 42569.73735 + hps: 79415.18679 } } dps_results: { key: "TestProtection-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 540410.32184 - tps: 3.42434202361e+06 - dtps: 42782.54089 - hps: 79265.1106 + dps: 542206.09891 + tps: 3.43877417307e+06 + dtps: 42841.42116 + hps: 79454.17155 } } dps_results: { key: "TestProtection-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 540870.88878 - tps: 3.42439514433e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 542653.63885 + tps: 3.43872714617e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-StuffofNightmares-87160" value: { - dps: 538516.87091 - tps: 3.41448904943e+06 - dtps: 42413.72755 - hps: 78836.92491 + dps: 539818.83764 + tps: 3.420649093e+06 + dtps: 42174.74747 + hps: 78912.62827 } } dps_results: { key: "TestProtection-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 541201.99158 - tps: 3.43307696777e+06 - dtps: 43808.6225 - hps: 79739.30955 + dps: 541558.76537 + tps: 3.43518395041e+06 + dtps: 42986.59514 + hps: 79973.70645 } } dps_results: { key: "TestProtection-AllItems-SunsoulDefenderStone-101163" value: { - dps: 539127.67816 - tps: 3.41536885659e+06 - dtps: 41529.60947 - hps: 79121.14275 + dps: 540905.48038 + tps: 3.42967518216e+06 + dtps: 41650.68244 + hps: 79340.1045 } } dps_results: { key: "TestProtection-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 554254.40413 - tps: 3.51009211418e+06 - dtps: 45940.53591 - hps: 80643.64629 + dps: 557299.48505 + tps: 3.53058309215e+06 + dtps: 44886.30246 + hps: 80785.93526 } } dps_results: { key: "TestProtection-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 542571.69107 - tps: 3.43978034175e+06 - dtps: 41218.57741 - hps: 79421.37475 + dps: 545366.51022 + tps: 3.45214194197e+06 + dtps: 41682.17189 + hps: 79659.29255 } } dps_results: { key: "TestProtection-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 540592.56339 - tps: 3.42379892021e+06 - dtps: 46054.30563 - hps: 80102.46273 + dps: 542418.43295 + tps: 3.43843275852e+06 + dtps: 46176.41307 + hps: 80311.98852 } } dps_results: { key: "TestProtection-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 588831.57075 - tps: 3.70774314134e+06 - dtps: 45039.50374 - hps: 82830.78571 + dps: 592741.28138 + tps: 3.73184343681e+06 + dtps: 44529.26877 + hps: 82888.77664 } } dps_results: { key: "TestProtection-AllItems-SymboloftheCatacombs-83735" value: { - dps: 544940.09032 - tps: 3.45051620475e+06 - dtps: 44766.59111 - hps: 79864.27277 + dps: 546766.91624 + tps: 3.46470344248e+06 + dtps: 44888.15553 + hps: 80074.05742 } } dps_results: { @@ -2283,190 +2283,190 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-TalismanofBloodlust-96864" value: { - dps: 538993.5784 - tps: 3.42268691378e+06 - dtps: 43879.99873 - hps: 80541.34519 + dps: 538920.28847 + tps: 3.42049464628e+06 + dtps: 43139.12354 + hps: 80590.80908 } } dps_results: { key: "TestProtection-AllItems-TerrorintheMists-87167" value: { - dps: 562225.71037 - tps: 3.54886676714e+06 - dtps: 46054.30563 - hps: 80344.84275 + dps: 563508.32319 + tps: 3.56111161855e+06 + dtps: 46176.41307 + hps: 80549.75037 } } dps_results: { key: "TestProtection-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 542625.27858 - tps: 3.4293884423e+06 - dtps: 46054.30563 - hps: 80079.68074 + dps: 544460.78485 + tps: 3.44409869619e+06 + dtps: 46176.41307 + hps: 80287.74042 } } dps_results: { key: "TestProtection-AllItems-Thok'sTailTip-105609" value: { - dps: 568191.55987 - tps: 3.61704316397e+06 - dtps: 40505.11719 - hps: 80845.65425 + dps: 568885.46139 + tps: 3.61613325169e+06 + dtps: 39956.91659 + hps: 81312.78644 } } dps_results: { key: "TestProtection-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 544379.07192 - tps: 3.44728614046e+06 - dtps: 43028.10593 - hps: 80782.58254 + dps: 546026.57898 + tps: 3.4596709674e+06 + dtps: 42693.72638 + hps: 81102.40026 } } dps_results: { key: "TestProtection-AllItems-TickingEbonDetonator-105612" value: { - dps: 539308.96198 - tps: 3.41718320307e+06 - dtps: 41816.25368 - hps: 78927.47549 + dps: 542294.73035 + tps: 3.43939443963e+06 + dtps: 41980.12789 + hps: 79212.38864 } } dps_results: { key: "TestProtection-AllItems-Time-LostArtifact-103678" value: { - dps: 536601.34452 - tps: 3.41384814915e+06 - dtps: 40784.32947 - hps: 78999.6157 + dps: 538590.77074 + tps: 3.42534822963e+06 + dtps: 40835.35517 + hps: 79089.60797 } } dps_results: { key: "TestProtection-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 540090.10102 - tps: 3.42210032431e+06 - dtps: 44157.41559 - hps: 79630.11891 + dps: 541778.56993 + tps: 3.43578131669e+06 + dtps: 44306.13755 + hps: 79840.07306 } } dps_results: { key: "TestProtection-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 539612.11884 - tps: 3.41875994136e+06 - dtps: 41201.45137 - hps: 78984.37211 + dps: 541391.50253 + tps: 3.43307733722e+06 + dtps: 41346.69337 + hps: 79173.0201 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 539912.6622 - tps: 3.42085825256e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541790.1902 + tps: 3.4358626586e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 540335.01788 - tps: 3.42079520692e+06 - dtps: 46054.30563 - hps: 80083.38264 + dps: 541930.43632 + tps: 3.43264925297e+06 + dtps: 46176.41307 + hps: 80309.04501 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 546171.86483 - tps: 3.4600157402e+06 - dtps: 46160.21109 - hps: 80450.8936 + dps: 545463.34052 + tps: 3.45808767632e+06 + dtps: 45829.14183 + hps: 81208.7041 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 548134.96035 - tps: 3.47063669196e+06 - dtps: 46054.30563 - hps: 80200.39272 + dps: 549437.97292 + tps: 3.48119059385e+06 + dtps: 46176.41307 + hps: 80426.32374 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 539459.74449 - tps: 3.41768782859e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541236.38217 + tps: 3.43198600234e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 539992.81527 - tps: 3.42141932408e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541657.17672 + tps: 3.43493156419e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 540683.97932 - tps: 3.42308505073e+06 - dtps: 46054.30563 - hps: 80120.71174 + dps: 542500.70125 + tps: 3.43764317428e+06 + dtps: 46176.41307 + hps: 80330.23752 } } dps_results: { key: "TestProtection-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 547783.04114 - tps: 3.4719165467e+06 - dtps: 44367.26727 - hps: 80490.47347 + dps: 548731.48712 + tps: 3.4796784046e+06 + dtps: 43721.8399 + hps: 80592.08909 } } dps_results: { key: "TestProtection-AllItems-TyrannicalPrimalDiamond" value: { - dps: 554121.24557 - tps: 3.46764764398e+06 - dtps: 44314.6275 - hps: 82134.03444 + dps: 556186.23956 + tps: 3.47937318495e+06 + dtps: 44009.53663 + hps: 82107.59576 } } dps_results: { key: "TestProtection-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 540999.70755 - tps: 3.42513916759e+06 - dtps: 46054.30563 - hps: 80120.88123 + dps: 542818.86561 + tps: 3.43977411324e+06 + dtps: 46176.41307 + hps: 80330.40701 } } dps_results: { key: "TestProtection-AllItems-VaporshieldMedallion-93262" value: { - dps: 538524.0271 - tps: 3.41405607285e+06 - dtps: 44137.6429 - hps: 80113.54356 + dps: 542762.10744 + tps: 3.4357877017e+06 + dtps: 44898.70133 + hps: 80132.94737 } } dps_results: { @@ -2490,46 +2490,46 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-VialofDragon'sBlood-87063" value: { - dps: 541986.51525 - tps: 3.43396785359e+06 - dtps: 42172.3113 - hps: 79380.10952 + dps: 541254.12204 + tps: 3.43198620668e+06 + dtps: 40824.95313 + hps: 79321.59799 } } dps_results: { key: "TestProtection-AllItems-VialofIchorousBlood-100963" value: { - dps: 540036.38109 - tps: 3.42110767424e+06 - dtps: 46054.30563 - hps: 80094.67066 + dps: 541816.10084 + tps: 3.43542742251e+06 + dtps: 46176.41307 + hps: 80304.19645 } } dps_results: { key: "TestProtection-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 540090.99585 - tps: 3.42210658814e+06 - dtps: 46054.30563 - hps: 80062.47136 + dps: 541867.90651 + tps: 3.43640667274e+06 + dtps: 46176.41307 + hps: 80271.99715 } } dps_results: { key: "TestProtection-AllItems-VisionofthePredator-81192" value: { - dps: 551086.99303 - tps: 3.48004996357e+06 - dtps: 46054.30563 - hps: 80273.71533 + dps: 552495.80977 + tps: 3.49294058396e+06 + dtps: 46176.41307 + hps: 80478.62295 } } dps_results: { key: "TestProtection-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 538422.24048 - tps: 3.42608929074e+06 - dtps: 44026.53881 - hps: 80170.84607 + dps: 539135.40151 + tps: 3.42613468733e+06 + dtps: 43850.10081 + hps: 80433.27442 } } dps_results: { @@ -2562,64 +2562,64 @@ dps_results: { dps_results: { key: "TestProtection-AllItems-WindsweptPages-81125" value: { - dps: 537358.65162 - tps: 3.42084316146e+06 - dtps: 46091.10178 - hps: 80102.12183 + dps: 539878.85624 + tps: 3.4372796193e+06 + dtps: 45667.5518 + hps: 80276.02657 } } dps_results: { key: "TestProtection-AllItems-WoundripperMedallion-93253" value: { - dps: 551429.51061 - tps: 3.49173322227e+06 - dtps: 46054.30563 - hps: 80222.75699 + dps: 551825.32056 + tps: 3.49454202514e+06 + dtps: 46176.41307 + hps: 80463.79964 } } dps_results: { key: "TestProtection-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 542781.10136 - tps: 3.43313685796e+06 - dtps: 46054.30563 - hps: 80274.45963 + dps: 544365.51909 + tps: 3.44615748334e+06 + dtps: 46176.41307 + hps: 80490.67145 } } dps_results: { key: "TestProtection-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 589173.97874 - tps: 3.72732685267e+06 - dtps: 44969.41529 - hps: 80359.45505 + dps: 589730.42757 + tps: 3.72987896092e+06 + dtps: 44697.20151 + hps: 80449.55144 } } dps_results: { key: "TestProtection-AllItems-YaungolFireCarrier-86518" value: { - dps: 586378.27845 - tps: 3.69306304202e+06 - dtps: 45130.97308 - hps: 82623.48967 + dps: 590280.61513 + tps: 3.71713808596e+06 + dtps: 44618.56423 + hps: 82681.05635 } } dps_results: { key: "TestProtection-AllItems-Yu'lon'sBite-103987" value: { - dps: 567391.40445 - tps: 3.57658911679e+06 - dtps: 46054.30563 - hps: 80468.89844 + dps: 568654.75989 + tps: 3.5881138333e+06 + dtps: 46176.41307 + hps: 80669.18788 } } dps_results: { key: "TestProtection-AllItems-ZenAlchemistStone-75274" value: { - dps: 548995.48214 - tps: 3.48011946988e+06 - dtps: 43408.13807 - hps: 80196.6558 + dps: 547584.88349 + tps: 3.47206192509e+06 + dtps: 41495.10403 + hps: 79813.90141 } } dps_results: { diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results index 80b902a33b..41711ce28b 100644 --- a/sim/paladin/retribution/TestRetribution.results +++ b/sim/paladin/retribution/TestRetribution.results @@ -33,64 +33,64 @@ character_stats_results: { dps_results: { key: "TestRetribution-AllItems-AgilePrimalDiamond" value: { - dps: 449616.38541 - tps: 424823.68587 + dps: 452725.35271 + tps: 427620.70079 hps: 15.43956 } } dps_results: { key: "TestRetribution-AllItems-AlacrityofXuen-103989" value: { - dps: 425222.8499 - tps: 402803.08396 + dps: 429763.34006 + tps: 406918.02217 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 406022.16274 - tps: 386388.56586 + dps: 408568.21592 + tps: 388754.08167 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ArrowflightMedallion-93258" value: { - dps: 405568.07291 - tps: 385733.6142 + dps: 409731.20146 + tps: 389343.09796 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-AssuranceofConsequence-105472" value: { - dps: 399643.91259 - tps: 380191.31081 + dps: 404752.24255 + tps: 384891.62637 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-AusterePrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-BadJuju-96781" value: { - dps: 408529.71377 - tps: 389146.78561 + dps: 413739.86438 + tps: 394001.42426 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-BadgeofKypariZar-84079" value: { - dps: 406396.19159 - tps: 386883.61751 + dps: 411579.07861 + tps: 391656.66603 hps: 16.30556 } } @@ -113,1336 +113,1336 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 416729.25995 - tps: 397098.69163 + dps: 419801.54319 + tps: 399869.59812 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-BlossomofPureSnow-89081" value: { - dps: 404480.78907 - tps: 384711.26391 + dps: 408620.29954 + tps: 388286.94637 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-BottleofInfiniteStars-87057" value: { - dps: 405722.16859 - tps: 386375.43482 + dps: 411133.08932 + tps: 391399.33477 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-BraidofTenSongs-84072" value: { - dps: 406313.09636 - tps: 386854.9613 + dps: 408886.68763 + tps: 388889.48035 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Brawler'sStatue-282039" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 401649.43917 + tps: 381971.44159 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-BreathoftheHydra-96827" value: { - dps: 411433.26818 - tps: 391624.91153 + dps: 415678.94815 + tps: 395660.59389 hps: 15.63408 } } dps_results: { key: "TestRetribution-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 401649.43917 + tps: 381971.44159 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 418126.64534 - tps: 397350.50174 + dps: 423200.95533 + tps: 402087.89258 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-BurningPrimalDiamond" value: { - dps: 449530.44344 - tps: 424737.74389 + dps: 452649.72899 + tps: 427545.07707 hps: 15.43956 } } dps_results: { key: "TestRetribution-AllItems-CapacitivePrimalDiamond" value: { - dps: 460044.2992 - tps: 435251.25895 + dps: 462980.48122 + tps: 437824.02775 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-CarbonicCarbuncle-81138" value: { - dps: 413074.67239 - tps: 392583.18057 + dps: 418158.95379 + tps: 397268.06897 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 408188.68085 - tps: 388463.27655 + dps: 413500.75796 + tps: 393384.35601 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-CharmofTenSongs-84071" value: { - dps: 406685.46513 - tps: 387002.14678 + dps: 410008.02422 + tps: 389965.46726 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 413045.89844 - tps: 392684.00744 + dps: 416704.05636 + tps: 395932.61057 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 405892.12315 - tps: 386555.5726 + dps: 411016.06681 + tps: 391305.21242 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 398625.66498 - tps: 379278.33698 + dps: 403702.39619 + tps: 383980.33964 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 398672.57684 - tps: 379336.02629 + dps: 403750.70566 + tps: 384039.85127 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 415985.17178 - tps: 395706.15962 + dps: 421432.15016 + tps: 400762.67543 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-CoreofDecency-87497" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CourageousPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447401.33334 + tps: 422321.41934 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 398710.93533 - tps: 379351.01363 + dps: 401581.21621 + tps: 382041.27425 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 398679.3504 - tps: 379332.0224 + dps: 401549.63127 + tps: 382022.28302 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 404893.22548 - tps: 384813.14402 + dps: 407770.72901 + tps: 387511.9144 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 402900.16917 - tps: 383335.00885 + dps: 407868.19404 + tps: 387913.63049 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 399102.81535 - tps: 379742.89365 + dps: 404286.20683 + tps: 384539.26435 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 398718.86019 - tps: 379371.53219 + dps: 403797.94631 + tps: 384075.88975 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 407627.21394 - tps: 387444.70024 + dps: 412772.51218 + tps: 392219.29841 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 398741.03886 - tps: 379381.11716 + dps: 401611.31974 + tps: 382071.37778 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 398704.05257 - tps: 379356.72457 + dps: 401574.33345 + tps: 382046.9852 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 406047.42151 - tps: 385831.61354 + dps: 408926.25086 + tps: 388531.94576 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 403831.55528 - tps: 384257.7863 + dps: 408992.859 + tps: 389011.98855 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 399065.40949 - tps: 379718.67571 + dps: 404354.0577 + tps: 384620.30314 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 398754.15741 - tps: 379389.15241 + dps: 403837.44476 + tps: 384097.01457 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 409303.59131 - tps: 388994.3535 + dps: 414416.04422 + tps: 393741.09093 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-CurseofHubris-105645" value: { - dps: 416388.36845 - tps: 396051.71839 + dps: 417098.06289 + tps: 396579.69913 hps: 18.91041 } } dps_results: { key: "TestRetribution-AllItems-CutstitcherMedallion-93255" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 402904.68412 + tps: 383045.45779 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Daelo'sFinalWords-87496" value: { - dps: 406590.39532 - tps: 386647.57251 + dps: 411338.05353 + tps: 390997.76681 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 459379.94803 - tps: 434675.34076 + dps: 462175.2449 + tps: 437080.08672 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-DarkmistVortex-87172" value: { - dps: 420969.31782 - tps: 399537.3556 + dps: 423184.98117 + tps: 401362.41113 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 403214.11164 - tps: 383877.56109 + dps: 407557.02653 + tps: 387697.80019 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DestructivePrimalDiamond" value: { - dps: 446035.74756 - tps: 421150.70048 + dps: 449184.47657 + tps: 423981.13883 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-DisciplineofXuen-103986" value: { - dps: 412334.94721 - tps: 392965.95691 + dps: 417765.91071 + tps: 398009.89964 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 406022.16274 - tps: 386388.56586 + dps: 408568.21592 + tps: 388754.08167 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 403214.11164 - tps: 383877.56109 + dps: 407557.02653 + tps: 387697.80019 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 402809.5116 - tps: 383472.96105 + dps: 407089.1877 + tps: 387229.96137 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 409160.38356 - tps: 389402.03064 + dps: 413479.74365 + tps: 393194.24534 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 398611.50521 - tps: 379274.95467 + dps: 402901.30181 + tps: 383042.07547 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 398710.93533 - tps: 379351.01363 + dps: 401581.21621 + tps: 382041.27425 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 398679.3504 - tps: 379332.0224 + dps: 401549.63127 + tps: 382022.28302 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 404893.22548 - tps: 384813.14402 + dps: 407770.72901 + tps: 387511.9144 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 402900.16917 - tps: 383335.00885 + dps: 407868.19404 + tps: 387913.63049 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 399089.40843 - tps: 379729.48672 + dps: 404269.44756 + tps: 384522.50508 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 398714.93354 - tps: 379367.60554 + dps: 403809.17931 + tps: 384087.12275 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 407635.66718 - tps: 387437.32963 + dps: 412770.81633 + tps: 392207.41739 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 402809.5116 - tps: 383472.96105 + dps: 407089.1877 + tps: 387229.96137 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 398756.55091 - tps: 379409.22291 + dps: 403837.17639 + tps: 384115.11984 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-EffulgentPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EmberPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447401.33334 + tps: 422321.41934 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EmblemofKypariZar-84077" value: { - dps: 405423.70745 - tps: 385825.18315 + dps: 408801.45407 + tps: 388779.22812 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 410551.7059 - tps: 391025.80322 + dps: 413012.26588 + tps: 393423.53207 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-EmptyFruitBarrel-81133" value: { - dps: 398578.29072 - tps: 379241.74017 + dps: 403669.00668 + tps: 383958.15229 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 459957.32936 - tps: 435104.46032 + dps: 463100.91939 + tps: 437889.25267 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 453205.16032 - tps: 428869.16698 + dps: 456223.98229 + tps: 431523.47798 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 454339.21674 - tps: 429999.59058 + dps: 457131.12246 + tps: 432427.1422 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 453238.13654 - tps: 428904.37291 + dps: 456264.73604 + tps: 431564.23173 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 453175.53587 - tps: 428869.16698 + dps: 456220.91642 + tps: 431523.47798 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 453210.67236 - tps: 428898.91412 + dps: 456230.24195 + tps: 431554.83496 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 454940.02427 - tps: 430498.45088 + dps: 459892.33589 + tps: 435100.6581 hps: 15.89857 } } dps_results: { key: "TestRetribution-AllItems-EnigmaticPrimalDiamond" value: { - dps: 446035.74756 - tps: 421150.70048 + dps: 449184.47657 + tps: 423981.13883 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EssenceofTerror-87175" value: { - dps: 409141.54039 - tps: 388218.26529 + dps: 415463.35083 + tps: 394503.88711 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-EternalPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-EvilEyeofGalakras-105491" value: { - dps: 471037.6811 - tps: 444951.75411 + dps: 478147.12137 + tps: 451397.42476 hps: 22.01849 } } dps_results: { key: "TestRetribution-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 417174.89722 - tps: 396470.97141 + dps: 421262.62727 + tps: 400106.3252 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-FearwurmBadge-84074" value: { - dps: 406629.63092 - tps: 387183.99439 + dps: 409598.561 + tps: 389537.46779 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-FearwurmRelic-84070" value: { - dps: 407706.62203 - tps: 387740.21266 + dps: 411928.42725 + tps: 391605.52421 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 412388.18677 - tps: 392032.96606 + dps: 417289.36894 + tps: 396477.75917 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 405914.35828 - tps: 386577.80773 + dps: 411109.91979 + tps: 391399.0654 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 435960.36171 - tps: 412283.35015 + dps: 440562.82483 + tps: 417012.08477 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 398635.3982 - tps: 379270.3932 + dps: 402531.61275 + tps: 383159.58098 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-FlashingSteelTalisman-81265" value: { - dps: 398759.6571 - tps: 379399.7354 + dps: 403466.66587 + tps: 383743.71646 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-FleetPrimalDiamond" value: { - dps: 447155.0506 - tps: 422386.84554 + dps: 450244.74873 + tps: 425164.83473 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-ForlornPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447401.33334 + tps: 422321.41934 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 408092.19883 - tps: 388755.64829 + dps: 413289.78818 + tps: 393578.93379 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 398831.80252 - tps: 379455.62972 + dps: 403913.04394 + tps: 384161.44595 hps: 15.65361 } } dps_results: { key: "TestRetribution-AllItems-Fusion-FireCore-105459" value: { - dps: 429590.18915 - tps: 407995.19251 + dps: 434706.45031 + tps: 412736.18004 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GazeoftheTwins-96915" value: { - dps: 419961.62917 - tps: 399300.10726 + dps: 426003.01389 + tps: 404963.88369 hps: 15.57764 } } dps_results: { key: "TestRetribution-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 402583.08986 - tps: 383045.33005 + dps: 405502.20102 + tps: 385629.92242 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 398856.79416 - tps: 379496.87246 + dps: 401737.6532 + tps: 382197.71124 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 398744.93691 - tps: 379379.93191 + dps: 401615.21779 + tps: 382070.19254 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 410051.25057 - tps: 389364.52689 + dps: 412934.65752 + tps: 392070.25289 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 406519.95303 - tps: 386830.89059 + dps: 411926.10856 + tps: 391846.58354 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 399209.03472 - tps: 379862.30094 + dps: 404588.71378 + tps: 384846.90484 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 398800.50278 - tps: 379435.49778 + dps: 403877.93037 + tps: 384137.50019 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 415010.61123 - tps: 394201.99688 + dps: 420226.47599 + tps: 399063.25436 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Haromm'sTalisman-105527" value: { - dps: 412594.55936 - tps: 393192.07481 + dps: 417683.6893 + tps: 397917.08413 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 408516.6693 - tps: 388775.47073 + dps: 410307.99324 + tps: 390368.04456 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 405815.73434 - tps: 386479.18379 + dps: 411017.47626 + tps: 391306.62187 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 414243.29376 - tps: 393711.53494 + dps: 419362.98078 + tps: 398425.83048 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 413958.43848 - tps: 394089.54296 + dps: 419130.94453 + tps: 398886.16597 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-HeartofFire-81181" value: { - dps: 403174.14462 - tps: 383837.59407 + dps: 406281.592 + tps: 386603.59442 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-HeartwarmerMedallion-93260" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 402904.68412 + tps: 383045.45779 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-HelmbreakerMedallion-93261" value: { - dps: 414189.64783 - tps: 393758.10572 + dps: 418334.97317 + tps: 397342.52841 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-Horridon'sLastGasp-96757" value: { - dps: 398683.35429 - tps: 379342.82629 + dps: 403761.90782 + tps: 384046.75127 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ImpassivePrimalDiamond" value: { - dps: 446035.74756 - tps: 421150.70048 + dps: 449184.47657 + tps: 423981.13883 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-IndomitablePrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-InsigniaofKypariZar-84078" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-IronBellyWok-89083" value: { - dps: 416787.04386 - tps: 396475.25509 + dps: 418623.11127 + tps: 398117.2877 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-IronProtectorTalisman-85181" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-JadeBanditFigurine-86772" value: { - dps: 406890.24972 - tps: 387491.2684 + dps: 410445.63091 + tps: 390354.95317 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 414185.34758 - tps: 394290.47052 + dps: 417911.9966 + tps: 397318.26307 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 402904.68412 + tps: 383045.45779 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 403704.05442 - tps: 383957.90041 + dps: 407865.25805 + tps: 387581.84517 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-JadeWarlordFigurine-86775" value: { - dps: 403582.24513 - tps: 384245.69458 + dps: 407857.42561 + tps: 387998.19928 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 398571.28062 - tps: 379234.73007 - hps: 12027.96979 + dps: 403661.72918 + tps: 383950.87479 + hps: 12177.50539 } } dps_results: { key: "TestRetribution-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 411914.48796 - tps: 392522.22582 + dps: 417247.17905 + tps: 397479.49172 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 409160.38356 - tps: 389402.03064 + dps: 413479.74365 + tps: 393194.24534 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-KnotofTenSongs-84073" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 400408.94757 + tps: 381005.78446 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 404229.07504 - tps: 384892.52449 + dps: 408500.49238 + tps: 388641.26604 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 421102.84154 - tps: 399864.07045 + dps: 425657.84604 + tps: 404158.28646 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 408063.08944 - tps: 387080.86386 + dps: 411117.82444 + tps: 389797.75905 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 404604.84966 - tps: 385258.11589 + dps: 409892.60124 + tps: 390158.84669 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 406338.89719 - tps: 387002.34664 + dps: 411533.76982 + tps: 391810.73358 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LightoftheCosmos-87065" value: { - dps: 409163.04566 - tps: 389083.2113 + dps: 413671.16577 + tps: 393346.43167 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 459477.63909 - tps: 434743.40782 + dps: 462244.03915 + tps: 437145.81511 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 453205.16032 - tps: 428869.16698 + dps: 456223.98229 + tps: 431523.47798 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 398741.03886 - tps: 379381.11716 + dps: 401611.31974 + tps: 382071.37778 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 398704.05257 - tps: 379356.72457 + dps: 401574.33345 + tps: 382046.9852 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 406047.42151 - tps: 385831.61354 + dps: 408926.25086 + tps: 388531.94576 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 403831.55528 - tps: 384257.7863 + dps: 408992.859 + tps: 389011.98855 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 399123.13154 - tps: 379763.20984 + dps: 404452.46732 + tps: 384705.52484 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 398746.46064 - tps: 379381.45564 + dps: 403829.31306 + tps: 384088.88288 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 409347.13863 - tps: 389032.0764 + dps: 414529.75675 + tps: 393842.22799 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MarkoftheCatacombs-83731" value: { - dps: 405968.67161 - tps: 386486.54623 + dps: 410934.15986 + tps: 391072.47162 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 404611.50731 - tps: 385274.95677 + dps: 408880.69974 + tps: 389021.4734 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 401924.25239 - tps: 382587.70184 + dps: 407052.43261 + tps: 387341.57822 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 398611.50521 - tps: 379274.95467 + dps: 402901.30181 + tps: 383042.07547 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MirrorScope-4700" value: { - dps: 453205.16032 - tps: 428869.16698 + dps: 456223.98229 + tps: 431523.47798 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MistdancerDefenderStone-101087" value: { - dps: 405912.65536 - tps: 386576.10481 + dps: 411053.46891 + tps: 391342.61452 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MistdancerIdolofRage-101113" value: { - dps: 404597.91052 - tps: 385237.98881 + dps: 409815.22639 + tps: 390068.28391 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MistdancerStoneofRage-101117" value: { - dps: 406332.70996 - tps: 386996.15941 + dps: 411516.80033 + tps: 391793.76409 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 403691.19403 + tps: 383980.33964 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MithrilWristwatch-282033" value: { - dps: 406935.08942 - tps: 387236.95838 + dps: 412242.01954 + tps: 392153.42594 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 411829.96609 - tps: 391626.46552 + dps: 415872.14033 + tps: 395081.25308 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 405990.03463 - tps: 386653.48408 + dps: 411114.28967 + tps: 391403.43528 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 398660.86479 - tps: 379308.2249 + dps: 403754.11683 + tps: 384027.1731 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-OathswornDefenderIdol-101303" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-OathswornDefenderStone-101306" value: { - dps: 405976.92429 - tps: 386640.37375 + dps: 411066.60447 + tps: 391355.75008 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-OathswornIdolofBattle-101295" value: { - dps: 414208.91555 - tps: 393718.87464 + dps: 419365.15134 + tps: 398455.06832 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-OathswornStoneofBattle-101294" value: { - dps: 413939.03585 - tps: 394070.14033 + dps: 419142.78711 + tps: 398898.00855 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PhaseFingers-4697" value: { - dps: 458605.9737 - tps: 433930.2752 + dps: 460767.72063 + tps: 435942.31701 hps: 15.24862 } } @@ -1465,96 +1465,96 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-PouchofWhiteAsh-103639" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 400408.94757 + tps: 381005.78446 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PowerfulPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-PriceofProgress-81266" value: { - dps: 398611.50521 - tps: 379274.95467 + dps: 403687.60496 + tps: 383976.75057 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 398993.28663 - tps: 379623.18171 + dps: 401863.96244 + tps: 382324.02049 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 398787.67105 - tps: 379422.66605 + dps: 401657.95193 + tps: 382112.92668 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 413476.35215 - tps: 392386.82478 + dps: 416363.67156 + tps: 395097.16136 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 408855.47678 - tps: 389094.01906 + dps: 414144.56234 + tps: 394010.29447 hps: 16.30556 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 399610.61849 - tps: 380241.62819 + dps: 404873.83233 + tps: 385097.26388 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 398829.62243 - tps: 379464.61743 + dps: 403916.46772 + tps: 384176.03753 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 419914.35156 - tps: 398602.49419 + dps: 425163.12001 + tps: 403487.86846 hps: 14.97429 } } @@ -1569,456 +1569,456 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 421596.21758 - tps: 401014.53485 + dps: 426645.09807 + tps: 405641.72137 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 424821.78227 - tps: 404965.87937 + dps: 426717.49313 + tps: 406481.58977 hps: 15.2289 } } dps_results: { key: "TestRetribution-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 425180.88491 - tps: 405268.02664 + dps: 427114.5772 + tps: 406822.82887 hps: 15.9569 } } dps_results: { key: "TestRetribution-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 415159.61088 - tps: 391807.81262 + dps: 417967.04544 + tps: 394206.13524 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 421896.19315 - tps: 397986.30038 + dps: 425273.30757 + tps: 400912.86651 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 398584.66353 - tps: 379248.11299 + dps: 403675.62259 + tps: 383964.7682 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-RelicofChi-Ji-79330" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 403691.19403 + tps: 383980.33964 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-RelicofKypariZar-84075" value: { - dps: 408414.98411 - tps: 388422.39859 + dps: 412180.01769 + tps: 391922.9583 hps: 16.30556 } } dps_results: { key: "TestRetribution-AllItems-RelicofNiuzao-79329" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 402170.1782 + tps: 382429.61329 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-RelicofXuen-79327" value: { - dps: 413148.15075 - tps: 392604.02767 + dps: 418344.61707 + tps: 397451.49248 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-RelicofXuen-79328" value: { - dps: 399395.65619 - tps: 380039.85382 + dps: 404535.74993 + tps: 384792.92679 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-RelicofYu'lon-79331" value: { - dps: 398760.43543 - tps: 379395.43043 + dps: 403840.40513 + tps: 384099.97494 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 399063.67928 - tps: 379682.32569 + dps: 404096.3385 + tps: 384321.61447 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ResolveofNiuzao-103990" value: { - dps: 407575.939 - tps: 388239.38845 + dps: 412767.71877 + tps: 393056.86438 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ReverberatingPrimalDiamond" value: { - dps: 451263.33201 - tps: 426355.68958 + dps: 454377.56992 + tps: 429157.96251 hps: 15.43956 } } dps_results: { key: "TestRetribution-AllItems-RevitalizingPrimalDiamond" value: { - dps: 449530.44344 - tps: 424737.74389 + dps: 452645.77962 + tps: 427541.1277 hps: 15.43956 } } dps_results: { key: "TestRetribution-AllItems-RuneofRe-Origination-96918" value: { - dps: 407302.63386 - tps: 389025.02679 + dps: 412364.40935 + tps: 393762.96654 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SI:7Operative'sManual-92784" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 400408.94757 + tps: 381005.78446 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 398614.88753 - tps: 379278.33698 + dps: 402904.68412 + tps: 383045.45779 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SearingWords-81267" value: { - dps: 403596.01655 - tps: 384012.52405 + dps: 408695.15871 + tps: 388721.72812 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 407946.27818 - tps: 388266.4608 + dps: 411634.36384 + tps: 391513.89462 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SigilofCompassion-83736" value: { - dps: 401924.25239 - tps: 382587.70184 + dps: 407052.43261 + tps: 387341.57822 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SigilofDevotion-83740" value: { - dps: 405983.89291 - tps: 386501.76753 + dps: 410975.09299 + tps: 391113.40475 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SigilofFidelity-83737" value: { - dps: 409971.33425 - tps: 390214.42187 + dps: 412987.98679 + tps: 393172.19354 hps: 16.30556 } } dps_results: { key: "TestRetribution-AllItems-SigilofGrace-83738" value: { - dps: 406386.22822 - tps: 386409.54631 + dps: 409491.98664 + tps: 388996.31691 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SigilofKypariZar-84076" value: { - dps: 406212.16561 - tps: 386730.04023 + dps: 411292.35126 + tps: 391430.66303 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SigilofPatience-83739" value: { - dps: 402785.45866 - tps: 383448.90811 + dps: 407875.07848 + tps: 388164.22409 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SigilofRampage-105580" value: { - dps: 399463.68209 - tps: 380040.92632 + dps: 404559.52045 + tps: 384762.38546 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SigiloftheCatacombs-83732" value: { - dps: 406836.64548 - tps: 387176.3548 + dps: 411278.66384 + tps: 391225.55391 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SinisterPrimalDiamond" value: { - dps: 446591.44837 - tps: 421657.20574 + dps: 449682.19703 + tps: 424579.04272 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 437830.9162 - tps: 415881.95773 - hps: 17.8022 + dps: 441840.8071 + tps: 419555.54772 + hps: 17.58074 } } dps_results: { key: "TestRetribution-AllItems-SkullrenderMedallion-93256" value: { - dps: 414189.64783 - tps: 393758.10572 + dps: 418334.97317 + tps: 397342.52841 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 398668.27586 - tps: 379331.72531 + dps: 403746.1272 + tps: 384035.27281 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SoulBarrier-96927" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SparkofZandalar-96770" value: { - dps: 423186.52111 - tps: 402870.90214 + dps: 427879.01585 + tps: 407260.72544 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpiritsoftheSun-87163" value: { - dps: 398638.47638 - tps: 379301.92583 + dps: 403715.99489 + tps: 384005.1405 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 411600.16677 - tps: 391214.35492 + dps: 415297.48188 + tps: 394359.5224 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpringrainIdolofRage-101009" value: { - dps: 404650.28463 - tps: 385290.36292 + dps: 409843.11666 + tps: 390096.17418 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 405874.0747 - tps: 386537.52416 + dps: 411011.10133 + tps: 391300.24694 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpringrainStoneofRage-101012" value: { - dps: 406429.46582 - tps: 387092.91527 + dps: 411631.10643 + tps: 391908.07019 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 398623.77366 - tps: 379287.22311 + dps: 403700.41912 + tps: 383989.56473 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 407946.27818 - tps: 388266.4608 + dps: 411634.36384 + tps: 391513.89462 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 406543.41933 - tps: 387206.86878 + dps: 411723.57996 + tps: 392012.72557 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 413018.29433 - tps: 392502.58014 + dps: 415518.01507 + tps: 394748.48288 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 404671.34518 - tps: 385311.42348 + dps: 409866.67566 + tps: 390119.73318 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 405803.4705 - tps: 386466.91995 + dps: 410982.58621 + tps: 391271.73182 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 406415.34683 - tps: 387078.79628 + dps: 411597.2022 + tps: 391874.16596 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 398639.90844 - tps: 379285.68089 + dps: 403717.19171 + tps: 383987.96368 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-StuffofNightmares-87160" value: { - dps: 405635.88888 - tps: 386299.33834 + dps: 410805.83689 + tps: 391094.9825 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SunsoulDefenderStone-101163" value: { - dps: 405999.38738 - tps: 386662.83683 + dps: 411154.76962 + tps: 391443.91523 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 414270.0786 - tps: 393769.22104 + dps: 419423.32528 + tps: 398533.89132 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 414026.21491 - tps: 394157.31939 + dps: 419257.57219 + tps: 399012.79364 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 398634.55111 - tps: 379287.22311 + dps: 403711.62128 + tps: 383989.56473 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 463322.98121 - tps: 438208.87371 + dps: 466124.13977 + tps: 440613.90549 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-SymboloftheCatacombs-83735" value: { - dps: 406405.75441 - tps: 386880.55209 + dps: 411339.46493 + tps: 391425.90993 hps: 16.30556 } } @@ -2033,168 +2033,168 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-TalismanofBloodlust-96864" value: { - dps: 411344.67066 - tps: 391467.74888 + dps: 414811.97036 + tps: 394549.90429 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TerrorintheMists-87167" value: { - dps: 411502.93075 - tps: 390940.63212 + dps: 416844.19123 + tps: 395877.10948 hps: 17.71989 } } dps_results: { key: "TestRetribution-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 398587.18914 - tps: 379250.63859 + dps: 403678.24453 + tps: 383967.39015 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Thok'sTailTip-105609" value: { - dps: 455820.08518 - tps: 431196.87427 + dps: 457563.58483 + tps: 432523.84929 hps: 15.2289 } } dps_results: { key: "TestRetribution-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 400494.68005 - tps: 380879.84091 + dps: 403966.78867 + tps: 384015.62177 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TickingEbonDetonator-105612" value: { - dps: 412201.91808 - tps: 392818.0459 + dps: 417428.32959 + tps: 397637.57535 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-Time-LostArtifact-103678" value: { - dps: 416437.31274 - tps: 396374.90309 + dps: 418347.32111 + tps: 397951.26354 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 404676.54148 - tps: 385316.61978 + dps: 409857.29621 + tps: 390122.53558 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 406356.38171 - tps: 387019.83116 + dps: 411580.72197 + tps: 391857.68573 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 398741.03886 - tps: 379381.11716 + dps: 401611.31974 + tps: 382071.37778 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 398716.9053 - tps: 379369.5773 + dps: 401587.18617 + tps: 382059.83793 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 407583.20556 - tps: 387186.7324 + dps: 410463.78763 + tps: 389889.12951 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 404861.19423 - tps: 385252.07967 + dps: 410195.74176 + tps: 390178.99087 hps: 15.88646 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 399424.60278 - tps: 380077.86901 + dps: 404628.7337 + tps: 384894.97915 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 398741.84342 - tps: 379376.83843 + dps: 403835.34053 + tps: 384094.91034 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 411564.03615 - tps: 391041.37653 + dps: 416757.79407 + tps: 395840.13061 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-TyrannicalPrimalDiamond" value: { - dps: 444331.05779 - tps: 419562.85273 + dps: 447397.59879 + tps: 422317.68479 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 398683.35429 - tps: 379336.02629 + dps: 403761.90782 + tps: 384039.85127 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-VaporshieldMedallion-93262" value: { - dps: 404611.50731 - tps: 385274.95677 + dps: 408880.69974 + tps: 389021.4734 hps: 14.97429 } } @@ -2217,48 +2217,48 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-VialofDragon'sBlood-87063" value: { - dps: 405190.27513 - tps: 385853.72459 + dps: 410355.20856 + tps: 390644.35417 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-VialofIchorousBlood-100963" value: { - dps: 398611.50521 - tps: 379274.95467 + dps: 403687.60496 + tps: 383976.75057 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-VialofLivingCorruption-105568" value: { - dps: 398571.28062 - tps: 379234.73007 + dps: 403661.72918 + tps: 383950.87479 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 399090.52105 - tps: 379698.06436 + dps: 404308.26767 + tps: 384507.69774 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-VisionofthePredator-81192" value: { - dps: 406238.45186 - tps: 386293.5671 + dps: 411017.66577 + tps: 390705.89889 hps: 15.63408 } } dps_results: { key: "TestRetribution-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 407377.45684 - tps: 387186.56051 + dps: 411291.77829 + tps: 390767.71196 hps: 14.97429 } } @@ -2289,48 +2289,48 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-WindsweptPages-81125" value: { - dps: 406691.86081 - tps: 386966.04683 + dps: 410105.13027 + tps: 390120.86893 hps: 14.97429 } } dps_results: { key: "TestRetribution-AllItems-WoundripperMedallion-93253" value: { - dps: 405568.07291 - tps: 385733.6142 + dps: 409731.20146 + tps: 389343.09796 hps: 16.60794 } } dps_results: { key: "TestRetribution-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 398884.34529 - tps: 379519.34029 + dps: 403970.93803 + tps: 384230.50785 hps: 15.28311 } } dps_results: { key: "TestRetribution-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 428245.69969 - tps: 404431.05347 + dps: 432364.33404 + tps: 408095.27768 hps: 15.24862 } } dps_results: { key: "TestRetribution-AllItems-Yu'lon'sBite-103987" value: { - dps: 413687.20031 - tps: 392727.67085 + dps: 419014.66523 + tps: 397645.33116 hps: 17.37251 } } dps_results: { key: "TestRetribution-AllItems-ZenAlchemistStone-75274" value: { - dps: 413105.00851 - tps: 392946.23569 + dps: 418342.47705 + tps: 397834.86731 hps: 14.97429 } } diff --git a/sim/priest/shadow/TestShadow.results b/sim/priest/shadow/TestShadow.results index d0dde7bf3b..36120824e3 100644 --- a/sim/priest/shadow/TestShadow.results +++ b/sim/priest/shadow/TestShadow.results @@ -7,12 +7,12 @@ character_stats_results: { final_stats: 30774 final_stats: 3519 final_stats: 3362 - final_stats: 8693 - final_stats: 17232 + final_stats: 8707 + final_stats: 17221 final_stats: 1760 final_stats: 0 final_stats: 0 - final_stats: 15210 + final_stats: 15206 final_stats: 0 final_stats: 0 final_stats: 55762.85 @@ -25,2313 +25,2313 @@ character_stats_results: { final_stats: 15000 final_stats: 9.88824 final_stats: 15.06471 - final_stats: 22.66833 - final_stats: 32.87452 + final_stats: 22.69167 + final_stats: 32.89786 final_stats: 0 } } dps_results: { key: "TestShadow-AllItems-AgilePrimalDiamond" value: { - dps: 430763.97545 - tps: 397803.87033 - hps: 4373.75902 + dps: 435018.26237 + tps: 401128.56591 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-AlacrityofXuen-103989" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 404735.11248 - tps: 373815.83975 - hps: 4832.08484 + dps: 407467.55695 + tps: 375995.10845 + hps: 4829.03428 } } dps_results: { key: "TestShadow-AllItems-ArrowflightMedallion-93258" value: { - dps: 402861.84502 - tps: 371574.29916 - hps: 4828.12736 + dps: 407024.01335 + tps: 376083.79052 + hps: 4880.81133 } } dps_results: { key: "TestShadow-AllItems-AssuranceofConsequence-105472" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-AusterePrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4402.8426 + dps: 428137.87462 + tps: 394573.20306 + hps: 4405.66446 } } dps_results: { key: "TestShadow-AllItems-BadJuju-96781" value: { - dps: 402072.52157 - tps: 372406.04293 - hps: 4797.20953 + dps: 407466.24749 + tps: 377102.57828 + hps: 4854.42812 } } dps_results: { key: "TestShadow-AllItems-BadgeofKypariZar-84079" value: { - dps: 397754.6526 - tps: 368721.78602 - hps: 4794.98345 + dps: 402782.01611 + tps: 372313.17096 + hps: 4873.22616 } } dps_results: { key: "TestShadow-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 451797.5462 - tps: 413911.6328 - hps: 4884.9337 + dps: 454693.784 + tps: 416026.4305 + hps: 4836.86679 } } dps_results: { key: "TestShadow-AllItems-BlossomofPureSnow-89081" value: { - dps: 412137.75254 - tps: 379832.14663 - hps: 4833.07421 + dps: 416700.02337 + tps: 384880.17652 + hps: 4875.12245 } } dps_results: { key: "TestShadow-AllItems-BottleofInfiniteStars-87057" value: { - dps: 398275.14055 - tps: 368746.22978 - hps: 4800.26009 + dps: 405131.61498 + tps: 374639.06341 + hps: 4870.0107 } } dps_results: { key: "TestShadow-AllItems-BraidofTenSongs-84072" value: { - dps: 397754.6526 - tps: 368721.78602 - hps: 4794.98345 + dps: 402782.01611 + tps: 372313.17096 + hps: 4873.22616 } } dps_results: { key: "TestShadow-AllItems-Brawler'sStatue-282039" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-BreathoftheHydra-96827" value: { - dps: 429556.74276 - tps: 395957.16338 - hps: 4966.06207 + dps: 434322.79631 + tps: 399810.35466 + hps: 4887.98426 } } dps_results: { key: "TestShadow-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4952.1327 + dps: 398326.06583 + tps: 368491.9191 + hps: 5011.75825 } } dps_results: { key: "TestShadow-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-BurningPrimalDiamond" value: { - dps: 432719.09757 - tps: 399612.15966 - hps: 4373.75902 + dps: 437038.09044 + tps: 402881.66966 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-CapacitivePrimalDiamond" value: { - dps: 426050.08502 - tps: 393086.36773 - hps: 4373.75902 + dps: 430883.15487 + tps: 397048.07485 + hps: 4377.55161 } } dps_results: { key: "TestShadow-AllItems-CarbonicCarbuncle-81138" value: { - dps: 401644.5016 - tps: 371051.80017 - hps: 4826.6433 + dps: 408052.75897 + tps: 376293.89215 + hps: 4870.34049 } } dps_results: { key: "TestShadow-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 431062.66485 - tps: 395776.36622 - hps: 4819.30547 + dps: 437893.15909 + tps: 401553.16159 + hps: 4829.44652 } } dps_results: { key: "TestShadow-AllItems-CharmofTenSongs-84071" value: { - dps: 400831.86418 - tps: 370077.44887 - hps: 4868.36175 + dps: 405021.04973 + tps: 373485.49755 + hps: 4901.01097 } } dps_results: { key: "TestShadow-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 407308.1374 - tps: 377000.60288 - hps: 4982.0569 + dps: 413118.22104 + tps: 381501.3223 + hps: 4990.05431 } } dps_results: { key: "TestShadow-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 411916.19152 - tps: 380853.56388 - hps: 4801.4968 + dps: 417444.4167 + tps: 385222.54407 + hps: 4820.70708 } } dps_results: { key: "TestShadow-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 411083.18657 - tps: 380100.39108 - hps: 4795.56058 + dps: 415473.70211 + tps: 383763.40529 + hps: 4869.43357 } } dps_results: { key: "TestShadow-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 409133.44292 - tps: 378464.29329 - hps: 4819.63526 + dps: 414049.63429 + tps: 382554.37693 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 402219.46542 - tps: 371227.50655 - hps: 4806.11387 + dps: 408361.05045 + tps: 376539.79976 + hps: 4870.42294 } } dps_results: { key: "TestShadow-AllItems-CoreofDecency-87497" value: { - dps: 400727.75789 - tps: 370799.65134 - hps: 4811.63785 + dps: 405008.87039 + tps: 374036.92528 + hps: 4874.87511 } } dps_results: { key: "TestShadow-AllItems-CourageousPrimalDiamond" value: { - dps: 427005.7273 - tps: 394133.6332 - hps: 4373.75902 + dps: 431241.24097 + tps: 397348.42391 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 400917.57304 - tps: 370721.4375 - hps: 4822.68582 + dps: 404310.26471 + tps: 373905.07805 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 397760.37877 - tps: 367634.98277 - hps: 4864.0028 + dps: 403036.91195 + tps: 371936.14298 + hps: 4935.97126 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 392361.52455 - tps: 363298.18647 - hps: 4873.84092 + dps: 398326.06583 + tps: 368490.00513 + hps: 4947.80469 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4968.48677 + dps: 398326.06583 + tps: 368491.9191 + hps: 5043.88567 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 403861.5995 - tps: 373212.53423 - hps: 4806.36121 + dps: 408069.83144 + tps: 376526.29619 + hps: 4876.11182 } } dps_results: { key: "TestShadow-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 402640.658 - tps: 372174.29993 - hps: 4830.27099 + dps: 405946.52679 + tps: 375308.1124 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 398546.66024 - tps: 368235.30521 - hps: 4884.39243 + dps: 404088.44373 + tps: 372766.25186 + hps: 4947.59272 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 392361.52455 - tps: 363297.8371 - hps: 4885.12257 + dps: 398326.06583 + tps: 368489.65576 + hps: 4959.2685 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4996.9359 + dps: 398326.06583 + tps: 368491.9191 + hps: 5072.77728 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 405441.66168 - tps: 374882.88329 - hps: 4804.87715 + dps: 410672.73727 + tps: 378948.60703 + hps: 4881.05867 } } dps_results: { key: "TestShadow-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-CurseofHubris-105645" value: { - dps: 415257.07707 - tps: 380988.18835 - hps: 5156.87213 + dps: 410987.4077 + tps: 378466.3555 + hps: 5205.84041 } } dps_results: { key: "TestShadow-AllItems-CutstitcherMedallion-93255" value: { - dps: 403484.37501 - tps: 373342.1932 - hps: 4819.63526 + dps: 409152.63275 + tps: 378116.17373 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-Daelo'sFinalWords-87496" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 445517.7189 - tps: 412021.52173 - hps: 4798.1989 + dps: 452209.83544 + tps: 417140.79645 + hps: 4786.98604 } } dps_results: { key: "TestShadow-AllItems-DarkmistVortex-87172" value: { - dps: 400656.89632 - tps: 370040.3625 - hps: 5013.22206 + dps: 404919.88488 + tps: 373594.95973 + hps: 4987.41598 } } dps_results: { key: "TestShadow-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DestructivePrimalDiamond" value: { - dps: 426204.71388 - tps: 392795.17977 - hps: 4373.75902 + dps: 431613.81533 + tps: 397568.16969 + hps: 4377.55161 } } dps_results: { key: "TestShadow-AllItems-DisciplineofXuen-103986" value: { - dps: 409626.56764 - tps: 378629.05276 - hps: 4767.03374 + dps: 415797.2913 + tps: 384115.70456 + hps: 4790.36639 } } dps_results: { key: "TestShadow-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 404735.11248 - tps: 373815.83975 - hps: 4832.08484 + dps: 407467.55695 + tps: 375995.10845 + hps: 4829.03428 } } dps_results: { key: "TestShadow-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 400321.06598 - tps: 370483.26969 - hps: 4819.63526 + dps: 406095.84564 + tps: 375285.5817 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 400917.57304 - tps: 370721.4375 - hps: 4822.68582 + dps: 404310.26471 + tps: 373905.07805 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 397760.37877 - tps: 367634.98277 - hps: 4864.0028 + dps: 403036.91195 + tps: 371936.14298 + hps: 4935.97126 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 392361.52455 - tps: 363298.18647 - hps: 4873.84092 + dps: 398326.06583 + tps: 368490.00513 + hps: 4947.80469 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4968.48677 + dps: 398326.06583 + tps: 368491.9191 + hps: 5043.88567 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 404262.48461 - tps: 373904.18056 - hps: 4807.51547 + dps: 408715.54452 + tps: 377274.75111 + hps: 4881.05867 } } dps_results: { key: "TestShadow-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 415194.49403 - tps: 383772.95908 - hps: 4812.05009 + dps: 420835.39513 + tps: 388713.60711 + hps: 4875.53469 } } dps_results: { key: "TestShadow-AllItems-EffulgentPrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4402.8426 + dps: 428137.87462 + tps: 394573.20306 + hps: 4405.66446 } } dps_results: { key: "TestShadow-AllItems-EmberPrimalDiamond" value: { - dps: 425868.07042 - tps: 393078.81978 - hps: 4373.75902 + dps: 430119.92111 + tps: 396293.53841 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-EmblemofKypariZar-84077" value: { - dps: 396607.30634 - tps: 366546.1918 - hps: 4812.05009 + dps: 402321.41415 + tps: 371434.53798 + hps: 4871.57721 } } dps_results: { key: "TestShadow-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 394220.9677 - tps: 364412.28734 - hps: 4846.43071 + dps: 397483.25954 + tps: 366928.94677 + hps: 4810.48359 } } dps_results: { key: "TestShadow-AllItems-EmptyFruitBarrel-81133" value: { - dps: 399425.6359 - tps: 369917.40958 - hps: 4795.31324 + dps: 405015.74466 + tps: 374344.57419 + hps: 4875.53469 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 445143.93302 - tps: 410831.57251 - hps: 4777.50457 + dps: 453216.72092 + tps: 418003.80168 + hps: 4809.57666 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 451340.07576 - tps: 416487.35695 - hps: 4815.92512 + dps: 459234.20184 + tps: 422911.74327 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 448041.84518 - tps: 412852.88252 - hps: 4775.93807 + dps: 452465.79529 + tps: 417414.62566 + hps: 4815.51288 } } dps_results: { key: "TestShadow-AllItems-EnigmaticPrimalDiamond" value: { - dps: 426204.71388 - tps: 392795.17977 - hps: 4373.75902 + dps: 431613.81533 + tps: 397568.16969 + hps: 4377.55161 } } dps_results: { key: "TestShadow-AllItems-EssenceofTerror-87175" value: { - dps: 416099.22367 - tps: 384391.30858 - hps: 5037.29674 + dps: 420014.45217 + tps: 387671.24819 + hps: 4962.68173 } } dps_results: { key: "TestShadow-AllItems-EternalPrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4373.75902 + dps: 428137.87462 + tps: 394573.20306 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-EvilEyeofGalakras-105491" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 392361.27034 - tps: 363299.84622 - hps: 4812.05009 + dps: 398325.81161 + tps: 368491.66488 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-FearwurmBadge-84074" value: { - dps: 396607.30634 - tps: 366546.1918 - hps: 4812.05009 + dps: 402321.41415 + tps: 371434.53798 + hps: 4871.57721 } } dps_results: { key: "TestShadow-AllItems-FearwurmRelic-84070" value: { - dps: 398903.56905 - tps: 368595.0869 - hps: 4869.51602 + dps: 404881.18543 + tps: 373758.0663 + hps: 4874.05063 } } dps_results: { key: "TestShadow-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 407984.68305 - tps: 377744.82393 - hps: 4957.40508 + dps: 411576.05339 + tps: 380224.12424 + hps: 4980.65529 } } dps_results: { key: "TestShadow-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 412783.26459 - tps: 381314.49768 - hps: 4795.64303 + dps: 419332.06363 + tps: 386722.42601 + hps: 4817.57407 } } dps_results: { key: "TestShadow-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 402473.50364 - tps: 370751.85203 - hps: 4650.18182 + dps: 407638.89689 + tps: 375450.2248 + hps: 4648.37573 } } dps_results: { key: "TestShadow-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 400645.38505 - tps: 370154.77005 - hps: 4824.58211 + dps: 404171.09196 + tps: 373447.12791 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-FlashingSteelTalisman-81265" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-FleetPrimalDiamond" value: { - dps: 426746.63053 - tps: 393946.625 - hps: 4373.51168 + dps: 431558.0971 + tps: 398047.41586 + hps: 4376.06755 } } dps_results: { key: "TestShadow-AllItems-ForlornPrimalDiamond" value: { - dps: 425868.07042 - tps: 393078.81978 - hps: 4373.75902 + dps: 430119.92111 + tps: 396293.53841 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 402072.52157 - tps: 372406.04293 - hps: 4928.59562 + dps: 407466.24749 + tps: 377102.57828 + hps: 4990.57513 } } dps_results: { key: "TestShadow-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 424179.74104 - tps: 390384.95771 - hps: 4779.15352 + dps: 430156.94112 + tps: 395234.27243 + hps: 4860.77658 } } dps_results: { key: "TestShadow-AllItems-Fusion-FireCore-105459" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-GazeoftheTwins-96915" value: { - dps: 405724.50439 - tps: 373526.94102 - hps: 4803.06331 + dps: 410979.22575 + tps: 378288.23994 + hps: 4866.13567 } } dps_results: { key: "TestShadow-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 396772.86234 - tps: 366675.70028 - hps: 4812.05009 + dps: 402448.96474 + tps: 371568.02705 + hps: 4877.26608 } } dps_results: { key: "TestShadow-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 402473.50364 - tps: 370751.85203 - hps: 4650.18182 + dps: 407638.89689 + tps: 375450.2248 + hps: 4648.37573 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 407298.9984 - tps: 376404.35231 - hps: 4835.21784 + dps: 410256.35271 + tps: 379367.2841 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 401483.69268 - tps: 370565.27945 - hps: 4917.17746 + dps: 407666.42474 + tps: 376045.48202 + hps: 4984.51635 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 392361.52455 - tps: 363296.6284 - hps: 4924.23463 + dps: 398326.06583 + tps: 368488.44706 + hps: 4999.01209 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 5095.90944 + dps: 398326.06583 + tps: 368491.9191 + hps: 5173.29004 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 412962.58542 - tps: 381013.77668 - hps: 4812.46233 + dps: 417849.76336 + tps: 385003.93207 + hps: 4870.1756 } } dps_results: { key: "TestShadow-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Haromm'sTalisman-105527" value: { - dps: 412974.52639 - tps: 383913.10228 - hps: 4812.05009 + dps: 419204.8167 + tps: 389370.66996 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 397269.64471 - tps: 366932.05197 - hps: 4853.60364 + dps: 399762.71501 + tps: 369722.40951 + hps: 4768.3529 } } dps_results: { key: "TestShadow-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4963.41154 + dps: 398326.06583 + tps: 368491.9191 + hps: 5038.67273 } } dps_results: { key: "TestShadow-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 402678.97775 - tps: 372728.79555 - hps: 4910.34603 + dps: 407739.99458 + tps: 376864.74314 + hps: 4962.30601 } } dps_results: { key: "TestShadow-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 398798.44638 - tps: 368402.28266 - hps: 4812.05009 + dps: 404459.74332 + tps: 373090.96145 + hps: 4872.31923 } } dps_results: { key: "TestShadow-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 402695.12443 - tps: 372550.52472 - hps: 4839.01043 + dps: 407822.31314 + tps: 376692.49441 + hps: 4880.56399 } } dps_results: { key: "TestShadow-AllItems-HeartofFire-81181" value: { - dps: 396198.46266 - tps: 367126.20643 - hps: 4779.40087 + dps: 403153.70537 + tps: 373006.11734 + hps: 4867.12504 } } dps_results: { key: "TestShadow-AllItems-HeartwarmerMedallion-93260" value: { - dps: 403484.37501 - tps: 373342.1932 - hps: 4819.63526 + dps: 409152.63275 + tps: 378116.17373 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-HelmbreakerMedallion-93261" value: { - dps: 402861.84502 - tps: 371574.29916 - hps: 4828.12736 + dps: 407024.01335 + tps: 376083.79052 + hps: 4880.81133 } } dps_results: { key: "TestShadow-AllItems-Horridon'sLastGasp-96757" value: { - dps: 410031.94304 - tps: 379324.95373 - hps: 4819.63526 + dps: 414954.11078 + tps: 383419.74004 + hps: 4873.63839 } } dps_results: { key: "TestShadow-AllItems-ImpassivePrimalDiamond" value: { - dps: 426204.71388 - tps: 392795.17977 - hps: 4373.75902 + dps: 431613.81533 + tps: 397568.16969 + hps: 4377.55161 } } dps_results: { key: "TestShadow-AllItems-IndomitablePrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4402.8426 + dps: 428137.87462 + tps: 394573.20306 + hps: 4405.66446 } } dps_results: { key: "TestShadow-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 392361.52455 - tps: 363295.95569 - hps: 4812.05009 + dps: 398326.06583 + tps: 368487.77435 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-InsigniaofKypariZar-84078" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-IronBellyWok-89083" value: { - dps: 397269.64471 - tps: 366932.05197 - hps: 4853.60364 + dps: 399762.71501 + tps: 369722.40951 + hps: 4768.3529 } } dps_results: { key: "TestShadow-AllItems-IronProtectorTalisman-85181" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4923.41401 + dps: 398326.06583 + tps: 368491.9191 + hps: 4998.06871 } } dps_results: { key: "TestShadow-AllItems-JadeBanditFigurine-86772" value: { - dps: 399253.74916 - tps: 368653.7633 - hps: 4869.76336 + dps: 401671.92238 + tps: 371243.78888 + hps: 4813.20435 } } dps_results: { key: "TestShadow-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 399253.74916 - tps: 368653.7633 - hps: 4869.76336 + dps: 401671.92238 + tps: 371243.78888 + hps: 4813.20435 } } dps_results: { key: "TestShadow-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 401677.34333 - tps: 371679.83194 - hps: 4819.63526 + dps: 407482.27813 + tps: 376574.00213 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 410069.37226 - tps: 378142.04017 - hps: 4828.12736 + dps: 414553.00254 + tps: 383008.3192 + hps: 4885.75818 } } dps_results: { key: "TestShadow-AllItems-JadeWarlordFigurine-86775" value: { - dps: 398879.39931 - tps: 369442.02017 - hps: 4925.53042 + dps: 403044.84417 + tps: 372380.12247 + hps: 5002.3433 } } dps_results: { key: "TestShadow-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 16829.91208 + dps: 398326.06583 + tps: 368491.9191 + hps: 17080.12183 } } dps_results: { key: "TestShadow-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 397523.78299 - tps: 368351.71481 - hps: 4784.34772 + dps: 401865.91965 + tps: 371430.348 + hps: 4866.05322 } } dps_results: { key: "TestShadow-AllItems-KnotofTenSongs-84073" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 399155.67612 - tps: 369775.26078 - hps: 4954.75129 + dps: 404083.70196 + tps: 373369.38387 + hps: 5032.6152 } } dps_results: { key: "TestShadow-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 395189.2876 - tps: 365626.05364 - hps: 4843.79239 + dps: 400666.66204 + tps: 370186.84029 + hps: 4847.33763 } } dps_results: { key: "TestShadow-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 396745.16275 - tps: 367305.54805 - hps: 4793.1696 + dps: 402491.36699 + tps: 372268.44971 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 403668.29908 - tps: 373756.02737 - hps: 4790.11905 + dps: 408694.77822 + tps: 377570.7966 + hps: 4817.57407 } } dps_results: { key: "TestShadow-AllItems-LightoftheCosmos-87065" value: { - dps: 409920.40453 - tps: 378326.85242 - hps: 4835.95987 + dps: 415167.10531 + tps: 382715.63766 + hps: 4863.90958 } } dps_results: { key: "TestShadow-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 402640.658 - tps: 372174.29993 - hps: 4830.27099 + dps: 405946.52679 + tps: 375308.1124 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 398546.66024 - tps: 368235.30521 - hps: 4884.39243 + dps: 404088.44373 + tps: 372766.25186 + hps: 4947.59272 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 392361.52455 - tps: 363297.8371 - hps: 4885.12257 + dps: 398326.06583 + tps: 368489.65576 + hps: 4959.2685 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4996.9359 + dps: 398326.06583 + tps: 368491.9191 + hps: 5072.77728 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 405838.11453 - tps: 375265.87437 - hps: 4804.87715 + dps: 410808.86884 + tps: 379101.33808 + hps: 4881.05867 } } dps_results: { key: "TestShadow-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-MarkoftheCatacombs-83731" value: { - dps: 400021.43951 - tps: 369758.14022 - hps: 4800.01275 + dps: 405906.36787 + tps: 374846.17691 + hps: 4871.41231 } } dps_results: { key: "TestShadow-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 400413.6111 - tps: 370812.2301 - hps: 4797.78667 + dps: 404091.92762 + tps: 373295.43489 + hps: 4866.79525 } } dps_results: { key: "TestShadow-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 396838.4537 - tps: 367660.14675 - hps: 4794.98345 + dps: 402613.05333 + tps: 371917.5048 + hps: 4859.78721 } } dps_results: { key: "TestShadow-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 400321.06598 - tps: 370483.26969 - hps: 4819.63526 + dps: 406095.84564 + tps: 375285.5817 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-MirrorScope-4700" value: { - dps: 445231.73184 - tps: 411510.31422 - hps: 4815.43044 + dps: 451089.77877 + tps: 416002.75045 + hps: 4803.31065 } } dps_results: { key: "TestShadow-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4963.41154 + dps: 398326.06583 + tps: 368491.9191 + hps: 5038.67273 } } dps_results: { key: "TestShadow-AllItems-MistdancerDefenderStone-101087" value: { - dps: 401260.23339 - tps: 371819.33948 - hps: 4959.1595 + dps: 405487.7458 + tps: 374446.05447 + hps: 4966.6431 } } dps_results: { key: "TestShadow-AllItems-MistdancerIdolofRage-101113" value: { - dps: 396745.16275 - tps: 367305.54805 - hps: 4793.1696 + dps: 402491.36699 + tps: 372268.44971 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-MistdancerStoneofRage-101117" value: { - dps: 402651.16856 - tps: 373134.52988 - hps: 4784.01793 + dps: 406212.03734 + tps: 375305.42541 + hps: 4799.43562 } } dps_results: { key: "TestShadow-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 410170.79598 - tps: 379463.45656 - hps: 4797.45688 + dps: 415023.10769 + tps: 383222.45233 + hps: 4870.67028 } } dps_results: { key: "TestShadow-AllItems-MithrilWristwatch-282033" value: { - dps: 413495.13004 - tps: 381320.78778 - hps: 4802.56862 + dps: 420767.28725 + tps: 387574.56433 + hps: 4870.67028 } } dps_results: { key: "TestShadow-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 406648.0213 - tps: 376497.19111 - hps: 4943.14166 + dps: 409878.69438 + tps: 378561.18876 + hps: 4929.12558 } } dps_results: { key: "TestShadow-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 412405.29344 - tps: 381525.01092 - hps: 4796.13772 + dps: 417500.54454 + tps: 385485.64736 + hps: 4806.93834 } } dps_results: { key: "TestShadow-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-NitroBoosts-4223" value: { - dps: 450970.45903 - tps: 416140.38182 - hps: 4802.40373 + dps: 459377.16103 + tps: 423012.53482 + hps: 4798.11646 } } dps_results: { key: "TestShadow-AllItems-OathswornDefenderIdol-101303" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4963.41154 + dps: 398326.06583 + tps: 368491.9191 + hps: 5038.67273 } } dps_results: { key: "TestShadow-AllItems-OathswornDefenderStone-101306" value: { - dps: 400294.77609 - tps: 370257.38184 - hps: 4953.29168 + dps: 405252.45783 + tps: 374378.22382 + hps: 4928.45974 } } dps_results: { key: "TestShadow-AllItems-OathswornIdolofBattle-101295" value: { - dps: 398798.44638 - tps: 368402.28266 - hps: 4812.05009 + dps: 404459.74332 + tps: 373090.96145 + hps: 4872.31923 } } dps_results: { key: "TestShadow-AllItems-OathswornStoneofBattle-101294" value: { - dps: 401143.84248 - tps: 371376.40284 - hps: 4786.98604 + dps: 406716.38164 + tps: 375957.15487 + hps: 4834.31092 } } dps_results: { key: "TestShadow-AllItems-PhaseFingers-4697" value: { - dps: 450162.20038 - tps: 415383.29481 - hps: 4674.52761 + dps: 452839.16907 + tps: 417703.05824 + hps: 4701.15816 } } dps_results: { key: "TestShadow-AllItems-PouchofWhiteAsh-103639" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-PowerfulPrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4402.8426 + dps: 428137.87462 + tps: 394573.20306 + hps: 4405.66446 } } dps_results: { key: "TestShadow-AllItems-PriceofProgress-81266" value: { - dps: 400616.08467 - tps: 370758.59196 - hps: 4819.63526 + dps: 406436.04984 + tps: 375602.25063 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 411952.77118 - tps: 380272.10208 - hps: 4835.21784 + dps: 413933.29076 + tps: 382824.76967 + hps: 4882.70762 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 404853.11488 - tps: 373302.14598 - hps: 4950.57261 + dps: 410575.63133 + tps: 378167.58551 + hps: 5018.79813 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 392361.52455 - tps: 363295.59329 - hps: 4957.70435 + dps: 398326.06583 + tps: 368487.41196 + hps: 5033.02223 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 5180.52207 + dps: 398326.06583 + tps: 368491.9191 + hps: 5259.21858 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 419103.58088 - tps: 386600.99713 - hps: 4823.09806 + dps: 423681.81071 + tps: 390120.392 + hps: 4873.72084 } } dps_results: { key: "TestShadow-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 403770.19696 - tps: 372497.57212 - hps: 4805.37184 + dps: 409864.72497 + tps: 377725.30245 + hps: 4870.42294 } } dps_results: { key: "TestShadow-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 412671.68791 - tps: 382293.53075 - hps: 4835.63008 + dps: 417993.44476 + tps: 386973.42285 + hps: 4843.13281 } } dps_results: { key: "TestShadow-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 400230.92212 - tps: 368901.2416 - hps: 4653.79399 + dps: 403406.3563 + tps: 370776.3699 + hps: 4645.99498 } } dps_results: { key: "TestShadow-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 393471.93064 - tps: 363172.92726 - hps: 4650.01763 + dps: 398333.44848 + tps: 366972.43583 + hps: 4650.67439 } } dps_results: { key: "TestShadow-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 403509.90912 - tps: 373033.19732 - hps: 4806.691 + dps: 409696.58384 + tps: 378332.98134 + hps: 4881.05867 } } dps_results: { key: "TestShadow-AllItems-RegaliaofTernionGlory" value: { - dps: 320923.78317 - tps: 295803.14719 - hps: 3436.84447 + dps: 320801.04894 + tps: 296315.93637 + hps: 3428.09913 } } dps_results: { key: "TestShadow-AllItems-RegaliaoftheExorcist" value: { - dps: 314381.46642 - tps: 287675.17122 - hps: 3462.50762 + dps: 316697.29496 + tps: 290076.45041 + hps: 3484.23424 } } dps_results: { key: "TestShadow-AllItems-RegaliaoftheGuardianSerpent" value: { - dps: 296879.47031 - tps: 272506.23396 - hps: 3278.98665 + dps: 301025.45448 + tps: 276616.13381 + hps: 3280.08807 } } dps_results: { key: "TestShadow-AllItems-RelicofChi-Ji-79330" value: { - dps: 403547.03807 - tps: 373402.01191 - hps: 4819.63526 + dps: 409189.94568 + tps: 378150.6917 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-RelicofKypariZar-84075" value: { - dps: 399665.09271 - tps: 369206.37433 - hps: 4811.7203 + dps: 403974.41489 + tps: 372455.65797 + hps: 4799.10583 } } dps_results: { key: "TestShadow-AllItems-RelicofNiuzao-79329" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4953.79416 + dps: 398326.06583 + tps: 368491.9191 + hps: 5028.90952 } } dps_results: { key: "TestShadow-AllItems-RelicofXuen-79327" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-RelicofXuen-79328" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-RelicofYu'lon-79331" value: { - dps: 411598.71791 - tps: 380249.3528 - hps: 4810.40114 + dps: 416952.73541 + tps: 384826.58506 + hps: 4869.68091 } } dps_results: { key: "TestShadow-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-ResolveofNiuzao-103990" value: { - dps: 401345.02872 - tps: 371665.46531 - hps: 4805.94897 + dps: 407086.03846 + tps: 376679.24919 + hps: 4856.32441 } } dps_results: { key: "TestShadow-AllItems-ReverberatingPrimalDiamond" value: { - dps: 430763.97545 - tps: 397803.87033 - hps: 4373.75902 + dps: 435018.26237 + tps: 401128.56591 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-RevitalizingPrimalDiamond" value: { - dps: 430763.97545 - tps: 397802.80793 - hps: 4373.75902 + dps: 435018.26237 + tps: 401127.50351 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-RuneofRe-Origination-96918" value: { - dps: 393588.81285 - tps: 364475.48989 - hps: 4944.21348 + dps: 398346.46145 + tps: 368284.72338 + hps: 4962.10459 } } dps_results: { key: "TestShadow-AllItems-SI:7Operative'sManual-92784" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 402815.90209 - tps: 372726.35631 - hps: 4819.63526 + dps: 408700.85189 + tps: 377705.36624 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-SearingWords-81267" value: { - dps: 398045.86195 - tps: 367870.04955 - hps: 4802.81597 + dps: 403316.75175 + tps: 372181.43211 + hps: 4872.31923 } } dps_results: { key: "TestShadow-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 409069.02578 - tps: 377273.40639 - hps: 4839.83491 + dps: 410784.47203 + tps: 379704.64338 + hps: 4839.01043 } } dps_results: { key: "TestShadow-AllItems-SigilofCompassion-83736" value: { - dps: 396838.4537 - tps: 367658.38916 - hps: 4794.98345 + dps: 402613.05333 + tps: 371915.7472 + hps: 4859.78721 } } dps_results: { key: "TestShadow-AllItems-SigilofDevotion-83740" value: { - dps: 396374.95242 - tps: 366368.4825 - hps: 4812.05009 + dps: 402193.16383 + tps: 371441.60516 + hps: 4875.53469 } } dps_results: { key: "TestShadow-AllItems-SigilofFidelity-83737" value: { - dps: 397865.07498 - tps: 367164.28697 - hps: 4825.81883 + dps: 402182.81934 + tps: 370464.67603 + hps: 4772.14548 } } dps_results: { key: "TestShadow-AllItems-SigilofGrace-83738" value: { - dps: 396838.4537 - tps: 367660.14675 - hps: 4794.98345 + dps: 402613.05333 + tps: 371917.5048 + hps: 4859.78721 } } dps_results: { key: "TestShadow-AllItems-SigilofKypariZar-84076" value: { - dps: 400622.5234 - tps: 370478.99617 - hps: 4800.01275 + dps: 405567.15978 + tps: 374654.13427 + hps: 4863.99203 } } dps_results: { key: "TestShadow-AllItems-SigilofPatience-83739" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-SigilofRampage-105580" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-SigiloftheCatacombs-83732" value: { - dps: 398100.21393 - tps: 368024.02601 - hps: 4804.79471 + dps: 404566.77299 + tps: 373454.62577 + hps: 4839.09288 } } dps_results: { key: "TestShadow-AllItems-SinisterPrimalDiamond" value: { - dps: 450970.45903 - tps: 416140.38182 - hps: 4802.40373 + dps: 459377.16103 + tps: 423012.53482 + hps: 4798.11646 } } dps_results: { key: "TestShadow-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-SkullrenderMedallion-93256" value: { - dps: 402861.84502 - tps: 371574.29916 - hps: 4828.12736 + dps: 407024.01335 + tps: 376083.79052 + hps: 4880.81133 } } dps_results: { key: "TestShadow-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 407308.37408 - tps: 376796.65493 - hps: 4819.63526 + dps: 412256.21979 + tps: 380941.45176 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-SoulBarrier-96927" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 5071.89924 + dps: 398326.06583 + tps: 368491.9191 + hps: 5148.80545 } } dps_results: { key: "TestShadow-AllItems-SparkofZandalar-96770" value: { - dps: 402260.34862 - tps: 372050.80262 - hps: 4953.03536 + dps: 407291.75698 + tps: 376481.48024 + hps: 4892.76622 } } dps_results: { key: "TestShadow-AllItems-SpiritsoftheSun-87163" value: { - dps: 405492.76895 - tps: 375202.39369 - hps: 4819.63526 + dps: 410612.85823 + tps: 379383.71942 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 408802.65195 - tps: 377712.20457 - hps: 4959.54872 + dps: 412750.57382 + tps: 381302.25879 + hps: 4949.40767 } } dps_results: { key: "TestShadow-AllItems-SpringrainIdolofRage-101009" value: { - dps: 396745.16275 - tps: 367305.54805 - hps: 4793.1696 + dps: 402491.36699 + tps: 372268.44971 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 412108.46556 - tps: 381187.95626 - hps: 4815.0182 + dps: 416676.47286 + tps: 384374.44264 + hps: 4811.96764 } } dps_results: { key: "TestShadow-AllItems-SpringrainStoneofRage-101012" value: { - dps: 401545.42684 - tps: 371772.62733 - hps: 4771.73325 + dps: 407382.44302 + tps: 376316.54361 + hps: 4838.2684 } } dps_results: { key: "TestShadow-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 409665.14009 - tps: 378881.23191 - hps: 4819.63526 + dps: 415446.83075 + tps: 383697.12409 + hps: 4879.82196 } } dps_results: { key: "TestShadow-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 409069.02578 - tps: 377273.40639 - hps: 4839.83491 + dps: 410784.47203 + tps: 379704.64338 + hps: 4839.01043 } } dps_results: { key: "TestShadow-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 400277.44248 - tps: 370674.26119 - hps: 4799.51806 + dps: 405534.01507 + tps: 374815.45063 + hps: 4856.32441 } } dps_results: { key: "TestShadow-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 408279.71413 - tps: 377780.00184 - hps: 4978.84144 + dps: 412995.97538 + tps: 381725.44372 + hps: 4969.77221 } } dps_results: { key: "TestShadow-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 396745.16275 - tps: 367305.54805 - hps: 4793.1696 + dps: 402491.36699 + tps: 372268.44971 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 410379.36618 - tps: 379551.08634 - hps: 4787.39828 + dps: 417176.68711 + tps: 384824.34473 + hps: 4851.13022 } } dps_results: { key: "TestShadow-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 404956.70488 - tps: 374732.18286 - hps: 4848.07966 + dps: 408494.72965 + tps: 377593.7123 + hps: 4836.28966 } } dps_results: { key: "TestShadow-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 410928.55144 - tps: 380049.59154 - hps: 4797.45688 + dps: 415916.94415 + tps: 384079.52582 + hps: 4873.63839 } } dps_results: { key: "TestShadow-AllItems-StuffofNightmares-87160" value: { - dps: 398669.51333 - tps: 368949.8358 - hps: 4799.51806 + dps: 404492.84435 + tps: 373664.43403 + hps: 4879.49217 } } dps_results: { key: "TestShadow-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4963.41154 + dps: 398326.06583 + tps: 368491.9191 + hps: 5038.67273 } } dps_results: { key: "TestShadow-AllItems-SunsoulDefenderStone-101163" value: { - dps: 402763.28547 - tps: 373017.07237 - hps: 4936.87879 + dps: 406533.33148 + tps: 375405.46502 + hps: 4965.96277 } } dps_results: { key: "TestShadow-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 398798.44638 - tps: 368402.28266 - hps: 4812.05009 + dps: 404459.74332 + tps: 373090.96145 + hps: 4872.31923 } } dps_results: { key: "TestShadow-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 401836.07494 - tps: 372202.46066 - hps: 4805.94897 + dps: 407892.49063 + tps: 377145.31099 + hps: 4843.05036 } } dps_results: { key: "TestShadow-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 411317.81913 - tps: 380364.86809 - hps: 4797.45688 + dps: 416259.88548 + tps: 384288.38622 + hps: 4879.32727 } } dps_results: { key: "TestShadow-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 445517.7189 - tps: 412023.27566 - hps: 4798.1989 + dps: 452209.83544 + tps: 417142.55039 + hps: 4786.98604 } } dps_results: { key: "TestShadow-AllItems-SymboloftheCatacombs-83735" value: { - dps: 396838.4537 - tps: 367660.14675 - hps: 4794.98345 + dps: 402613.05333 + tps: 371917.5048 + hps: 4859.78721 } } dps_results: { key: "TestShadow-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 454189.81355 - tps: 418401.99131 - hps: 4672.63132 + dps: 454089.63219 + tps: 417971.84699 + hps: 4693.32565 } } dps_results: { key: "TestShadow-AllItems-TalismanofBloodlust-96864" value: { - dps: 401092.05712 - tps: 370498.74211 - hps: 4940.17355 + dps: 405555.70426 + tps: 374479.76386 + hps: 4948.4183 } } dps_results: { key: "TestShadow-AllItems-TerrorintheMists-87167" value: { - dps: 407742.79742 - tps: 374941.16803 - hps: 4808.75219 + dps: 413340.47292 + tps: 380351.29306 + hps: 4870.50539 } } dps_results: { key: "TestShadow-AllItems-TheGloamingBlade-88149" value: { - dps: 450970.45903 - tps: 416140.38182 - hps: 4802.40373 + dps: 459377.16103 + tps: 423012.53482 + hps: 4798.11646 } } dps_results: { key: "TestShadow-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 422615.50725 - tps: 390462.01699 - hps: 4796.6324 + dps: 427529.28441 + tps: 394140.24898 + hps: 4831.6726 } } dps_results: { key: "TestShadow-AllItems-Thok'sTailTip-105609" value: { - dps: 412671.68791 - tps: 382293.53075 - hps: 4835.63008 + dps: 417993.44476 + tps: 386973.42285 + hps: 4843.13281 } } dps_results: { key: "TestShadow-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 414092.65835 - tps: 382776.26559 - hps: 4871.57721 + dps: 417075.01127 + tps: 384584.86306 + hps: 4795.23079 } } dps_results: { key: "TestShadow-AllItems-TickingEbonDetonator-105612" value: { - dps: 406587.2405 - tps: 376861.1576 - hps: 4778.08171 + dps: 412170.94581 + tps: 381496.95733 + hps: 4867.04259 } } dps_results: { key: "TestShadow-AllItems-Time-LostArtifact-103678" value: { - dps: 397316.3552 - tps: 367943.09034 - hps: 4788.63499 + dps: 404081.25256 + tps: 373683.79051 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 396745.16275 - tps: 367305.54805 - hps: 4793.1696 + dps: 402491.36699 + tps: 372268.44971 + hps: 4865.06385 } } dps_results: { key: "TestShadow-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 402582.61514 - tps: 372565.85522 - hps: 4803.72289 + dps: 407159.9711 + tps: 375967.06669 + hps: 4830.68323 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 404443.36694 - tps: 373759.50172 - hps: 4830.27099 + dps: 407517.0876 + tps: 376810.58336 + hps: 4876.7714 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 399615.50551 - tps: 369075.8086 - hps: 4899.2372 + dps: 405352.12903 + tps: 373954.41627 + hps: 4963.03898 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 392361.52455 - tps: 363297.37489 - hps: 4900.11717 + dps: 398326.06583 + tps: 368489.19355 + hps: 4974.50522 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 5034.85044 + dps: 398326.06583 + tps: 368491.9191 + hps: 5111.28147 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 409608.81223 - tps: 378309.5289 - hps: 4811.30806 + dps: 413138.23658 + tps: 381084.53455 + hps: 4875.12245 } } dps_results: { key: "TestShadow-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-TyrannicalPrimalDiamond" value: { - dps: 423950.91262 - tps: 391307.4696 - hps: 4373.75902 + dps: 428137.87462 + tps: 394573.20306 + hps: 4376.56223 } } dps_results: { key: "TestShadow-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 436270.69522 - tps: 395553.22214 - hps: 4829.19917 + dps: 442429.90694 + tps: 400613.81898 + hps: 4790.28394 } } dps_results: { key: "TestShadow-AllItems-VaporshieldMedallion-93262" value: { - dps: 400413.6111 - tps: 370812.2301 - hps: 4797.78667 + dps: 404091.92762 + tps: 373295.43489 + hps: 4866.79525 } } dps_results: { key: "TestShadow-AllItems-VialofDragon'sBlood-87063" value: { - dps: 398275.14055 - tps: 368746.22978 - hps: 4800.26009 + dps: 405131.61498 + tps: 374639.06341 + hps: 4870.0107 } } dps_results: { key: "TestShadow-AllItems-VialofIchorousBlood-100963" value: { - dps: 399649.724 - tps: 369843.66802 - hps: 4819.63526 + dps: 405548.87667 + tps: 374773.52442 + hps: 4883.11986 } } dps_results: { key: "TestShadow-AllItems-VialofLivingCorruption-105568" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 5158.90511 + dps: 398326.06583 + tps: 368491.9191 + hps: 5237.13061 } } dps_results: { key: "TestShadow-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 392361.52455 - tps: 363300.10044 - hps: 4812.05009 + dps: 398326.06583 + tps: 368491.9191 + hps: 4885.01615 } } dps_results: { key: "TestShadow-AllItems-VisionofthePredator-81192" value: { - dps: 410039.04539 - tps: 378418.07451 - hps: 4816.7496 + dps: 416257.7572 + tps: 383898.67889 + hps: 4868.19686 } } dps_results: { key: "TestShadow-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 413157.50258 - tps: 381218.14237 - hps: 4924.26118 + dps: 419093.17784 + tps: 385957.63662 + hps: 4930.52719 } } dps_results: { key: "TestShadow-AllItems-WindsweptPages-81125" value: { - dps: 396021.35527 - tps: 366215.11455 - hps: 4862.75532 + dps: 399308.1592 + tps: 369003.66968 + hps: 4844.45197 } } dps_results: { key: "TestShadow-AllItems-WoundripperMedallion-93253" value: { - dps: 402861.84502 - tps: 371574.29916 - hps: 4828.12736 + dps: 407024.01335 + tps: 376083.79052 + hps: 4880.81133 } } dps_results: { key: "TestShadow-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 415883.41708 - tps: 381968.66208 - hps: 4768.84758 + dps: 419547.26934 + tps: 385156.30594 + hps: 4788.71744 } } dps_results: { key: "TestShadow-AllItems-YaungolFireCarrier-86518" value: { - dps: 450970.45903 - tps: 416140.38182 - hps: 4802.40373 + dps: 459377.16103 + tps: 423012.53482 + hps: 4798.11646 } } dps_results: { key: "TestShadow-AllItems-Yu'lon'sBite-103987" value: { - dps: 429768.21305 - tps: 394806.34005 - hps: 4837.19659 + dps: 436491.41401 + tps: 400482.73096 + hps: 4872.97881 } } dps_results: { key: "TestShadow-AllItems-ZenAlchemistStone-75274" value: { - dps: 408523.80663 - tps: 377446.24105 - hps: 4788.63499 + dps: 414068.92715 + tps: 381830.83265 + hps: 4843.95728 } } dps_results: { key: "TestShadow-Average-Default" value: { - dps: 463296.92729 - tps: 426461.36091 - hps: 4822.96955 + dps: 463316.01043 + tps: 426436.27321 + hps: 4828.13652 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 541337.07892 - tps: 531240.75161 - hps: 4661.17111 + dps: 540229.06932 + tps: 529952.11114 + hps: 4706.4348 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 446246.08458 - tps: 413089.00458 - hps: 4675.43453 + dps: 446813.64822 + tps: 413461.05995 + hps: 4700.41613 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 658208.03528 - tps: 572273.50162 + dps: 657554.75651 + tps: 571702.01688 hps: 6318.36646 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 364859.0072 - tps: 372093.16228 - hps: 4159.06566 + dps: 365234.47914 + tps: 372207.48517 + hps: 4174.6547 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 297524.4906 - tps: 281622.4862 - hps: 4154.63348 + dps: 297257.55554 + tps: 281203.62261 + hps: 4159.29491 } } dps_results: { key: "TestShadow-Settings-Draenei-p5-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 362699.1508 - tps: 329929.01121 - hps: 4988.49458 + dps: 363737.12429 + tps: 331064.27589 + hps: 5037.78347 } } dps_results: { @@ -2385,48 +2385,48 @@ dps_results: { dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-FullBuffs-0.0yards-LongMultiTarget" value: { - dps: 550246.878 - tps: 536566.5953 - hps: 4824.66456 + dps: 554398.43521 + tps: 540788.97605 + hps: 4830.1061 } } dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-FullBuffs-0.0yards-LongSingleTarget" value: { - dps: 456306.21165 - tps: 420566.74935 - hps: 4791.02597 + dps: 459377.16103 + tps: 423012.53482 + hps: 4798.11646 } } dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-FullBuffs-0.0yards-ShortSingleTarget" value: { - dps: 699671.89173 - tps: 604627.48833 - hps: 6813.05164 + dps: 700737.59842 + tps: 605207.3768 + hps: 6841.49604 } } dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-NoBuffs-0.0yards-LongMultiTarget" value: { - dps: 375978.49809 - tps: 382121.24748 - hps: 4193.98817 + dps: 376294.21335 + tps: 381644.26034 + hps: 4185.35307 } } dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-NoBuffs-0.0yards-LongSingleTarget" value: { - dps: 307386.24954 - tps: 289738.03672 - hps: 4170.52819 + dps: 306585.1132 + tps: 288664.52821 + hps: 4172.59144 } } dps_results: { key: "TestShadow-Settings-Troll-p5-Basic-default-NoBuffs-0.0yards-ShortSingleTarget" value: { - dps: 387974.31066 - tps: 351357.27936 + dps: 389189.39156 + tps: 352480.41308 hps: 5248.31201 } } @@ -2481,8 +2481,8 @@ dps_results: { dps_results: { key: "TestShadow-SwitchInFrontOfTarget-Default" value: { - dps: 455993.35504 - tps: 420566.74935 - hps: 4791.02597 + dps: 459065.54125 + tps: 423012.53482 + hps: 4798.11646 } } diff --git a/sim/shaman/elemental/TestElemental.results b/sim/shaman/elemental/TestElemental.results index 2baf4d8415..9194860b3b 100644 --- a/sim/shaman/elemental/TestElemental.results +++ b/sim/shaman/elemental/TestElemental.results @@ -33,57 +33,57 @@ character_stats_results: { dps_results: { key: "TestElemental-AllItems-AgilePrimalDiamond" value: { - dps: 225096.44485 - tps: 141883.66451 + dps: 227460.47188 + tps: 143306.64598 } } dps_results: { key: "TestElemental-AllItems-AlacrityofXuen-103989" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 215764.36748 - tps: 139632.72343 + dps: 218336.97192 + tps: 140971.1826 } } dps_results: { key: "TestElemental-AllItems-ArrowflightMedallion-93258" value: { - dps: 210813.97033 - tps: 135782.7396 + dps: 213430.8761 + tps: 137285.76164 } } dps_results: { key: "TestElemental-AllItems-AssuranceofConsequence-105472" value: { - dps: 208637.7661 - tps: 134228.54299 + dps: 210850.73562 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-AusterePrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-BadJuju-96781" value: { - dps: 211618.18642 - tps: 133341.58163 + dps: 214051.25977 + tps: 134798.75839 } } dps_results: { key: "TestElemental-AllItems-BadgeofKypariZar-84079" value: { - dps: 209291.65504 - tps: 134186.8348 + dps: 211538.56587 + tps: 135512.45285 } } dps_results: { @@ -103,71 +103,71 @@ dps_results: { dps_results: { key: "TestElemental-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 238771.32232 - tps: 153765.79184 + dps: 241325.77886 + tps: 155319.03665 } } dps_results: { key: "TestElemental-AllItems-BlossomofPureSnow-89081" value: { - dps: 217467.28841 - tps: 140037.43475 + dps: 220204.38618 + tps: 141593.39032 } } dps_results: { key: "TestElemental-AllItems-BottleofInfiniteStars-87057" value: { - dps: 210110.60911 - tps: 133770.1618 + dps: 212615.24779 + tps: 135354.47185 } } dps_results: { key: "TestElemental-AllItems-BraidofTenSongs-84072" value: { - dps: 209291.65504 - tps: 134186.8348 + dps: 211538.56587 + tps: 135512.45285 } } dps_results: { key: "TestElemental-AllItems-Brawler'sStatue-282039" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 217248.47377 - tps: 138881.89073 + dps: 219742.16913 + tps: 140354.55093 } } dps_results: { key: "TestElemental-AllItems-BurningPrimalDiamond" value: { - dps: 226426.43896 - tps: 142715.10654 + dps: 228768.35021 + tps: 144128.32406 } } dps_results: { key: "TestElemental-AllItems-CapacitivePrimalDiamond" value: { - dps: 220459.82009 - tps: 138894.20735 + dps: 222873.33073 + tps: 140343.15033 } } dps_results: { key: "TestElemental-AllItems-CarbonicCarbuncle-81138" value: { - dps: 211289.46593 - tps: 135961.85133 + dps: 213575.00406 + tps: 137347.6543 } } dps_results: { @@ -187,582 +187,582 @@ dps_results: { dps_results: { key: "TestElemental-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 227547.18024 - tps: 146092.70998 + dps: 229844.63787 + tps: 147482.43135 } } dps_results: { key: "TestElemental-AllItems-CharmofTenSongs-84071" value: { - dps: 210777.64903 - tps: 135715.0075 + dps: 213070.65328 + tps: 137111.49359 } } dps_results: { key: "TestElemental-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 213131.67363 - tps: 135353.59164 + dps: 215517.83129 + tps: 136764.22461 } } dps_results: { key: "TestElemental-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 218025.07418 - tps: 138394.35486 + dps: 220351.82439 + tps: 139779.77371 } } dps_results: { key: "TestElemental-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 214901.09715 - tps: 138311.47686 + dps: 217169.87996 + tps: 139700.505 } } dps_results: { key: "TestElemental-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 221193.21836 - tps: 142596.14687 + dps: 223591.60994 + tps: 144097.70307 } } dps_results: { key: "TestElemental-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 212442.37698 - tps: 136768.77896 + dps: 214761.84044 + tps: 138212.61814 } } dps_results: { key: "TestElemental-AllItems-CoreofDecency-87497" value: { - dps: 212655.90984 - tps: 135912.18053 + dps: 215064.191 + tps: 137370.02921 } } dps_results: { key: "TestElemental-AllItems-CourageousPrimalDiamond" value: { - dps: 221736.94057 - tps: 139678.27633 + dps: 224077.03915 + tps: 141074.30968 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 208496.97566 - tps: 134228.54299 + dps: 210755.63962 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 213045.26861 - tps: 137086.37341 + dps: 214907.31639 + tps: 138295.6704 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 210480.92773 - tps: 135523.2225 + dps: 212750.54831 + tps: 136883.23777 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 213348.37442 - tps: 136213.42462 + dps: 215739.22871 + tps: 137636.11183 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 208505.29165 - tps: 134228.54299 + dps: 210739.89777 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 215836.58486 - tps: 138801.28441 + dps: 218164.90252 + tps: 140205.33881 } } dps_results: { key: "TestElemental-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 208520.74811 - tps: 134228.54299 + dps: 210749.56219 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 208493.95808 - tps: 134228.54299 + dps: 210762.88134 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 213879.4266 - tps: 137590.94208 + dps: 215631.49751 + tps: 138749.44095 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 210839.83373 - tps: 135768.37219 + dps: 213081.1968 + tps: 137128.01461 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 215782.55957 - tps: 138244.02445 + dps: 218221.31178 + tps: 139606.68303 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 208466.49639 - tps: 134228.54299 + dps: 210699.57659 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 217268.08758 - tps: 139690.60051 + dps: 219532.67701 + tps: 141058.46733 } } dps_results: { key: "TestElemental-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 208520.63461 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-CurseofHubris-105645" value: { - dps: 213828.78611 - tps: 137273.73302 + dps: 214839.2327 + tps: 137817.09599 } } dps_results: { key: "TestElemental-AllItems-CutstitcherMedallion-93255" value: { - dps: 218810.44078 - tps: 141238.94077 + dps: 220794.75124 + tps: 142059.77293 } } dps_results: { key: "TestElemental-AllItems-Daelo'sFinalWords-87496" value: { - dps: 212277.7262 - tps: 135755.53929 + dps: 214681.15178 + tps: 137166.81934 } } dps_results: { key: "TestElemental-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 234083.13775 - tps: 148216.16228 + dps: 236615.1082 + tps: 149756.47574 } } dps_results: { key: "TestElemental-AllItems-DarkmistVortex-87172" value: { - dps: 211232.84219 - tps: 135697.43863 + dps: 213609.41152 + tps: 137135.4036 } } dps_results: { key: "TestElemental-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DestructivePrimalDiamond" value: { - dps: 220676.089 - tps: 139015.09857 + dps: 223152.99846 + tps: 140507.40661 } } dps_results: { key: "TestElemental-AllItems-DisciplineofXuen-103986" value: { - dps: 213004.37633 - tps: 134846.54365 + dps: 215537.4966 + tps: 136344.43287 } } dps_results: { key: "TestElemental-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 215764.36748 - tps: 139632.72343 + dps: 218336.97192 + tps: 140971.1826 } } dps_results: { key: "TestElemental-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 216562.62351 - tps: 139776.79268 + dps: 218606.8106 + tps: 140676.82295 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 208496.97566 - tps: 134228.54299 + dps: 210755.63962 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 213045.26861 - tps: 137086.37341 + dps: 214907.31639 + tps: 138295.6704 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 210480.92773 - tps: 135523.2225 + dps: 212750.54831 + tps: 136883.23777 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 213348.37442 - tps: 136213.42462 + dps: 215739.22871 + tps: 137636.11183 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 208516.99594 - tps: 134228.54299 + dps: 210748.98062 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 215629.46227 - tps: 138718.22862 + dps: 217940.61443 + tps: 140126.40761 } } dps_results: { key: "TestElemental-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 223257.57606 - tps: 143625.47624 + dps: 225488.6693 + tps: 144997.06987 } } dps_results: { key: "TestElemental-AllItems-EffulgentPrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-EmberPrimalDiamond" value: { - dps: 221032.42456 - tps: 139212.62437 + dps: 223311.36057 + tps: 140586.26495 } } dps_results: { key: "TestElemental-AllItems-EmblemofKypariZar-84077" value: { - dps: 210061.8269 - tps: 135231.53991 + dps: 212291.495 + tps: 136598.27484 } } dps_results: { key: "TestElemental-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 209447.42353 - tps: 135342.47809 + dps: 211849.87906 + tps: 136785.8265 } } dps_results: { key: "TestElemental-AllItems-EmptyFruitBarrel-81133" value: { - dps: 213654.10868 - tps: 136504.097 + dps: 216090.63826 + tps: 138004.02516 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 233133.7453 - tps: 147602.30927 + dps: 235615.87075 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 233132.46009 - tps: 147602.30927 + dps: 235614.58554 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 233133.7453 - tps: 147602.30927 + dps: 235615.87075 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 234608.36789 - tps: 149096.33771 + dps: 237129.73042 + tps: 150632.92369 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 233133.7453 - tps: 147602.30927 + dps: 235615.87075 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 237777.63444 - tps: 150369.70892 + dps: 239819.97988 + tps: 151405.82202 } } dps_results: { key: "TestElemental-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 235101.94938 - tps: 148330.63259 + dps: 237412.49062 + tps: 149595.22107 } } dps_results: { key: "TestElemental-AllItems-EnigmaticPrimalDiamond" value: { - dps: 220676.089 - tps: 139015.09857 + dps: 223152.99846 + tps: 140507.40661 } } dps_results: { key: "TestElemental-AllItems-EssenceofTerror-87175" value: { - dps: 221110.29643 - tps: 142735.7777 + dps: 223467.25208 + tps: 144137.39806 } } dps_results: { key: "TestElemental-AllItems-EternalPrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-EvilEyeofGalakras-105491" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 217248.47377 - tps: 138881.89073 + dps: 219742.16913 + tps: 140354.55093 } } dps_results: { key: "TestElemental-AllItems-FearwurmBadge-84074" value: { - dps: 210061.8269 - tps: 135231.53991 + dps: 212291.495 + tps: 136598.27484 } } dps_results: { key: "TestElemental-AllItems-FearwurmRelic-84070" value: { - dps: 210505.2069 - tps: 135488.92685 + dps: 212805.63446 + tps: 136879.70754 } } dps_results: { key: "TestElemental-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 213797.58343 - tps: 136027.51393 + dps: 216133.82429 + tps: 137459.62219 } } dps_results: { key: "TestElemental-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 218885.35794 - tps: 138459.0165 + dps: 221354.0134 + tps: 139963.40375 } } dps_results: { key: "TestElemental-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 219231.72205 - tps: 139091.36266 + dps: 221624.57218 + tps: 140562.37456 } } dps_results: { key: "TestElemental-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 217569.19997 - tps: 138744.50961 + dps: 219109.02009 + tps: 139856.23087 } } dps_results: { key: "TestElemental-AllItems-FlashingSteelTalisman-81265" value: { - dps: 213591.59976 - tps: 136504.21937 + dps: 216010.89452 + tps: 137974.38613 } } dps_results: { key: "TestElemental-AllItems-FleetPrimalDiamond" value: { - dps: 221177.98542 - tps: 137608.68549 + dps: 223605.32363 + tps: 139056.06265 } } dps_results: { key: "TestElemental-AllItems-ForlornPrimalDiamond" value: { - dps: 221032.42456 - tps: 139212.62437 + dps: 223311.36057 + tps: 140586.26495 } } dps_results: { key: "TestElemental-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 211520.91843 - tps: 133341.58163 + dps: 213954.63708 + tps: 134798.75839 } } dps_results: { key: "TestElemental-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 228976.94003 - tps: 146683.71312 + dps: 231284.08846 + tps: 148134.96669 } } dps_results: { key: "TestElemental-AllItems-Fusion-FireCore-105459" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210748.49938 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-GazeoftheTwins-96915" value: { - dps: 212021.40892 - tps: 136390.03552 + dps: 214328.49545 + tps: 137768.21388 } } dps_results: { key: "TestElemental-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 210130.71082 - tps: 135319.79381 + dps: 212460.30277 + tps: 136693.95594 } } dps_results: { @@ -775,646 +775,646 @@ dps_results: { dps_results: { key: "TestElemental-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 219231.72205 - tps: 139091.36266 + dps: 221624.57218 + tps: 140562.37456 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 208461.44516 - tps: 134228.54299 + dps: 210773.35154 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 216787.23833 - tps: 139430.09291 + dps: 218280.3165 + tps: 140427.57316 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 212263.47372 - tps: 136635.76691 + dps: 214584.64155 + tps: 138059.12151 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 217248.47377 - tps: 138881.36893 + dps: 219742.16913 + tps: 140354.02913 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 208469.0575 - tps: 134228.54299 + dps: 210707.50678 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 221806.24669 - tps: 142444.09479 + dps: 224102.56168 + tps: 143860.34206 } } dps_results: { key: "TestElemental-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 208520.63461 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Haromm'sTalisman-105527" value: { - dps: 219474.42185 - tps: 145518.2848 + dps: 221913.50737 + tps: 147086.83806 } } dps_results: { key: "TestElemental-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 209891.33793 - tps: 135249.44024 + dps: 213427.4016 + tps: 137414.84564 } } dps_results: { key: "TestElemental-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210748.49938 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 210803.88578 - tps: 133125.42486 + dps: 213235.80147 + tps: 134642.90049 } } dps_results: { key: "TestElemental-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 210947.60502 - tps: 135822.75307 + dps: 213221.79834 + tps: 137217.74118 } } dps_results: { key: "TestElemental-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 212585.57927 - tps: 134320.13072 + dps: 215045.64966 + tps: 135789.39997 } } dps_results: { key: "TestElemental-AllItems-HeartofFire-81181" value: { - dps: 209239.63146 - tps: 133713.00584 + dps: 211540.76276 + tps: 135110.91636 } } dps_results: { key: "TestElemental-AllItems-HeartwarmerMedallion-93260" value: { - dps: 218810.44078 - tps: 141238.94077 + dps: 220794.75124 + tps: 142059.77293 } } dps_results: { key: "TestElemental-AllItems-HelmbreakerMedallion-93261" value: { - dps: 210813.97033 - tps: 135782.7396 + dps: 213430.8761 + tps: 137285.76164 } } dps_results: { key: "TestElemental-AllItems-Horridon'sLastGasp-96757" value: { - dps: 219544.38112 - tps: 141246.84252 + dps: 221844.0356 + tps: 142651.00185 } } dps_results: { key: "TestElemental-AllItems-ImpassivePrimalDiamond" value: { - dps: 220676.089 - tps: 139015.09857 + dps: 223152.99846 + tps: 140507.40661 } } dps_results: { key: "TestElemental-AllItems-IndomitablePrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 217248.47377 - tps: 138881.2245 + dps: 219742.16913 + tps: 140353.8847 } } dps_results: { key: "TestElemental-AllItems-InsigniaofKypariZar-84078" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-IronBellyWok-89083" value: { - dps: 209891.33793 - tps: 135249.44024 + dps: 213427.4016 + tps: 137414.84564 } } dps_results: { key: "TestElemental-AllItems-IronProtectorTalisman-85181" value: { - dps: 208519.69683 - tps: 134228.54299 + dps: 210749.56219 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-JadeBanditFigurine-86772" value: { - dps: 208690.08197 - tps: 134491.16031 + dps: 212685.04029 + tps: 137328.03458 } } dps_results: { key: "TestElemental-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 208690.08197 - tps: 134491.16031 + dps: 212685.04029 + tps: 137328.03458 } } dps_results: { key: "TestElemental-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 217517.81323 - tps: 140406.47126 + dps: 219536.66783 + tps: 141239.46812 } } dps_results: { key: "TestElemental-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 216440.5587 - tps: 139386.87002 + dps: 219178.44711 + tps: 140941.95571 } } dps_results: { key: "TestElemental-AllItems-JadeWarlordFigurine-86775" value: { - dps: 208941.14552 - tps: 132502.50969 + dps: 210938.32487 + tps: 134308.17387 } } dps_results: { key: "TestElemental-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 217248.47377 - tps: 138881.89073 + dps: 219742.16913 + tps: 140354.55093 } } dps_results: { key: "TestElemental-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 208521.68589 - tps: 134228.54299 - hps: 6356.95081 + dps: 210750.49997 + tps: 135592.25864 + hps: 6424.43403 } } dps_results: { key: "TestElemental-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 240620.99022 - tps: 157699.88501 + dps: 243039.54725 + tps: 159189.70645 } } dps_results: { key: "TestElemental-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 207765.80509 - tps: 132149.85758 + dps: 211596.81732 + tps: 134983.70963 } } dps_results: { key: "TestElemental-AllItems-KnotofTenSongs-84073" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 211099.67082 - tps: 135155.5568 + dps: 213070.61906 + tps: 135837.81365 } } dps_results: { key: "TestElemental-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 210653.95425 - tps: 136062.72368 + dps: 213014.2185 + tps: 137472.97599 } } dps_results: { key: "TestElemental-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 213654.10868 - tps: 136504.21937 + dps: 216089.05236 + tps: 138004.14753 } } dps_results: { key: "TestElemental-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 208772.08792 - tps: 132948.8213 + dps: 211240.2424 + tps: 134494.25713 } } dps_results: { key: "TestElemental-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 213201.11429 - tps: 135338.47209 + dps: 215636.6599 + tps: 136802.27241 } } dps_results: { key: "TestElemental-AllItems-LightoftheCosmos-87065" value: { - dps: 218062.27397 - tps: 140709.03782 + dps: 220466.54493 + tps: 142139.19117 } } dps_results: { key: "TestElemental-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 233133.7453 - tps: 147602.30927 + dps: 235615.87075 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 208493.95808 - tps: 134228.54299 + dps: 210762.88134 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 213879.4266 - tps: 137590.94208 + dps: 215631.49751 + tps: 138749.44095 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 210839.83373 - tps: 135768.37219 + dps: 213081.1968 + tps: 137128.01461 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 215782.55957 - tps: 138244.02445 + dps: 218221.31178 + tps: 139606.68303 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 208466.20453 - tps: 134228.54299 + dps: 210695.96595 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 217252.07225 - tps: 139682.1759 + dps: 219506.0102 + tps: 141039.4583 } } dps_results: { key: "TestElemental-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MarkoftheCatacombs-83731" value: { - dps: 211234.03906 - tps: 135290.58566 + dps: 213517.0313 + tps: 136635.51398 } } dps_results: { key: "TestElemental-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 211517.75332 - tps: 135345.14893 + dps: 213222.50111 + tps: 135296.84234 } } dps_results: { key: "TestElemental-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 208892.89407 - tps: 134048.58297 + dps: 211086.38596 + tps: 135352.87569 } } dps_results: { key: "TestElemental-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 216562.62351 - tps: 139776.79268 + dps: 218606.8106 + tps: 140676.82295 } } dps_results: { key: "TestElemental-AllItems-MirrorScope-4700" value: { - dps: 233133.7453 - tps: 147602.30927 + dps: 235615.87075 + tps: 149051.29967 } } dps_results: { key: "TestElemental-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 208520.63461 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-MistdancerDefenderStone-101087" value: { - dps: 211448.68272 - tps: 133951.17423 + dps: 213707.20001 + tps: 135320.20442 } } dps_results: { key: "TestElemental-AllItems-MistdancerIdolofRage-101113" value: { - dps: 208798.28779 - tps: 132948.8213 + dps: 211263.26264 + tps: 134494.25713 } } dps_results: { key: "TestElemental-AllItems-MistdancerStoneofRage-101117" value: { - dps: 212511.53542 - tps: 134414.03167 + dps: 214902.1351 + tps: 135813.69075 } } dps_results: { key: "TestElemental-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 214901.09715 - tps: 138311.47686 + dps: 217169.87996 + tps: 139700.505 } } dps_results: { key: "TestElemental-AllItems-MithrilWristwatch-282033" value: { - dps: 221381.78824 - tps: 142365.67805 + dps: 223719.16101 + tps: 143826.62463 } } dps_results: { key: "TestElemental-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 213526.21275 - tps: 136417.98037 + dps: 215815.92977 + tps: 137782.72742 } } dps_results: { key: "TestElemental-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 218656.67793 - tps: 138136.70404 + dps: 221036.82934 + tps: 139543.31659 } } dps_results: { key: "TestElemental-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-NitroBoosts-4223" value: { - dps: 237881.2476 - tps: 150562.94258 + dps: 240001.35924 + tps: 151678.91687 } } dps_results: { key: "TestElemental-AllItems-OathswornDefenderIdol-101303" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-OathswornDefenderStone-101306" value: { - dps: 211087.94851 - tps: 133650.10539 + dps: 213582.13586 + tps: 135176.34455 } } dps_results: { key: "TestElemental-AllItems-OathswornIdolofBattle-101295" value: { - dps: 210945.60442 - tps: 135822.75307 + dps: 213219.79774 + tps: 137217.74118 } } dps_results: { key: "TestElemental-AllItems-OathswornStoneofBattle-101294" value: { - dps: 212165.98576 - tps: 134795.67504 + dps: 214494.3435 + tps: 136214.99445 } } dps_results: { key: "TestElemental-AllItems-PhaseFingers-4697" value: { - dps: 238475.52377 - tps: 151357.09385 + dps: 240616.2194 + tps: 152703.90744 } } dps_results: { key: "TestElemental-AllItems-PouchofWhiteAsh-103639" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-PowerfulPrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-PriceofProgress-81266" value: { - dps: 213758.59177 - tps: 137592.75575 + dps: 216027.47087 + tps: 138978.10352 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 208417.76676 - tps: 134228.54299 + dps: 210771.12591 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 219452.89417 - tps: 141098.47946 + dps: 220782.0024 + tps: 142072.55832 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 213411.11499 - tps: 137450.98032 + dps: 215794.65381 + tps: 138940.14114 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 217248.47377 - tps: 138881.14697 + dps: 219742.16913 + tps: 140353.80717 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 208418.18169 - tps: 134228.54299 + dps: 210645.67597 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 225999.75705 - tps: 145023.70237 + dps: 228265.5393 + tps: 146410.18631 } } dps_results: { key: "TestElemental-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 213026.07347 - tps: 137193.1097 + dps: 215272.66863 + tps: 138569.21441 } } dps_results: { key: "TestElemental-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 224516.76042 - tps: 141990.45588 + dps: 226896.34025 + tps: 143424.95158 } } dps_results: { key: "TestElemental-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 246098.84736 - tps: 154806.62223 + dps: 248564.40768 + tps: 156271.66519 } } dps_results: { key: "TestElemental-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 215231.57955 - tps: 136422.15026 + dps: 217605.47858 + tps: 137928.00795 } } dps_results: { key: "TestElemental-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 212923.29853 - tps: 134990.96795 + dps: 215334.53252 + tps: 136507.48716 } } dps_results: { key: "TestElemental-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 217248.47377 - tps: 138881.4703 + dps: 219742.16913 + tps: 140354.13049 } } dps_results: { @@ -1434,358 +1434,358 @@ dps_results: { dps_results: { key: "TestElemental-AllItems-RelicofChi-Ji-79330" value: { - dps: 215726.56163 - tps: 138853.74114 + dps: 217996.75551 + tps: 140246.22425 } } dps_results: { key: "TestElemental-AllItems-RelicofKypariZar-84075" value: { - dps: 209749.97244 - tps: 134499.50438 + dps: 212058.34307 + tps: 135888.36641 } } dps_results: { key: "TestElemental-AllItems-RelicofNiuzao-79329" value: { - dps: 208520.63461 - tps: 134228.54299 + dps: 210748.49938 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-RelicofXuen-79327" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-RelicofXuen-79328" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-RelicofYu'lon-79331" value: { - dps: 220852.04296 - tps: 142035.36719 + dps: 223141.38864 + tps: 143460.26123 } } dps_results: { key: "TestElemental-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 217216.29081 - tps: 138881.89073 + dps: 219725.87685 + tps: 140354.55093 } } dps_results: { key: "TestElemental-AllItems-ResolveofNiuzao-103990" value: { - dps: 211557.21434 - tps: 133314.50334 + dps: 213994.80842 + tps: 134757.15574 } } dps_results: { key: "TestElemental-AllItems-ReverberatingPrimalDiamond" value: { - dps: 225096.44485 - tps: 141883.66451 + dps: 227460.47188 + tps: 143306.64598 } } dps_results: { key: "TestElemental-AllItems-RevitalizingPrimalDiamond" value: { - dps: 225096.44485 - tps: 141883.55505 + dps: 227460.47188 + tps: 143306.53652 } } dps_results: { key: "TestElemental-AllItems-RuneofRe-Origination-96918" value: { - dps: 207188.40093 - tps: 133793.36418 + dps: 209407.1057 + tps: 135160.00494 } } dps_results: { key: "TestElemental-AllItems-SI:7Operative'sManual-92784" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 218369.79099 - tps: 140970.9277 + dps: 220344.89588 + tps: 141767.75686 } } dps_results: { key: "TestElemental-AllItems-SearingWords-81267" value: { - dps: 210558.79261 - tps: 135620.79716 + dps: 212821.5666 + tps: 136978.03458 } } dps_results: { key: "TestElemental-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 218698.96384 - tps: 140881.58307 + dps: 220274.95295 + tps: 141914.5301 } } dps_results: { key: "TestElemental-AllItems-SigilofCompassion-83736" value: { - dps: 214119.18959 - tps: 136241.14738 + dps: 216540.96602 + tps: 137748.66229 } } dps_results: { key: "TestElemental-AllItems-SigilofDevotion-83740" value: { - dps: 209975.94568 - tps: 135166.22118 + dps: 212199.99397 + tps: 136532.95611 } } dps_results: { key: "TestElemental-AllItems-SigilofFidelity-83737" value: { - dps: 211284.11251 - tps: 136448.22122 + dps: 213640.39637 + tps: 137880.694 } } dps_results: { key: "TestElemental-AllItems-SigilofGrace-83738" value: { - dps: 208892.89407 - tps: 134048.58297 + dps: 211086.38596 + tps: 135352.87569 } } dps_results: { key: "TestElemental-AllItems-SigilofKypariZar-84076" value: { - dps: 211479.69121 - tps: 134963.29425 + dps: 213734.28648 + tps: 136291.94693 } } dps_results: { key: "TestElemental-AllItems-SigilofPatience-83739" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SigilofRampage-105580" value: { - dps: 208618.71294 - tps: 134228.54299 + dps: 210817.35219 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SigiloftheCatacombs-83732" value: { - dps: 211418.09588 - tps: 136330.59237 + dps: 213594.29167 + tps: 137654.91528 } } dps_results: { key: "TestElemental-AllItems-SinisterPrimalDiamond" value: { - dps: 237881.2476 - tps: 150562.94258 + dps: 240001.35924 + tps: 151678.91687 } } dps_results: { key: "TestElemental-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SkullrenderMedallion-93256" value: { - dps: 210813.97033 - tps: 135782.7396 + dps: 213430.8761 + tps: 137285.76164 } } dps_results: { key: "TestElemental-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 217743.50297 - tps: 140172.60486 + dps: 220031.00745 + tps: 141572.81051 } } dps_results: { key: "TestElemental-AllItems-SoulBarrier-96927" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SparkofZandalar-96770" value: { - dps: 212390.05191 - tps: 136989.1835 + dps: 214733.47018 + tps: 138366.43689 } } dps_results: { key: "TestElemental-AllItems-SpiritsoftheSun-87163" value: { - dps: 216626.0304 - tps: 139413.24743 + dps: 218897.90048 + tps: 140808.73911 } } dps_results: { key: "TestElemental-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 212396.38113 - tps: 134895.65483 + dps: 214704.87976 + tps: 136247.0778 } } dps_results: { key: "TestElemental-AllItems-SpringrainIdolofRage-101009" value: { - dps: 208756.49856 - tps: 132948.8213 + dps: 211222.47166 + tps: 134494.25713 } } dps_results: { key: "TestElemental-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 218658.28246 - tps: 138625.14907 + dps: 221257.00991 + tps: 140221.08914 } } dps_results: { key: "TestElemental-AllItems-SpringrainStoneofRage-101012" value: { - dps: 212810.65991 - tps: 134576.29978 + dps: 215253.74756 + tps: 136063.8611 } } dps_results: { key: "TestElemental-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 214901.09715 - tps: 138311.47686 + dps: 217169.87996 + tps: 139700.505 } } dps_results: { key: "TestElemental-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 218698.96384 - tps: 140881.58307 + dps: 220274.95295 + tps: 141914.5301 } } dps_results: { key: "TestElemental-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 210786.89974 - tps: 133082.49803 + dps: 213336.14232 + tps: 134607.78585 } } dps_results: { key: "TestElemental-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 211862.9736 - tps: 134602.67206 + dps: 214193.79194 + tps: 135999.91188 } } dps_results: { key: "TestElemental-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 208814.81223 - tps: 132948.8213 + dps: 211275.84202 + tps: 134494.25713 } } dps_results: { key: "TestElemental-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 217734.366 - tps: 137394.94016 + dps: 220147.7243 + tps: 138816.40392 } } dps_results: { key: "TestElemental-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 212647.70726 - tps: 134612.38859 + dps: 214993.79841 + tps: 136005.86141 } } dps_results: { key: "TestElemental-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 214901.09715 - tps: 138311.47686 + dps: 217169.87996 + tps: 139700.505 } } dps_results: { key: "TestElemental-AllItems-StuffofNightmares-87160" value: { - dps: 211189.2062 - tps: 134000.90738 + dps: 213643.02321 + tps: 135460.46223 } } dps_results: { key: "TestElemental-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-SunsoulDefenderStone-101163" value: { - dps: 212382.90342 - tps: 134444.13709 + dps: 214833.51792 + tps: 135942.66681 } } dps_results: { key: "TestElemental-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 210947.60502 - tps: 135822.75307 + dps: 213221.79834 + tps: 137217.74118 } } dps_results: { key: "TestElemental-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 211324.93654 - tps: 133757.41164 + dps: 213775.92301 + tps: 135258.97347 } } dps_results: { key: "TestElemental-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 214901.09715 - tps: 138311.47686 + dps: 217169.87996 + tps: 139700.505 } } dps_results: { key: "TestElemental-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 234083.13775 - tps: 148216.16228 + dps: 236615.1082 + tps: 149756.47574 } } dps_results: { key: "TestElemental-AllItems-SymboloftheCatacombs-83735" value: { - dps: 208892.89407 - tps: 134048.58297 + dps: 211086.38596 + tps: 135352.87569 } } dps_results: { @@ -1798,239 +1798,239 @@ dps_results: { dps_results: { key: "TestElemental-AllItems-TalismanofBloodlust-96864" value: { - dps: 212086.41851 - tps: 136344.01808 + dps: 214517.43665 + tps: 137819.59059 } } dps_results: { key: "TestElemental-AllItems-TerrorintheMists-87167" value: { - dps: 212016.62535 - tps: 136209.40993 + dps: 214442.23213 + tps: 137666.98091 } } dps_results: { key: "TestElemental-AllItems-TheGloamingBlade-88149" value: { - dps: 237881.2476 - tps: 150562.94258 + dps: 240001.35924 + tps: 151678.91687 } } dps_results: { key: "TestElemental-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-Thok'sTailTip-105609" value: { - dps: 224517.11146 - tps: 141990.45588 + dps: 226896.6913 + tps: 143424.95158 } } dps_results: { key: "TestElemental-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 218292.76057 - tps: 140452.44578 + dps: 220580.24955 + tps: 141852.64045 } } dps_results: { key: "TestElemental-AllItems-TickingEbonDetonator-105612" value: { - dps: 214655.50369 - tps: 134097.64208 + dps: 217011.3087 + tps: 135519.74486 } } dps_results: { key: "TestElemental-AllItems-Time-LostArtifact-103678" value: { - dps: 209188.1641 - tps: 133027.35096 + dps: 211592.58992 + tps: 134523.60992 } } dps_results: { key: "TestElemental-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 208774.07487 - tps: 132948.8213 + dps: 211234.70831 + tps: 134494.25713 } } dps_results: { key: "TestElemental-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 212877.68129 - tps: 134496.02433 + dps: 215331.04734 + tps: 135996.77547 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 208479.70015 - tps: 134228.54299 + dps: 210759.86376 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 214955.12568 - tps: 138253.46588 + dps: 216645.82522 + tps: 139382.01217 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 211287.24721 - tps: 136063.34903 + dps: 213617.24618 + tps: 137496.50419 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 217248.47377 - tps: 138881.49259 + dps: 219742.16913 + tps: 140354.15279 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 208501.39192 - tps: 134228.54299 + dps: 210734.17781 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 218972.02117 - tps: 140744.80926 + dps: 221292.81454 + tps: 142148.66849 } } dps_results: { key: "TestElemental-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 208519.6853 - tps: 134228.54299 + dps: 210748.49938 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-TyrannicalPrimalDiamond" value: { - dps: 219736.70696 - tps: 138403.82194 + dps: 222036.87622 + tps: 139786.67359 } } dps_results: { key: "TestElemental-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 228890.65538 - tps: 148369.50966 + dps: 231571.93879 + tps: 150045.7189 } } dps_results: { key: "TestElemental-AllItems-VaporshieldMedallion-93262" value: { - dps: 211517.75332 - tps: 135345.14893 + dps: 213222.50111 + tps: 135296.84234 } } dps_results: { key: "TestElemental-AllItems-VialofDragon'sBlood-87063" value: { - dps: 210168.25839 - tps: 133770.1618 + dps: 212671.12064 + tps: 135354.47185 } } dps_results: { key: "TestElemental-AllItems-VialofIchorousBlood-100963" value: { - dps: 213754.483 - tps: 136861.59437 + dps: 216081.18875 + tps: 138231.51559 } } dps_results: { key: "TestElemental-AllItems-VialofLivingCorruption-105568" value: { - dps: 208521.68589 - tps: 134228.54299 + dps: 210750.49997 + tps: 135592.25864 } } dps_results: { key: "TestElemental-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 217271.30834 - tps: 138852.12933 + dps: 219747.07081 + tps: 140324.78953 } } dps_results: { key: "TestElemental-AllItems-VisionofthePredator-81192" value: { - dps: 216414.42864 - tps: 139245.77864 + dps: 218796.83775 + tps: 140743.34162 } } dps_results: { key: "TestElemental-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 219238.3028 - tps: 140713.29003 + dps: 221515.63096 + tps: 142048.54597 } } dps_results: { key: "TestElemental-AllItems-WindsweptPages-81125" value: { - dps: 211201.81674 - tps: 136962.6415 + dps: 213480.69979 + tps: 138304.56802 } } dps_results: { key: "TestElemental-AllItems-WoundripperMedallion-93253" value: { - dps: 210813.97033 - tps: 135782.7396 + dps: 213430.8761 + tps: 137285.76164 } } dps_results: { key: "TestElemental-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 240708.33788 - tps: 155772.27824 + dps: 243213.15668 + tps: 157367.1661 } } dps_results: { key: "TestElemental-AllItems-YaungolFireCarrier-86518" value: { - dps: 237881.2476 - tps: 150562.94258 + dps: 240001.35924 + tps: 151678.91687 } } dps_results: { key: "TestElemental-AllItems-Yu'lon'sBite-103987" value: { - dps: 223480.11588 - tps: 143236.25644 + dps: 225948.40867 + tps: 144789.97847 } } dps_results: { key: "TestElemental-AllItems-ZenAlchemistStone-75274" value: { - dps: 218167.63286 - tps: 139567.55468 + dps: 220417.88768 + tps: 140931.94074 } } dps_results: { diff --git a/sim/shaman/enhancement/TestEnhancement.results b/sim/shaman/enhancement/TestEnhancement.results index fe7f2dd6cd..3bac021698 100644 --- a/sim/shaman/enhancement/TestEnhancement.results +++ b/sim/shaman/enhancement/TestEnhancement.results @@ -33,57 +33,57 @@ character_stats_results: { dps_results: { key: "TestEnhancement-AllItems-AgilePrimalDiamond" value: { - dps: 220813.28167 - tps: 184619.35942 + dps: 224007.46131 + tps: 187104.29316 } } dps_results: { key: "TestEnhancement-AllItems-AlacrityofXuen-103989" value: { - dps: 220551.05917 - tps: 186586.15628 + dps: 224107.1916 + tps: 189061.39578 } } dps_results: { key: "TestEnhancement-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 211719.7854 - tps: 180580.09505 + dps: 214206.07647 + tps: 181865.40964 } } dps_results: { key: "TestEnhancement-AllItems-ArrowflightMedallion-93258" value: { - dps: 221506.91404 - tps: 188153.66647 + dps: 224111.17897 + tps: 190368.62393 } } dps_results: { key: "TestEnhancement-AllItems-AssuranceofConsequence-105472" value: { - dps: 255457.24576 - tps: 202843.94292 + dps: 258515.33023 + tps: 205214.79805 } } dps_results: { key: "TestEnhancement-AllItems-AusterePrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-BadJuju-96781" value: { - dps: 229823.94166 - tps: 193624.87451 + dps: 233579.86929 + tps: 196655.72727 } } dps_results: { key: "TestEnhancement-AllItems-BadgeofKypariZar-84079" value: { - dps: 213638.50778 - tps: 181511.63785 + dps: 216685.00022 + tps: 184009.58165 } } dps_results: { @@ -103,78 +103,78 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 217049.52728 - tps: 184397.56696 + dps: 220492.47543 + tps: 187113.63719 } } dps_results: { key: "TestEnhancement-AllItems-BlossomofPureSnow-89081" value: { - dps: 214606.82716 - tps: 182881.08996 + dps: 216118.58539 + tps: 183822.86786 } } dps_results: { key: "TestEnhancement-AllItems-BottleofInfiniteStars-87057" value: { - dps: 224776.78815 - tps: 190545.65582 + dps: 227291.8334 + tps: 192442.38926 } } dps_results: { key: "TestEnhancement-AllItems-BraidofTenSongs-84072" value: { - dps: 212308.32605 - tps: 180513.62452 + dps: 215625.0198 + tps: 183067.69546 } } dps_results: { key: "TestEnhancement-AllItems-Brawler'sStatue-282039" value: { - dps: 208374.36074 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-BreathoftheHydra-96827" value: { - dps: 213976.00926 - tps: 182015.37585 + dps: 217277.85386 + tps: 184619.63829 } } dps_results: { key: "TestEnhancement-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 208374.36074 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 214356.6381 - tps: 181578.98482 + dps: 217364.20441 + tps: 183951.6814 } } dps_results: { key: "TestEnhancement-AllItems-BurningPrimalDiamond" value: { - dps: 220300.03717 - tps: 184209.9102 + dps: 223540.93658 + tps: 186730.76697 } } dps_results: { key: "TestEnhancement-AllItems-CapacitivePrimalDiamond" value: { - dps: 232020.46075 - tps: 195347.14897 + dps: 234796.10597 + tps: 197518.10283 } } dps_results: { key: "TestEnhancement-AllItems-CarbonicCarbuncle-81138" value: { - dps: 215877.85938 - tps: 183583.18069 + dps: 218490.681 + tps: 185434.1667 } } dps_results: { @@ -194,582 +194,582 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 215801.85163 - tps: 183555.13096 + dps: 218715.26259 + tps: 185878.57209 } } dps_results: { key: "TestEnhancement-AllItems-CharmofTenSongs-84071" value: { - dps: 212976.0695 - tps: 181068.52621 + dps: 215586.20858 + tps: 183023.22976 } } dps_results: { key: "TestEnhancement-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 215817.76042 - tps: 182945.50425 + dps: 219700.91382 + tps: 186089.8117 } } dps_results: { key: "TestEnhancement-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 213799.94906 - tps: 181087.7453 + dps: 216871.96616 + tps: 183500.46704 } } dps_results: { key: "TestEnhancement-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 208618.37172 - tps: 177214.44067 + dps: 211638.50852 + tps: 179611.67683 } } dps_results: { key: "TestEnhancement-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 208758.41153 - tps: 177335.70143 + dps: 211824.6032 + tps: 179777.91226 } } dps_results: { key: "TestEnhancement-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 223362.78982 - tps: 189303.3103 + dps: 225955.24628 + tps: 191297.30097 } } dps_results: { key: "TestEnhancement-AllItems-CoreofDecency-87497" value: { - dps: 208386.70603 - tps: 177004.53673 + dps: 211371.53988 + tps: 179359.60824 } } dps_results: { key: "TestEnhancement-AllItems-CourageousPrimalDiamond" value: { - dps: 217523.74035 - tps: 181505.78987 + dps: 220710.38169 + tps: 183973.50411 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 214546.79332 - tps: 181861.61445 + dps: 216578.18995 + tps: 183669.8231 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 208498.08894 - tps: 177115.74143 + dps: 211545.73763 + tps: 179524.29049 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 210586.35987 - tps: 178702.75802 + dps: 213299.59291 + tps: 180896.65109 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 211560.63803 - tps: 179818.85916 + dps: 214265.6776 + tps: 181946.93457 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 208386.70603 - tps: 177004.51066 + dps: 211371.53988 + tps: 179359.58218 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 216833.35225 - tps: 183768.12036 + dps: 220507.40837 + tps: 186899.80062 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 208667.54758 - tps: 177279.40389 + dps: 211741.56071 + tps: 179702.61938 } } dps_results: { key: "TestEnhancement-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 211565.3397 - tps: 179476.47345 + dps: 214567.83686 + tps: 181849.032 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 215505.20957 - tps: 182640.24896 + dps: 218039.45163 + tps: 184946.48271 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 208573.06553 - tps: 177198.69125 + dps: 211634.01848 + tps: 179610.82652 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 210989.77347 - tps: 179012.45245 + dps: 213651.22181 + tps: 181176.95058 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 211712.03475 - tps: 179934.12101 + dps: 214688.67087 + tps: 182284.61513 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 208386.70603 - tps: 177004.48786 + dps: 211371.53988 + tps: 179359.55937 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 218830.53153 - tps: 185455.27501 + dps: 221984.35709 + tps: 188044.42761 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 208753.17451 - tps: 177363.28146 + dps: 211758.49206 + tps: 179734.59206 } } dps_results: { key: "TestEnhancement-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 212157.4401 - tps: 179947.96065 + dps: 215203.65543 + tps: 182360.70948 } } dps_results: { key: "TestEnhancement-AllItems-CurseofHubris-105645" value: { - dps: 219725.01632 - tps: 186771.99452 + dps: 217786.13274 + tps: 184649.1646 } } dps_results: { key: "TestEnhancement-AllItems-CutstitcherMedallion-93255" value: { - dps: 208636.90198 - tps: 177227.81018 + dps: 211652.27411 + tps: 179620.17052 } } dps_results: { key: "TestEnhancement-AllItems-Daelo'sFinalWords-87496" value: { - dps: 214315.19624 - tps: 182350.40702 + dps: 215862.75847 + tps: 183436.77688 } } dps_results: { key: "TestEnhancement-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 232083.73097 - tps: 195524.11029 + dps: 234634.3893 + tps: 197416.98303 } } dps_results: { key: "TestEnhancement-AllItems-DarkmistVortex-87172" value: { - dps: 218842.85686 - tps: 185475.74195 + dps: 221704.15595 + tps: 187706.30853 } } dps_results: { key: "TestEnhancement-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 217733.32146 - tps: 184790.03271 + dps: 219181.58245 + tps: 185895.96249 } } dps_results: { key: "TestEnhancement-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-DestructivePrimalDiamond" value: { - dps: 218485.44149 - tps: 182468.50129 + dps: 221771.18038 + tps: 185046.02345 } } dps_results: { key: "TestEnhancement-AllItems-DisciplineofXuen-103986" value: { - dps: 229266.25983 - tps: 193391.68297 + dps: 232532.48694 + tps: 196000.23717 } } dps_results: { key: "TestEnhancement-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 211719.7854 - tps: 180580.09505 + dps: 214206.07647 + tps: 181865.40964 } } dps_results: { key: "TestEnhancement-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 217733.32146 - tps: 184790.03271 + dps: 219181.58245 + tps: 185895.96249 } } dps_results: { key: "TestEnhancement-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 211289.66907 - tps: 179366.6259 + dps: 213395.65551 + tps: 180972.25813 } } dps_results: { key: "TestEnhancement-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 213516.56641 - tps: 181171.54797 + dps: 215623.06532 + tps: 182777.97674 } } dps_results: { key: "TestEnhancement-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 208542.20649 - tps: 177146.31705 + dps: 211546.91813 + tps: 179522.97881 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 214546.79332 - tps: 181861.61445 + dps: 216578.18995 + tps: 183669.8231 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 208498.08894 - tps: 177115.74143 + dps: 211545.73763 + tps: 179524.29049 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 210586.35987 - tps: 178702.75802 + dps: 213299.59291 + tps: 180896.65109 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 211560.63803 - tps: 179818.85916 + dps: 214265.6776 + tps: 181946.93457 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 208386.70603 - tps: 177004.51066 + dps: 211371.53988 + tps: 179359.58218 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 216403.97103 - tps: 183244.97238 + dps: 220415.33128 + tps: 186793.90896 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 208662.2743 - tps: 177271.18757 + dps: 211692.58312 + tps: 179671.47979 } } dps_results: { key: "TestEnhancement-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 211590.70529 - tps: 179502.94076 + dps: 214604.03655 + tps: 181883.51993 } } dps_results: { key: "TestEnhancement-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 211289.66907 - tps: 179366.6259 + dps: 213395.65551 + tps: 180972.25813 } } dps_results: { key: "TestEnhancement-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 208973.1703 - tps: 177525.06014 + dps: 212091.13635 + tps: 180018.3642 } } dps_results: { key: "TestEnhancement-AllItems-EffulgentPrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-EmberPrimalDiamond" value: { - dps: 217507.48345 - tps: 181489.53955 + dps: 220693.95115 + tps: 183957.08015 } } dps_results: { key: "TestEnhancement-AllItems-EmblemofKypariZar-84077" value: { - dps: 211460.06137 - tps: 179576.60931 + dps: 215457.15241 + tps: 182871.99227 } } dps_results: { key: "TestEnhancement-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 213828.52568 - tps: 182501.73267 + dps: 217142.38539 + tps: 185033.21866 } } dps_results: { key: "TestEnhancement-AllItems-EmptyFruitBarrel-81133" value: { - dps: 208386.70603 - tps: 177004.50477 + dps: 211371.53988 + tps: 179359.57628 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 233009.37407 - tps: 196302.43645 + dps: 235660.67361 + tps: 198303.90274 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 228645.51932 - tps: 193177.25963 + dps: 231562.13475 + tps: 195454.20457 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 230703.79103 - tps: 195146.8375 + dps: 233398.11155 + tps: 197180.36522 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 228879.4662 - tps: 193383.47305 + dps: 231783.16434 + tps: 195640.07009 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 228642.04936 - tps: 193177.25963 + dps: 231558.66479 + tps: 195454.20457 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 228772.72691 - tps: 193281.46321 + dps: 231684.4848 + tps: 195550.62475 } } dps_results: { key: "TestEnhancement-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 230170.40085 - tps: 194858.23857 + dps: 232508.83031 + tps: 196591.91675 } } dps_results: { key: "TestEnhancement-AllItems-EnigmaticPrimalDiamond" value: { - dps: 218485.44149 - tps: 182468.50129 + dps: 221771.18038 + tps: 185046.02345 } } dps_results: { key: "TestEnhancement-AllItems-EssenceofTerror-87175" value: { - dps: 216465.55349 - tps: 183504.06645 + dps: 219966.57575 + tps: 186210.65502 } } dps_results: { key: "TestEnhancement-AllItems-EternalPrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-EvilEyeofGalakras-105491" value: { - dps: 216253.4204 - tps: 183165.50627 + dps: 219382.18983 + tps: 185645.2556 } } dps_results: { key: "TestEnhancement-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 218582.4421 - tps: 185658.81271 + dps: 222019.33903 + tps: 188422.37099 } } dps_results: { key: "TestEnhancement-AllItems-FearwurmBadge-84074" value: { - dps: 214474.39389 - tps: 182417.47647 + dps: 217037.81216 + tps: 184357.75844 } } dps_results: { key: "TestEnhancement-AllItems-FearwurmRelic-84070" value: { - dps: 211780.87538 - tps: 180020.16092 + dps: 214594.11995 + tps: 182177.33295 } } dps_results: { key: "TestEnhancement-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 217851.44606 - tps: 185080.63967 + dps: 220708.22681 + tps: 187594.67134 } } dps_results: { key: "TestEnhancement-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 213814.37161 - tps: 181103.52003 + dps: 216921.58219 + tps: 183550.3461 } } dps_results: { key: "TestEnhancement-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 240832.51221 - tps: 204621.17469 + dps: 244477.3224 + tps: 207574.00602 } } dps_results: { key: "TestEnhancement-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 211540.39629 - tps: 180205.43454 + dps: 213558.45013 + tps: 181693.61658 } } dps_results: { key: "TestEnhancement-AllItems-FlashingSteelTalisman-81265" value: { - dps: 218927.8744 - tps: 186052.77929 + dps: 220932.46648 + tps: 187752.23952 } } dps_results: { key: "TestEnhancement-AllItems-FleetPrimalDiamond" value: { - dps: 218643.22478 - tps: 182393.82693 + dps: 221836.62175 + tps: 184864.28792 } } dps_results: { key: "TestEnhancement-AllItems-ForlornPrimalDiamond" value: { - dps: 217507.48345 - tps: 181489.53955 + dps: 220693.95115 + tps: 183957.08015 } } dps_results: { key: "TestEnhancement-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 213286.51511 - tps: 181022.44454 + dps: 216356.01687 + tps: 183446.10413 } } dps_results: { key: "TestEnhancement-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 209497.47188 - tps: 178030.90844 + dps: 212550.65698 + tps: 180444.22444 } } dps_results: { key: "TestEnhancement-AllItems-Fusion-FireCore-105459" value: { - dps: 217861.64445 - tps: 184225.08448 + dps: 220985.92629 + tps: 186714.6148 } } dps_results: { key: "TestEnhancement-AllItems-GazeoftheTwins-96915" value: { - dps: 221009.49607 - tps: 187927.49514 + dps: 224129.41867 + tps: 190284.40372 } } dps_results: { key: "TestEnhancement-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 218164.44442 - tps: 184613.49941 + dps: 219482.56081 + tps: 185832.22129 } } dps_results: { @@ -782,653 +782,653 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 229840.66738 - tps: 195596.42643 + dps: 232894.91627 + tps: 197990.07176 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 220673.29607 - tps: 187065.14963 + dps: 221911.62775 + tps: 188244.75062 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 208688.77329 - tps: 177294.35514 + dps: 211748.58413 + tps: 179694.70778 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 212390.77574 - tps: 180087.98038 + dps: 214872.38264 + tps: 182150.39377 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 213214.23156 - tps: 181264.81875 + dps: 215807.78158 + tps: 183295.62136 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 208386.70603 - tps: 177004.40858 + dps: 211371.53988 + tps: 179359.4801 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 224355.76428 - tps: 189926.84995 + dps: 227007.09558 + tps: 191817.40897 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 208997.17295 - tps: 177617.96368 + dps: 212022.99176 + tps: 179996.44368 } } dps_results: { key: "TestEnhancement-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 214187.22457 - tps: 181536.12852 + dps: 217208.97085 + tps: 183923.68911 } } dps_results: { key: "TestEnhancement-AllItems-Haromm'sTalisman-105527" value: { - dps: 242093.3534 - tps: 204689.86962 + dps: 244989.99698 + tps: 207017.05986 } } dps_results: { key: "TestEnhancement-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 218894.7704 - tps: 186228.23136 + dps: 221512.65893 + tps: 187583.17208 } } dps_results: { key: "TestEnhancement-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 213563.99412 - tps: 180880.15483 + dps: 216609.60109 + tps: 183259.93134 } } dps_results: { key: "TestEnhancement-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 215079.47465 - tps: 182533.14562 + dps: 218227.91313 + tps: 185057.19185 } } dps_results: { key: "TestEnhancement-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 216380.27489 - tps: 183166.16994 + dps: 219441.98539 + tps: 185558.32706 } } dps_results: { key: "TestEnhancement-AllItems-HeartofFire-81181" value: { - dps: 210742.97608 - tps: 178947.03765 + dps: 213781.27276 + tps: 181335.26789 } } dps_results: { key: "TestEnhancement-AllItems-HeartwarmerMedallion-93260" value: { - dps: 208636.90198 - tps: 177227.81018 + dps: 211652.27411 + tps: 179620.17052 } } dps_results: { key: "TestEnhancement-AllItems-HelmbreakerMedallion-93261" value: { - dps: 217478.12517 - tps: 185023.91004 + dps: 219106.70291 + tps: 186269.28972 } } dps_results: { key: "TestEnhancement-AllItems-Horridon'sLastGasp-96757" value: { - dps: 208776.89515 - tps: 177351.26018 + dps: 211840.64543 + tps: 179792.69763 } } dps_results: { key: "TestEnhancement-AllItems-ImpassivePrimalDiamond" value: { - dps: 218485.44149 - tps: 182468.50129 + dps: 221771.18038 + tps: 185046.02345 } } dps_results: { key: "TestEnhancement-AllItems-IndomitablePrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 208386.70603 - tps: 177004.36437 + dps: 211371.53988 + tps: 179359.43588 } } dps_results: { key: "TestEnhancement-AllItems-InsigniaofKypariZar-84078" value: { - dps: 208374.36074 - tps: 177004.64026 + dps: 211359.19458 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-IronBellyWok-89083" value: { - dps: 213946.92834 - tps: 182078.33626 + dps: 218709.68977 + tps: 185547.59749 } } dps_results: { key: "TestEnhancement-AllItems-IronProtectorTalisman-85181" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-JadeBanditFigurine-86772" value: { - dps: 218131.9691 - tps: 185605.59383 + dps: 221857.4397 + tps: 187923.021 } } dps_results: { key: "TestEnhancement-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 212885.49048 - tps: 181231.69202 + dps: 218006.14492 + tps: 184876.34218 } } dps_results: { key: "TestEnhancement-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 208601.35177 - tps: 177202.05341 + dps: 211623.04547 + tps: 179599.10011 } } dps_results: { key: "TestEnhancement-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 214201.50129 - tps: 182611.38529 + dps: 215488.78447 + tps: 183279.42836 } } dps_results: { key: "TestEnhancement-AllItems-JadeWarlordFigurine-86775" value: { - dps: 211818.95048 - tps: 179797.27385 + dps: 213764.70147 + tps: 181266.26491 } } dps_results: { key: "TestEnhancement-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 208386.70603 - tps: 177004.64026 - hps: 5883.13485 + dps: 211371.53988 + tps: 179359.71177 + hps: 5962.17832 } } dps_results: { key: "TestEnhancement-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 219183.33848 - tps: 187462.83762 + dps: 222236.14851 + tps: 189896.23909 } } dps_results: { key: "TestEnhancement-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 213516.56641 - tps: 181171.54797 + dps: 215623.06532 + tps: 182777.97674 } } dps_results: { key: "TestEnhancement-AllItems-KnotofTenSongs-84073" value: { - dps: 208374.36074 - tps: 177004.64026 + dps: 211359.19458 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 212261.9946 - tps: 180157.75514 + dps: 214073.61775 + tps: 181512.36835 } } dps_results: { key: "TestEnhancement-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 215337.73916 - tps: 183302.90933 + dps: 218647.65634 + tps: 185764.00579 } } dps_results: { key: "TestEnhancement-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 211520.2011 - tps: 179176.24259 + dps: 214071.07331 + tps: 181342.86051 } } dps_results: { key: "TestEnhancement-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 220188.72447 - tps: 186305.74005 + dps: 224197.20536 + tps: 189810.63328 } } dps_results: { key: "TestEnhancement-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 221238.78818 - tps: 187289.00214 + dps: 224144.25086 + tps: 189593.48024 } } dps_results: { key: "TestEnhancement-AllItems-LightoftheCosmos-87065" value: { - dps: 211552.8601 - tps: 180384.893 + dps: 214841.82437 + tps: 182849.94201 } } dps_results: { key: "TestEnhancement-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 232288.74982 - tps: 195701.26252 + dps: 234785.01504 + tps: 197544.78774 } } dps_results: { key: "TestEnhancement-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 228645.51932 - tps: 193177.25963 + dps: 231562.13475 + tps: 195454.20457 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 215505.20957 - tps: 182640.24896 + dps: 218039.45163 + tps: 184946.48271 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 208573.06553 - tps: 177198.69125 + dps: 211634.01848 + tps: 179610.82652 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 210989.77347 - tps: 179012.45245 + dps: 213651.22181 + tps: 181176.95058 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 211712.03475 - tps: 179934.12101 + dps: 214688.67087 + tps: 182284.61513 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 208386.70603 - tps: 177004.48786 + dps: 211371.53988 + tps: 179359.55937 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 219080.2741 - tps: 185714.8038 + dps: 222174.35118 + tps: 188233.36757 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 208765.27873 - tps: 177377.9114 + dps: 211797.68198 + tps: 179765.57366 } } dps_results: { key: "TestEnhancement-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 212164.10763 - tps: 179942.14639 + dps: 215166.02705 + tps: 182310.15465 } } dps_results: { key: "TestEnhancement-AllItems-MarkoftheCatacombs-83731" value: { - dps: 213288.6982 - tps: 181207.55163 + dps: 216273.63895 + tps: 183630.02567 } } dps_results: { key: "TestEnhancement-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 212523.94039 - tps: 180370.88641 + dps: 214256.26168 + tps: 181657.87476 } } dps_results: { key: "TestEnhancement-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 210099.78655 - tps: 178419.58617 + dps: 213114.43781 + tps: 180798.81228 } } dps_results: { key: "TestEnhancement-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 208542.20649 - tps: 177146.31705 + dps: 211546.91813 + tps: 179522.97881 } } dps_results: { key: "TestEnhancement-AllItems-MirrorScope-4700" value: { - dps: 228645.51932 - tps: 193177.25963 + dps: 231562.13475 + tps: 195454.20457 } } dps_results: { key: "TestEnhancement-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-MistdancerDefenderStone-101087" value: { - dps: 213564.8054 - tps: 180880.16851 + dps: 216619.30185 + tps: 183266.04134 } } dps_results: { key: "TestEnhancement-AllItems-MistdancerIdolofRage-101113" value: { - dps: 220307.09562 - tps: 186424.58557 + dps: 224365.68993 + tps: 189984.55336 } } dps_results: { key: "TestEnhancement-AllItems-MistdancerStoneofRage-101117" value: { - dps: 221201.70322 - tps: 187260.24715 + dps: 224076.47333 + tps: 189537.33088 } } dps_results: { key: "TestEnhancement-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 208618.37172 - tps: 177214.44067 + dps: 211638.50852 + tps: 179611.67683 } } dps_results: { key: "TestEnhancement-AllItems-MithrilWristwatch-282033" value: { - dps: 213629.4526 - tps: 181664.54453 + dps: 216201.12231 + tps: 183690.47389 } } dps_results: { key: "TestEnhancement-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 217130.23406 - tps: 184191.39582 + dps: 219722.40051 + tps: 186083.01872 } } dps_results: { key: "TestEnhancement-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 213844.02578 - tps: 181123.19728 + dps: 216954.05731 + tps: 183573.50868 } } dps_results: { key: "TestEnhancement-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-NitroBoosts-4223" value: { - dps: 232020.46075 - tps: 195347.14897 + dps: 234796.10597 + tps: 197518.10283 } } dps_results: { key: "TestEnhancement-AllItems-OathswornDefenderIdol-101303" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-OathswornDefenderStone-101306" value: { - dps: 213471.18716 - tps: 180787.6343 + dps: 216533.9982 + tps: 183181.42684 } } dps_results: { key: "TestEnhancement-AllItems-OathswornIdolofBattle-101295" value: { - dps: 215053.21267 - tps: 182503.5332 + dps: 218231.18383 + tps: 185056.39712 } } dps_results: { key: "TestEnhancement-AllItems-OathswornStoneofBattle-101294" value: { - dps: 216324.649 - tps: 183123.833 + dps: 219412.58196 + tps: 185543.25339 } } dps_results: { key: "TestEnhancement-AllItems-PhaseFingers-4697" value: { - dps: 231499.05955 - tps: 194922.70834 + dps: 235443.89841 + tps: 198055.68661 } } dps_results: { key: "TestEnhancement-AllItems-PouchofWhiteAsh-103639" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-PowerfulPrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-PriceofProgress-81266" value: { - dps: 208568.16222 - tps: 177170.42755 + dps: 211573.51655 + tps: 179549.57563 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 223323.70451 - tps: 189084.92151 + dps: 223633.73464 + tps: 189605.28636 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 208834.87579 - tps: 177438.97078 + dps: 211845.95413 + tps: 179775.12891 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 213589.55001 - tps: 181008.26098 + dps: 215917.27472 + tps: 182983.32507 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 215929.17255 - tps: 183776.80535 + dps: 218882.42109 + tps: 186128.22678 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 208386.70603 - tps: 177004.34063 + dps: 211371.53988 + tps: 179359.41215 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 229282.58371 - tps: 193989.09987 + dps: 232814.23505 + tps: 196713.17379 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 209185.09635 - tps: 177802.32691 + dps: 212161.88602 + tps: 180145.02747 } } dps_results: { key: "TestEnhancement-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 215977.49214 - tps: 182934.04461 + dps: 219008.20518 + tps: 185322.80986 } } dps_results: { key: "TestEnhancement-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 219746.94297 - tps: 186838.03291 + dps: 222580.59078 + tps: 189086.79575 } } dps_results: { key: "TestEnhancement-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 218246.06105 - tps: 186513.07023 + dps: 221510.57802 + tps: 189071.6318 } } dps_results: { key: "TestEnhancement-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 219408.55823 - tps: 187464.84472 + dps: 222529.47938 + tps: 189904.80376 } } dps_results: { key: "TestEnhancement-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 226161.20737 - tps: 191162.34172 + dps: 230050.62937 + tps: 194443.16193 } } dps_results: { key: "TestEnhancement-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 216781.46901 - tps: 183670.25084 + dps: 219245.13753 + tps: 185438.84491 } } dps_results: { key: "TestEnhancement-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 208386.70603 - tps: 177004.44721 + dps: 211371.53988 + tps: 179359.51873 } } dps_results: { @@ -1448,358 +1448,358 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-RelicofChi-Ji-79330" value: { - dps: 208651.7866 - tps: 177242.69463 + dps: 211695.88783 + tps: 179663.78406 } } dps_results: { key: "TestEnhancement-AllItems-RelicofKypariZar-84075" value: { - dps: 213446.57934 - tps: 182249.13135 + dps: 216307.39368 + tps: 184539.30816 } } dps_results: { key: "TestEnhancement-AllItems-RelicofNiuzao-79329" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211359.19458 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-RelicofXuen-79327" value: { - dps: 213567.73444 - tps: 181130.05861 + dps: 216570.05377 + tps: 183502.03745 } } dps_results: { key: "TestEnhancement-AllItems-RelicofXuen-79328" value: { - dps: 221453.53104 - tps: 187600.14759 + dps: 224804.73095 + tps: 190247.84646 } } dps_results: { key: "TestEnhancement-AllItems-RelicofYu'lon-79331" value: { - dps: 208947.06015 - tps: 177520.84134 + dps: 211966.20054 + tps: 179913.57788 } } dps_results: { key: "TestEnhancement-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 227962.02002 - tps: 192188.50387 + dps: 230158.98256 + tps: 193696.64784 } } dps_results: { key: "TestEnhancement-AllItems-ResolveofNiuzao-103990" value: { - dps: 213008.1218 - tps: 180804.58415 + dps: 216073.03255 + tps: 183224.52463 } } dps_results: { key: "TestEnhancement-AllItems-ReverberatingPrimalDiamond" value: { - dps: 220783.80972 - tps: 184589.18713 + dps: 224012.77505 + tps: 187098.09231 } } dps_results: { key: "TestEnhancement-AllItems-RevitalizingPrimalDiamond" value: { - dps: 220213.92496 - tps: 184134.28199 + dps: 223441.68324 + tps: 186642.24172 } } dps_results: { key: "TestEnhancement-AllItems-RuneofRe-Origination-96918" value: { - dps: 228438.50841 - tps: 194519.85778 + dps: 231608.57806 + tps: 197252.2267 } } dps_results: { key: "TestEnhancement-AllItems-SI:7Operative'sManual-92784" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 208626.87035 - tps: 177222.93708 + dps: 211647.00715 + tps: 179620.17324 } } dps_results: { key: "TestEnhancement-AllItems-SearingWords-81267" value: { - dps: 220236.27883 - tps: 186462.7304 + dps: 223568.07479 + tps: 189146.04764 } } dps_results: { key: "TestEnhancement-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 209154.26049 - tps: 178418.72719 + dps: 212165.1068 + tps: 180451.76718 } } dps_results: { key: "TestEnhancement-AllItems-SigilofCompassion-83736" value: { - dps: 210099.78655 - tps: 178419.58617 + dps: 213114.43781 + tps: 180798.81228 } } dps_results: { key: "TestEnhancement-AllItems-SigilofDevotion-83740" value: { - dps: 213288.28973 - tps: 181194.11386 + dps: 216256.58047 + tps: 183601.05683 } } dps_results: { key: "TestEnhancement-AllItems-SigilofFidelity-83737" value: { - dps: 213761.53574 - tps: 182402.24093 + dps: 216559.635 + tps: 184503.13212 } } dps_results: { key: "TestEnhancement-AllItems-SigilofGrace-83738" value: { - dps: 212188.78988 - tps: 180493.23413 + dps: 215091.11856 + tps: 182740.46039 } } dps_results: { key: "TestEnhancement-AllItems-SigilofKypariZar-84076" value: { - dps: 213467.76903 - tps: 181304.11855 + dps: 216325.40352 + tps: 183593.91534 } } dps_results: { key: "TestEnhancement-AllItems-SigilofPatience-83739" value: { - dps: 210712.50039 - tps: 178855.21599 + dps: 213733.12244 + tps: 181233.57857 } } dps_results: { key: "TestEnhancement-AllItems-SigilofRampage-105580" value: { - dps: 234715.69046 - tps: 197867.19843 + dps: 237342.31481 + tps: 199834.67548 } } dps_results: { key: "TestEnhancement-AllItems-SigiloftheCatacombs-83732" value: { - dps: 212229.53988 - tps: 180345.19543 + dps: 214964.52656 + tps: 182477.38602 } } dps_results: { key: "TestEnhancement-AllItems-SinisterPrimalDiamond" value: { - dps: 221039.08729 - tps: 185168.34986 + dps: 223952.66299 + tps: 187458.52862 } } dps_results: { key: "TestEnhancement-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 225104.98776 - tps: 190079.37916 + dps: 228191.7738 + tps: 192456.17339 } } dps_results: { key: "TestEnhancement-AllItems-SkullrenderMedallion-93256" value: { - dps: 217478.12517 - tps: 185023.91004 + dps: 219106.70291 + tps: 186269.28972 } } dps_results: { key: "TestEnhancement-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 208725.5783 - tps: 177308.78019 + dps: 211786.64088 + tps: 179744.60783 } } dps_results: { key: "TestEnhancement-AllItems-SoulBarrier-96927" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-SparkofZandalar-96770" value: { - dps: 217635.62612 - tps: 184993.37763 + dps: 220797.97913 + tps: 187512.05319 } } dps_results: { key: "TestEnhancement-AllItems-SpiritsoftheSun-87163" value: { - dps: 208694.66411 - tps: 177281.30579 + dps: 211757.70255 + tps: 179721.22121 } } dps_results: { key: "TestEnhancement-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 217473.81448 - tps: 184387.73 + dps: 220723.21212 + tps: 187208.08824 } } dps_results: { key: "TestEnhancement-AllItems-SpringrainIdolofRage-101009" value: { - dps: 220397.20918 - tps: 186685.88121 + dps: 224176.55823 + tps: 189871.27111 } } dps_results: { key: "TestEnhancement-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 213801.33481 - tps: 181093.30714 + dps: 216860.65215 + tps: 183491.64456 } } dps_results: { key: "TestEnhancement-AllItems-SpringrainStoneofRage-101012" value: { - dps: 221298.06394 - tps: 187343.1833 + dps: 224175.64323 + tps: 189622.8117 } } dps_results: { key: "TestEnhancement-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 208618.37172 - tps: 177214.44067 + dps: 211638.50852 + tps: 179611.67683 } } dps_results: { key: "TestEnhancement-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 209154.26049 - tps: 178418.72719 + dps: 212165.1068 + tps: 180451.76718 } } dps_results: { key: "TestEnhancement-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 212476.79132 - tps: 180368.86336 + dps: 215532.52005 + tps: 182781.36564 } } dps_results: { key: "TestEnhancement-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 217720.58161 - tps: 184786.16949 + dps: 220127.62622 + tps: 186498.17593 } } dps_results: { key: "TestEnhancement-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 219986.45552 - tps: 186160.48123 + dps: 224066.3591 + tps: 189798.58995 } } dps_results: { key: "TestEnhancement-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 213687.32915 - tps: 180973.14098 + dps: 216790.44987 + tps: 183416.18955 } } dps_results: { key: "TestEnhancement-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 221213.23307 - tps: 187265.34086 + dps: 224101.78839 + tps: 189555.86036 } } dps_results: { key: "TestEnhancement-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 208618.37172 - tps: 177214.44067 + dps: 211638.50852 + tps: 179611.67683 } } dps_results: { key: "TestEnhancement-AllItems-StuffofNightmares-87160" value: { - dps: 212009.7798 - tps: 179985.88773 + dps: 215057.43801 + tps: 182391.85222 } } dps_results: { key: "TestEnhancement-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-SunsoulDefenderStone-101163" value: { - dps: 213647.48534 - tps: 180957.10619 + dps: 216638.16652 + tps: 183279.29224 } } dps_results: { key: "TestEnhancement-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 215101.09706 - tps: 182542.56535 + dps: 218264.76432 + tps: 185080.69187 } } dps_results: { key: "TestEnhancement-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 216398.99072 - tps: 183170.87616 + dps: 219492.35376 + tps: 185594.81138 } } dps_results: { key: "TestEnhancement-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 208618.37172 - tps: 177214.44067 + dps: 211638.50852 + tps: 179611.67683 } } dps_results: { key: "TestEnhancement-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 235349.28388 - tps: 198029.1214 + dps: 237914.72024 + tps: 199934.66392 } } dps_results: { key: "TestEnhancement-AllItems-SymboloftheCatacombs-83735" value: { - dps: 213106.22973 - tps: 181025.41916 + dps: 216328.21134 + tps: 183571.89087 } } dps_results: { @@ -1812,246 +1812,246 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-TalismanofBloodlust-96864" value: { - dps: 224765.36802 - tps: 190542.02923 + dps: 228263.51516 + tps: 193410.79684 } } dps_results: { key: "TestEnhancement-AllItems-TerrorintheMists-87167" value: { - dps: 224545.79769 - tps: 189876.53149 + dps: 227955.65056 + tps: 192612.44664 } } dps_results: { key: "TestEnhancement-AllItems-TheGloamingBlade-88149" value: { - dps: 232020.46075 - tps: 195347.14897 + dps: 234796.10597 + tps: 197518.10283 } } dps_results: { key: "TestEnhancement-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-Thok'sTailTip-105609" value: { - dps: 228638.49276 - tps: 193694.78542 + dps: 231914.54505 + tps: 196223.60149 } } dps_results: { key: "TestEnhancement-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 208735.66498 - tps: 177315.85678 + dps: 211796.72756 + tps: 179751.68442 } } dps_results: { key: "TestEnhancement-AllItems-TickingEbonDetonator-105612" value: { - dps: 239883.05341 - tps: 201378.34026 + dps: 242213.52674 + tps: 203053.12591 } } dps_results: { key: "TestEnhancement-AllItems-Time-LostArtifact-103678" value: { - dps: 215565.3659 - tps: 183344.59625 + dps: 219296.14507 + tps: 186122.3259 } } dps_results: { key: "TestEnhancement-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 220326.1272 - tps: 186577.68654 + dps: 224012.67486 + tps: 189681.08902 } } dps_results: { key: "TestEnhancement-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 221184.34421 - tps: 187240.26294 + dps: 224085.0897 + tps: 189541.60441 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 217165.38559 - tps: 184000.39593 + dps: 219194.82062 + tps: 185874.55714 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 208630.7336 - tps: 177237.29516 + dps: 211664.12315 + tps: 179640.50798 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 211527.65827 - tps: 179425.37835 + dps: 214120.06034 + tps: 181550.68323 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 212325.79379 - tps: 180438.48112 + dps: 215504.37169 + tps: 182999.72955 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 208386.70603 - tps: 177004.45745 + dps: 211371.53988 + tps: 179359.52897 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 221500.01358 - tps: 187628.79046 + dps: 225129.70244 + tps: 190645.24949 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 208903.67272 - tps: 177533.67128 + dps: 211908.99702 + tps: 179885.86289 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 212928.32497 - tps: 180529.76564 + dps: 215962.33091 + tps: 182931.45028 } } dps_results: { key: "TestEnhancement-AllItems-TyrannicalPrimalDiamond" value: { - dps: 217426.24551 - tps: 181418.25984 + dps: 220600.31593 + tps: 183873.63343 } } dps_results: { key: "TestEnhancement-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 208776.89515 - tps: 177351.26018 + dps: 211840.64543 + tps: 179792.69763 } } dps_results: { key: "TestEnhancement-AllItems-VaporshieldMedallion-93262" value: { - dps: 212523.94039 - tps: 180370.88641 + dps: 214256.26168 + tps: 181657.87476 } } dps_results: { key: "TestEnhancement-AllItems-VialofDragon'sBlood-87063" value: { - dps: 211780.46875 - tps: 179797.83981 + dps: 214824.16419 + tps: 182200.59413 } } dps_results: { key: "TestEnhancement-AllItems-VialofIchorousBlood-100963" value: { - dps: 208512.28296 - tps: 177130.30042 + dps: 211515.27606 + tps: 179505.85468 } } dps_results: { key: "TestEnhancement-AllItems-VialofLivingCorruption-105568" value: { - dps: 208386.70603 - tps: 177004.64026 + dps: 211371.53988 + tps: 179359.71177 } } dps_results: { key: "TestEnhancement-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 226228.02198 - tps: 190490.00127 + dps: 229727.66895 + tps: 193316.86045 } } dps_results: { key: "TestEnhancement-AllItems-VisionofthePredator-81192" value: { - dps: 213510.57705 - tps: 181528.48722 + dps: 216052.78741 + tps: 183413.72212 } } dps_results: { key: "TestEnhancement-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 213637.74338 - tps: 181944.12615 + dps: 217884.23362 + tps: 185341.0863 } } dps_results: { key: "TestEnhancement-AllItems-WindsweptPages-81125" value: { - dps: 218607.83209 - tps: 185558.69068 + dps: 221375.31942 + tps: 187730.89387 } } dps_results: { key: "TestEnhancement-AllItems-WoundripperMedallion-93253" value: { - dps: 221506.91404 - tps: 188153.66647 + dps: 224111.17897 + tps: 190368.62393 } } dps_results: { key: "TestEnhancement-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 212877.80915 - tps: 181366.74725 + dps: 216381.24502 + tps: 184193.75487 } } dps_results: { key: "TestEnhancement-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 225671.89436 - tps: 191463.84034 + dps: 228457.43907 + tps: 193537.4955 } } dps_results: { key: "TestEnhancement-AllItems-YaungolFireCarrier-86518" value: { - dps: 232020.46075 - tps: 195347.14897 + dps: 234796.10597 + tps: 197518.10283 } } dps_results: { key: "TestEnhancement-AllItems-Yu'lon'sBite-103987" value: { - dps: 217307.83615 - tps: 184154.61733 + dps: 220530.77257 + tps: 186721.90477 } } dps_results: { key: "TestEnhancement-AllItems-ZenAlchemistStone-75274" value: { - dps: 221609.89282 - tps: 187782.01465 + dps: 224789.57405 + tps: 190298.48179 } } dps_results: { diff --git a/sim/warlock/affliction/TestAffliction.results b/sim/warlock/affliction/TestAffliction.results index 877ca15a84..ce14555ae3 100644 --- a/sim/warlock/affliction/TestAffliction.results +++ b/sim/warlock/affliction/TestAffliction.results @@ -6,10 +6,10 @@ character_stats_results: { final_stats: 47948 final_stats: 31271 final_stats: 304 - final_stats: 3180 + final_stats: 3020 final_stats: 3095 final_stats: 18310 - final_stats: 1920 + final_stats: 2080 final_stats: 0 final_stats: 0 final_stats: 22775 @@ -23,7 +23,7 @@ character_stats_results: { final_stats: 899442.5 final_stats: 300000 final_stats: 15000 - final_stats: 9.35294 + final_stats: 8.88235 final_stats: 15 final_stats: 12.77833 final_stats: 24.20068 @@ -33,1985 +33,1985 @@ character_stats_results: { dps_results: { key: "TestAffliction-AllItems-AgilePrimalDiamond" value: { - dps: 435845.48874 - tps: 302304.65825 - hps: 4532.44066 + dps: 443629.48599 + tps: 308026.75083 + hps: 4522.6967 } } dps_results: { key: "TestAffliction-AllItems-AlacrityofXuen-103989" value: { - dps: 346448.98784 - tps: 240218.17735 - hps: 4718.32545 + dps: 356459.39372 + tps: 246778.40683 + hps: 4904.95977 } } dps_results: { key: "TestAffliction-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 371744.6059 - tps: 256891.40838 - hps: 4999.40123 + dps: 376089.02796 + tps: 260278.93738 + hps: 5021.88729 } } dps_results: { key: "TestAffliction-AllItems-ArrowflightMedallion-93258" value: { - dps: 365363.35705 - tps: 253051.60293 - hps: 4800.02481 + dps: 366331.97665 + tps: 253589.75252 + hps: 4798.52574 } } dps_results: { key: "TestAffliction-AllItems-AssuranceofConsequence-105472" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362940.49012 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-AusterePrimalDiamond" value: { - dps: 428410.97015 - tps: 297016.96417 - hps: 4551.54261 + dps: 436896.74463 + tps: 302640.10693 + hps: 4562.10654 } } dps_results: { key: "TestAffliction-AllItems-BadJuju-96781" value: { - dps: 367702.31881 - tps: 255633.90758 - hps: 4834.50344 + dps: 373448.09102 + tps: 259675.30515 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-BadgeofKypariZar-84079" value: { - dps: 357186.94545 - tps: 248183.11233 - hps: 4735.56476 + dps: 365962.84171 + tps: 254477.102 + hps: 4901.96162 } } dps_results: { key: "TestAffliction-AllItems-BlossomofPureSnow-89081" value: { - dps: 373895.02827 - tps: 258750.45375 - hps: 4802.27341 + dps: 374466.63763 + tps: 259057.9572 + hps: 4797.02667 } } dps_results: { key: "TestAffliction-AllItems-BottleofInfiniteStars-87057" value: { - dps: 364571.11033 - tps: 253295.26812 - hps: 4834.50344 + dps: 370245.38252 + tps: 257289.84489 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-BraidofTenSongs-84072" value: { - dps: 356844.76541 - tps: 247894.86307 - hps: 4734.06569 + dps: 365655.68203 + tps: 254118.7604 + hps: 4900.46255 } } dps_results: { key: "TestAffliction-AllItems-Brawler'sStatue-282039" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 358517.53871 + tps: 248978.66832 + hps: 4813.51645 } } dps_results: { key: "TestAffliction-AllItems-BreathoftheHydra-96827" value: { - dps: 400837.81802 - tps: 276974.06589 - hps: 5054.11731 + dps: 412426.33657 + tps: 284743.22573 + hps: 5168.79623 } } dps_results: { key: "TestAffliction-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 357968.1149 - tps: 248519.41085 - hps: 4957.55471 + dps: 358017.85471 + tps: 248340.37053 + hps: 4955.04034 } } dps_results: { key: "TestAffliction-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-BurningPrimalDiamond" value: { - dps: 438487.85768 - tps: 304028.695 - hps: 4533.1902 + dps: 443993.4442 + tps: 308311.11673 + hps: 4516.70042 } } dps_results: { key: "TestAffliction-AllItems-CapacitivePrimalDiamond" value: { - dps: 432826.88641 - tps: 299866.02054 - hps: 4533.1902 + dps: 441379.41211 + tps: 306300.75749 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-CarbonicCarbuncle-81138" value: { - dps: 363261.54804 - tps: 251807.25846 - hps: 4838.25111 + dps: 376909.93012 + tps: 260838.72202 + hps: 5022.63683 } } dps_results: { key: "TestAffliction-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 397655.81314 - tps: 275060.88689 - hps: 4957.42725 + dps: 412340.83261 + tps: 285657.2685 + hps: 5075.10431 } } dps_results: { key: "TestAffliction-AllItems-CharmofTenSongs-84071" value: { - dps: 365764.47095 - tps: 254433.75021 - hps: 4973.16749 + dps: 375316.40713 + tps: 260248.85139 + hps: 5105.83526 } } dps_results: { key: "TestAffliction-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 380027.97555 - tps: 262658.20486 - hps: 5177.04112 + dps: 392867.6554 + tps: 271183.81446 + hps: 5350.93334 } } dps_results: { key: "TestAffliction-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 376489.5703 - tps: 261024.50001 - hps: 4868.23253 + dps: 390324.1205 + tps: 269929.08257 + hps: 4948.43282 } } dps_results: { key: "TestAffliction-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 374062.86895 - tps: 259826.86339 - hps: 4791.03038 + dps: 385858.98675 + tps: 267817.70357 + hps: 4931.94304 } } dps_results: { key: "TestAffliction-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 369881.78608 - tps: 256089.96628 - hps: 4815.76505 + dps: 376707.32351 + tps: 261568.60405 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 366192.8383 - tps: 254184.35689 - hps: 4834.50344 + dps: 371523.01975 + tps: 258079.69833 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-CoreofDecency-87497" value: { - dps: 367691.71478 - tps: 254717.04161 - hps: 4919.95047 + dps: 377134.99368 + tps: 261199.34649 + hps: 4972.41795 } } dps_results: { key: "TestAffliction-AllItems-CourageousPrimalDiamond" value: { - dps: 433774.30891 - tps: 300589.45555 - hps: 4533.1902 + dps: 441564.08407 + tps: 306315.49427 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 368062.32301 - tps: 254897.28859 - hps: 4859.98764 + dps: 369891.46342 + tps: 255855.47495 + hps: 4862.23625 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 361882.86859 - tps: 251017.00214 - hps: 4876.82417 + dps: 367177.81616 + tps: 254788.40124 + hps: 4984.12345 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 357261.35945 - tps: 247896.21586 - hps: 4876.82417 + dps: 362798.47683 + tps: 251757.37491 + hps: 4984.12345 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 357111.79091 - tps: 247863.07427 - hps: 4963.3333 + dps: 361732.98176 + tps: 250869.98687 + hps: 5087.70622 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 371244.46035 - tps: 256839.9531 - hps: 4971.66842 + dps: 381889.36811 + tps: 263259.35511 + hps: 5128.32132 } } dps_results: { key: "TestAffliction-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 369550.89106 - tps: 255777.41733 - hps: 4859.98764 + dps: 371405.23596 + tps: 256847.94029 + hps: 4862.98578 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 363042.18216 - tps: 251901.34662 - hps: 4883.66462 + dps: 367815.03012 + tps: 255197.3336 + hps: 4991.59772 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 357681.8403 - tps: 248189.23544 - hps: 4883.66462 + dps: 362798.47683 + tps: 251759.11074 + hps: 4991.59772 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 357183.55286 - tps: 247771.85568 - hps: 4994.85865 + dps: 362241.83284 + tps: 251360.58095 + hps: 5126.95041 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 371394.50715 - tps: 256428.34617 - hps: 4946.93375 + dps: 385536.03356 + tps: 266456.89939 + hps: 5131.31946 } } dps_results: { key: "TestAffliction-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-CurseofHubris-105645" value: { - dps: 373173.24458 - tps: 258595.41913 - hps: 5091.00979 + dps: 373951.23538 + tps: 259248.99586 + hps: 5103.87399 } } dps_results: { key: "TestAffliction-AllItems-CutstitcherMedallion-93255" value: { - dps: 365537.017 - tps: 253025.40262 - hps: 4815.76505 + dps: 368093.93479 + tps: 254759.23143 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-Daelo'sFinalWords-87496" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 356982.35446 + tps: 247120.15718 + hps: 4789.53131 } } dps_results: { key: "TestAffliction-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 461902.44744 - tps: 319509.43969 - hps: 5056.36592 + dps: 474304.84299 + tps: 328462.50961 + hps: 5085.5978 } } dps_results: { key: "TestAffliction-AllItems-DarkmistVortex-87172" value: { - dps: 375259.012 - tps: 258337.41386 - hps: 5207.77207 + dps: 390246.68992 + tps: 268708.03314 + hps: 5431.13363 } } dps_results: { key: "TestAffliction-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-DestructivePrimalDiamond" value: { - dps: 433575.74178 - tps: 300444.90568 - hps: 4533.1902 + dps: 441875.37764 + tps: 306639.90163 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-DisciplineofXuen-103986" value: { - dps: 387219.84673 - tps: 267032.50615 - hps: 4883.97277 + dps: 399497.48105 + tps: 275021.1596 + hps: 4988.90773 } } dps_results: { key: "TestAffliction-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 371744.6059 - tps: 256891.40838 - hps: 4999.40123 + dps: 376089.02796 + tps: 260278.93738 + hps: 5021.88729 } } dps_results: { key: "TestAffliction-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 362660.22413 - tps: 251043.57641 - hps: 4815.76505 + dps: 365356.67745 + tps: 252900.65392 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 368062.32301 - tps: 254897.28859 - hps: 4859.98764 + dps: 369891.46342 + tps: 255855.47495 + hps: 4862.23625 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 361882.86859 - tps: 251017.00214 - hps: 4876.82417 + dps: 367177.81616 + tps: 254788.40124 + hps: 4984.12345 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 357261.35945 - tps: 247896.21586 - hps: 4876.82417 + dps: 362798.47683 + tps: 251757.37491 + hps: 4984.12345 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 357111.79091 - tps: 247863.07427 - hps: 4963.3333 + dps: 361732.98176 + tps: 250869.98687 + hps: 5087.70622 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 369960.02085 - tps: 256080.74837 - hps: 4967.17121 + dps: 382247.25808 + tps: 263417.84927 + hps: 5118.57736 } } dps_results: { key: "TestAffliction-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 375437.19506 - tps: 259941.24478 - hps: 4815.76505 + dps: 382036.23875 + tps: 265204.80494 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-EffulgentPrimalDiamond" value: { - dps: 428410.97015 - tps: 297016.96417 - hps: 4551.54261 + dps: 436896.74463 + tps: 302640.10693 + hps: 4562.10654 } } dps_results: { key: "TestAffliction-AllItems-EmberPrimalDiamond" value: { - dps: 432775.25213 - tps: 299823.62066 - hps: 4533.1902 + dps: 440530.51735 + tps: 305612.61882 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-EmblemofKypariZar-84077" value: { - dps: 356918.74043 - tps: 247766.68296 - hps: 4734.06569 + dps: 365050.31754 + tps: 253613.2019 + hps: 4900.46255 } } dps_results: { key: "TestAffliction-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 359222.10492 - tps: 248690.97581 - hps: 4897.46441 + dps: 368735.68261 + tps: 255430.35682 + hps: 5051.86871 } } dps_results: { key: "TestAffliction-AllItems-EmptyFruitBarrel-81133" value: { - dps: 368538.87647 - tps: 255663.631 - hps: 4899.71302 + dps: 377677.97559 + tps: 261306.96273 + hps: 4964.17306 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 465714.09376 - tps: 323409.56312 - hps: 5052.61824 + dps: 472020.33651 + tps: 326443.22921 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 475638.01679 - tps: 329763.22817 - hps: 5072.10616 + dps: 476506.60272 + tps: 329464.06984 + hps: 5092.34362 } } dps_results: { key: "TestAffliction-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 465207.36362 - tps: 322165.25737 - hps: 5011.3938 + dps: 482951.98445 + tps: 333332.0605 + hps: 5145.56064 } } dps_results: { key: "TestAffliction-AllItems-EnigmaticPrimalDiamond" value: { - dps: 433575.74178 - tps: 300444.90568 - hps: 4533.1902 + dps: 441875.37764 + tps: 306639.90163 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-EssenceofTerror-87175" value: { - dps: 391252.77892 - tps: 270150.33154 - hps: 5284.22469 + dps: 401486.60896 + tps: 276635.05475 + hps: 5380.16522 } } dps_results: { key: "TestAffliction-AllItems-EternalPrimalDiamond" value: { - dps: 431029.11776 - tps: 298609.47409 - hps: 4533.1902 + dps: 436579.27427 + tps: 302654.12395 + hps: 4518.94903 } } dps_results: { key: "TestAffliction-AllItems-EvilEyeofGalakras-105491" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362940.49012 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-FearwurmBadge-84074" value: { - dps: 356918.74043 - tps: 247766.68296 - hps: 4734.06569 + dps: 365050.31754 + tps: 253613.2019 + hps: 4900.46255 } } dps_results: { key: "TestAffliction-AllItems-FearwurmRelic-84070" value: { - dps: 366053.71497 - tps: 253575.05051 - hps: 4986.65913 + dps: 375618.73478 + tps: 260636.31964 + hps: 5106.58479 } } dps_results: { key: "TestAffliction-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 380691.43152 - tps: 263712.57281 - hps: 5169.54577 + dps: 393641.16313 + tps: 271108.73218 + hps: 5351.68287 } } dps_results: { key: "TestAffliction-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 380886.86308 - tps: 263894.36049 - hps: 4882.4737 + dps: 393500.44109 + tps: 271715.86113 + hps: 4994.90402 } } dps_results: { key: "TestAffliction-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 431656.92683 - tps: 294661.57207 - hps: 5049.47539 + dps: 432250.13022 + tps: 295079.61017 + hps: 5024.10114 } } dps_results: { key: "TestAffliction-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 363689.40562 - tps: 251785.50339 - hps: 4816.51459 + dps: 366475.39173 + tps: 254098.41188 + hps: 4791.03038 } } dps_results: { key: "TestAffliction-AllItems-FlashingSteelTalisman-81265" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 357795.90797 + tps: 247506.65117 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-FleetPrimalDiamond" value: { - dps: 434184.2828 - tps: 300950.47004 - hps: 4533.1902 + dps: 439768.76167 + tps: 305018.19649 + hps: 4518.94903 } } dps_results: { key: "TestAffliction-AllItems-ForlornPrimalDiamond" value: { - dps: 432775.25213 - tps: 299823.62066 - hps: 4533.1902 + dps: 440530.51735 + tps: 305612.61882 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 367961.5678 - tps: 255783.50124 - hps: 4923.93033 + dps: 373703.97546 + tps: 259801.69703 + hps: 5037.478 } } dps_results: { key: "TestAffliction-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 399599.34954 - tps: 276470.63406 - hps: 4876.47742 + dps: 414722.80327 + tps: 286359.37151 + hps: 5073.60524 } } dps_results: { key: "TestAffliction-AllItems-Fusion-FireCore-105459" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-GazeoftheTwins-96915" value: { - dps: 368399.04175 - tps: 255833.80802 - hps: 4867.483 + dps: 374264.66733 + tps: 259820.21359 + hps: 4950.68143 } } dps_results: { key: "TestAffliction-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 361349.65857 - tps: 250621.07873 - hps: 4834.50344 + dps: 362591.1349 + tps: 251910.63826 + hps: 4813.51645 } } dps_results: { key: "TestAffliction-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 431656.92683 - tps: 294661.57207 - hps: 5049.47539 + dps: 432250.13022 + tps: 295079.61017 + hps: 5024.10114 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 378697.54529 - tps: 262153.85157 - hps: 4874.97835 + dps: 378075.43937 + tps: 261793.18608 + hps: 4868.98207 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 365792.52918 - tps: 253890.00818 - hps: 4910.72769 + dps: 371565.62636 + tps: 257981.32243 + hps: 5023.02757 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 357681.80251 - tps: 248162.55382 - hps: 4910.72769 + dps: 363237.86937 + tps: 252002.99349 + hps: 5023.02757 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 355973.29582 - tps: 246809.28782 - hps: 5052.22317 + dps: 362009.15815 + tps: 250984.57804 + hps: 5208.43082 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 380509.31051 - tps: 262653.88483 - hps: 4968.67028 + dps: 394015.38758 + tps: 272731.77187 + hps: 5090.09501 } } dps_results: { key: "TestAffliction-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Haromm'sTalisman-105527" value: { - dps: 375085.43629 - tps: 265619.19965 - hps: 4834.50344 + dps: 380582.87457 + tps: 269489.11727 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 372253.27426 - tps: 257761.19914 - hps: 5111.83154 + dps: 371073.88608 + tps: 256707.20074 + hps: 5011.3938 } } dps_results: { key: "TestAffliction-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 354996.77931 - tps: 246262.50543 - hps: 4934.52674 + dps: 360582.81916 + tps: 249822.73514 + hps: 5093.82975 } } dps_results: { key: "TestAffliction-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 372546.12752 - tps: 257925.20058 - hps: 5050.52407 + dps: 382150.57948 + tps: 264633.15182 + hps: 5107.74943 } } dps_results: { key: "TestAffliction-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 363229.59301 - tps: 252004.81716 - hps: 4834.50344 + dps: 368226.76485 + tps: 255530.34396 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 368048.55814 - tps: 255442.03069 - hps: 4840.49972 + dps: 381673.45328 + tps: 263441.2034 + hps: 4989.65727 } } dps_results: { key: "TestAffliction-AllItems-HeartofFire-81181" value: { - dps: 362397.55668 - tps: 251671.88265 - hps: 4834.50344 + dps: 363511.92359 + tps: 252714.57581 + hps: 4813.51645 } } dps_results: { key: "TestAffliction-AllItems-HeartwarmerMedallion-93260" value: { - dps: 365537.017 - tps: 253025.40262 - hps: 4815.76505 + dps: 368093.93479 + tps: 254759.23143 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-HelmbreakerMedallion-93261" value: { - dps: 365363.35705 - tps: 253051.60293 - hps: 4800.02481 + dps: 366331.97665 + tps: 253589.75252 + hps: 4798.52574 } } dps_results: { key: "TestAffliction-AllItems-Horridon'sLastGasp-96757" value: { - dps: 371119.52619 - tps: 257596.04905 - hps: 4813.51645 + dps: 376782.10282 + tps: 261699.21527 + hps: 4961.17492 } } dps_results: { key: "TestAffliction-AllItems-ImpassivePrimalDiamond" value: { - dps: 433575.74178 - tps: 300444.90568 - hps: 4533.1902 + dps: 441875.37764 + tps: 306639.90163 + hps: 4523.44624 } } dps_results: { key: "TestAffliction-AllItems-IndomitablePrimalDiamond" value: { - dps: 428410.97015 - tps: 297016.96417 - hps: 4551.54261 + dps: 436896.74463 + tps: 302640.10693 + hps: 4562.10654 } } dps_results: { key: "TestAffliction-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-InsigniaofKypariZar-84078" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-IronBellyWok-89083" value: { - dps: 372253.27426 - tps: 257761.19914 - hps: 5111.83154 + dps: 371073.88608 + tps: 256707.20074 + hps: 5011.3938 } } dps_results: { key: "TestAffliction-AllItems-IronProtectorTalisman-85181" value: { - dps: 356785.87448 - tps: 247612.76086 - hps: 4930.45116 + dps: 361984.04305 + tps: 251277.96324 + hps: 5063.14688 } } dps_results: { key: "TestAffliction-AllItems-JadeBanditFigurine-86772" value: { - dps: 370617.15218 - tps: 256784.38463 - hps: 5069.10802 + dps: 369697.8217 + tps: 255249.03403 + hps: 4981.41238 } } dps_results: { key: "TestAffliction-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 370617.15218 - tps: 256784.38463 - hps: 5069.10802 + dps: 369697.8217 + tps: 255249.03403 + hps: 4981.41238 } } dps_results: { key: "TestAffliction-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 363893.70455 - tps: 251872.92113 - hps: 4815.76505 + dps: 366540.29344 + tps: 253701.16358 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 370015.48804 - tps: 255864.4054 - hps: 4783.53503 + dps: 370853.47359 + tps: 256785.86947 + hps: 4770.79293 } } dps_results: { key: "TestAffliction-AllItems-JadeWarlordFigurine-86775" value: { - dps: 363037.1519 - tps: 251505.09442 - hps: 4921.00477 + dps: 365618.45981 + tps: 252800.34417 + hps: 4958.82303 } } dps_results: { key: "TestAffliction-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 14763.52385 + dps: 362941.80752 + tps: 251846.73281 + hps: 15029.86398 } } dps_results: { key: "TestAffliction-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 425275.34712 - tps: 300632.75323 - hps: 4846.496 + dps: 440807.08319 + tps: 311611.04313 + hps: 4982.16191 } } dps_results: { key: "TestAffliction-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 363059.42557 - tps: 251690.74347 - hps: 4780.53689 + dps: 365322.7712 + tps: 252872.83532 + hps: 4815.01552 } } dps_results: { key: "TestAffliction-AllItems-KnotofTenSongs-84073" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 358473.90596 + tps: 248608.77147 + hps: 4800.77434 } } dps_results: { key: "TestAffliction-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 363441.3009 - tps: 251989.11243 - hps: 4919.19207 + dps: 366519.10639 + tps: 253761.91579 + hps: 4968.77133 } } dps_results: { key: "TestAffliction-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 366122.69769 - tps: 254417.47156 - hps: 4973.91702 + dps: 370294.08912 + tps: 256315.30613 + hps: 5063.86127 } } dps_results: { key: "TestAffliction-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 358517.53871 + tps: 248978.66832 + hps: 4813.51645 } } dps_results: { key: "TestAffliction-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 363413.26047 - tps: 252431.33773 - hps: 4834.50344 + dps: 369064.05544 + tps: 256408.61816 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 368835.98234 - tps: 255586.30714 - hps: 4843.49786 + dps: 383015.51859 + tps: 264802.03649 + hps: 5000.15076 } } dps_results: { key: "TestAffliction-AllItems-LightoftheCosmos-87065" value: { - dps: 382836.779 - tps: 264182.60923 - hps: 5087.84641 + dps: 395185.18033 + tps: 272626.41439 + hps: 5170.2953 } } dps_results: { key: "TestAffliction-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 471009.41452 - tps: 324807.81099 - hps: 5095.34176 + dps: 482005.41781 + tps: 332226.49242 + hps: 5159.80181 } } dps_results: { key: "TestAffliction-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 369550.89106 - tps: 255777.41733 - hps: 4859.98764 + dps: 371405.23596 + tps: 256847.94029 + hps: 4862.98578 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 363042.18216 - tps: 251901.34662 - hps: 4883.66462 + dps: 367815.03012 + tps: 255197.3336 + hps: 4991.59772 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 357681.8403 - tps: 248189.23544 - hps: 4883.66462 + dps: 362798.47683 + tps: 251759.11074 + hps: 4991.59772 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 357183.55286 - tps: 247771.85568 - hps: 4994.85865 + dps: 362241.83284 + tps: 251360.58095 + hps: 5126.95041 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 372511.71531 - tps: 257416.04822 - hps: 4931.19351 + dps: 386899.03953 + tps: 267306.76777 + hps: 5117.07829 } } dps_results: { key: "TestAffliction-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-MarkoftheCatacombs-83731" value: { - dps: 363224.62283 - tps: 252397.76847 - hps: 4836.75204 + dps: 375041.82368 + tps: 260256.33292 + hps: 4994.15448 } } dps_results: { key: "TestAffliction-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 364793.17632 - tps: 252520.07151 - hps: 4735.56476 + dps: 367613.60996 + tps: 254092.55209 + hps: 4803.77249 } } dps_results: { key: "TestAffliction-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 361047.15578 - tps: 250663.29415 - hps: 4834.50344 + dps: 366643.75977 + tps: 254605.17741 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 362660.22413 - tps: 251043.57641 - hps: 4815.76505 + dps: 365356.67745 + tps: 252900.65392 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-MirrorScope-4700" value: { - dps: 465454.01901 - tps: 323243.82134 - hps: 5052.61824 + dps: 470409.14521 + tps: 324785.97309 + hps: 5098.3399 } } dps_results: { key: "TestAffliction-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 354996.77931 - tps: 246262.50543 - hps: 4934.52674 + dps: 360581.50176 + tps: 249822.73514 + hps: 5093.82975 } } dps_results: { key: "TestAffliction-AllItems-MistdancerDefenderStone-101087" value: { - dps: 369264.55458 - tps: 255997.06365 - hps: 5006.44509 + dps: 380211.38958 + tps: 263110.81361 + hps: 5115.48258 } } dps_results: { key: "TestAffliction-AllItems-MistdancerIdolofRage-101113" value: { - dps: 363414.39243 - tps: 252431.33773 - hps: 4834.50344 + dps: 369064.05544 + tps: 256408.61816 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-MistdancerStoneofRage-101117" value: { - dps: 368375.64032 - tps: 255212.16581 - hps: 4867.483 + dps: 379194.95742 + tps: 261966.78603 + hps: 4955.17864 } } dps_results: { key: "TestAffliction-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 376061.18129 - tps: 261572.11043 - hps: 4833.7539 + dps: 385425.20768 + tps: 267236.59761 + hps: 4949.18236 } } dps_results: { key: "TestAffliction-AllItems-MithrilWristwatch-282033" value: { - dps: 380075.02497 - tps: 263817.99787 - hps: 4880.97463 + dps: 395578.84535 + tps: 273917.88521 + hps: 4995.65355 } } dps_results: { key: "TestAffliction-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 381585.51093 - tps: 263681.25591 - hps: 5228.75907 + dps: 392997.80881 + tps: 271497.78843 + hps: 5377.91661 } } dps_results: { key: "TestAffliction-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 379777.36601 - tps: 263339.77811 - hps: 4858.48857 + dps: 392307.32986 + tps: 271195.46473 + hps: 4988.1582 } } dps_results: { key: "TestAffliction-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 353355.75937 - tps: 245316.13167 - hps: 4735.56476 + dps: 361989.09431 + tps: 251508.7483 + hps: 4901.96162 } } dps_results: { key: "TestAffliction-AllItems-NitroBoosts-4223" value: { - dps: 463299.58609 - tps: 320415.83717 - hps: 5056.36592 + dps: 476127.81933 + tps: 329779.53419 + hps: 5085.5978 } } dps_results: { key: "TestAffliction-AllItems-OathswornDefenderIdol-101303" value: { - dps: 354996.77931 - tps: 246262.50543 - hps: 4934.52674 + dps: 360582.81916 + tps: 249822.73514 + hps: 5093.82975 } } dps_results: { key: "TestAffliction-AllItems-OathswornDefenderStone-101306" value: { - dps: 371057.2875 - tps: 256973.45844 - hps: 5010.31166 + dps: 380768.50049 + tps: 263845.66403 + hps: 5093.82975 } } dps_results: { key: "TestAffliction-AllItems-OathswornIdolofBattle-101295" value: { - dps: 363229.59301 - tps: 252004.81716 - hps: 4834.50344 + dps: 368226.76485 + tps: 255530.34396 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-OathswornStoneofBattle-101294" value: { - dps: 367769.35613 - tps: 254560.8298 - hps: 4845.74647 + dps: 380128.7803 + tps: 263127.70421 + hps: 4979.16377 } } dps_results: { key: "TestAffliction-AllItems-PhaseFingers-4697" value: { - dps: 461944.6807 - tps: 319422.29781 - hps: 5056.36592 + dps: 470156.12566 + tps: 324821.6175 + hps: 5055.61639 } } dps_results: { key: "TestAffliction-AllItems-PouchofWhiteAsh-103639" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 358473.90596 + tps: 248608.77147 + hps: 4800.77434 } } dps_results: { key: "TestAffliction-AllItems-PowerfulPrimalDiamond" value: { - dps: 428410.97015 - tps: 297016.96417 - hps: 4551.54261 + dps: 436896.74463 + tps: 302640.10693 + hps: 4562.10654 } } dps_results: { key: "TestAffliction-AllItems-PriceofProgress-81266" value: { - dps: 360265.52695 - tps: 249655.78925 - hps: 4754.30315 + dps: 367019.92405 + tps: 254662.76129 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 384098.33591 - tps: 265867.85837 - hps: 4857.73904 + dps: 381756.51235 + tps: 263996.28452 + hps: 4850.99322 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 365856.73983 - tps: 253870.47521 - hps: 4901.85261 + dps: 374221.49056 + tps: 259876.57283 + hps: 5047.53116 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 357678.78632 - tps: 248108.32397 - hps: 4931.83403 + dps: 363440.4267 + tps: 252167.88318 + hps: 5047.53116 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 353786.73231 - tps: 245321.32457 - hps: 5079.59417 + dps: 362485.67402 + tps: 251755.18162 + hps: 5276.58994 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 388822.60526 - tps: 269145.77488 - hps: 4911.70559 + dps: 402327.05648 + tps: 277773.85551 + hps: 5108.8334 } } dps_results: { key: "TestAffliction-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 367061.8756 - tps: 254790.50927 - hps: 4834.50344 + dps: 372660.58517 + tps: 258897.38916 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 380552.65735 - tps: 264975.54617 - hps: 4980.66284 + dps: 387851.05462 + tps: 269652.77484 + hps: 5105.08572 } } dps_results: { key: "TestAffliction-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 426056.90117 - tps: 289149.0622 - hps: 4898.7225 + dps: 436908.96888 + tps: 296925.02661 + hps: 4966.63593 } } dps_results: { key: "TestAffliction-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 419427.34994 - tps: 284375.15522 - hps: 4904.69291 + dps: 431840.42653 + tps: 293695.64899 + hps: 4959.17291 } } dps_results: { key: "TestAffliction-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 374158.46815 - tps: 259590.99224 - hps: 4985.90959 + dps: 385829.02514 + tps: 266562.57422 + hps: 5107.33433 } } dps_results: { key: "TestAffliction-AllItems-RegaliaoftheHornedNightmare" value: { - dps: 324850.59376 - tps: 226558.22994 - hps: 3619.68155 + dps: 325399.9707 + tps: 226248.48337 + hps: 3588.36251 } } dps_results: { key: "TestAffliction-AllItems-RegaliaoftheThousandfoldHells" value: { - dps: 313247.83267 - tps: 211558.15395 - hps: 3571.34187 + dps: 310847.61516 + tps: 209660.63343 + hps: 3572.65704 } } dps_results: { key: "TestAffliction-AllItems-RelicofChi-Ji-79330" value: { - dps: 365574.77168 - tps: 253052.41361 - hps: 4815.76505 + dps: 372599.47906 + tps: 258601.22657 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-RelicofKypariZar-84075" value: { - dps: 366420.31135 - tps: 254447.46245 - hps: 4953.67957 + dps: 375644.98228 + tps: 260024.48249 + hps: 5078.10245 } } dps_results: { key: "TestAffliction-AllItems-RelicofNiuzao-79329" value: { - dps: 355081.67743 - tps: 246427.5671 - hps: 4932.58179 + dps: 358454.12281 + tps: 249055.6496 + hps: 4937.2126 } } dps_results: { key: "TestAffliction-AllItems-RelicofXuen-79327" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-RelicofXuen-79328" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-RelicofYu'lon-79331" value: { - dps: 377767.26521 - tps: 262393.56906 - hps: 4918.4514 + dps: 384646.67089 + tps: 266423.76712 + hps: 5016.64054 } } dps_results: { key: "TestAffliction-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-ResolveofNiuzao-103990" value: { - dps: 367148.17023 - tps: 255220.02465 - hps: 4834.50344 + dps: 372881.5218 + tps: 259253.13606 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-ReverberatingPrimalDiamond" value: { - dps: 435845.48874 - tps: 302304.65825 - hps: 4532.44066 + dps: 443629.48599 + tps: 308026.75083 + hps: 4522.6967 } } dps_results: { key: "TestAffliction-AllItems-RevitalizingPrimalDiamond" value: { - dps: 435845.48874 - tps: 302304.65825 - hps: 4532.44066 + dps: 443629.48599 + tps: 308026.75083 + hps: 4522.6967 } } dps_results: { key: "TestAffliction-AllItems-RuneofRe-Origination-96918" value: { - dps: 358099.00265 - tps: 248440.90263 - hps: 4771.54246 + dps: 363998.19739 + tps: 252938.79302 + hps: 4859.23811 } } dps_results: { key: "TestAffliction-AllItems-SI:7Operative'sManual-92784" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 358473.90596 + tps: 248608.77147 + hps: 4800.77434 } } dps_results: { key: "TestAffliction-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 364894.25316 - tps: 252554.19825 - hps: 4815.76505 + dps: 367448.68439 + tps: 254299.6948 + hps: 4824.00994 } } dps_results: { key: "TestAffliction-AllItems-SearingWords-81267" value: { - dps: 362234.45925 - tps: 251249.5402 - hps: 4834.50344 + dps: 367409.25802 + tps: 254967.81399 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Sha-SkinRegalia" value: { - dps: 310851.69772 - tps: 211259.16598 - hps: 3324.87542 + dps: 311704.95897 + tps: 210982.78309 + hps: 3297.68313 } } dps_results: { key: "TestAffliction-AllItems-ShadowflameRegalia" value: { - dps: 237855.97274 - tps: 160414.82397 - hps: 2680.6043 + dps: 237042.93195 + tps: 159553.3243 + hps: 2668.78189 } } dps_results: { key: "TestAffliction-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 379032.44657 - tps: 262433.73226 - hps: 4889.21952 + dps: 381249.96461 + tps: 263686.35053 + hps: 4904.95977 } } dps_results: { key: "TestAffliction-AllItems-SigilofCompassion-83736" value: { - dps: 361047.15578 - tps: 250663.29415 - hps: 4834.50344 + dps: 366643.75977 + tps: 254605.17741 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SigilofDevotion-83740" value: { - dps: 360965.29948 - tps: 250385.84404 - hps: 4834.50344 + dps: 366164.52609 + tps: 254112.16563 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SigilofFidelity-83737" value: { - dps: 362732.69206 - tps: 250793.47908 - hps: 4880.97463 + dps: 370990.09883 + tps: 257016.52649 + hps: 5003.89844 } } dps_results: { key: "TestAffliction-AllItems-SigilofGrace-83738" value: { - dps: 356570.36789 - tps: 247689.527 - hps: 4734.06569 + dps: 365370.9806 + tps: 253906.13844 + hps: 4900.46255 } } dps_results: { key: "TestAffliction-AllItems-SigilofKypariZar-84076" value: { - dps: 363689.08357 - tps: 252916.17019 - hps: 4816.51459 + dps: 375138.13996 + tps: 260102.07873 + hps: 4994.15448 } } dps_results: { key: "TestAffliction-AllItems-SigilofPatience-83739" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SigilofRampage-105580" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SigiloftheCatacombs-83732" value: { - dps: 364760.17867 - tps: 252790.32489 - hps: 4982.16191 + dps: 372986.63983 + tps: 257922.67895 + hps: 5072.8557 } } dps_results: { key: "TestAffliction-AllItems-SinisterPrimalDiamond" value: { - dps: 463299.58609 - tps: 320415.83717 - hps: 5056.36592 + dps: 476127.81933 + tps: 329779.53419 + hps: 5085.5978 } } dps_results: { key: "TestAffliction-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 353355.75937 - tps: 245316.13167 - hps: 4735.56476 + dps: 361989.09431 + tps: 251508.7483 + hps: 4901.96162 } } dps_results: { key: "TestAffliction-AllItems-SkullrenderMedallion-93256" value: { - dps: 365363.35705 - tps: 253051.60293 - hps: 4800.02481 + dps: 366331.97665 + tps: 253589.75252 + hps: 4798.52574 } } dps_results: { key: "TestAffliction-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 366633.67003 - tps: 254377.81562 - hps: 4807.52016 + dps: 372951.69398 + tps: 258829.0917 + hps: 4946.93375 } } dps_results: { key: "TestAffliction-AllItems-SoulBarrier-96927" value: { - dps: 356063.98315 - tps: 247533.2841 - hps: 5053.46859 + dps: 363286.96009 + tps: 252399.89324 + hps: 5236.03839 } } dps_results: { key: "TestAffliction-AllItems-SparkofZandalar-96770" value: { - dps: 365973.33952 - tps: 254073.96914 - hps: 4957.42725 + dps: 372441.66566 + tps: 257575.82024 + hps: 5073.60524 } } dps_results: { key: "TestAffliction-AllItems-SpiritsoftheSun-87163" value: { - dps: 366737.61124 - tps: 253892.89189 - hps: 4815.76505 + dps: 373803.14677 + tps: 259466.3102 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 379205.75122 - tps: 261707.20137 - hps: 5172.54391 + dps: 390370.05028 + tps: 268824.43582 + hps: 5297.71632 } } dps_results: { key: "TestAffliction-AllItems-SpringrainIdolofRage-101009" value: { - dps: 363413.26047 - tps: 252431.33773 - hps: 4834.50344 + dps: 369064.05544 + tps: 256408.61816 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 378997.8488 - tps: 262952.15727 - hps: 4850.24368 + dps: 389639.1982 + tps: 269650.71614 + hps: 4936.44025 } } dps_results: { key: "TestAffliction-AllItems-SpringrainStoneofRage-101012" value: { - dps: 366416.76844 - tps: 253588.71904 - hps: 4806.02109 + dps: 381702.04072 + tps: 263766.59417 + hps: 4999.40123 } } dps_results: { key: "TestAffliction-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 376054.76892 - tps: 261370.3656 - hps: 4806.02109 + dps: 386177.35365 + tps: 267852.75814 + hps: 4988.1582 } } dps_results: { key: "TestAffliction-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 379032.44657 - tps: 262433.73226 - hps: 4889.21952 + dps: 381249.96461 + tps: 263686.35053 + hps: 4904.95977 } } dps_results: { key: "TestAffliction-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 366034.49299 - tps: 254388.24051 - hps: 4834.50344 + dps: 371742.8827 + tps: 258404.69917 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 375940.0741 - tps: 260146.79658 - hps: 5146.31017 + dps: 392677.05104 + tps: 270877.31577 + hps: 5335.1931 } } dps_results: { key: "TestAffliction-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 363413.26047 - tps: 252431.33773 - hps: 4834.50344 + dps: 369062.73804 + tps: 256408.61816 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 376636.13315 - tps: 261846.25053 - hps: 4833.7539 + dps: 390343.52838 + tps: 270213.89588 + hps: 4951.43096 } } dps_results: { key: "TestAffliction-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 366816.4392 - tps: 254481.84475 - hps: 4901.96162 + dps: 382654.20762 + tps: 263961.52432 + hps: 4977.6647 } } dps_results: { key: "TestAffliction-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 374204.10835 - tps: 259553.94657 - hps: 4809.76877 + dps: 387346.62259 + tps: 268451.29716 + hps: 4982.91145 } } dps_results: { key: "TestAffliction-AllItems-StuffofNightmares-87160" value: { - dps: 365055.31783 - tps: 253656.91339 - hps: 4834.50344 + dps: 370740.443 + tps: 257658.73049 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 354996.77931 - tps: 246262.50543 - hps: 4934.52674 + dps: 360582.81916 + tps: 249822.73514 + hps: 5093.82975 } } dps_results: { key: "TestAffliction-AllItems-SunsoulDefenderStone-101163" value: { - dps: 369833.82004 - tps: 256938.5995 - hps: 5017.2715 + dps: 380770.7089 + tps: 263488.0492 + hps: 5130.9489 } } dps_results: { key: "TestAffliction-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 363229.59301 - tps: 252004.81716 - hps: 4834.50344 + dps: 368225.44745 + tps: 255530.34396 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 369167.6928 - tps: 256467.63912 - hps: 4849.49415 + dps: 380864.80224 + tps: 263476.2564 + hps: 4990.4068 } } dps_results: { key: "TestAffliction-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 379025.53384 - tps: 262389.92745 - hps: 4906.45884 + dps: 387737.23544 + tps: 268540.50187 + hps: 4952.93003 } } dps_results: { key: "TestAffliction-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 461902.44744 - tps: 319509.43969 - hps: 5056.36592 + dps: 474304.84299 + tps: 328462.50961 + hps: 5085.5978 } } dps_results: { key: "TestAffliction-AllItems-SymboloftheCatacombs-83735" value: { - dps: 356912.15694 - tps: 247977.48062 - hps: 4735.56476 + dps: 365677.8281 + tps: 254264.19939 + hps: 4901.96162 } } dps_results: { @@ -2025,257 +2025,257 @@ dps_results: { dps_results: { key: "TestAffliction-AllItems-TalismanofBloodlust-96864" value: { - dps: 369237.90919 - tps: 255511.192 - hps: 5118.57736 + dps: 378524.63472 + tps: 261805.98616 + hps: 5153.05599 } } dps_results: { key: "TestAffliction-AllItems-TerrorintheMists-87167" value: { - dps: 374201.28523 - tps: 258754.24599 - hps: 4927.44583 + dps: 384947.0829 + tps: 266010.85734 + hps: 4992.65541 } } dps_results: { key: "TestAffliction-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 411673.85545 - tps: 284091.90028 - hps: 4865.98392 + dps: 419828.68879 + tps: 289450.76478 + hps: 4966.42167 } } dps_results: { key: "TestAffliction-AllItems-Thok'sTailTip-105609" value: { - dps: 380552.65735 - tps: 264975.54617 - hps: 4980.66284 + dps: 387851.05462 + tps: 269652.77484 + hps: 5105.08572 } } dps_results: { key: "TestAffliction-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 393530.66935 - tps: 272372.74001 - hps: 5368.92219 + dps: 405123.14998 + tps: 279663.66509 + hps: 5557.05558 } } dps_results: { key: "TestAffliction-AllItems-TickingEbonDetonator-105612" value: { - dps: 371145.57212 - tps: 258205.60733 - hps: 4834.50344 + dps: 376968.52109 + tps: 262298.49169 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-Time-LostArtifact-103678" value: { - dps: 359646.7862 - tps: 249991.66029 - hps: 4734.06569 + dps: 368562.92167 + tps: 256289.9577 + hps: 4900.46255 } } dps_results: { key: "TestAffliction-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 363414.39243 - tps: 252431.33773 - hps: 4834.50344 + dps: 369064.05544 + tps: 256408.61816 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 367409.83693 - tps: 255258.22498 - hps: 4828.50715 + dps: 380820.45561 + tps: 262872.42681 + hps: 4997.15262 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 372734.61036 - tps: 258015.43142 - hps: 4870.48114 + dps: 372716.16457 + tps: 257760.16618 + hps: 4847.24554 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 357425.22776 - tps: 247958.99112 - hps: 4834.50344 + dps: 361301.99266 + tps: 250777.0871 + hps: 4821.0118 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 364358.1149 - tps: 252887.18149 - hps: 4893.75259 + dps: 368837.40912 + tps: 256070.79789 + hps: 4999.87339 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 357733.04156 - tps: 248204.0501 - hps: 4893.75259 + dps: 362719.74784 + tps: 251779.21726 + hps: 4999.87339 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 356811.39282 - tps: 247719.33794 - hps: 5032.98576 + dps: 361718.74291 + tps: 250982.25784 + hps: 5149.83973 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 375692.18252 - tps: 259837.48049 - hps: 4924.44769 + dps: 387549.7921 + tps: 267919.51217 + hps: 5070.60709 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-TyrannicalPrimalDiamond" value: { - dps: 431029.11776 - tps: 298609.47409 - hps: 4533.1902 + dps: 436579.27427 + tps: 302654.12395 + hps: 4518.94903 } } dps_results: { key: "TestAffliction-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 426598.77956 - tps: 291787.87313 - hps: 4901.96162 + dps: 433456.47125 + tps: 296147.86168 + hps: 4915.45326 } } dps_results: { key: "TestAffliction-AllItems-VaporshieldMedallion-93262" value: { - dps: 364793.17632 - tps: 252520.07151 - hps: 4735.56476 + dps: 367613.60996 + tps: 254092.55209 + hps: 4803.77249 } } dps_results: { key: "TestAffliction-AllItems-VialofDragon'sBlood-87063" value: { - dps: 364571.11033 - tps: 253295.26812 - hps: 4834.50344 + dps: 370245.38252 + tps: 257289.84489 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-VialofIchorousBlood-100963" value: { - dps: 362228.75109 - tps: 250746.62924 - hps: 4815.76505 + dps: 369284.68837 + tps: 256319.63981 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-VialofLivingCorruption-105568" value: { - dps: 354946.99444 - tps: 246515.61306 - hps: 5126.38636 + dps: 362980.0271 + tps: 251828.52057 + hps: 5329.80162 } } dps_results: { key: "TestAffliction-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 357426.35972 - tps: 247958.99112 - hps: 4834.50344 + dps: 362941.80752 + tps: 251846.73281 + hps: 4940.18793 } } dps_results: { key: "TestAffliction-AllItems-VisionofthePredator-81192" value: { - dps: 371018.50082 - tps: 256931.68818 - hps: 4901.96162 + dps: 379367.27126 + tps: 261672.52629 + hps: 4955.92817 } } dps_results: { key: "TestAffliction-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 394644.19103 - tps: 271652.2428 - hps: 5476.85529 + dps: 408457.78789 + tps: 280366.82852 + hps: 5617.76795 } } dps_results: { key: "TestAffliction-AllItems-WindsweptPages-81125" value: { - dps: 368831.56979 - tps: 254976.35357 - hps: 5144.8111 + dps: 379269.37059 + tps: 261629.4018 + hps: 5300.71447 } } dps_results: { key: "TestAffliction-AllItems-WoundripperMedallion-93253" value: { - dps: 365363.35705 - tps: 253051.60293 - hps: 4800.02481 + dps: 366331.97665 + tps: 253589.75252 + hps: 4798.52574 } } dps_results: { key: "TestAffliction-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 396567.39534 - tps: 275072.87578 - hps: 4860.73718 + dps: 417494.13132 + tps: 289251.92754 + hps: 5038.37707 } } dps_results: { key: "TestAffliction-AllItems-Yu'lon'sBite-103987" value: { - dps: 394096.77942 - tps: 271898.27654 - hps: 4889.96906 + dps: 404668.33582 + tps: 277614.18842 + hps: 4992.65541 } } dps_results: { key: "TestAffliction-AllItems-ZenAlchemistStone-75274" value: { - dps: 383222.23355 - tps: 264523.71681 - hps: 5013.6424 + dps: 395226.33222 + tps: 273372.4043 + hps: 5133.56807 } } dps_results: { diff --git a/sim/warlock/demonology/TestDemonology.results b/sim/warlock/demonology/TestDemonology.results index 5aa75efc29..65b5ad1891 100644 --- a/sim/warlock/demonology/TestDemonology.results +++ b/sim/warlock/demonology/TestDemonology.results @@ -6,10 +6,10 @@ character_stats_results: { final_stats: 47422 final_stats: 33033 final_stats: 305 - final_stats: 3020 + final_stats: 2860 final_stats: 3036 final_stats: 15032 - final_stats: 2080 + final_stats: 2240 final_stats: 0 final_stats: 0 final_stats: 22802 @@ -23,7 +23,7 @@ character_stats_results: { final_stats: 891342.1 final_stats: 300000 final_stats: 15000 - final_stats: 8.88235 + final_stats: 8.41176 final_stats: 15 final_stats: 12.68 final_stats: 24.79779 @@ -33,1745 +33,1745 @@ character_stats_results: { dps_results: { key: "TestDemonology-AllItems-AgilePrimalDiamond" value: { - dps: 440427.78242 - tps: 274403.19464 + dps: 447801.95062 + tps: 278779.7505 } } dps_results: { key: "TestDemonology-AllItems-AlacrityofXuen-103989" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 409681.12902 - tps: 249274.21975 + dps: 413951.28775 + tps: 251765.77269 } } dps_results: { key: "TestDemonology-AllItems-ArrowflightMedallion-93258" value: { - dps: 402041.90454 - tps: 243377.86851 + dps: 405035.79729 + tps: 244912.90221 } } dps_results: { key: "TestDemonology-AllItems-AssuranceofConsequence-105472" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-AusterePrimalDiamond" value: { - dps: 434037.2843 - tps: 268398.5808 + dps: 441923.47287 + tps: 273054.70367 } } dps_results: { key: "TestDemonology-AllItems-BadJuju-96781" value: { - dps: 404904.7708 - tps: 246478.28962 + dps: 410577.90138 + tps: 249744.01242 } } dps_results: { key: "TestDemonology-AllItems-BadgeofKypariZar-84079" value: { - dps: 399208.65821 - tps: 242612.13149 + dps: 404782.33489 + tps: 245806.30244 } } dps_results: { key: "TestDemonology-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 451662.60451 - tps: 275551.00114 + dps: 455594.9972 + tps: 276552.88423 } } dps_results: { key: "TestDemonology-AllItems-BlossomofPureSnow-89081" value: { - dps: 412258.31941 - tps: 249552.27773 + dps: 415263.71084 + tps: 251051.77377 } } dps_results: { key: "TestDemonology-AllItems-BottleofInfiniteStars-87057" value: { - dps: 402106.49654 - tps: 244578.99942 + dps: 407730.76936 + tps: 247809.57164 } } dps_results: { key: "TestDemonology-AllItems-BraidofTenSongs-84072" value: { - dps: 399208.65821 - tps: 242612.13149 + dps: 404782.33489 + tps: 245806.30244 } } dps_results: { key: "TestDemonology-AllItems-Brawler'sStatue-282039" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395435.40834 + tps: 240424.71329 } } dps_results: { key: "TestDemonology-AllItems-BreathoftheHydra-96827" value: { - dps: 433197.44101 - tps: 261992.58476 + dps: 434541.72311 + tps: 262198.04001 } } dps_results: { key: "TestDemonology-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 397457.42613 - tps: 241441.59937 + dps: 397234.16041 + tps: 241597.80418 } } dps_results: { key: "TestDemonology-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-BurningPrimalDiamond" value: { - dps: 442586.03294 - tps: 275766.2059 + dps: 449989.51829 + tps: 280186.29749 } } dps_results: { key: "TestDemonology-AllItems-CapacitivePrimalDiamond" value: { - dps: 436683.57949 - tps: 269909.14155 + dps: 443646.76123 + tps: 274062.36463 } } dps_results: { key: "TestDemonology-AllItems-CarbonicCarbuncle-81138" value: { - dps: 402676.41113 - tps: 244792.47387 + dps: 407688.2866 + tps: 247440.18324 } } dps_results: { key: "TestDemonology-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 435918.2395 - tps: 264511.3926 + dps: 436909.44908 + tps: 265044.37076 } } dps_results: { key: "TestDemonology-AllItems-CharmofTenSongs-84071" value: { - dps: 398087.30794 - tps: 243218.62415 + dps: 403263.22287 + tps: 245991.90409 } } dps_results: { key: "TestDemonology-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 406835.78458 - tps: 248129.08702 + dps: 412106.7185 + tps: 249865.55866 } } dps_results: { key: "TestDemonology-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 416220.43973 - tps: 253049.41714 + dps: 421787.12789 + tps: 256641.39127 } } dps_results: { key: "TestDemonology-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 405843.35556 - tps: 246411.60395 + dps: 411061.30912 + tps: 249281.68589 } } dps_results: { key: "TestDemonology-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 412183.83185 - tps: 250173.92203 + dps: 418142.0002 + tps: 253201.87433 } } dps_results: { key: "TestDemonology-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 403051.27009 - tps: 244619.3706 + dps: 408679.52293 + tps: 247425.5821 } } dps_results: { key: "TestDemonology-AllItems-CoreofDecency-87497" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-CourageousPrimalDiamond" value: { - dps: 438047.40232 - tps: 270821.93245 + dps: 445276.89537 + tps: 275086.96386 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 405109.25573 - tps: 245546.82515 + dps: 403704.4214 + tps: 245157.89431 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 399876.31897 - tps: 242605.38961 + dps: 405659.54674 + tps: 245536.50452 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 395717.12245 - tps: 240250.18091 + dps: 401259.97754 + tps: 243385.88244 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 397145.05003 - tps: 241288.82057 + dps: 401497.12212 + tps: 243559.89832 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401232.44794 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 410194.45 - tps: 248874.20689 + dps: 417578.07304 + tps: 253163.1569 } } dps_results: { key: "TestDemonology-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 406581.52024 - tps: 246417.96299 + dps: 405168.2105 + tps: 246020.03434 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 400514.14768 - tps: 242995.18092 + dps: 406279.6168 + tps: 245935.19503 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 395717.12245 - tps: 240250.79355 + dps: 401259.97754 + tps: 243386.5972 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 396987.54076 - tps: 241182.14134 + dps: 401697.60057 + tps: 243772.74263 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 413482.0474 - tps: 250969.09641 + dps: 417225.07919 + tps: 253155.57976 } } dps_results: { key: "TestDemonology-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-CurseofHubris-105645" value: { - dps: 408699.30663 - tps: 248233.53068 + dps: 406209.42883 + tps: 246868.56293 } } dps_results: { key: "TestDemonology-AllItems-CutstitcherMedallion-93255" value: { - dps: 407123.73522 - tps: 247160.62132 + dps: 409530.84324 + tps: 248266.50512 } } dps_results: { key: "TestDemonology-AllItems-Daelo'sFinalWords-87496" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 399466.35377 + tps: 242711.53009 } } dps_results: { key: "TestDemonology-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 463229.02702 - tps: 285399.24324 + dps: 470959.24661 + tps: 288909.11666 } } dps_results: { key: "TestDemonology-AllItems-DarkmistVortex-87172" value: { - dps: 407002.23492 - tps: 246882.84233 + dps: 413224.3996 + tps: 250745.89953 } } dps_results: { key: "TestDemonology-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-DestructivePrimalDiamond" value: { - dps: 437164.55903 - tps: 270226.54699 + dps: 444101.09549 + tps: 274353.34123 } } dps_results: { key: "TestDemonology-AllItems-DisciplineofXuen-103986" value: { - dps: 411915.10355 - tps: 250149.0379 + dps: 419170.00714 + tps: 254644.89557 } } dps_results: { key: "TestDemonology-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 409681.12902 - tps: 249274.21975 + dps: 413951.28775 + tps: 251765.77269 } } dps_results: { key: "TestDemonology-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 403850.13944 - tps: 245193.57745 + dps: 406302.75066 + tps: 246295.87596 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 405109.25573 - tps: 245546.82515 + dps: 403704.4214 + tps: 245157.89431 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 399876.31897 - tps: 242605.38961 + dps: 405659.54674 + tps: 245536.50452 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 395717.12245 - tps: 240250.18091 + dps: 401259.97754 + tps: 243385.88244 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 397145.05003 - tps: 241288.82057 + dps: 401497.12212 + tps: 243559.89832 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401233.90731 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 411264.06652 - tps: 249818.218 + dps: 416048.51038 + tps: 252577.99005 } } dps_results: { key: "TestDemonology-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 418817.24995 - tps: 254111.92841 + dps: 424538.65437 + tps: 256937.13819 } } dps_results: { key: "TestDemonology-AllItems-EffulgentPrimalDiamond" value: { - dps: 434037.2843 - tps: 268398.5808 + dps: 441923.47287 + tps: 273054.70367 } } dps_results: { key: "TestDemonology-AllItems-EmberPrimalDiamond" value: { - dps: 436895.63053 - tps: 270137.29005 + dps: 444141.59607 + tps: 274401.79286 } } dps_results: { key: "TestDemonology-AllItems-EmblemofKypariZar-84077" value: { - dps: 399370.22495 - tps: 242322.62887 + dps: 404980.3007 + tps: 245108.3337 } } dps_results: { key: "TestDemonology-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 397767.24548 - tps: 241614.86693 + dps: 404766.03114 + tps: 245657.90601 } } dps_results: { key: "TestDemonology-AllItems-EmptyFruitBarrel-81133" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 461388.22104 - tps: 285250.5745 + dps: 467297.71739 + tps: 287878.94419 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 467273.95438 - tps: 287633.11742 + dps: 473223.85772 + tps: 290473.23714 } } dps_results: { key: "TestDemonology-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 462821.54887 - tps: 286388.38753 + dps: 466224.74526 + tps: 287070.74878 } } dps_results: { key: "TestDemonology-AllItems-EnigmaticPrimalDiamond" value: { - dps: 437164.55903 - tps: 270226.54699 + dps: 444101.09549 + tps: 274353.34123 } } dps_results: { key: "TestDemonology-AllItems-EssenceofTerror-87175" value: { - dps: 420829.21641 - tps: 255557.91695 + dps: 427169.87401 + tps: 258798.60381 } } dps_results: { key: "TestDemonology-AllItems-EternalPrimalDiamond" value: { - dps: 434770.51648 - tps: 268807.19004 + dps: 441989.39975 + tps: 273030.392 } } dps_results: { key: "TestDemonology-AllItems-EvilEyeofGalakras-105491" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401233.19014 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401233.19014 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-FearwurmBadge-84074" value: { - dps: 399370.22495 - tps: 242322.62887 + dps: 404980.3007 + tps: 245108.3337 } } dps_results: { key: "TestDemonology-AllItems-FearwurmRelic-84070" value: { - dps: 397636.76736 - tps: 242616.80842 + dps: 400040.65155 + tps: 243694.62211 } } dps_results: { key: "TestDemonology-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 408460.90794 - tps: 248342.16795 + dps: 415663.49672 + tps: 252827.84226 } } dps_results: { key: "TestDemonology-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 416660.25591 - tps: 253844.44502 + dps: 420304.0663 + tps: 256064.32121 } } dps_results: { key: "TestDemonology-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 421700.17019 - tps: 254159.54144 + dps: 423303.46546 + tps: 255322.982 } } dps_results: { key: "TestDemonology-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 404853.27634 - tps: 245912.16985 + dps: 406823.63007 + tps: 247577.15224 } } dps_results: { key: "TestDemonology-AllItems-FlashingSteelTalisman-81265" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 398541.0244 + tps: 242471.14086 } } dps_results: { key: "TestDemonology-AllItems-FleetPrimalDiamond" value: { - dps: 437384.86112 - tps: 270601.14489 + dps: 444649.94686 + tps: 274856.70561 } } dps_results: { key: "TestDemonology-AllItems-ForlornPrimalDiamond" value: { - dps: 436895.63053 - tps: 270137.29005 + dps: 444141.59607 + tps: 274401.79286 } } dps_results: { key: "TestDemonology-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 404840.41067 - tps: 246429.607 + dps: 410629.15015 + tps: 249728.66277 } } dps_results: { key: "TestDemonology-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 427398.67298 - tps: 259129.84751 + dps: 432338.31614 + tps: 261905.16038 } } dps_results: { key: "TestDemonology-AllItems-Fusion-FireCore-105459" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-GazeoftheTwins-96915" value: { - dps: 404582.7442 - tps: 245832.41225 + dps: 408916.27816 + tps: 248042.43204 } } dps_results: { key: "TestDemonology-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 399457.84345 - tps: 242375.1373 + dps: 399652.42105 + tps: 242750.35984 } } dps_results: { key: "TestDemonology-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 421700.17019 - tps: 254159.54144 + dps: 423303.46546 + tps: 255322.982 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 411816.23307 - tps: 249487.56523 + dps: 410513.44393 + tps: 249186.01643 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 402474.02032 - tps: 244179.14473 + dps: 408302.28442 + tps: 247109.72337 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 395619.98643 - tps: 240140.52505 + dps: 401288.08645 + tps: 243381.5016 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 397043.83026 - tps: 240960.81349 + dps: 402601.45254 + tps: 244393.64356 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 420192.80491 - tps: 255143.14377 + dps: 424889.73936 + tps: 257849.8793 } } dps_results: { key: "TestDemonology-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-Haromm'sTalisman-105527" value: { - dps: 408955.14234 - tps: 253478.13698 + dps: 414774.5047 + tps: 256935.06338 } } dps_results: { key: "TestDemonology-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 403345.27184 - tps: 245557.21666 + dps: 407655.05924 + tps: 247145.29684 } } dps_results: { key: "TestDemonology-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 398014.14661 - tps: 241643.76853 + dps: 401235.30499 + tps: 243425.00386 } } dps_results: { key: "TestDemonology-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 403706.49382 - tps: 245299.09051 + dps: 410426.93685 + tps: 249569.13493 } } dps_results: { key: "TestDemonology-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 400807.97126 - tps: 243173.11575 + dps: 406480.03846 + tps: 246076.24985 } } dps_results: { key: "TestDemonology-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 403827.40833 - tps: 245957.80433 + dps: 409136.2556 + tps: 249046.41573 } } dps_results: { key: "TestDemonology-AllItems-HeartofFire-81181" value: { - dps: 400162.37715 - tps: 243259.45511 + dps: 400000.24646 + tps: 243546.01674 } } dps_results: { key: "TestDemonology-AllItems-HeartwarmerMedallion-93260" value: { - dps: 407123.73522 - tps: 247160.62132 + dps: 409530.84324 + tps: 248266.50512 } } dps_results: { key: "TestDemonology-AllItems-HelmbreakerMedallion-93261" value: { - dps: 402041.90454 - tps: 243377.86851 + dps: 405035.79729 + tps: 244912.90221 } } dps_results: { key: "TestDemonology-AllItems-Horridon'sLastGasp-96757" value: { - dps: 413241.61936 - tps: 250778.29763 + dps: 418920.37592 + tps: 253554.46999 } } dps_results: { key: "TestDemonology-AllItems-ImpassivePrimalDiamond" value: { - dps: 437164.55903 - tps: 270226.54699 + dps: 444101.09549 + tps: 274353.34123 } } dps_results: { key: "TestDemonology-AllItems-IndomitablePrimalDiamond" value: { - dps: 434037.2843 - tps: 268398.5808 + dps: 441923.47287 + tps: 273054.70367 } } dps_results: { key: "TestDemonology-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-InsigniaofKypariZar-84078" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-IronBellyWok-89083" value: { - dps: 403345.27184 - tps: 245557.21666 + dps: 407655.05924 + tps: 247145.29684 } } dps_results: { key: "TestDemonology-AllItems-IronProtectorTalisman-85181" value: { - dps: 396954.27133 - tps: 241139.38734 + dps: 401742.1566 + tps: 243850.04903 } } dps_results: { key: "TestDemonology-AllItems-JadeBanditFigurine-86772" value: { - dps: 401142.97448 - tps: 244061.93911 + dps: 408210.77192 + tps: 249164.09237 } } dps_results: { key: "TestDemonology-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 401142.97448 - tps: 244061.93911 + dps: 408210.77192 + tps: 249164.09237 } } dps_results: { key: "TestDemonology-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 405227.81474 - tps: 246042.48034 + dps: 407661.70464 + tps: 247143.48396 } } dps_results: { key: "TestDemonology-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 410479.34702 - tps: 248588.65241 + dps: 413377.38316 + tps: 250016.98832 } } dps_results: { key: "TestDemonology-AllItems-JadeWarlordFigurine-86775" value: { - dps: 404817.48346 - tps: 245825.86933 + dps: 406413.93951 + tps: 246192.65249 } } dps_results: { key: "TestDemonology-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 395723.91591 - tps: 240246.91055 - hps: 7608.69412 + dps: 401233.19014 + tps: 243397.30783 + hps: 7714.7139 } } dps_results: { key: "TestDemonology-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 447636.82338 - tps: 276915.91583 + dps: 451723.78757 + tps: 279263.92312 } } dps_results: { key: "TestDemonology-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 401967.60809 - tps: 244090.218 + dps: 405180.26236 + tps: 245776.17733 } } dps_results: { key: "TestDemonology-AllItems-KnotofTenSongs-84073" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 397759.18149 + tps: 241363.00184 } } dps_results: { key: "TestDemonology-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 405970.17945 - tps: 246603.86829 + dps: 407881.12611 + tps: 247376.91254 } } dps_results: { key: "TestDemonology-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 406454.58842 - tps: 248004.18156 + dps: 408909.8186 + tps: 249130.28674 } } dps_results: { key: "TestDemonology-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395435.40834 + tps: 240424.71329 } } dps_results: { key: "TestDemonology-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 401074.17439 - tps: 243878.32495 + dps: 406676.24861 + tps: 247095.92963 } } dps_results: { key: "TestDemonology-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 407015.36364 - tps: 247510.92863 + dps: 410511.82503 + tps: 249376.20749 } } dps_results: { key: "TestDemonology-AllItems-LightoftheCosmos-87065" value: { - dps: 420846.74149 - tps: 255950.5809 + dps: 424554.63228 + tps: 257969.72958 } } dps_results: { key: "TestDemonology-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 476929.81737 - tps: 293625.34328 + dps: 477799.47476 + tps: 292807.3913 } } dps_results: { key: "TestDemonology-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 406581.52024 - tps: 246417.96299 + dps: 405168.2105 + tps: 246020.03434 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 400514.14768 - tps: 242995.18092 + dps: 406279.6168 + tps: 245935.19503 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 395717.12245 - tps: 240250.79355 + dps: 401259.97754 + tps: 243386.5972 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 396987.54076 - tps: 241182.14134 + dps: 401697.60057 + tps: 243772.74263 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 412257.52733 - tps: 250264.47643 + dps: 417590.91955 + tps: 253689.0919 } } dps_results: { key: "TestDemonology-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401231.73077 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-MarkoftheCatacombs-83731" value: { - dps: 404058.26419 - tps: 245733.49434 + dps: 410857.68281 + tps: 249527.67374 } } dps_results: { key: "TestDemonology-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 404223.26344 - tps: 245577.14216 + dps: 406891.82059 + tps: 246852.98207 } } dps_results: { key: "TestDemonology-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 398957.12794 - tps: 242441.40877 + dps: 404526.41291 + tps: 245632.42012 } } dps_results: { key: "TestDemonology-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 403850.13944 - tps: 245193.57745 + dps: 406302.75066 + tps: 246295.87596 } } dps_results: { key: "TestDemonology-AllItems-MirrorScope-4700" value: { - dps: 457895.56189 - tps: 281938.81972 + dps: 464964.13449 + tps: 285497.44122 } } dps_results: { key: "TestDemonology-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 398014.14661 - tps: 241643.76853 + dps: 401235.30499 + tps: 243425.00386 } } dps_results: { key: "TestDemonology-AllItems-MistdancerDefenderStone-101087" value: { - dps: 406663.1019 - tps: 247907.73575 + dps: 408091.16317 + tps: 248422.29723 } } dps_results: { key: "TestDemonology-AllItems-MistdancerIdolofRage-101113" value: { - dps: 401074.17439 - tps: 243878.32495 + dps: 406680.4229 + tps: 247095.92963 } } dps_results: { key: "TestDemonology-AllItems-MistdancerStoneofRage-101117" value: { - dps: 405174.12726 - tps: 246272.3266 + dps: 409834.7856 + tps: 248985.14075 } } dps_results: { key: "TestDemonology-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 405843.35556 - tps: 246411.60395 + dps: 411061.30912 + tps: 249281.68589 } } dps_results: { key: "TestDemonology-AllItems-MithrilWristwatch-282033" value: { - dps: 415807.6092 - tps: 252763.55118 + dps: 419449.92643 + tps: 254075.86066 } } dps_results: { key: "TestDemonology-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 405472.73808 - tps: 247595.88947 + dps: 413471.41734 + tps: 252062.75436 } } dps_results: { key: "TestDemonology-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 414181.9452 - tps: 251909.09593 + dps: 420063.6566 + tps: 254920.98914 } } dps_results: { key: "TestDemonology-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-NitroBoosts-4223" value: { - dps: 465195.07557 - tps: 286611.155 + dps: 472952.15634 + tps: 290135.66853 } } dps_results: { key: "TestDemonology-AllItems-OathswornDefenderIdol-101303" value: { - dps: 398014.14661 - tps: 241643.76853 + dps: 401235.30499 + tps: 243425.00386 } } dps_results: { key: "TestDemonology-AllItems-OathswornDefenderStone-101306" value: { - dps: 404622.71516 - tps: 246742.17502 + dps: 408107.63597 + tps: 248091.2098 } } dps_results: { key: "TestDemonology-AllItems-OathswornIdolofBattle-101295" value: { - dps: 400807.97126 - tps: 243173.11575 + dps: 406482.48567 + tps: 246076.24985 } } dps_results: { key: "TestDemonology-AllItems-OathswornStoneofBattle-101294" value: { - dps: 405335.24385 - tps: 247070.32463 + dps: 411190.23439 + tps: 250258.0246 } } dps_results: { key: "TestDemonology-AllItems-PhaseFingers-4697" value: { - dps: 464090.34548 - tps: 285853.83523 + dps: 467625.01583 + tps: 286957.76396 } } dps_results: { key: "TestDemonology-AllItems-PouchofWhiteAsh-103639" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 397759.18149 + tps: 241363.00184 } } dps_results: { key: "TestDemonology-AllItems-PowerfulPrimalDiamond" value: { - dps: 434037.2843 - tps: 268398.5808 + dps: 441923.47287 + tps: 273054.70367 } } dps_results: { key: "TestDemonology-AllItems-PriceofProgress-81266" value: { - dps: 404210.15742 - tps: 245416.72224 + dps: 409391.30082 + tps: 248271.3878 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 416299.27136 - tps: 252231.78875 + dps: 414980.28057 + tps: 251878.55959 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 404726.43289 - tps: 245547.73349 + dps: 410495.96323 + tps: 248475.26437 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 395661.66319 - tps: 240200.58159 + dps: 401288.08645 + tps: 243383.62208 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 397317.94623 - tps: 241348.87621 + dps: 402581.55476 + tps: 244795.35608 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401233.19014 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 428952.46555 - tps: 259834.26673 + dps: 434196.1596 + tps: 262734.73067 } } dps_results: { key: "TestDemonology-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401231.73077 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 404081.53822 - tps: 245258.44559 + dps: 409696.82647 + tps: 248028.94836 } } dps_results: { key: "TestDemonology-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 425500.00524 - tps: 262842.23187 + dps: 431447.10048 + tps: 266594.9771 } } dps_results: { key: "TestDemonology-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 423037.71348 - tps: 253583.69162 + dps: 428748.97172 + tps: 257213.33825 } } dps_results: { key: "TestDemonology-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 418827.36677 - tps: 251389.1758 + dps: 424397.12868 + tps: 254769.13486 } } dps_results: { key: "TestDemonology-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-RegaliaoftheHornedNightmare" value: { - dps: 340062.90639 - tps: 208038.77934 + dps: 340387.84838 + tps: 208038.79428 } } dps_results: { key: "TestDemonology-AllItems-RegaliaoftheThousandfoldHells" value: { - dps: 325545.01687 - tps: 194702.87995 + dps: 324750.39086 + tps: 194163.33516 } } dps_results: { key: "TestDemonology-AllItems-RelicofChi-Ji-79330" value: { - dps: 407168.83998 - tps: 247190.74151 + dps: 412409.19762 + tps: 250076.29862 } } dps_results: { key: "TestDemonology-AllItems-RelicofKypariZar-84075" value: { - dps: 401568.50696 - tps: 244152.76707 + dps: 405734.80244 + tps: 246446.19268 } } dps_results: { key: "TestDemonology-AllItems-RelicofNiuzao-79329" value: { - dps: 397428.00302 - tps: 241202.51999 + dps: 401093.8167 + tps: 243683.48021 } } dps_results: { key: "TestDemonology-AllItems-RelicofXuen-79327" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-RelicofXuen-79328" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-RelicofYu'lon-79331" value: { - dps: 415184.33033 - tps: 252119.83163 + dps: 421565.1313 + tps: 256007.8669 } } dps_results: { key: "TestDemonology-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401229.06498 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-ResolveofNiuzao-103990" value: { - dps: 404406.95048 - tps: 246140.40092 + dps: 410071.38913 + tps: 249399.87034 } } dps_results: { key: "TestDemonology-AllItems-ReverberatingPrimalDiamond" value: { - dps: 440427.78242 - tps: 274403.19464 + dps: 447801.95062 + tps: 278779.7505 } } dps_results: { key: "TestDemonology-AllItems-RevitalizingPrimalDiamond" value: { - dps: 440427.78242 - tps: 274403.19464 + dps: 447801.95062 + tps: 278779.7505 } } dps_results: { key: "TestDemonology-AllItems-RuneofRe-Origination-96918" value: { - dps: 397518.51664 - tps: 241599.87284 + dps: 399928.10281 + tps: 242908.04884 } } dps_results: { key: "TestDemonology-AllItems-SI:7Operative'sManual-92784" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 397759.18149 + tps: 241363.00184 } } dps_results: { key: "TestDemonology-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 406437.98068 - tps: 246743.48425 + dps: 408856.09256 + tps: 247859.09252 } } dps_results: { key: "TestDemonology-AllItems-SearingWords-81267" value: { - dps: 400097.879 - tps: 242723.17991 + dps: 405820.59368 + tps: 245667.85955 } } dps_results: { key: "TestDemonology-AllItems-Sha-SkinRegalia" value: { - dps: 306984.63205 - tps: 185864.97913 + dps: 306734.75934 + tps: 186035.69943 } } dps_results: { key: "TestDemonology-AllItems-ShadowflameRegalia" value: { - dps: 243457.24128 - tps: 143967.38357 + dps: 243535.41519 + tps: 144409.63672 } } dps_results: { key: "TestDemonology-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 418089.79897 - tps: 253832.43864 + dps: 420781.91698 + tps: 256257.17697 } } dps_results: { key: "TestDemonology-AllItems-SigilofCompassion-83736" value: { - dps: 398957.12794 - tps: 242441.40877 + dps: 404523.55347 + tps: 245632.42012 } } dps_results: { key: "TestDemonology-AllItems-SigilofDevotion-83740" value: { - dps: 399160.49473 - tps: 242213.02922 + dps: 404813.95946 + tps: 245015.03001 } } dps_results: { key: "TestDemonology-AllItems-SigilofFidelity-83737" value: { - dps: 402127.91372 - tps: 243951.70274 + dps: 407658.15106 + tps: 247112.94333 } } dps_results: { key: "TestDemonology-AllItems-SigilofGrace-83738" value: { - dps: 398957.12794 - tps: 242441.40877 + dps: 404526.41291 + tps: 245632.42012 } } dps_results: { key: "TestDemonology-AllItems-SigilofKypariZar-84076" value: { - dps: 405360.41 - tps: 246606.58706 + dps: 411462.47818 + tps: 250085.3605 } } dps_results: { key: "TestDemonology-AllItems-SigilofPatience-83739" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-SigilofRampage-105580" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-SigiloftheCatacombs-83732" value: { - dps: 398700.40967 - tps: 243658.62006 + dps: 406897.81158 + tps: 248398.05117 } } dps_results: { key: "TestDemonology-AllItems-SinisterPrimalDiamond" value: { - dps: 465195.07557 - tps: 286611.155 + dps: 472952.15634 + tps: 290135.66853 } } dps_results: { key: "TestDemonology-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-SkullrenderMedallion-93256" value: { - dps: 402041.90454 - tps: 243377.86851 + dps: 405035.79729 + tps: 244912.90221 } } dps_results: { key: "TestDemonology-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 410521.84996 - tps: 249629.21139 + dps: 414712.42754 + tps: 251855.88755 } } dps_results: { key: "TestDemonology-AllItems-SoulBarrier-96927" value: { - dps: 397062.32023 - tps: 241304.35983 + dps: 402743.60735 + tps: 244788.2494 } } dps_results: { key: "TestDemonology-AllItems-SparkofZandalar-96770" value: { - dps: 398631.19647 - tps: 243252.17002 + dps: 405078.30298 + tps: 246602.25125 } } dps_results: { key: "TestDemonology-AllItems-SpiritsoftheSun-87163" value: { - dps: 408610.8984 - tps: 248008.27643 + dps: 413813.87901 + tps: 250902.74589 } } dps_results: { key: "TestDemonology-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 407476.63509 - tps: 247641.07147 + dps: 413810.46817 + tps: 251534.54637 } } dps_results: { key: "TestDemonology-AllItems-SpringrainIdolofRage-101009" value: { - dps: 401074.17439 - tps: 243878.32495 + dps: 406677.55193 + tps: 247095.92963 } } dps_results: { key: "TestDemonology-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 416962.00557 - tps: 253307.04222 + dps: 418307.28319 + tps: 253568.73548 } } dps_results: { key: "TestDemonology-AllItems-SpringrainStoneofRage-101012" value: { - dps: 406567.96902 - tps: 247163.57812 + dps: 410042.0157 + tps: 249265.78482 } } dps_results: { key: "TestDemonology-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 405843.35556 - tps: 246411.60395 + dps: 411061.30912 + tps: 249281.68589 } } dps_results: { key: "TestDemonology-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 418089.79897 - tps: 253832.43864 + dps: 420781.91698 + tps: 256257.17697 } } dps_results: { key: "TestDemonology-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 403411.30982 - tps: 245464.6235 + dps: 409058.36463 + tps: 248711.58616 } } dps_results: { key: "TestDemonology-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 408283.85294 - tps: 248369.8017 + dps: 412924.389 + tps: 251126.28005 } } dps_results: { key: "TestDemonology-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 401074.17439 - tps: 243878.32495 + dps: 406680.4229 + tps: 247095.92963 } } dps_results: { key: "TestDemonology-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 416092.51642 - tps: 252794.2253 + dps: 423900.03322 + tps: 257402.30814 } } dps_results: { key: "TestDemonology-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 403834.39673 - tps: 245415.39631 + dps: 410102.78964 + tps: 248487.23371 } } dps_results: { key: "TestDemonology-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 405843.35556 - tps: 246411.60395 + dps: 411061.30912 + tps: 249281.68589 } } dps_results: { key: "TestDemonology-AllItems-StuffofNightmares-87160" value: { - dps: 402536.19409 - tps: 244870.65073 + dps: 408167.96941 + tps: 248106.6206 } } dps_results: { key: "TestDemonology-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 398014.14661 - tps: 241643.76853 + dps: 401231.60097 + tps: 243425.00386 } } dps_results: { key: "TestDemonology-AllItems-SunsoulDefenderStone-101163" value: { - dps: 405658.89527 - tps: 246443.55576 + dps: 409481.46205 + tps: 248418.17185 } } dps_results: { key: "TestDemonology-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 400807.97126 - tps: 243173.11575 + dps: 406482.48567 + tps: 246076.24985 } } dps_results: { key: "TestDemonology-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 405534.8729 - tps: 246285.04833 + dps: 409273.33066 + tps: 248934.96086 } } dps_results: { key: "TestDemonology-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 405843.35556 - tps: 246411.60395 + dps: 411061.30912 + tps: 249281.68589 } } dps_results: { key: "TestDemonology-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 463229.63276 - tps: 285399.24324 + dps: 470959.24661 + tps: 288909.11666 } } dps_results: { key: "TestDemonology-AllItems-SymboloftheCatacombs-83735" value: { - dps: 398957.12794 - tps: 242441.40877 + dps: 404526.41291 + tps: 245632.42012 } } dps_results: { @@ -1784,218 +1784,218 @@ dps_results: { dps_results: { key: "TestDemonology-AllItems-TalismanofBloodlust-96864" value: { - dps: 398693.75477 - tps: 243965.94359 + dps: 406082.68407 + tps: 248474.16322 } } dps_results: { key: "TestDemonology-AllItems-TerrorintheMists-87167" value: { - dps: 404795.18601 - tps: 245465.21113 + dps: 411452.33987 + tps: 248956.45431 } } dps_results: { key: "TestDemonology-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-Thok'sTailTip-105609" value: { - dps: 425500.00524 - tps: 262842.23187 + dps: 431447.10048 + tps: 266594.9771 } } dps_results: { key: "TestDemonology-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 411071.71854 - tps: 249485.92497 + dps: 417131.53188 + tps: 252586.18427 } } dps_results: { key: "TestDemonology-AllItems-TickingEbonDetonator-105612" value: { - dps: 407980.77641 - tps: 248566.08615 + dps: 413702.47278 + tps: 251870.44827 } } dps_results: { key: "TestDemonology-AllItems-Time-LostArtifact-103678" value: { - dps: 401760.64242 - tps: 244344.25569 + dps: 407378.87664 + tps: 247570.48345 } } dps_results: { key: "TestDemonology-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 401074.17439 - tps: 243878.32495 + dps: 406680.4229 + tps: 247095.92963 } } dps_results: { key: "TestDemonology-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 405286.57202 - tps: 246440.46205 + dps: 411540.02669 + tps: 249916.19723 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 408567.29684 - tps: 247584.51103 + dps: 407170.05994 + tps: 247225.17873 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 395462.30681 + tps: 240351.91024 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 401219.47682 - tps: 243412.77415 + dps: 407148.27526 + tps: 246373.51621 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 395717.19038 - tps: 240251.67848 + dps: 401294.43821 + tps: 243379.83421 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 397579.40629 - tps: 241356.92679 + dps: 401773.56636 + tps: 243840.62052 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 416054.37044 - tps: 252111.20853 + dps: 422019.69378 + tps: 255665.49578 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401235.28978 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-TyrannicalPrimalDiamond" value: { - dps: 434770.51648 - tps: 268807.19004 + dps: 441989.39975 + tps: 273030.392 } } dps_results: { key: "TestDemonology-AllItems-VaporshieldMedallion-93262" value: { - dps: 404223.26344 - tps: 245577.14216 + dps: 406891.82059 + tps: 246852.98207 } } dps_results: { key: "TestDemonology-AllItems-VialofDragon'sBlood-87063" value: { - dps: 402106.49654 - tps: 244578.99942 + dps: 407730.76936 + tps: 247809.57164 } } dps_results: { key: "TestDemonology-AllItems-VialofIchorousBlood-100963" value: { - dps: 403245.99862 - tps: 244807.31494 + dps: 408479.83427 + tps: 247707.90853 } } dps_results: { key: "TestDemonology-AllItems-VialofLivingCorruption-105568" value: { - dps: 397522.76473 - tps: 241906.10605 + dps: 402098.37796 + tps: 244306.11996 } } dps_results: { key: "TestDemonology-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 395723.91591 - tps: 240246.91055 + dps: 401236.74914 + tps: 243397.30783 } } dps_results: { key: "TestDemonology-AllItems-VisionofthePredator-81192" value: { - dps: 411514.75302 - tps: 249236.54936 + dps: 417626.20107 + tps: 252959.95398 } } dps_results: { key: "TestDemonology-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 421514.04402 - tps: 255160.53942 + dps: 426833.49571 + tps: 259194.67156 } } dps_results: { key: "TestDemonology-AllItems-WindsweptPages-81125" value: { - dps: 398299.46307 - tps: 242605.15455 + dps: 405238.3014 + tps: 246191.1828 } } dps_results: { key: "TestDemonology-AllItems-WoundripperMedallion-93253" value: { - dps: 402041.90454 - tps: 243377.86851 + dps: 405035.79729 + tps: 244912.90221 } } dps_results: { key: "TestDemonology-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 424746.51897 - tps: 255828.81791 + dps: 427534.90189 + tps: 257707.15884 } } dps_results: { key: "TestDemonology-AllItems-Yu'lon'sBite-103987" value: { - dps: 427250.04004 - tps: 257914.12622 + dps: 433525.90292 + tps: 260937.67599 } } dps_results: { key: "TestDemonology-AllItems-ZenAlchemistStone-75274" value: { - dps: 414910.42808 - tps: 252098.88117 + dps: 419108.0159 + tps: 254889.75885 } } dps_results: { diff --git a/sim/warlock/destruction/TestDestruction.results b/sim/warlock/destruction/TestDestruction.results index 39ad555eb1..6f8ad40080 100644 --- a/sim/warlock/destruction/TestDestruction.results +++ b/sim/warlock/destruction/TestDestruction.results @@ -6,13 +6,13 @@ character_stats_results: { final_stats: 47422 final_stats: 30814 final_stats: 305 - final_stats: 3040 - final_stats: 8611 - final_stats: 10199 - final_stats: 2080 + final_stats: 2860 + final_stats: 5241 + final_stats: 14069 + final_stats: 2240 final_stats: 0 final_stats: 0 - final_stats: 24283 + final_stats: 24108 final_stats: 161.7 final_stats: 0 final_stats: 50737.5 @@ -23,2418 +23,2418 @@ character_stats_results: { final_stats: 891342.1 final_stats: 300000 final_stats: 108750 - final_stats: 8.94118 - final_stats: 15.05882 - final_stats: 21.97167 - final_stats: 33.21364 + final_stats: 8.41176 + final_stats: 15 + final_stats: 16.355 + final_stats: 27.59698 final_stats: 0 } } dps_results: { key: "TestDestruction-AllItems-AgilePrimalDiamond" value: { - dps: 432420.45081 - tps: 340752.13535 - hps: 1999.57744 + dps: 438019.09317 + tps: 344770.96732 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-AlacrityofXuen-103989" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 388593.32809 - tps: 305016.76829 - hps: 2069.39924 + dps: 395935.76798 + tps: 308939.73078 + hps: 2238.01146 } } dps_results: { key: "TestDestruction-AllItems-ArrowflightMedallion-93258" value: { - dps: 384750.76027 - tps: 302792.89409 - hps: 2028.54606 + dps: 389553.74253 + tps: 304252.84606 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-AssuranceofConsequence-105472" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-AusterePrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 2013.12 + dps: 429163.76165 + tps: 336891.43254 + hps: 2167.17004 } } dps_results: { key: "TestDestruction-AllItems-BadJuju-96781" value: { - dps: 387273.46584 - tps: 305147.29945 - hps: 2027.06049 + dps: 394077.31769 + tps: 308659.75022 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-BadgeofKypariZar-84079" value: { - dps: 381382.70392 - tps: 299792.96582 - hps: 2027.06049 + dps: 388106.20322 + tps: 303254.55249 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-BlossomofPureSnow-89081" value: { - dps: 394266.38197 - tps: 309975.92204 - hps: 2036.7167 + dps: 397254.12676 + tps: 310576.50676 + hps: 2184.53093 } } dps_results: { key: "TestDestruction-AllItems-BottleofInfiniteStars-87057" value: { - dps: 384380.28151 - tps: 302517.5761 - hps: 2027.06049 + dps: 391142.19216 + tps: 306002.80336 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-BraidofTenSongs-84072" value: { - dps: 381382.70392 - tps: 299792.96582 - hps: 2027.06049 + dps: 388106.20322 + tps: 303254.55249 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Brawler'sStatue-282039" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384443.13218 + tps: 300510.8336 + hps: 2203.10056 } } dps_results: { key: "TestDestruction-AllItems-BreathoftheHydra-96827" value: { - dps: 411430.13109 - tps: 323195.43742 - hps: 2096.13951 + dps: 417594.16275 + tps: 325555.60653 + hps: 2281.83578 } } dps_results: { key: "TestDestruction-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2076.85817 + dps: 384443.13218 + tps: 300510.8336 + hps: 2256.88881 } } dps_results: { key: "TestDestruction-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-BurningPrimalDiamond" value: { - dps: 434988.64079 - tps: 342566.12426 - hps: 2001.06301 + dps: 439687.17707 + tps: 345813.3703 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-CapacitivePrimalDiamond" value: { - dps: 425559.8325 - tps: 334396.03827 - hps: 1999.57744 + dps: 430262.04114 + tps: 337002.58433 + hps: 2153.33396 } } dps_results: { key: "TestDestruction-AllItems-CarbonicCarbuncle-81138" value: { - dps: 385546.49779 - tps: 303717.87021 - hps: 2036.7167 + dps: 391304.24805 + tps: 305698.20588 + hps: 2197.90106 } } dps_results: { key: "TestDestruction-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 414365.56337 - tps: 326204.09607 - hps: 2033.74556 + dps: 420852.78653 + tps: 329457.04657 + hps: 2207.55727 } } dps_results: { key: "TestDestruction-AllItems-CharmofTenSongs-84071" value: { - dps: 387815.64839 - tps: 304592.78848 - hps: 2058.25747 + dps: 390243.78411 + tps: 304300.39008 + hps: 2235.7831 } } dps_results: { key: "TestDestruction-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 391643.24703 - tps: 307109.67668 - hps: 2104.31014 + dps: 393568.58026 + tps: 307488.47325 + hps: 2242.46817 } } dps_results: { key: "TestDestruction-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 396468.56572 - tps: 312624.84438 - hps: 2028.54606 + dps: 404651.7881 + tps: 317223.63276 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 395091.34045 - tps: 310500.48952 - hps: 2030.03163 + dps: 401312.65907 + tps: 312826.79149 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 392545.59628 - tps: 308633.17614 - hps: 2029.28885 + dps: 401107.74408 + tps: 313582.15462 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 386384.67482 - tps: 304023.48889 - hps: 2037.45948 + dps: 393433.7302 + tps: 307424.13397 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-CoreofDecency-87497" value: { - dps: 383622.46573 - tps: 301277.31808 - hps: 2027.80328 + dps: 389815.84845 + tps: 304058.19671 + hps: 2187.50207 } } dps_results: { key: "TestDestruction-AllItems-CourageousPrimalDiamond" value: { - dps: 426515.72776 - tps: 334882.93185 - hps: 1999.57744 + dps: 432037.67873 + tps: 338873.27761 + hps: 2153.33396 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 384582.11754 - tps: 302376.4833 - hps: 2030.03163 + dps: 387711.75391 + tps: 301495.90293 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 382300.94455 - tps: 300774.0248 - hps: 2044.05603 + dps: 389091.33941 + tps: 303770.96682 + hps: 2208.51558 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2042.27219 + dps: 384449.90424 + tps: 299944.78192 + hps: 2212.37864 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2082.82786 + dps: 384449.90424 + tps: 299944.78192 + hps: 2256.29289 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 389032.11692 - tps: 306263.65619 - hps: 2025.57492 + dps: 395918.48973 + tps: 309493.84416 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 386158.66298 - tps: 303975.59249 - hps: 2027.06049 + dps: 388730.71828 + tps: 302640.64741 + hps: 2191.95878 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 383635.63254 - tps: 302089.67301 - hps: 2048.37338 + dps: 389928.68405 + tps: 304409.70541 + hps: 2215.47621 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2045.04952 + dps: 384449.90424 + tps: 299944.78192 + hps: 2215.56439 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2092.95984 + dps: 384449.90424 + tps: 299944.78192 + hps: 2267.44237 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 391754.85488 - tps: 307991.84645 - hps: 2033.00277 + dps: 397042.4857 + tps: 309850.781 + hps: 2186.75929 } } dps_results: { key: "TestDestruction-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-CurseofHubris-105645" value: { - dps: 393923.66987 - tps: 310117.99692 - hps: 2193.26937 + dps: 394773.07688 + tps: 308743.32679 + hps: 2353.51915 } } dps_results: { key: "TestDestruction-AllItems-CutstitcherMedallion-93255" value: { - dps: 388270.51323 - tps: 305122.58771 - hps: 2028.54606 + dps: 392014.05555 + tps: 305729.3607 + hps: 2186.0165 } } dps_results: { key: "TestDestruction-AllItems-Daelo'sFinalWords-87496" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 381753.4021 + tps: 297626.18332 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 434499.3134 - tps: 341502.27824 - hps: 2091.68279 + dps: 440565.98694 + tps: 344480.65974 + hps: 2252.12437 } } dps_results: { key: "TestDestruction-AllItems-DarkmistVortex-87172" value: { - dps: 389230.66374 - tps: 304431.3157 - hps: 2113.96635 + dps: 395569.24487 + tps: 307819.0682 + hps: 2285.5497 } } dps_results: { key: "TestDestruction-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-DestructivePrimalDiamond" value: { - dps: 426071.51328 - tps: 334668.89994 - hps: 1998.09187 + dps: 433397.51352 + tps: 339454.04412 + hps: 2155.56231 } } dps_results: { key: "TestDestruction-AllItems-DisciplineofXuen-103986" value: { - dps: 394563.05699 - tps: 311763.02879 - hps: 2027.06049 + dps: 400901.42994 + tps: 314725.92423 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 388593.32809 - tps: 305016.76829 - hps: 2069.39924 + dps: 395935.76798 + tps: 308939.73078 + hps: 2238.01146 } } dps_results: { key: "TestDestruction-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 384958.45006 - tps: 302447.65118 - hps: 2032.25999 + dps: 390471.21146 + tps: 304581.70829 + hps: 2196.41549 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 384582.11754 - tps: 302376.4833 - hps: 2030.03163 + dps: 387711.75391 + tps: 301495.90293 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 382300.94455 - tps: 300774.0248 - hps: 2044.05603 + dps: 389091.33941 + tps: 303770.96682 + hps: 2208.51558 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2042.27219 + dps: 384449.90424 + tps: 299944.78192 + hps: 2212.37864 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2082.82786 + dps: 384449.90424 + tps: 299944.78192 + hps: 2256.29289 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 389280.56999 - tps: 306586.2516 - hps: 2021.11821 + dps: 395328.80999 + tps: 308536.02088 + hps: 2185.27372 } } dps_results: { key: "TestDestruction-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 398035.58445 - tps: 312992.63466 - hps: 2026.31771 + dps: 406089.95962 + tps: 317241.83344 + hps: 2186.0165 } } dps_results: { key: "TestDestruction-AllItems-EffulgentPrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 2013.12 + dps: 429163.76165 + tps: 336891.43254 + hps: 2167.17004 } } dps_results: { key: "TestDestruction-AllItems-EmberPrimalDiamond" value: { - dps: 425808.78552 - tps: 334427.78499 - hps: 2001.06301 + dps: 430785.6579 + tps: 337900.99421 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-EmblemofKypariZar-84077" value: { - dps: 379850.30879 - tps: 298648.21299 - hps: 2023.34657 + dps: 388707.24155 + tps: 303852.18314 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 380807.99245 - tps: 298833.11375 - hps: 2051.5724 + dps: 386436.59376 + tps: 300645.37442 + hps: 2235.7831 } } dps_results: { key: "TestDestruction-AllItems-EmptyFruitBarrel-81133" value: { - dps: 383972.79316 - tps: 301859.76862 - hps: 2028.54606 + dps: 389478.1274 + tps: 303897.79937 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-DancingSteel-4444" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 432189.69539 - tps: 340135.82547 - hps: 2101.339 + dps: 431278.16414 + tps: 337059.2399 + hps: 2245.43931 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 435968.38347 - tps: 342722.01402 - hps: 2092.42558 + dps: 441241.92064 + tps: 344815.34572 + hps: 2245.43931 } } dps_results: { key: "TestDestruction-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 434683.9877 - tps: 342101.56669 - hps: 2096.88229 + dps: 434716.02891 + tps: 338918.09461 + hps: 2258.06665 } } dps_results: { key: "TestDestruction-AllItems-EnigmaticPrimalDiamond" value: { - dps: 426071.51328 - tps: 334668.89994 - hps: 1998.09187 + dps: 433397.51352 + tps: 339454.04412 + hps: 2155.56231 } } dps_results: { key: "TestDestruction-AllItems-EssenceofTerror-87175" value: { - dps: 404732.49436 - tps: 317378.83174 - hps: 2119.90863 + dps: 406093.30643 + tps: 315910.03046 + hps: 2279.60742 } } dps_results: { key: "TestDestruction-AllItems-EternalPrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 1999.57744 + dps: 429163.76165 + tps: 336891.43254 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-EvilEyeofGalakras-105491" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-FearwurmBadge-84074" value: { - dps: 379850.30879 - tps: 298648.21299 - hps: 2023.34657 + dps: 388707.24155 + tps: 303852.18314 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-FearwurmRelic-84070" value: { - dps: 387261.65463 - tps: 303893.49531 - hps: 2056.02911 + dps: 390855.89691 + tps: 305063.89058 + hps: 2232.06918 } } dps_results: { key: "TestDestruction-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 392974.27349 - tps: 307941.35192 - hps: 2090.94001 + dps: 396062.26092 + tps: 309456.59552 + hps: 2241.72538 } } dps_results: { key: "TestDestruction-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 396663.27754 - tps: 312867.19905 - hps: 2028.54606 + dps: 405133.84236 + tps: 317615.19735 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 391008.05645 - tps: 302804.31246 - hps: 2085.53405 + dps: 392592.64576 + tps: 302451.18587 + hps: 2236.40248 } } dps_results: { key: "TestDestruction-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 386269.27016 - tps: 303893.86385 - hps: 2026.31771 + dps: 387669.38603 + tps: 302032.90293 + hps: 2191.95878 } } dps_results: { key: "TestDestruction-AllItems-FlashingSteelTalisman-81265" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383995.31053 + tps: 299510.9087 + hps: 2191.216 } } dps_results: { key: "TestDestruction-AllItems-FleetPrimalDiamond" value: { - dps: 425891.70208 - tps: 335015.87234 - hps: 1999.57744 + dps: 431783.23023 + tps: 339271.79187 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-ForlornPrimalDiamond" value: { - dps: 425808.78552 - tps: 334427.78499 - hps: 2001.06301 + dps: 430785.6579 + tps: 337900.99421 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 387273.46584 - tps: 305147.29945 - hps: 2060.02822 + dps: 394077.31769 + tps: 308659.75022 + hps: 2232.74584 } } dps_results: { key: "TestDestruction-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 404913.11935 - tps: 318142.88086 - hps: 2035.23113 + dps: 410998.1215 + tps: 321056.90061 + hps: 2192.70157 } } dps_results: { key: "TestDestruction-AllItems-Fusion-FireCore-105459" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-GazeoftheTwins-96915" value: { - dps: 388500.13681 - tps: 305785.40989 - hps: 2030.03163 + dps: 395148.53416 + tps: 309370.31424 + hps: 2200.8722 } } dps_results: { key: "TestDestruction-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 379908.98947 - tps: 298817.23021 - hps: 2022.60378 + dps: 387305.49199 + tps: 303144.64366 + hps: 2188.24486 } } dps_results: { key: "TestDestruction-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 391008.05645 - tps: 302804.31246 - hps: 2085.53405 + dps: 392592.64576 + tps: 302451.18587 + hps: 2236.40248 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 390258.32378 - tps: 307402.03673 - hps: 2024.83214 + dps: 391798.74617 + tps: 304735.71878 + hps: 2193.44435 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 386817.33954 - tps: 304343.21157 - hps: 2067.57626 + dps: 392983.14936 + tps: 306717.75269 + hps: 2222.89507 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2054.67815 + dps: 384449.90424 + tps: 299944.78192 + hps: 2226.609 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2128.2247 + dps: 384449.90424 + tps: 299944.78192 + hps: 2306.24625 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 399866.22301 - tps: 314752.93404 - hps: 2027.80328 + dps: 405490.75547 + tps: 316790.77797 + hps: 2191.216 } } dps_results: { key: "TestDestruction-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Haromm'sTalisman-105527" value: { - dps: 396449.29556 - tps: 315187.75199 - hps: 2027.06049 + dps: 404438.05101 + tps: 319932.92869 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 382977.6527 - tps: 300324.40902 - hps: 2071.6276 + dps: 388999.2037 + tps: 302721.50466 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2091.92155 + dps: 384449.90424 + tps: 299944.78192 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 386809.87004 - tps: 304756.01409 - hps: 2091.92155 + dps: 393543.26991 + tps: 308137.80239 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 383327.79441 - tps: 301655.6809 - hps: 2027.06049 + dps: 391609.44882 + tps: 305764.33986 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 386503.69411 - tps: 304442.51619 - hps: 2027.06049 + dps: 393271.02471 + tps: 307958.13963 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-HeartofFire-81181" value: { - dps: 382366.98313 - tps: 300687.61397 - hps: 2027.06049 + dps: 389096.90931 + tps: 304724.969 + hps: 2203.10056 } } dps_results: { key: "TestDestruction-AllItems-HeartwarmerMedallion-93260" value: { - dps: 388270.51323 - tps: 305122.58771 - hps: 2028.54606 + dps: 392014.05555 + tps: 305729.3607 + hps: 2186.0165 } } dps_results: { key: "TestDestruction-AllItems-HelmbreakerMedallion-93261" value: { - dps: 384750.76027 - tps: 302792.89409 - hps: 2028.54606 + dps: 389553.74253 + tps: 304252.84606 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-Horridon'sLastGasp-96757" value: { - dps: 392815.51811 - tps: 308653.73538 - hps: 2030.77442 + dps: 401335.40027 + tps: 313989.00227 + hps: 2185.27372 } } dps_results: { key: "TestDestruction-AllItems-ImpassivePrimalDiamond" value: { - dps: 426071.51328 - tps: 334668.89994 - hps: 1998.09187 + dps: 433397.51352 + tps: 339454.04412 + hps: 2155.56231 } } dps_results: { key: "TestDestruction-AllItems-IndomitablePrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 2013.12 + dps: 429163.76165 + tps: 336891.43254 + hps: 2167.17004 } } dps_results: { key: "TestDestruction-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-InsigniaofKypariZar-84078" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-IronBellyWok-89083" value: { - dps: 382977.6527 - tps: 300324.40902 - hps: 2071.6276 + dps: 388999.2037 + tps: 302721.50466 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-IronProtectorTalisman-85181" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2074.76068 + dps: 384449.90424 + tps: 299944.78192 + hps: 2246.58037 } } dps_results: { key: "TestDestruction-AllItems-JadeBanditFigurine-86772" value: { - dps: 385290.59577 - tps: 302417.37938 - hps: 2069.39924 + dps: 388145.09141 + tps: 302076.9532 + hps: 2258.80944 } } dps_results: { key: "TestDestruction-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 385290.59577 - tps: 302417.37938 - hps: 2069.39924 + dps: 388145.09141 + tps: 302076.9532 + hps: 2258.80944 } } dps_results: { key: "TestDestruction-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 385557.66253 - tps: 302713.39551 - hps: 2033.00277 + dps: 391299.98954 + tps: 305131.20479 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 393127.01157 - tps: 309097.1658 - hps: 2038.20227 + dps: 396142.62806 + tps: 309296.28442 + hps: 2177.84586 } } dps_results: { key: "TestDestruction-AllItems-JadeWarlordFigurine-86775" value: { - dps: 384145.87248 - tps: 302416.47423 - hps: 2087.82395 + dps: 385616.96907 + tps: 300559.48522 + hps: 2264.55071 } } dps_results: { key: "TestDestruction-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 12717.85408 + dps: 384449.90424 + tps: 299944.78192 + hps: 13063.0361 } } dps_results: { key: "TestDestruction-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 427804.41817 - tps: 340906.1149 - hps: 2030.77442 + dps: 438099.4801 + tps: 346277.02825 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 383164.46558 - tps: 301507.17977 - hps: 2027.06049 + dps: 384795.00996 + tps: 299818.73462 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-KnotofTenSongs-84073" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 382222.61741 + tps: 297835.3836 + hps: 2211.27119 } } dps_results: { key: "TestDestruction-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 384967.68611 - tps: 303177.90213 - hps: 2095.66892 + dps: 386305.2638 + tps: 301179.77732 + hps: 2273.05973 } } dps_results: { key: "TestDestruction-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 387229.52251 - tps: 304138.43123 - hps: 2093.91115 + dps: 390482.47176 + tps: 304544.57247 + hps: 2249.89602 } } dps_results: { key: "TestDestruction-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384201.97881 + tps: 300331.29168 + hps: 2202.35777 } } dps_results: { key: "TestDestruction-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 383311.49348 - tps: 301546.11472 - hps: 2027.06049 + dps: 390062.95357 + tps: 305025.85039 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 386902.5119 - tps: 304819.12293 - hps: 2027.06049 + dps: 393683.17124 + tps: 308287.88473 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-LightoftheCosmos-87065" value: { - dps: 400315.2807 - tps: 314221.65915 - hps: 2087.22608 + dps: 406486.31204 + tps: 318115.2702 + hps: 2231.32639 } } dps_results: { key: "TestDestruction-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 440893.49323 - tps: 347020.21165 - hps: 2093.16836 + dps: 446587.90393 + tps: 349542.36162 + hps: 2249.15323 } } dps_results: { key: "TestDestruction-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 386158.66298 - tps: 303975.59249 - hps: 2027.06049 + dps: 388730.71828 + tps: 302640.64741 + hps: 2191.95878 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 383635.63254 - tps: 302089.67301 - hps: 2048.37338 + dps: 389928.68405 + tps: 304409.70541 + hps: 2215.47621 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2045.04952 + dps: 384449.90424 + tps: 299944.78192 + hps: 2215.56439 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2092.95984 + dps: 384449.90424 + tps: 299944.78192 + hps: 2267.44237 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 392536.09845 - tps: 309133.70945 - hps: 2030.03163 + dps: 397549.67364 + tps: 310266.91769 + hps: 2180.817 } } dps_results: { key: "TestDestruction-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MarkoftheCatacombs-83731" value: { - dps: 383766.4181 - tps: 302200.66534 - hps: 2023.34657 + dps: 391979.23953 + tps: 306790.64569 + hps: 2186.0165 } } dps_results: { key: "TestDestruction-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 385453.80355 - tps: 303628.30032 - hps: 2027.06049 + dps: 386712.40243 + tps: 301546.69117 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 381124.20635 - tps: 299558.00772 - hps: 2027.06049 + dps: 387838.91515 + tps: 303012.59685 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 384958.45006 - tps: 302447.65118 - hps: 2032.25999 + dps: 390471.21146 + tps: 304581.70829 + hps: 2196.41549 } } dps_results: { key: "TestDestruction-AllItems-MirrorScope-4700" value: { - dps: 426537.99288 - tps: 335404.02913 - hps: 2092.42558 + dps: 431653.74116 + tps: 336863.07835 + hps: 2256.58108 } } dps_results: { key: "TestDestruction-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2091.92155 + dps: 384449.90424 + tps: 299944.78192 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-MistdancerDefenderStone-101087" value: { - dps: 386788.58318 - tps: 304717.9858 - hps: 2091.92155 + dps: 393449.27625 + tps: 308095.16126 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-MistdancerIdolofRage-101113" value: { - dps: 383311.49348 - tps: 301546.11472 - hps: 2027.06049 + dps: 390062.95357 + tps: 305025.85039 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MistdancerStoneofRage-101117" value: { - dps: 386771.46585 - tps: 304757.2879 - hps: 2027.06049 + dps: 393511.83396 + tps: 308197.07182 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 394252.86386 - tps: 310086.59875 - hps: 2024.08935 + dps: 402553.69632 + tps: 314508.04586 + hps: 2191.95878 } } dps_results: { key: "TestDestruction-AllItems-MithrilWristwatch-282033" value: { - dps: 397349.48772 - tps: 312619.02837 - hps: 2037.45948 + dps: 404815.70263 + tps: 316223.88973 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 390797.11789 - tps: 306666.75316 - hps: 2096.88229 + dps: 392478.19662 + tps: 306021.93015 + hps: 2238.01146 } } dps_results: { key: "TestDestruction-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 396250.11748 - tps: 312437.68236 - hps: 2028.54606 + dps: 404779.74602 + tps: 317308.42861 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-NitroBoosts-4223" value: { - dps: 436221.67749 - tps: 342798.23007 - hps: 2093.91115 + dps: 442767.0637 + tps: 346319.53082 + hps: 2255.8383 } } dps_results: { key: "TestDestruction-AllItems-OathswornDefenderIdol-101303" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2091.92155 + dps: 384449.90424 + tps: 299944.78192 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-OathswornDefenderStone-101306" value: { - dps: 386334.10664 - tps: 304330.3535 - hps: 2091.92155 + dps: 393179.67294 + tps: 307862.16751 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-OathswornIdolofBattle-101295" value: { - dps: 383327.79441 - tps: 301655.6809 - hps: 2027.06049 + dps: 391609.44882 + tps: 305764.33986 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-OathswornStoneofBattle-101294" value: { - dps: 386381.91841 - tps: 304363.95922 - hps: 2027.06049 + dps: 393185.81738 + tps: 307846.48606 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-PhaseFingers-4697" value: { - dps: 435162.20765 - tps: 341837.35719 - hps: 2093.91115 + dps: 440293.66713 + tps: 343424.16163 + hps: 2266.23729 } } dps_results: { key: "TestDestruction-AllItems-PouchofWhiteAsh-103639" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 382222.61741 + tps: 297835.3836 + hps: 2211.27119 } } dps_results: { key: "TestDestruction-AllItems-PowerfulPrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 2013.12 + dps: 429163.76165 + tps: 336891.43254 + hps: 2167.17004 } } dps_results: { key: "TestDestruction-AllItems-PriceofProgress-81266" value: { - dps: 385781.38824 - tps: 303141.68092 - hps: 2030.03163 + dps: 393034.96166 + tps: 306795.69934 + hps: 2192.70157 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 394499.20964 - tps: 310800.23086 - hps: 2027.06049 + dps: 396710.78045 + tps: 308710.45435 + hps: 2195.67271 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 388891.91676 - tps: 306229.43341 - hps: 2060.86516 + dps: 395472.86564 + tps: 308894.30286 + hps: 2237.28221 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2062.91774 + dps: 384449.90424 + tps: 299944.78192 + hps: 2236.0603 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2158.42319 + dps: 384449.90424 + tps: 299944.78192 + hps: 2339.47495 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 406435.99918 - tps: 319990.53815 - hps: 2025.57492 + dps: 411268.241 + tps: 321596.90013 + hps: 2183.04536 } } dps_results: { key: "TestDestruction-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 388056.57523 - tps: 305318.9306 - hps: 2024.83214 + dps: 394902.50766 + tps: 308339.30203 + hps: 2195.67271 } } dps_results: { key: "TestDestruction-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 402588.28637 - tps: 318335.40398 - hps: 2054.54354 + dps: 409977.9486 + tps: 322157.6831 + hps: 2233.55475 } } dps_results: { key: "TestDestruction-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 390661.48408 - tps: 302526.00366 - hps: 2062.60797 + dps: 393542.3417 + tps: 302865.94676 + hps: 2196.46672 } } dps_results: { key: "TestDestruction-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 383818.384 - tps: 297447.80874 - hps: 2050.0356 + dps: 385353.95805 + tps: 296100.47063 + hps: 2209.77864 } } dps_results: { key: "TestDestruction-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 387600.01717 - tps: 304363.60223 - hps: 2022.60378 + dps: 394724.1743 + tps: 308216.8994 + hps: 2173.38915 } } dps_results: { key: "TestDestruction-AllItems-RegaliaoftheHornedNightmare" value: { - dps: 332396.6055 - tps: 258270.75219 - hps: 1771.92636 + dps: 332656.98963 + tps: 258211.67612 + hps: 1835.89963 } } dps_results: { key: "TestDestruction-AllItems-RegaliaoftheThousandfoldHells" value: { - dps: 326001.55451 - tps: 253908.18525 - hps: 1741.97556 + dps: 325303.48793 + tps: 252675.74345 + hps: 1811.02329 } } dps_results: { key: "TestDestruction-AllItems-RelicofChi-Ji-79330" value: { - dps: 388628.60464 - tps: 305742.29499 - hps: 2024.83214 + dps: 396399.78692 + tps: 309603.92867 + hps: 2200.8722 } } dps_results: { key: "TestDestruction-AllItems-RelicofKypariZar-84075" value: { - dps: 384569.13252 - tps: 301836.00404 - hps: 2042.65898 + dps: 392154.2824 + tps: 305887.10324 + hps: 2232.06918 } } dps_results: { key: "TestDestruction-AllItems-RelicofNiuzao-79329" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2087.82395 + dps: 381419.69896 + tps: 297378.22166 + hps: 2258.43031 } } dps_results: { key: "TestDestruction-AllItems-RelicofXuen-79327" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-RelicofXuen-79328" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-RelicofYu'lon-79331" value: { - dps: 394334.3541 - tps: 309869.30235 - hps: 2025.57492 + dps: 402777.76401 + tps: 314877.08532 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 377798.19772 - tps: 296512.49867 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-ResolveofNiuzao-103990" value: { - dps: 386756.4707 - tps: 304677.38325 - hps: 2027.06049 + dps: 393557.87107 + tps: 308189.53454 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-ReverberatingPrimalDiamond" value: { - dps: 432420.45081 - tps: 340752.13535 - hps: 1999.57744 + dps: 438019.09317 + tps: 344770.96732 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-RevitalizingPrimalDiamond" value: { - dps: 432420.45081 - tps: 340752.13535 - hps: 1999.57744 + dps: 438019.09317 + tps: 344770.96732 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-RuneofRe-Origination-96918" value: { - dps: 379175.06449 - tps: 297923.11673 - hps: 2027.06049 + dps: 383957.93935 + tps: 299737.25611 + hps: 2181.55979 } } dps_results: { key: "TestDestruction-AllItems-SI:7Operative'sManual-92784" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 382222.61741 + tps: 297835.3836 + hps: 2211.27119 } } dps_results: { key: "TestDestruction-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 387511.73672 - tps: 304453.48345 - hps: 2029.28885 + dps: 392277.4548 + tps: 305885.82863 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SearingWords-81267" value: { - dps: 382861.79433 - tps: 301343.15399 - hps: 2030.77442 + dps: 389803.6555 + tps: 304380.10545 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Sha-SkinRegalia" value: { - dps: 313428.00176 - tps: 243692.53454 - hps: 1622.33466 + dps: 312667.30668 + tps: 242041.83351 + hps: 1679.81166 } } dps_results: { key: "TestDestruction-AllItems-ShadowflameRegalia" value: { - dps: 243717.95787 - tps: 187323.77045 - hps: 1301.52628 + dps: 246854.0249 + tps: 188793.29291 + hps: 1360.12581 } } dps_results: { key: "TestDestruction-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 396746.83166 - tps: 311651.86887 - hps: 2085.74051 + dps: 396971.11034 + tps: 308874.58369 + hps: 2253.60994 } } dps_results: { key: "TestDestruction-AllItems-SigilofCompassion-83736" value: { - dps: 380343.52262 - tps: 298958.96888 - hps: 2022.60378 + dps: 388284.592 + tps: 303361.25103 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-SigilofDevotion-83740" value: { - dps: 379748.27946 - tps: 298556.24844 - hps: 2023.34657 + dps: 387829.2784 + tps: 302997.27859 + hps: 2186.0165 } } dps_results: { key: "TestDestruction-AllItems-SigilofFidelity-83737" value: { - dps: 385415.99268 - tps: 302393.61748 - hps: 2053.05797 + dps: 392612.27857 + tps: 306427.2319 + hps: 2227.61246 } } dps_results: { key: "TestDestruction-AllItems-SigilofGrace-83738" value: { - dps: 381124.20635 - tps: 299558.00772 - hps: 2027.06049 + dps: 387838.91515 + tps: 303012.59685 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SigilofKypariZar-84076" value: { - dps: 383955.6336 - tps: 302383.1312 - hps: 2023.34657 + dps: 392933.10019 + tps: 307712.17703 + hps: 2188.98764 } } dps_results: { key: "TestDestruction-AllItems-SigilofPatience-83739" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SigilofRampage-105580" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SigiloftheCatacombs-83732" value: { - dps: 387309.92527 - tps: 304026.31948 - hps: 2062.71418 + dps: 389926.49411 + tps: 303787.22421 + hps: 2232.81196 } } dps_results: { key: "TestDestruction-AllItems-SinisterPrimalDiamond" value: { - dps: 436221.67749 - tps: 342798.23007 - hps: 2093.91115 + dps: 442767.0637 + tps: 346319.53082 + hps: 2255.8383 } } dps_results: { key: "TestDestruction-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SkullrenderMedallion-93256" value: { - dps: 384750.76027 - tps: 302792.89409 - hps: 2028.54606 + dps: 389553.74253 + tps: 304252.84606 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 390331.91372 - tps: 306974.19712 - hps: 2027.80328 + dps: 399170.40273 + tps: 311836.55567 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-SoulBarrier-96927" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2138.43098 + dps: 384449.90424 + tps: 299944.78192 + hps: 2315.52347 } } dps_results: { key: "TestDestruction-AllItems-SparkofZandalar-96770" value: { - dps: 390153.03684 - tps: 306320.24791 - hps: 2099.85343 + dps: 392370.27882 + tps: 305812.29103 + hps: 2275.15071 } } dps_results: { key: "TestDestruction-AllItems-SpiritsoftheSun-87163" value: { - dps: 388786.60613 - tps: 305660.67329 - hps: 2027.06049 + dps: 397597.88539 + tps: 310479.56325 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 391334.76316 - tps: 307120.6572 - hps: 2075.34152 + dps: 397512.15083 + tps: 310513.21446 + hps: 2248.41045 } } dps_results: { key: "TestDestruction-AllItems-SpringrainIdolofRage-101009" value: { - dps: 383311.49348 - tps: 301546.11472 - hps: 2027.06049 + dps: 390062.95357 + tps: 305025.85039 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 395962.05106 - tps: 312207.11197 - hps: 2028.54606 + dps: 404387.12337 + tps: 316913.17434 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-AllItems-SpringrainStoneofRage-101012" value: { - dps: 387199.32694 - tps: 305022.53965 - hps: 2027.06049 + dps: 393974.97635 + tps: 308595.03276 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 395405.4572 - tps: 310939.23047 - hps: 2027.80328 + dps: 402508.77759 + tps: 314317.55848 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 396746.83166 - tps: 311651.86887 - hps: 2085.74051 + dps: 396971.11034 + tps: 308874.58369 + hps: 2253.60994 } } dps_results: { key: "TestDestruction-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 385727.45153 - tps: 303742.06928 - hps: 2027.06049 + dps: 392513.93467 + tps: 307244.53797 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 393724.35131 - tps: 309147.36451 - hps: 2093.91115 + dps: 395584.98772 + tps: 308538.68542 + hps: 2262.52336 } } dps_results: { key: "TestDestruction-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 383311.49348 - tps: 301546.11472 - hps: 2027.06049 + dps: 390062.95357 + tps: 305025.85039 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 395544.40807 - tps: 311818.08689 - hps: 2028.54606 + dps: 404221.54794 + tps: 316741.32027 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 386820.68954 - tps: 304673.88351 - hps: 2027.06049 + dps: 393637.53891 + tps: 308203.73281 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 395872.30928 - tps: 311399.31589 - hps: 2030.03163 + dps: 400903.05243 + tps: 312774.24353 + hps: 2191.95878 } } dps_results: { key: "TestDestruction-AllItems-StuffofNightmares-87160" value: { - dps: 384822.71004 - tps: 302919.71592 - hps: 2027.06049 + dps: 391596.07755 + tps: 306413.67143 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2091.92155 + dps: 384449.90424 + tps: 299944.78192 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-SunsoulDefenderStone-101163" value: { - dps: 386820.79136 - tps: 304724.88005 - hps: 2091.92155 + dps: 393736.44226 + tps: 308322.69117 + hps: 2265.16239 } } dps_results: { key: "TestDestruction-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 383327.79441 - tps: 301655.6809 - hps: 2027.06049 + dps: 391609.44882 + tps: 305764.33986 + hps: 2197.15828 } } dps_results: { key: "TestDestruction-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 386098.31934 - tps: 304079.34609 - hps: 2027.06049 + dps: 393112.95669 + tps: 307785.41615 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 395674.65857 - tps: 311060.85092 - hps: 2030.77442 + dps: 403223.76499 + tps: 314816.75717 + hps: 2193.44435 } } dps_results: { key: "TestDestruction-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 434745.77022 - tps: 341884.03769 - hps: 2090.19722 + dps: 440565.98694 + tps: 344480.65974 + hps: 2252.12437 } } dps_results: { key: "TestDestruction-AllItems-SymboloftheCatacombs-83735" value: { - dps: 381124.20635 - tps: 299558.00772 - hps: 2027.06049 + dps: 387838.91515 + tps: 303012.59685 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 440387.14261 - tps: 346510.82362 - hps: 2093.16836 + dps: 441701.08698 + tps: 345354.66438 + hps: 2255.8383 } } dps_results: { key: "TestDestruction-AllItems-TalismanofBloodlust-96864" value: { - dps: 389256.47923 - tps: 304903.69789 - hps: 2116.1947 + dps: 394114.04208 + tps: 307403.30399 + hps: 2288.52084 } } dps_results: { key: "TestDestruction-AllItems-TerrorintheMists-87167" value: { - dps: 389216.14343 - tps: 306396.67402 - hps: 2030.77442 + dps: 395822.71537 + tps: 309151.36727 + hps: 2200.8722 } } dps_results: { key: "TestDestruction-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 406779.20381 - tps: 319634.30778 - hps: 2041.91619 + dps: 410199.82517 + tps: 320106.42336 + hps: 2189.73043 } } dps_results: { key: "TestDestruction-AllItems-Thok'sTailTip-105609" value: { - dps: 402588.28637 - tps: 318335.40398 - hps: 2054.54354 + dps: 409977.9486 + tps: 322157.6831 + hps: 2233.55475 } } dps_results: { key: "TestDestruction-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 401069.95202 - tps: 314235.65391 - hps: 2096.13951 + dps: 405401.64774 + tps: 315569.20011 + hps: 2261.03779 } } dps_results: { key: "TestDestruction-AllItems-TickingEbonDetonator-105612" value: { - dps: 390454.97439 - tps: 308039.09146 - hps: 2027.06049 + dps: 397304.94713 + tps: 311581.47872 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-Time-LostArtifact-103678" value: { - dps: 384022.36179 - tps: 302192.2495 - hps: 2027.06049 + dps: 390779.08385 + tps: 305674.1089 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 383311.49348 - tps: 301546.11472 - hps: 2027.06049 + dps: 390062.95357 + tps: 305025.85039 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 386767.20217 - tps: 304662.49773 - hps: 2027.06049 + dps: 393511.21718 + tps: 308120.91723 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 387436.87371 - tps: 305188.71006 - hps: 2024.08935 + dps: 389592.87136 + tps: 302916.15148 + hps: 2187.50207 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 383558.15599 + tps: 299728.41534 + hps: 2203.84334 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 384956.17003 - tps: 302950.24595 - hps: 2057.2835 + dps: 391368.87808 + tps: 305553.94355 + hps: 2207.64837 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2048.7409 + dps: 384449.90424 + tps: 299944.78192 + hps: 2219.79862 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2106.49245 + dps: 384449.90424 + tps: 299944.78192 + hps: 2282.33282 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 394246.00278 - tps: 310471.48647 - hps: 2025.57492 + dps: 401216.12108 + tps: 313446.99367 + hps: 2191.216 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-TyrannicalPrimalDiamond" value: { - dps: 423306.0069 - tps: 332665.14366 - hps: 1999.57744 + dps: 429163.76165 + tps: 336891.43254 + hps: 2152.59117 } } dps_results: { key: "TestDestruction-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 410213.29785 - tps: 323955.52606 - hps: 2033.00277 + dps: 414975.90454 + tps: 325511.96067 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-VaporshieldMedallion-93262" value: { - dps: 385453.80355 - tps: 303628.30032 - hps: 2027.06049 + dps: 386712.40243 + tps: 301546.69117 + hps: 2198.64385 } } dps_results: { key: "TestDestruction-AllItems-VialofDragon'sBlood-87063" value: { - dps: 384380.28151 - tps: 302517.5761 - hps: 2027.06049 + dps: 391142.19216 + tps: 306002.80336 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-VialofIchorousBlood-100963" value: { - dps: 384884.72093 - tps: 302459.95504 - hps: 2022.60378 + dps: 392197.82102 + tps: 306054.17813 + hps: 2190.47321 } } dps_results: { key: "TestDestruction-AllItems-VialofLivingCorruption-105568" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2175.72959 + dps: 384449.90424 + tps: 299944.78192 + hps: 2355.91093 } } dps_results: { key: "TestDestruction-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 377778.65127 - tps: 296517.10769 - hps: 2027.06049 + dps: 384449.90424 + tps: 299944.78192 + hps: 2194.92992 } } dps_results: { key: "TestDestruction-AllItems-VisionofthePredator-81192" value: { - dps: 393571.62443 - tps: 310088.05368 - hps: 2034.48834 + dps: 400321.26591 + tps: 313192.91218 + hps: 2190.47321 } } dps_results: { key: "TestDestruction-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 400472.20992 - tps: 313262.50899 - hps: 2095.39672 + dps: 403952.12542 + tps: 314472.82232 + hps: 2261.03779 } } dps_results: { key: "TestDestruction-AllItems-WindsweptPages-81125" value: { - dps: 385048.05217 - tps: 302013.89655 - hps: 2071.6276 + dps: 384048.60062 + tps: 298606.51551 + hps: 2225.38411 } } dps_results: { key: "TestDestruction-AllItems-WoundripperMedallion-93253" value: { - dps: 384750.76027 - tps: 302792.89409 - hps: 2028.54606 + dps: 389553.74253 + tps: 304252.84606 + hps: 2194.18714 } } dps_results: { key: "TestDestruction-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 401432.92605 - tps: 315319.41841 - hps: 2032.25999 + dps: 407117.42964 + tps: 317674.98217 + hps: 2193.44435 } } dps_results: { key: "TestDestruction-AllItems-Yu'lon'sBite-103987" value: { - dps: 410267.88889 - tps: 322770.92361 - hps: 2039.68784 + dps: 415877.44813 + tps: 325481.27089 + hps: 2197.90106 } } dps_results: { key: "TestDestruction-AllItems-ZenAlchemistStone-75274" value: { - dps: 395487.08098 - tps: 311682.18198 - hps: 2027.06049 + dps: 403075.6552 + tps: 315836.72944 + hps: 2200.12942 } } dps_results: { key: "TestDestruction-Average-Default" value: { - dps: 435450.63303 - tps: 342257.32411 - hps: 2103.94518 + dps: 435386.43279 + tps: 339657.70316 + hps: 2260.6423 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongMultiTarget" value: { - dps: 1.00131554969e+06 - tps: 840441.94908 - hps: 5975.60275 + dps: 1.02518928451e+06 + tps: 855927.86159 + hps: 6475.48848 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongSingleTarget" value: { - dps: 436723.31607 - tps: 344381.41764 - hps: 2093.87497 + dps: 438120.87541 + tps: 343248.7349 + hps: 2255.05655 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-FullBuffs-25.0yards-ShortSingleTarget" value: { - dps: 666847.86128 - tps: 490242.97736 - hps: 2629.41377 + dps: 662374.26152 + tps: 481851.74718 + hps: 2818.82069 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongMultiTarget" value: { - dps: 667614.42754 - tps: 565165.69524 - hps: 4988.80832 + dps: 680147.55813 + tps: 574683.36176 + hps: 5364.84224 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongSingleTarget" value: { - dps: 285046.26907 - tps: 224809.82943 - hps: 1735.80557 + dps: 285090.86458 + tps: 223259.55434 + hps: 1870.54533 } } dps_results: { key: "TestDestruction-Settings-Human-p5-Destruction Warlock-default-NoBuffs-25.0yards-ShortSingleTarget" value: { - dps: 379154.65231 - tps: 283227.18318 - hps: 1770.17796 + dps: 387816.28207 + tps: 288745.31501 + hps: 1904.23027 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongMultiTarget" value: { - dps: 1.01015322534e+06 - tps: 846741.85607 - hps: 5976.44878 + dps: 1.03020432096e+06 + tps: 858473.82897 + hps: 6477.82871 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongSingleTarget" value: { - dps: 441460.54145 - tps: 347486.98671 - hps: 2093.16836 + dps: 442767.0637 + tps: 346319.53082 + hps: 2255.8383 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-FullBuffs-25.0yards-ShortSingleTarget" value: { - dps: 676663.33804 - tps: 496316.53959 - hps: 2629.45919 + dps: 672123.21741 + tps: 487863.56517 + hps: 2818.86939 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongMultiTarget" value: { - dps: 672948.21508 - tps: 569313.0298 - hps: 4970.34002 + dps: 688811.95502 + tps: 582000.16435 + hps: 5338.81889 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongSingleTarget" value: { - dps: 287972.1984 - tps: 226613.15819 - hps: 1740.6502 + dps: 288606.82615 + tps: 225570.32663 + hps: 1871.26771 } } dps_results: { key: "TestDestruction-Settings-Orc-p5-Destruction Warlock-default-NoBuffs-25.0yards-ShortSingleTarget" value: { - dps: 385246.24533 - tps: 287059.11698 - hps: 1770.211 + dps: 394015.51149 + tps: 292731.70064 + hps: 1904.26582 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongMultiTarget" value: { - dps: 1.01240461437e+06 - tps: 843003.64993 - hps: 6103.35958 + dps: 1.03856127656e+06 + tps: 862422.96058 + hps: 6658.21045 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-FullBuffs-25.0yards-LongSingleTarget" value: { - dps: 448027.84465 - tps: 350370.82768 - hps: 2180.77933 + dps: 445155.68479 + tps: 344751.32358 + hps: 2344.18922 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-FullBuffs-25.0yards-ShortSingleTarget" value: { - dps: 686442.38438 - tps: 494750.43705 - hps: 2896.81177 + dps: 687916.61349 + tps: 491083.36023 + hps: 3082.50484 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongMultiTarget" value: { - dps: 684537.59673 - tps: 575543.02032 - hps: 5138.67193 + dps: 702840.51402 + tps: 588619.05485 + hps: 5444.58618 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-NoBuffs-25.0yards-LongSingleTarget" value: { - dps: 287087.69198 - tps: 225110.44128 - hps: 1829.98591 + dps: 288866.62042 + tps: 224567.91958 + hps: 1939.2901 } } dps_results: { key: "TestDestruction-Settings-Troll-p5-Destruction Warlock-default-NoBuffs-25.0yards-ShortSingleTarget" value: { - dps: 394177.51621 - tps: 287288.89997 - hps: 2024.53362 + dps: 389150.51086 + tps: 283095.14348 + hps: 2096.71564 } } dps_results: { key: "TestDestruction-SwitchInFrontOfTarget-Default" value: { - dps: 441460.54145 - tps: 347486.98671 - hps: 2093.16836 + dps: 442767.0637 + tps: 346319.53082 + hps: 2255.8383 } } diff --git a/sim/warrior/arms/TestArms.results b/sim/warrior/arms/TestArms.results index 05dd904b47..57f3f972f6 100644 --- a/sim/warrior/arms/TestArms.results +++ b/sim/warrior/arms/TestArms.results @@ -33,57 +33,57 @@ character_stats_results: { dps_results: { key: "TestArms-AllItems-AgilePrimalDiamond" value: { - dps: 436652.02831 - tps: 320099.29094 + dps: 438468.74461 + tps: 321265.95765 } } dps_results: { key: "TestArms-AllItems-AlacrityofXuen-103989" value: { - dps: 426519.37554 - tps: 316103.91383 + dps: 429781.5891 + tps: 318123.76985 } } dps_results: { key: "TestArms-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 410115.70634 - tps: 303747.88932 + dps: 409726.26997 + tps: 302450.25946 } } dps_results: { key: "TestArms-AllItems-ArrowflightMedallion-93258" value: { - dps: 413459.70385 - tps: 305179.47259 + dps: 404774.07095 + tps: 301883.91469 } } dps_results: { key: "TestArms-AllItems-AssuranceofConsequence-105472" value: { - dps: 406469.75977 - tps: 300078.73559 + dps: 409186.29919 + tps: 301887.78623 } } dps_results: { key: "TestArms-AllItems-AusterePrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-BadJuju-96781" value: { - dps: 412463.72404 - tps: 306523.85505 + dps: 415209.01983 + tps: 308368.3933 } } dps_results: { key: "TestArms-AllItems-BadgeofKypariZar-84079" value: { - dps: 410542.0107 - tps: 305424.04606 + dps: 413300.46008 + tps: 307248.28453 } } dps_results: { @@ -110,1164 +110,1164 @@ dps_results: { dps_results: { key: "TestArms-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 415020.93078 - tps: 308406.49679 + dps: 417796.12634 + tps: 310276.68136 } } dps_results: { key: "TestArms-AllItems-BlossomofPureSnow-89081" value: { - dps: 413010.66796 - tps: 304770.80722 + dps: 404347.11793 + tps: 301258.23578 } } dps_results: { key: "TestArms-AllItems-BottleofInfiniteStars-87057" value: { - dps: 413531.58336 - tps: 305334.79853 + dps: 416362.90855 + tps: 307190.57465 } } dps_results: { key: "TestArms-AllItems-BraidofTenSongs-84072" value: { - dps: 411933.02778 - tps: 305513.97533 + dps: 414655.2317 + tps: 307326.25912 } } dps_results: { key: "TestArms-AllItems-Brawler'sStatue-282039" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405729.60628 + tps: 300333.36646 } } dps_results: { key: "TestArms-AllItems-BreathoftheHydra-96827" value: { - dps: 412876.99525 - tps: 305847.72854 + dps: 415645.12959 + tps: 307652.72928 } } dps_results: { key: "TestArms-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405729.60628 + tps: 300333.36646 } } dps_results: { key: "TestArms-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 417500.27177 - tps: 307688.7213 + dps: 420211.22024 + tps: 309479.54875 } } dps_results: { key: "TestArms-AllItems-BurningPrimalDiamond" value: { - dps: 436558.59788 - tps: 320005.86051 + dps: 438388.23497 + tps: 321185.44801 } } dps_results: { key: "TestArms-AllItems-CapacitivePrimalDiamond" value: { - dps: 441308.9878 - tps: 324559.86474 + dps: 443400.80893 + tps: 325899.75325 } } dps_results: { key: "TestArms-AllItems-CarbonicCarbuncle-81138" value: { - dps: 417770.7405 - tps: 308679.58701 + dps: 420578.05176 + tps: 310533.59313 } } dps_results: { key: "TestArms-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 414301.00688 - tps: 305639.97397 + dps: 417058.472 + tps: 307475.58841 } } dps_results: { key: "TestArms-AllItems-CharmofTenSongs-84071" value: { - dps: 412766.27226 - tps: 305992.95594 + dps: 415541.24991 + tps: 307865.84303 } } dps_results: { key: "TestArms-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 411944.35334 - tps: 305385.46334 + dps: 414732.25286 + tps: 307227.22469 } } dps_results: { key: "TestArms-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 408334.57646 - tps: 303477.6766 + dps: 411057.8065 + tps: 305305.72305 } } dps_results: { key: "TestArms-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 423248.8315 - tps: 311902.25292 + dps: 426009.12284 + tps: 313724.93908 } } dps_results: { key: "TestArms-AllItems-CoreofDecency-87497" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CourageousPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 404615.14934 - tps: 299061.66969 + dps: 405594.598 + tps: 298506.07636 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 409167.7661 - tps: 302184.80965 + dps: 408106.64943 + tps: 300419.45155 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 409871.27328 - tps: 302418.13073 + dps: 412591.18513 + tps: 304217.86553 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 404725.32161 - tps: 299171.84196 + dps: 407429.91718 + tps: 300963.5152 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 410634.95177 - tps: 303360.45181 + dps: 413363.90365 + tps: 305152.88299 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 404642.47589 - tps: 299088.99624 + dps: 405605.69262 + tps: 298517.17098 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 410059.45502 - tps: 302808.83087 + dps: 408999.0391 + tps: 301037.91849 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 410844.8087 - tps: 303018.65692 + dps: 413583.48158 + tps: 304823.37336 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 404614.57416 - tps: 299343.90193 + dps: 407318.4511 + tps: 301135.64201 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 411257.46904 - tps: 303883.49548 + dps: 413939.49265 + tps: 305661.59428 } } dps_results: { key: "TestArms-AllItems-CurseofHubris-105645" value: { - dps: 411467.0684 - tps: 304893.60023 + dps: 399338.00462 + tps: 298793.15022 } } dps_results: { key: "TestArms-AllItems-CutstitcherMedallion-93255" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-Daelo'sFinalWords-87496" value: { - dps: 410598.59741 - tps: 302762.63464 + dps: 409707.11409 + tps: 303795.31029 } } dps_results: { key: "TestArms-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 440306.05335 - tps: 323590.01717 + dps: 441929.00032 + tps: 325315.41434 } } dps_results: { key: "TestArms-AllItems-DarkmistVortex-87172" value: { - dps: 420653.19617 - tps: 312011.16525 + dps: 423827.15495 + tps: 314112.89197 } } dps_results: { key: "TestArms-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 409126.95548 - tps: 303433.11541 + dps: 413141.91571 + tps: 306331.1626 } } dps_results: { key: "TestArms-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-DestructivePrimalDiamond" value: { - dps: 429563.61633 - tps: 315094.23939 + dps: 430252.08986 + tps: 314884.09509 } } dps_results: { key: "TestArms-AllItems-DisciplineofXuen-103986" value: { - dps: 413243.54569 - tps: 305818.6736 + dps: 416004.02785 + tps: 307644.72668 } } dps_results: { key: "TestArms-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 410115.70634 - tps: 303747.88932 + dps: 409726.26997 + tps: 302450.25946 } } dps_results: { key: "TestArms-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 409126.95548 - tps: 303433.11541 + dps: 413141.91571 + tps: 306331.1626 } } dps_results: { key: "TestArms-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 408406.09438 - tps: 302614.76928 + dps: 412070.04639 + tps: 305303.6086 } } dps_results: { key: "TestArms-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 413207.46473 - tps: 306168.32684 + dps: 416890.19977 + tps: 308870.11728 } } dps_results: { key: "TestArms-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 404615.14934 - tps: 299061.66969 + dps: 405594.598 + tps: 298506.07636 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 409167.7661 - tps: 302184.80965 + dps: 408106.64943 + tps: 300419.45155 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 409871.27328 - tps: 302418.13073 + dps: 412591.18513 + tps: 304217.86553 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 404713.61457 - tps: 299160.13492 + dps: 407416.81544 + tps: 300950.41347 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 410104.54508 - tps: 303274.06286 + dps: 412820.58478 + tps: 305068.7276 } } dps_results: { key: "TestArms-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 408406.09438 - tps: 302614.76928 + dps: 412070.04639 + tps: 305303.6086 } } dps_results: { key: "TestArms-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-EffulgentPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-EmberPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-EmblemofKypariZar-84077" value: { - dps: 412705.48716 - tps: 305527.27925 + dps: 415458.20044 + tps: 307355.93466 } } dps_results: { key: "TestArms-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 411083.58632 - tps: 304427.96381 + dps: 413842.71815 + tps: 306256.3977 } } dps_results: { key: "TestArms-AllItems-EmptyFruitBarrel-81133" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 441372.17171 - tps: 324666.39115 + dps: 443049.59698 + tps: 325722.80052 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 437032.43458 - tps: 321774.63474 + dps: 438932.94676 + tps: 323010.93566 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 440127.11389 - tps: 325480.5323 + dps: 441519.39009 + tps: 324979.29643 } } dps_results: { key: "TestArms-AllItems-EnigmaticPrimalDiamond" value: { - dps: 429563.61633 - tps: 315094.23939 + dps: 430252.08986 + tps: 314884.09509 } } dps_results: { key: "TestArms-AllItems-EssenceofTerror-87175" value: { - dps: 407774.67391 - tps: 302738.58124 + dps: 410514.38925 + tps: 304582.13526 } } dps_results: { key: "TestArms-AllItems-EternalPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 419943.46305 - tps: 310529.32731 + dps: 422663.65299 + tps: 312325.46248 } } dps_results: { key: "TestArms-AllItems-FearwurmBadge-84074" value: { - dps: 413040.54822 - tps: 305628.30399 + dps: 415785.60079 + tps: 307439.43798 } } dps_results: { key: "TestArms-AllItems-FearwurmRelic-84070" value: { - dps: 414324.38945 - tps: 306201.88044 + dps: 417163.78373 + tps: 308074.04296 } } dps_results: { key: "TestArms-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 410950.38994 - tps: 304609.17593 + dps: 413735.31025 + tps: 306439.04477 } } dps_results: { key: "TestArms-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 410003.01819 - tps: 303930.42082 + dps: 412759.95916 + tps: 305754.0148 } } dps_results: { key: "TestArms-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 422209.87005 - tps: 310182.90068 + dps: 424944.83245 + tps: 311667.0159 } } dps_results: { key: "TestArms-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405986.00984 + tps: 301497.25642 } } dps_results: { key: "TestArms-AllItems-FlashingSteelTalisman-81265" value: { - dps: 404060.34764 - tps: 298801.0856 + dps: 407135.76966 + tps: 300943.06396 } } dps_results: { key: "TestArms-AllItems-FleetPrimalDiamond" value: { - dps: 429574.48679 - tps: 314675.59192 + dps: 432417.19957 + tps: 317177.25086 } } dps_results: { key: "TestArms-AllItems-ForlornPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 411833.68815 - tps: 306757.49731 + dps: 414560.48433 + tps: 308597.05977 } } dps_results: { key: "TestArms-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Fusion-FireCore-105459" value: { - dps: 424830.20624 - tps: 312410.5932 + dps: 427544.46757 + tps: 314201.522 } } dps_results: { key: "TestArms-AllItems-GazeoftheTwins-96915" value: { - dps: 425260.98749 - tps: 312634.51065 + dps: 428242.45322 + tps: 314704.22221 } } dps_results: { key: "TestArms-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 409003.00717 - tps: 302314.65559 + dps: 407643.78282 + tps: 302065.73671 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 404819.51184 - tps: 299233.77827 + dps: 404607.55647 + tps: 297993.58651 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 413155.73517 - tps: 304975.52519 + dps: 412096.3012 + tps: 303184.67407 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 413125.26688 - tps: 304593.10434 + dps: 415893.69546 + tps: 306419.89133 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 404899.34584 - tps: 299581.62203 + dps: 407606.90783 + tps: 301377.04717 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 415577.92666 - tps: 306868.10095 + dps: 418278.08716 + tps: 308661.55441 } } dps_results: { key: "TestArms-AllItems-Haromm'sTalisman-105527" value: { - dps: 427052.8106 - tps: 321176.19707 + dps: 429905.1852 + tps: 323101.77793 } } dps_results: { key: "TestArms-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 408857.79897 - tps: 302936.14394 + dps: 410331.45817 + tps: 304717.60409 } } dps_results: { key: "TestArms-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 410844.93508 - tps: 305244.64988 + dps: 413591.05965 + tps: 307071.42961 } } dps_results: { key: "TestArms-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 417528.24319 - tps: 308466.4982 + dps: 420290.061 + tps: 310279.73193 } } dps_results: { key: "TestArms-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 417365.21668 - tps: 309518.04934 + dps: 420122.68646 + tps: 311314.26223 } } dps_results: { key: "TestArms-AllItems-HeartofFire-81181" value: { - dps: 409690.74896 - tps: 304092.77612 + dps: 412153.06693 + tps: 306135.05288 } } dps_results: { key: "TestArms-AllItems-HeartwarmerMedallion-93260" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-HelmbreakerMedallion-93261" value: { - dps: 420141.78479 - tps: 310059.18337 + dps: 411250.23218 + tps: 306689.53762 } } dps_results: { key: "TestArms-AllItems-Horridon'sLastGasp-96757" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-ImpassivePrimalDiamond" value: { - dps: 429563.61633 - tps: 315094.23939 + dps: 430252.08986 + tps: 314884.09509 } } dps_results: { key: "TestArms-AllItems-IndomitablePrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-InsigniaofKypariZar-84078" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-IronBellyWok-89083" value: { - dps: 414701.53585 - tps: 307687.20663 + dps: 416220.71006 + tps: 309496.47533 } } dps_results: { key: "TestArms-AllItems-IronProtectorTalisman-85181" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-JadeBanditFigurine-86772" value: { - dps: 413715.93935 - tps: 306407.22646 + dps: 411290.38815 + tps: 305406.80039 } } dps_results: { key: "TestArms-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 419004.58008 - tps: 310300.81201 + dps: 416845.01555 + tps: 309286.26394 } } dps_results: { key: "TestArms-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 412159.18275 - tps: 304235.46518 + dps: 404560.60738 + tps: 300951.43599 } } dps_results: { key: "TestArms-AllItems-JadeWarlordFigurine-86775" value: { - dps: 409245.47246 - tps: 302858.93342 + dps: 412685.42744 + tps: 305176.19585 } } dps_results: { key: "TestArms-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 404279.31284 - tps: 298763.98188 - hps: 12775.22629 + dps: 406977.65455 + tps: 300550.11153 + hps: 12860.49388 } } dps_results: { key: "TestArms-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 425358.65714 - tps: 319843.32617 + dps: 428189.22519 + tps: 321761.68217 } } dps_results: { key: "TestArms-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 413207.46473 - tps: 306168.32684 + dps: 416890.19977 + tps: 308870.11728 } } dps_results: { key: "TestArms-AllItems-KnotofTenSongs-84073" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406656.0165 + tps: 300682.0497 } } dps_results: { key: "TestArms-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 411157.46126 - tps: 305978.04956 + dps: 412760.2642 + tps: 306679.18546 } } dps_results: { key: "TestArms-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 417342.97132 - tps: 308173.42552 + dps: 420160.89617 + tps: 310006.99215 } } dps_results: { key: "TestArms-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 411279.01851 - tps: 303258.21501 + dps: 408577.013 + tps: 301250.23392 } } dps_results: { key: "TestArms-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 409345.0713 - tps: 303407.02703 + dps: 412105.09017 + tps: 305229.08323 } } dps_results: { key: "TestArms-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 409782.71938 - tps: 303518.90751 + dps: 412574.92682 + tps: 305362.15399 } } dps_results: { key: "TestArms-AllItems-LightoftheCosmos-87065" value: { - dps: 410360.69993 - tps: 303237.30769 + dps: 413146.60686 + tps: 305063.3982 } } dps_results: { key: "TestArms-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 440306.05335 - tps: 323590.01717 + dps: 441929.00032 + tps: 325315.41434 } } dps_results: { key: "TestArms-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 404642.47589 - tps: 299088.99624 + dps: 405605.69262 + tps: 298517.17098 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 410059.45502 - tps: 302808.83087 + dps: 408999.0391 + tps: 301037.91849 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 410844.8087 - tps: 303018.65692 + dps: 413583.48158 + tps: 304823.37336 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 404789.90206 - tps: 299204.1685 + dps: 407495.35302 + tps: 300996.196 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 412123.2091 - tps: 304192.38961 + dps: 414873.90373 + tps: 306004.63226 } } dps_results: { key: "TestArms-AllItems-MarkoftheCatacombs-83731" value: { - dps: 413509.55789 - tps: 304625.48593 + dps: 416339.00643 + tps: 306503.89618 } } dps_results: { key: "TestArms-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 413357.25145 - tps: 305660.63614 + dps: 416224.97776 + tps: 307661.86723 } } dps_results: { key: "TestArms-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 406571.20019 - tps: 300922.34974 + dps: 409353.45022 + tps: 302762.2831 } } dps_results: { key: "TestArms-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-MirrorScope-4700" value: { - dps: 436372.54085 - tps: 320922.67925 + dps: 438270.75241 + tps: 322150.42673 } } dps_results: { key: "TestArms-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MistdancerDefenderStone-101087" value: { - dps: 410347.07809 - tps: 303607.55859 + dps: 413095.40305 + tps: 305437.63753 } } dps_results: { key: "TestArms-AllItems-MistdancerIdolofRage-101113" value: { - dps: 409794.08276 - tps: 303565.7944 + dps: 412558.43359 + tps: 305384.26129 } } dps_results: { key: "TestArms-AllItems-MistdancerStoneofRage-101117" value: { - dps: 410746.34069 - tps: 303578.85052 + dps: 413519.28662 + tps: 305399.79405 } } dps_results: { key: "TestArms-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-MithrilWristwatch-282033" value: { - dps: 413016.65844 - tps: 304476.63048 + dps: 415776.94978 + tps: 306299.31664 } } dps_results: { key: "TestArms-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 413051.8197 - tps: 306891.87453 + dps: 415801.35279 + tps: 308712.54509 } } dps_results: { key: "TestArms-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 410759.36921 - tps: 302973.31489 + dps: 413479.58386 + tps: 304758.68801 } } dps_results: { key: "TestArms-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-OathswornDefenderIdol-101303" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-OathswornDefenderStone-101306" value: { - dps: 408835.86031 - tps: 304129.47076 + dps: 411606.35188 + tps: 305968.77266 } } dps_results: { key: "TestArms-AllItems-OathswornIdolofBattle-101295" value: { - dps: 416220.51105 - tps: 307268.02849 + dps: 418971.44972 + tps: 309082.45346 } } dps_results: { key: "TestArms-AllItems-OathswornStoneofBattle-101294" value: { - dps: 417045.95309 - tps: 308488.80563 + dps: 419823.33325 + tps: 310329.70265 } } dps_results: { key: "TestArms-AllItems-PhaseFingers-4697" value: { - dps: 440265.30835 - tps: 323790.20444 + dps: 440729.33186 + tps: 324934.81147 } } dps_results: { @@ -1294,85 +1294,85 @@ dps_results: { dps_results: { key: "TestArms-AllItems-PouchofWhiteAsh-103639" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406656.0165 + tps: 300682.0497 } } dps_results: { key: "TestArms-AllItems-PowerfulPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-PriceofProgress-81266" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 405450.01802 - tps: 299716.97933 + dps: 404647.63005 + tps: 298033.66009 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 415804.49957 - tps: 306829.11911 + dps: 414746.50773 + tps: 305021.48162 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 414566.99483 - tps: 305389.82478 + dps: 417305.73051 + tps: 307211.79136 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 405402.7079 - tps: 299887.63447 + dps: 408112.02507 + tps: 301683.7756 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 419574.67349 - tps: 310235.34245 + dps: 422295.48735 + tps: 312037.46858 } } dps_results: { @@ -1385,400 +1385,400 @@ dps_results: { dps_results: { key: "TestArms-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 425056.59647 - tps: 313416.10709 + dps: 427813.59258 + tps: 315251.42592 } } dps_results: { key: "TestArms-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 425447.89898 - tps: 316362.45331 + dps: 428340.33789 + tps: 318278.69455 } } dps_results: { key: "TestArms-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 425447.89898 - tps: 316362.45331 + dps: 428340.33789 + tps: 318278.69455 } } dps_results: { key: "TestArms-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 406506.29794 - tps: 294399.43081 + dps: 407697.26089 + tps: 295379.93911 } } dps_results: { key: "TestArms-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 410569.77629 - tps: 297241.50242 + dps: 412547.74759 + tps: 298576.18955 } } dps_results: { key: "TestArms-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-RelicofChi-Ji-79330" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-RelicofKypariZar-84075" value: { - dps: 412283.6231 - tps: 305508.97725 + dps: 415105.75531 + tps: 307373.11112 } } dps_results: { key: "TestArms-AllItems-RelicofNiuzao-79329" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405534.50764 + tps: 300167.69087 } } dps_results: { key: "TestArms-AllItems-RelicofXuen-79327" value: { - dps: 415956.96367 - tps: 307350.47329 + dps: 418690.69694 + tps: 309152.90351 } } dps_results: { key: "TestArms-AllItems-RelicofXuen-79328" value: { - dps: 404854.0594 - tps: 298621.36097 + dps: 407551.67588 + tps: 300405.75328 } } dps_results: { key: "TestArms-AllItems-RelicofYu'lon-79331" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 405400.63803 - tps: 299724.46241 + dps: 408123.12317 + tps: 301526.51175 } } dps_results: { key: "TestArms-AllItems-ResolveofNiuzao-103990" value: { - dps: 412818.1958 - tps: 306455.02808 + dps: 415577.93686 + tps: 308296.22296 } } dps_results: { key: "TestArms-AllItems-ReverberatingPrimalDiamond" value: { - dps: 437837.38068 - tps: 320934.45048 + dps: 439665.88867 + tps: 322114.2252 } } dps_results: { key: "TestArms-AllItems-RevitalizingPrimalDiamond" value: { - dps: 436558.59788 - tps: 320005.86051 + dps: 438388.23497 + tps: 321185.44801 } } dps_results: { key: "TestArms-AllItems-RuneofRe-Origination-96918" value: { - dps: 416054.71813 - tps: 305690.50277 + dps: 418950.84215 + tps: 307589.36715 } } dps_results: { key: "TestArms-AllItems-SI:7Operative'sManual-92784" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406656.0165 + tps: 300682.0497 } } dps_results: { key: "TestArms-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405049.94843 + tps: 299513.38991 } } dps_results: { key: "TestArms-AllItems-SearingWords-81267" value: { - dps: 409819.56111 - tps: 302298.97491 + dps: 412546.50698 + tps: 304109.02469 } } dps_results: { key: "TestArms-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 410029.06869 - tps: 303525.62378 + dps: 412086.38702 + tps: 304531.67487 } } dps_results: { key: "TestArms-AllItems-SigilofCompassion-83736" value: { - dps: 406571.20019 - tps: 300922.34974 + dps: 409353.45022 + tps: 302762.2831 } } dps_results: { key: "TestArms-AllItems-SigilofDevotion-83740" value: { - dps: 409838.67933 - tps: 303168.71946 + dps: 412658.72639 + tps: 305008.11125 } } dps_results: { key: "TestArms-AllItems-SigilofFidelity-83737" value: { - dps: 413371.28039 - tps: 305356.2054 + dps: 416173.7065 + tps: 307203.71963 } } dps_results: { key: "TestArms-AllItems-SigilofGrace-83738" value: { - dps: 411590.23568 - tps: 304253.92437 + dps: 413673.80688 + tps: 306024.27184 } } dps_results: { key: "TestArms-AllItems-SigilofKypariZar-84076" value: { - dps: 409649.35739 - tps: 303702.28405 + dps: 412415.25088 + tps: 305545.78883 } } dps_results: { key: "TestArms-AllItems-SigilofPatience-83739" value: { - dps: 407580.09433 - tps: 302069.96932 + dps: 410342.56775 + tps: 303904.36719 } } dps_results: { key: "TestArms-AllItems-SigilofRampage-105580" value: { - dps: 405331.00181 - tps: 299670.66848 + dps: 408030.04323 + tps: 301464.62651 } } dps_results: { key: "TestArms-AllItems-SigiloftheCatacombs-83732" value: { - dps: 410528.28184 - tps: 304437.60568 + dps: 413352.74548 + tps: 306307.05057 } } dps_results: { key: "TestArms-AllItems-SinisterPrimalDiamond" value: { - dps: 429418.64069 - tps: 314609.56665 + dps: 431300.10578 + tps: 315129.67626 } } dps_results: { key: "TestArms-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 437579.86685 - tps: 322345.26829 + dps: 440603.99531 + tps: 324387.31449 } } dps_results: { key: "TestArms-AllItems-SkullrenderMedallion-93256" value: { - dps: 420141.78479 - tps: 310059.18337 + dps: 411250.23218 + tps: 306689.53762 } } dps_results: { key: "TestArms-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SoulBarrier-96927" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SparkofZandalar-96770" value: { - dps: 422406.52945 - tps: 312823.66929 + dps: 425174.60719 + tps: 314628.63293 } } dps_results: { key: "TestArms-AllItems-SpiritsoftheSun-87163" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 411754.69145 - tps: 304901.30236 + dps: 414497.17846 + tps: 306697.02927 } } dps_results: { key: "TestArms-AllItems-SpringrainIdolofRage-101009" value: { - dps: 409384.18041 - tps: 303446.13613 + dps: 412145.16351 + tps: 305269.15656 } } dps_results: { key: "TestArms-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 408842.47549 - tps: 303015.9045 + dps: 411599.00063 + tps: 304811.91106 } } dps_results: { key: "TestArms-AllItems-SpringrainStoneofRage-101012" value: { - dps: 413490.17721 - tps: 306294.81486 + dps: 416291.68266 + tps: 308132.7601 } } dps_results: { key: "TestArms-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 410029.06869 - tps: 303525.62378 + dps: 412086.38702 + tps: 304531.67487 } } dps_results: { key: "TestArms-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 414225.60565 - tps: 306645.41073 + dps: 416974.02792 + tps: 308453.32501 } } dps_results: { key: "TestArms-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 417210.96325 - tps: 306479.4623 + dps: 420008.08219 + tps: 308300.82963 } } dps_results: { key: "TestArms-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 409926.4131 - tps: 303643.49755 + dps: 412691.15848 + tps: 305468.61661 } } dps_results: { key: "TestArms-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 410813.07264 - tps: 303560.88113 + dps: 413579.92825 + tps: 305375.53455 } } dps_results: { key: "TestArms-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 412467.96234 - tps: 305393.75366 + dps: 415245.31105 + tps: 307243.23179 } } dps_results: { key: "TestArms-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-StuffofNightmares-87160" value: { - dps: 413649.80231 - tps: 305692.40325 + dps: 416480.2311 + tps: 307542.21205 } } dps_results: { key: "TestArms-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SunsoulDefenderStone-101163" value: { - dps: 411167.90533 - tps: 304691.32894 + dps: 413977.21029 + tps: 306527.65528 } } dps_results: { key: "TestArms-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 416847.76417 - tps: 308051.6521 + dps: 419567.135 + tps: 309858.36906 } } dps_results: { key: "TestArms-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 418220.25187 - tps: 307957.09915 + dps: 421021.10737 + tps: 309795.07041 } } dps_results: { key: "TestArms-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 443573.47572 - tps: 325901.54033 + dps: 445173.23243 + tps: 327640.48805 } } dps_results: { key: "TestArms-AllItems-SymboloftheCatacombs-83735" value: { - dps: 411052.80353 - tps: 305152.19285 + dps: 414131.62797 + tps: 307028.60761 } } dps_results: { @@ -1791,232 +1791,232 @@ dps_results: { dps_results: { key: "TestArms-AllItems-TalismanofBloodlust-96864" value: { - dps: 408742.54382 - tps: 304983.96119 + dps: 411452.3349 + tps: 306822.7495 } } dps_results: { key: "TestArms-AllItems-TerrorintheMists-87167" value: { - dps: 420749.71286 - tps: 310227.61535 + dps: 423639.76512 + tps: 312142.53725 } } dps_results: { key: "TestArms-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-TickingEbonDetonator-105612" value: { - dps: 418006.81806 - tps: 309138.817 + dps: 420864.3656 + tps: 311042.27545 } } dps_results: { key: "TestArms-AllItems-Time-LostArtifact-103678" value: { - dps: 421876.01805 - tps: 313048.08152 + dps: 424759.31612 + tps: 314943.96502 } } dps_results: { key: "TestArms-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 409341.83721 - tps: 303403.79293 + dps: 412102.82031 + tps: 305226.81337 } } dps_results: { key: "TestArms-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 410467.35885 - tps: 304210.59597 + dps: 413209.45619 + tps: 306030.19764 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 404714.67836 - tps: 299161.19871 + dps: 405667.45732 + tps: 298578.93568 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 405252.10713 + tps: 298218.50945 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 411247.74396 - tps: 303640.36692 + dps: 410187.62457 + tps: 301861.75978 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 411085.61808 - tps: 303388.11281 + dps: 413839.31949 + tps: 305204.65497 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 405111.41816 - tps: 299381.40263 + dps: 407816.91482 + tps: 301172.78531 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 413247.95418 - tps: 305317.51121 + dps: 415972.81144 + tps: 307122.00611 } } dps_results: { key: "TestArms-AllItems-TyrannicalPrimalDiamond" value: { - dps: 427640.25844 - tps: 313306.76302 + dps: 429451.11245 + tps: 314485.3127 } } dps_results: { key: "TestArms-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-VaporshieldMedallion-93262" value: { - dps: 413357.25145 - tps: 305660.63614 + dps: 416224.97776 + tps: 307661.86723 } } dps_results: { key: "TestArms-AllItems-VialofDragon'sBlood-87063" value: { - dps: 412414.19852 - tps: 304774.74823 + dps: 415219.79831 + tps: 306612.70682 } } dps_results: { key: "TestArms-AllItems-VialofIchorousBlood-100963" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-VialofLivingCorruption-105568" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 405186.76813 - tps: 299467.61657 + dps: 407901.80726 + tps: 301264.61485 } } dps_results: { key: "TestArms-AllItems-VisionofthePredator-81192" value: { - dps: 410978.31042 - tps: 304125.9078 + dps: 413697.45185 + tps: 305933.80299 } } dps_results: { key: "TestArms-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 410212.52013 - tps: 303832.5612 + dps: 412963.15763 + tps: 305667.70872 } } dps_results: { key: "TestArms-AllItems-WindsweptPages-81125" value: { - dps: 409012.4114 - tps: 303060.10962 + dps: 411757.69786 + tps: 304849.82627 } } dps_results: { key: "TestArms-AllItems-WoundripperMedallion-93253" value: { - dps: 413459.70385 - tps: 305179.47259 + dps: 404774.07095 + tps: 301883.91469 } } dps_results: { key: "TestArms-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 404279.31284 - tps: 298763.98188 + dps: 406977.65455 + tps: 300550.11153 } } dps_results: { key: "TestArms-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 407369.81243 - tps: 295597.24243 + dps: 409818.63582 + tps: 297188.64733 } } dps_results: { key: "TestArms-AllItems-YaungolFireCarrier-86518" value: { - dps: 488453.89939 - tps: 361632.31752 + dps: 490749.05436 + tps: 362906.56047 } } dps_results: { key: "TestArms-AllItems-Yu'lon'sBite-103987" value: { - dps: 420902.81288 - tps: 310235.93708 + dps: 423767.51357 + tps: 312127.11546 } } dps_results: { key: "TestArms-AllItems-ZenAlchemistStone-75274" value: { - dps: 416924.9764 - tps: 309107.16012 + dps: 419672.73631 + tps: 310949.4506 } } dps_results: { diff --git a/sim/warrior/fury/TestFury.results b/sim/warrior/fury/TestFury.results index 1c3a6c5b61..56caf4c3d9 100644 --- a/sim/warrior/fury/TestFury.results +++ b/sim/warrior/fury/TestFury.results @@ -33,57 +33,57 @@ character_stats_results: { dps_results: { key: "TestFury-AllItems-AgilePrimalDiamond" value: { - dps: 288441.91337 - tps: 178336.81292 + dps: 290401.85821 + tps: 179677.91718 } } dps_results: { key: "TestFury-AllItems-AlacrityofXuen-103989" value: { - dps: 288229.22357 - tps: 184962.87146 + dps: 290040.1203 + tps: 185966.06532 } } dps_results: { key: "TestFury-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 276093.83602 - tps: 174811.04138 + dps: 276348.00389 + tps: 175193.08867 } } dps_results: { key: "TestFury-AllItems-ArrowflightMedallion-93258" value: { - dps: 277935.34069 - tps: 175357.74496 + dps: 279598.46501 + tps: 176144.22887 } } dps_results: { key: "TestFury-AllItems-AssuranceofConsequence-105472" value: { - dps: 275417.29154 - tps: 174069.81577 + dps: 277536.5123 + tps: 175744.53213 } } dps_results: { key: "TestFury-AllItems-AusterePrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-BadJuju-96781" value: { - dps: 282331.87932 - tps: 178220.41222 + dps: 284580.96317 + tps: 179984.61042 } } dps_results: { key: "TestFury-AllItems-BadgeofKypariZar-84079" value: { - dps: 280401.37736 - tps: 176866.17731 + dps: 282429.47787 + tps: 178478.42328 } } dps_results: { @@ -110,267 +110,267 @@ dps_results: { dps_results: { key: "TestFury-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 279725.11154 - tps: 177702.36313 + dps: 281937.95858 + tps: 179052.24248 } } dps_results: { key: "TestFury-AllItems-BlossomofPureSnow-89081" value: { - dps: 277795.62034 - tps: 174956.60259 + dps: 279604.12088 + tps: 175980.54197 } } dps_results: { key: "TestFury-AllItems-BottleofInfiniteStars-87057" value: { - dps: 280394.53432 - tps: 177034.44799 + dps: 282708.45866 + tps: 178789.95004 } } dps_results: { key: "TestFury-AllItems-BraidofTenSongs-84072" value: { - dps: 280730.82793 - tps: 177323.06693 + dps: 282794.01293 + tps: 178989.65459 } } dps_results: { key: "TestFury-AllItems-Brawler'sStatue-282039" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276120.37951 + tps: 174224.36444 } } dps_results: { key: "TestFury-AllItems-BreathoftheHydra-96827" value: { - dps: 275678.12957 - tps: 175862.74027 + dps: 278494.44696 + tps: 177547.11272 } } dps_results: { key: "TestFury-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276120.37951 + tps: 174224.36444 } } dps_results: { key: "TestFury-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 285536.03149 - tps: 178809.61594 + dps: 288050.65627 + tps: 180627.80663 } } dps_results: { key: "TestFury-AllItems-BurningPrimalDiamond" value: { - dps: 288427.14607 - tps: 178329.09296 + dps: 290387.09091 + tps: 179670.19722 } } dps_results: { key: "TestFury-AllItems-CapacitivePrimalDiamond" value: { - dps: 294503.12571 - tps: 184298.2193 + dps: 296634.12618 + tps: 185605.85815 } } dps_results: { key: "TestFury-AllItems-CarbonicCarbuncle-81138" value: { - dps: 283563.55035 - tps: 178246.36437 + dps: 285906.68602 + tps: 179792.07369 } } dps_results: { key: "TestFury-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 283382.42822 - tps: 177336.17599 + dps: 285409.8173 + tps: 178634.77539 } } dps_results: { key: "TestFury-AllItems-CharmofTenSongs-84071" value: { - dps: 279839.06362 - tps: 176802.69046 + dps: 282233.72167 + tps: 178186.23747 } } dps_results: { key: "TestFury-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 280585.34317 - tps: 177430.89494 + dps: 283190.96136 + tps: 178805.4777 } } dps_results: { key: "TestFury-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 280715.42127 - tps: 177392.73307 + dps: 283075.89775 + tps: 179161.41593 } } dps_results: { key: "TestFury-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 290727.75745 - tps: 182220.8572 + dps: 292665.54749 + tps: 183512.25834 } } dps_results: { key: "TestFury-AllItems-CoreofDecency-87497" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CourageousPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 275015.93993 - tps: 173736.61975 + dps: 276110.6223 + tps: 174336.53507 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 278671.31129 - tps: 176103.36943 + dps: 279711.67801 + tps: 176672.10004 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 278779.7386 - tps: 174991.24195 + dps: 280847.35112 + tps: 176631.43031 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 274990.65165 - tps: 173598.6861 + dps: 277319.06888 + tps: 175513.83444 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 279919.92617 - tps: 176890.26896 + dps: 281939.49239 + tps: 178538.748 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 275035.50989 - tps: 173747.30459 + dps: 276130.19227 + tps: 174347.21991 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 279366.72962 - tps: 176542.71175 + dps: 280399.25957 + tps: 177108.8286 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 279483.59813 - tps: 175317.09197 + dps: 281330.88069 + tps: 176855.84344 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 275153.37826 - tps: 173903.12978 + dps: 277312.54597 + tps: 175509.2992 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 281598.07612 - tps: 177862.86025 + dps: 283420.38399 + tps: 179377.13342 } } dps_results: { @@ -383,905 +383,905 @@ dps_results: { dps_results: { key: "TestFury-AllItems-CutstitcherMedallion-93255" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-Daelo'sFinalWords-87496" value: { - dps: 281513.96638 - tps: 177587.02674 + dps: 282951.52462 + tps: 178164.30148 } } dps_results: { key: "TestFury-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 293033.65743 - tps: 183357.34634 + dps: 295129.68728 + tps: 184685.15122 } } dps_results: { key: "TestFury-AllItems-DarkmistVortex-87172" value: { - dps: 286967.73929 - tps: 182175.80939 + dps: 288313.03452 + tps: 183334.97935 } } dps_results: { key: "TestFury-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 279215.30784 - tps: 176748.81491 + dps: 280416.60842 + tps: 177277.00974 } } dps_results: { key: "TestFury-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-DestructivePrimalDiamond" value: { - dps: 285828.2525 - tps: 175945.55248 + dps: 287505.47603 + tps: 177253.57848 } } dps_results: { key: "TestFury-AllItems-DisciplineofXuen-103986" value: { - dps: 286078.31231 - tps: 180929.67838 + dps: 288260.05072 + tps: 182504.42714 } } dps_results: { key: "TestFury-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 276093.83602 - tps: 174811.04138 + dps: 276348.00389 + tps: 175193.08867 } } dps_results: { key: "TestFury-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 279215.30784 - tps: 176748.81491 + dps: 280416.60842 + tps: 177277.00974 } } dps_results: { key: "TestFury-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 278961.09252 - tps: 176308.12627 + dps: 280170.81757 + tps: 176817.22531 } } dps_results: { key: "TestFury-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 282755.50376 - tps: 178747.71475 + dps: 283964.50351 + tps: 179252.07411 } } dps_results: { key: "TestFury-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 275015.93993 - tps: 173736.61975 + dps: 276110.6223 + tps: 174336.53507 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 278671.31129 - tps: 176103.36943 + dps: 279711.67801 + tps: 176672.10004 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 278779.7386 - tps: 174991.24195 + dps: 280847.35112 + tps: 176631.43031 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 274956.58573 - tps: 173558.97819 + dps: 277284.15685 + tps: 175473.51392 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 280058.72814 - tps: 177208.6711 + dps: 282099.89859 + tps: 178756.97661 } } dps_results: { key: "TestFury-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 278961.09252 - tps: 176308.12627 + dps: 280170.81757 + tps: 176817.22531 } } dps_results: { key: "TestFury-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-EffulgentPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-EmberPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-EmblemofKypariZar-84077" value: { - dps: 277458.62964 - tps: 175347.87025 + dps: 279447.44201 + tps: 177079.95161 } } dps_results: { key: "TestFury-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 279203.26373 - tps: 175999.98317 + dps: 280924.78959 + tps: 177147.89326 } } dps_results: { key: "TestFury-AllItems-EmptyFruitBarrel-81133" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 294605.50883 - tps: 184363.16799 + dps: 296581.48278 + tps: 185579.51058 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 291565.18833 - tps: 182746.6518 + dps: 293530.11078 + tps: 183962.19876 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 294344.23771 - tps: 183254.65964 + dps: 297183.0974 + tps: 185477.56717 } } dps_results: { key: "TestFury-AllItems-EnigmaticPrimalDiamond" value: { - dps: 285828.2525 - tps: 175945.55248 + dps: 287505.47603 + tps: 177253.57848 } } dps_results: { key: "TestFury-AllItems-EssenceofTerror-87175" value: { - dps: 276131.9786 - tps: 175410.84003 + dps: 278425.51354 + tps: 177091.64829 } } dps_results: { key: "TestFury-AllItems-EternalPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-EvilEyeofGalakras-105491" value: { - dps: 302997.67019 - tps: 195310.51898 + dps: 304932.30924 + tps: 195971.06779 } } dps_results: { key: "TestFury-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 289333.85863 - tps: 183408.2993 + dps: 290834.84906 + tps: 184149.22152 } } dps_results: { key: "TestFury-AllItems-FearwurmBadge-84074" value: { - dps: 279389.94508 - tps: 175779.33638 + dps: 281189.43557 + tps: 176960.74719 } } dps_results: { key: "TestFury-AllItems-FearwurmRelic-84070" value: { - dps: 278623.96351 - tps: 174397.44084 + dps: 281018.31941 + tps: 175766.46148 } } dps_results: { key: "TestFury-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 279816.4155 - tps: 177694.75921 + dps: 282065.50882 + tps: 178956.90117 } } dps_results: { key: "TestFury-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 281014.80637 - tps: 177641.76302 + dps: 283380.80181 + tps: 179414.03943 } } dps_results: { key: "TestFury-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 291449.94591 - tps: 186195.30606 + dps: 293988.89067 + tps: 187968.44041 } } dps_results: { key: "TestFury-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 276078.33101 - tps: 174224.86469 + dps: 277331.91957 + tps: 175214.40029 } } dps_results: { key: "TestFury-AllItems-FlashingSteelTalisman-81265" value: { - dps: 275408.37822 - tps: 173897.08288 + dps: 277305.07419 + tps: 174890.34978 } } dps_results: { key: "TestFury-AllItems-FleetPrimalDiamond" value: { - dps: 284268.80951 - tps: 175605.21038 + dps: 286195.25722 + tps: 176920.95588 } } dps_results: { key: "TestFury-AllItems-ForlornPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 282407.08996 - tps: 178348.65308 + dps: 284734.61286 + tps: 180106.52912 } } dps_results: { key: "TestFury-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Fusion-FireCore-105459" value: { - dps: 289508.18486 - tps: 182999.82238 + dps: 291723.58411 + tps: 184706.11518 } } dps_results: { key: "TestFury-AllItems-GazeoftheTwins-96915" value: { - dps: 290977.16786 - tps: 183204.09234 + dps: 293022.09523 + tps: 184552.67306 } } dps_results: { key: "TestFury-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 278826.96212 - tps: 174931.13775 + dps: 280280.44686 + tps: 175534.33166 } } dps_results: { key: "TestFury-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 300105.76932 - tps: 193275.95278 + dps: 303128.99945 + tps: 195485.97931 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 275236.3987 - tps: 173911.81524 + dps: 276210.0795 + tps: 174399.78892 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 281780.57982 - tps: 178067.6937 + dps: 282785.80933 + tps: 178624.70544 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 280568.3562 - tps: 176255.05225 + dps: 282567.9769 + tps: 177495.13991 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 275032.92192 - tps: 173671.91796 + dps: 277363.95642 + tps: 175598.23526 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 284671.03557 - tps: 179419.73183 + dps: 287236.05794 + tps: 181319.02817 } } dps_results: { key: "TestFury-AllItems-Haromm'sTalisman-105527" value: { - dps: 289617.25253 - tps: 188165.06561 + dps: 291807.94418 + tps: 189808.14545 } } dps_results: { key: "TestFury-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 278147.81519 - tps: 176075.18488 + dps: 279367.6033 + tps: 176395.27211 } } dps_results: { key: "TestFury-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 280820.742 - tps: 177489.02383 + dps: 283165.5956 + tps: 179244.06092 } } dps_results: { key: "TestFury-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 285482.81098 - tps: 178849.32817 + dps: 287130.95506 + tps: 180298.96358 } } dps_results: { key: "TestFury-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 285631.76616 - tps: 180586.94784 + dps: 287990.19273 + tps: 182359.27116 } } dps_results: { key: "TestFury-AllItems-HeartofFire-81181" value: { - dps: 278508.7265 - tps: 175945.13363 + dps: 279779.47404 + tps: 176475.28582 } } dps_results: { key: "TestFury-AllItems-HeartwarmerMedallion-93260" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-HelmbreakerMedallion-93261" value: { - dps: 283359.32484 - tps: 178626.069 + dps: 285027.63949 + tps: 179415.15136 } } dps_results: { key: "TestFury-AllItems-Horridon'sLastGasp-96757" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-ImpassivePrimalDiamond" value: { - dps: 285828.2525 - tps: 175945.55248 + dps: 287505.47603 + tps: 177253.57848 } } dps_results: { key: "TestFury-AllItems-IndomitablePrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-InsigniaofKypariZar-84078" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-IronBellyWok-89083" value: { - dps: 283106.05906 - tps: 178994.60517 + dps: 284309.37138 + tps: 179286.70131 } } dps_results: { key: "TestFury-AllItems-IronProtectorTalisman-85181" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-JadeBanditFigurine-86772" value: { - dps: 276324.7858 - tps: 174701.67552 + dps: 277811.70188 + tps: 175963.50231 } } dps_results: { key: "TestFury-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 280049.14381 - tps: 177448.15324 + dps: 281441.58597 + tps: 178733.67052 } } dps_results: { key: "TestFury-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 277528.97375 - tps: 174851.22266 + dps: 279337.47429 + tps: 175875.16203 } } dps_results: { key: "TestFury-AllItems-JadeWarlordFigurine-86775" value: { - dps: 279708.78536 - tps: 176784.44448 + dps: 280919.0673 + tps: 177293.11825 } } dps_results: { key: "TestFury-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 275532.88658 - tps: 172523.53047 + dps: 278673.18395 + tps: 175011.7707 } } dps_results: { key: "TestFury-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 274986.2049 - tps: 173992.47619 - hps: 8689.56407 + dps: 277253.94562 + tps: 175705.56656 + hps: 8761.22468 } } dps_results: { key: "TestFury-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 289344.35976 - tps: 188158.92131 + dps: 291813.29145 + tps: 190072.01808 } } dps_results: { key: "TestFury-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 282755.50376 - tps: 178747.71475 + dps: 283964.50351 + tps: 179252.07411 } } dps_results: { key: "TestFury-AllItems-KnotofTenSongs-84073" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276904.19195 + tps: 175324.48124 } } dps_results: { key: "TestFury-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 280334.65451 - tps: 177183.15483 + dps: 281545.40262 + tps: 177691.47262 } } dps_results: { key: "TestFury-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 283790.81875 - tps: 179136.07711 + dps: 285942.67457 + tps: 180573.71438 } } dps_results: { key: "TestFury-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 280636.87292 - tps: 175543.62932 + dps: 282885.73326 + tps: 176681.6289 } } dps_results: { key: "TestFury-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 279502.8766 - tps: 176386.64231 + dps: 281761.1003 + tps: 178228.8533 } } dps_results: { key: "TestFury-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 281126.45051 - tps: 178520.23653 + dps: 283336.4755 + tps: 179976.0846 } } dps_results: { key: "TestFury-AllItems-LightoftheCosmos-87065" value: { - dps: 277628.46463 - tps: 176178.74897 + dps: 279299.82406 + tps: 177084.62252 } } dps_results: { key: "TestFury-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 293033.65743 - tps: 183357.34634 + dps: 295129.68728 + tps: 184685.15122 } } dps_results: { key: "TestFury-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 275035.50989 - tps: 173747.30459 + dps: 276130.19227 + tps: 174347.21991 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 279366.72962 - tps: 176542.71175 + dps: 280399.25957 + tps: 177108.8286 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 279483.59813 - tps: 175317.09197 + dps: 281330.88069 + tps: 176855.84344 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 275121.40087 - tps: 173696.16653 + dps: 277342.60437 + tps: 175507.46928 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 281377.91747 - tps: 177651.62463 + dps: 283354.04166 + tps: 179195.82459 } } dps_results: { key: "TestFury-AllItems-MarkoftheCatacombs-83731" value: { - dps: 278232.50248 - tps: 175209.18999 + dps: 280382.00364 + tps: 177033.84455 } } dps_results: { key: "TestFury-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 280704.69394 - tps: 177418.88869 + dps: 281915.71766 + tps: 177926.99601 } } dps_results: { key: "TestFury-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 277517.98219 - tps: 175334.29443 + dps: 279804.08097 + tps: 177060.36154 } } dps_results: { key: "TestFury-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-MirrorScope-4700" value: { - dps: 290659.55651 - tps: 181855.81851 + dps: 292625.02257 + tps: 183072.26642 } } dps_results: { key: "TestFury-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MistdancerDefenderStone-101087" value: { - dps: 280903.98674 - tps: 177510.29646 + dps: 283285.0563 + tps: 179280.96052 } } dps_results: { key: "TestFury-AllItems-MistdancerIdolofRage-101113" value: { - dps: 279248.02263 - tps: 176309.8312 + dps: 281659.92439 + tps: 178190.17502 } } dps_results: { key: "TestFury-AllItems-MistdancerStoneofRage-101117" value: { - dps: 280945.70962 - tps: 178387.53946 + dps: 283180.25405 + tps: 179857.87054 } } dps_results: { key: "TestFury-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-MithrilWristwatch-282033" value: { - dps: 282413.99733 - tps: 177026.77788 + dps: 284392.7999 + tps: 178298.77859 } } dps_results: { key: "TestFury-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 281576.77933 - tps: 178597.09332 + dps: 283535.07153 + tps: 179818.9359 } } dps_results: { key: "TestFury-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 280901.3601 - tps: 177515.05313 + dps: 283260.59672 + tps: 179280.57961 } } dps_results: { key: "TestFury-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-OathswornDefenderIdol-101303" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-OathswornDefenderStone-101306" value: { - dps: 280684.84599 - tps: 177336.85159 + dps: 283042.64142 + tps: 179113.723 } } dps_results: { key: "TestFury-AllItems-OathswornIdolofBattle-101295" value: { - dps: 285617.14141 - tps: 178932.03081 + dps: 287464.29657 + tps: 180630.27921 } } dps_results: { key: "TestFury-AllItems-OathswornStoneofBattle-101294" value: { - dps: 285614.45041 - tps: 180544.28623 + dps: 287943.40684 + tps: 182299.43877 } } dps_results: { key: "TestFury-AllItems-PhaseFingers-4697" value: { - dps: 293690.8126 - tps: 183779.16808 + dps: 295223.03454 + tps: 184544.43384 } } dps_results: { @@ -1308,85 +1308,85 @@ dps_results: { dps_results: { key: "TestFury-AllItems-PouchofWhiteAsh-103639" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276904.19195 + tps: 175324.48124 } } dps_results: { key: "TestFury-AllItems-PowerfulPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-PriceofProgress-81266" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 275339.19065 - tps: 173990.61406 + dps: 276329.2519 + tps: 174469.61151 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 283845.25228 - tps: 179372.07988 + dps: 284827.15877 + tps: 179921.31193 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 284297.4625 - tps: 177761.94905 + dps: 286345.11328 + tps: 179044.66539 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 274938.59183 - tps: 173817.39394 + dps: 277205.11463 + tps: 175530.57335 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 287263.32741 - tps: 181414.74311 + dps: 289048.25768 + tps: 182939.23909 } } dps_results: { @@ -1399,400 +1399,400 @@ dps_results: { dps_results: { key: "TestFury-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 291857.28608 - tps: 182738.1471 + dps: 294030.67829 + tps: 184154.30839 } } dps_results: { key: "TestFury-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 287145.89915 - tps: 182098.48986 + dps: 289887.50337 + tps: 183908.71049 } } dps_results: { key: "TestFury-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 287145.89915 - tps: 182098.48986 + dps: 289887.50337 + tps: 183908.71049 } } dps_results: { key: "TestFury-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 281158.64147 - tps: 174887.04782 + dps: 283661.39091 + tps: 176854.86147 } } dps_results: { key: "TestFury-AllItems-Qian-Ying,FortitudeofNiuzao-102250" value: { - dps: 284377.3644 - tps: 177443.3753 + dps: 286926.10256 + tps: 179336.49106 } } dps_results: { key: "TestFury-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-RelicofChi-Ji-79330" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-RelicofKypariZar-84075" value: { - dps: 276609.2252 - tps: 174568.68163 + dps: 279712.82058 + tps: 176454.35077 } } dps_results: { key: "TestFury-AllItems-RelicofNiuzao-79329" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-RelicofXuen-79327" value: { - dps: 284059.3318 - tps: 179387.56347 + dps: 285838.46899 + tps: 180931.68875 } } dps_results: { key: "TestFury-AllItems-RelicofXuen-79328" value: { - dps: 274873.86152 - tps: 174418.65129 + dps: 277020.7179 + tps: 175809.95533 } } dps_results: { key: "TestFury-AllItems-RelicofYu'lon-79331" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 275937.26034 - tps: 173345.45626 + dps: 278721.77638 + tps: 175154.47809 } } dps_results: { key: "TestFury-AllItems-ResolveofNiuzao-103990" value: { - dps: 281997.86949 - tps: 178096.34994 + dps: 284321.92517 + tps: 179851.56355 } } dps_results: { key: "TestFury-AllItems-ReverberatingPrimalDiamond" value: { - dps: 289404.81654 - tps: 178936.75834 + dps: 291363.1645 + tps: 180277.48512 } } dps_results: { key: "TestFury-AllItems-RevitalizingPrimalDiamond" value: { - dps: 288427.14607 - tps: 178329.09296 + dps: 290387.09091 + tps: 179670.19722 } } dps_results: { key: "TestFury-AllItems-RuneofRe-Origination-96918" value: { - dps: 273009.06863 - tps: 169640.84647 + dps: 275068.36926 + tps: 170980.60712 } } dps_results: { key: "TestFury-AllItems-SI:7Operative'sManual-92784" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276904.19195 + tps: 175324.48124 } } dps_results: { key: "TestFury-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 276066.8735 + tps: 174207.08339 } } dps_results: { key: "TestFury-AllItems-SearingWords-81267" value: { - dps: 279347.61394 - tps: 175220.97954 + dps: 281203.36381 + tps: 176774.97711 } } dps_results: { key: "TestFury-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 275525.01894 - tps: 175889.85698 + dps: 276453.40624 + tps: 176459.27741 } } dps_results: { key: "TestFury-AllItems-SigilofCompassion-83736" value: { - dps: 277517.98219 - tps: 175334.29443 + dps: 279804.08097 + tps: 177060.36154 } } dps_results: { key: "TestFury-AllItems-SigilofDevotion-83740" value: { - dps: 280800.14597 - tps: 176827.4643 + dps: 282958.35039 + tps: 178669.87054 } } dps_results: { key: "TestFury-AllItems-SigilofFidelity-83737" value: { - dps: 277471.66352 - tps: 175156.57312 + dps: 279544.70803 + tps: 176558.21797 } } dps_results: { key: "TestFury-AllItems-SigilofGrace-83738" value: { - dps: 277515.46563 - tps: 175831.40657 + dps: 280367.17012 + tps: 177669.05033 } } dps_results: { key: "TestFury-AllItems-SigilofKypariZar-84076" value: { - dps: 281309.03177 - tps: 177135.57903 + dps: 283368.63278 + tps: 178783.17222 } } dps_results: { key: "TestFury-AllItems-SigilofPatience-83739" value: { - dps: 278116.64968 - tps: 175715.15428 + dps: 280416.67889 + tps: 177450.02152 } } dps_results: { key: "TestFury-AllItems-SigilofRampage-105580" value: { - dps: 275369.56333 - tps: 174609.16553 + dps: 277412.52062 + tps: 176050.40457 } } dps_results: { key: "TestFury-AllItems-SigiloftheCatacombs-83732" value: { - dps: 279262.51247 - tps: 176552.90245 + dps: 281823.61932 + tps: 178138.29861 } } dps_results: { key: "TestFury-AllItems-SinisterPrimalDiamond" value: { - dps: 285064.06657 - tps: 175713.74559 + dps: 286882.50484 + tps: 177096.05251 } } dps_results: { key: "TestFury-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 294229.64826 - tps: 185214.72501 + dps: 297028.77185 + tps: 186720.72912 } } dps_results: { key: "TestFury-AllItems-SkullrenderMedallion-93256" value: { - dps: 283359.32484 - tps: 178626.069 + dps: 285027.63949 + tps: 179415.15136 } } dps_results: { key: "TestFury-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SoulBarrier-96927" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SparkofZandalar-96770" value: { - dps: 282858.38251 - tps: 180482.0851 + dps: 285705.5108 + tps: 182168.22785 } } dps_results: { key: "TestFury-AllItems-SpiritsoftheSun-87163" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 282585.75274 - tps: 179063.5304 + dps: 285183.2031 + tps: 180781.3508 } } dps_results: { key: "TestFury-AllItems-SpringrainIdolofRage-101009" value: { - dps: 279466.21871 - tps: 176376.59737 + dps: 281714.04766 + tps: 178209.07853 } } dps_results: { key: "TestFury-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 280799.26172 - tps: 177464.98235 + dps: 283132.67221 + tps: 179224.3946 } } dps_results: { key: "TestFury-AllItems-SpringrainStoneofRage-101012" value: { - dps: 281095.02771 - tps: 178509.29553 + dps: 283317.43131 + tps: 179996.16028 } } dps_results: { key: "TestFury-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 275525.01894 - tps: 175889.85698 + dps: 276453.40624 + tps: 176459.27741 } } dps_results: { key: "TestFury-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 281179.42854 - tps: 177591.74364 + dps: 283496.54979 + tps: 179341.63242 } } dps_results: { key: "TestFury-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 281918.15335 - tps: 177879.1964 + dps: 284364.42256 + tps: 179413.8823 } } dps_results: { key: "TestFury-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 279276.9389 - tps: 176475.30661 + dps: 281588.40457 + tps: 178223.98169 } } dps_results: { key: "TestFury-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 280797.54265 - tps: 177496.36057 + dps: 283147.43946 + tps: 179264.04323 } } dps_results: { key: "TestFury-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 280823.89095 - tps: 178256.23206 + dps: 283034.84567 + tps: 179728.91457 } } dps_results: { key: "TestFury-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-StuffofNightmares-87160" value: { - dps: 280460.06202 - tps: 177148.22127 + dps: 282771.08827 + tps: 178893.42978 } } dps_results: { key: "TestFury-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SunsoulDefenderStone-101163" value: { - dps: 280906.21832 - tps: 177495.75164 + dps: 283274.18352 + tps: 179270.1272 } } dps_results: { key: "TestFury-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 286199.34302 - tps: 179126.13777 + dps: 287997.93849 + tps: 180685.66839 } } dps_results: { key: "TestFury-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 285743.0853 - tps: 180624.13056 + dps: 288074.05057 + tps: 182379.19658 } } dps_results: { key: "TestFury-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 295637.05142 - tps: 185014.82475 + dps: 297739.76697 + tps: 186341.93459 } } dps_results: { key: "TestFury-AllItems-SymboloftheCatacombs-83735" value: { - dps: 280639.18673 - tps: 176710.98066 + dps: 282585.725 + tps: 178145.08229 } } dps_results: { @@ -1805,246 +1805,246 @@ dps_results: { dps_results: { key: "TestFury-AllItems-TalismanofBloodlust-96864" value: { - dps: 278173.38498 - tps: 177769.77491 + dps: 280928.77 + tps: 179543.12117 } } dps_results: { key: "TestFury-AllItems-TerrorintheMists-87167" value: { - dps: 280546.19072 - tps: 177129.7432 + dps: 282803.91036 + tps: 179100.44592 } } dps_results: { key: "TestFury-AllItems-TheGloamingBlade-88149" value: { - dps: 294503.12571 - tps: 184298.2193 + dps: 296634.12618 + tps: 185605.85815 } } dps_results: { key: "TestFury-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-Thok'sTailTip-105609" value: { - dps: 302887.34676 - tps: 191277.57813 + dps: 305515.50063 + tps: 193010.04161 } } dps_results: { key: "TestFury-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 273660.18877 - tps: 173479.42408 + dps: 275761.2577 + tps: 175140.66046 } } dps_results: { key: "TestFury-AllItems-TickingEbonDetonator-105612" value: { - dps: 286060.23858 - tps: 180884.89165 + dps: 288342.00573 + tps: 182441.26568 } } dps_results: { key: "TestFury-AllItems-Time-LostArtifact-103678" value: { - dps: 282583.3579 - tps: 179281.992 + dps: 285141.61391 + tps: 181069.77397 } } dps_results: { key: "TestFury-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 279512.00228 - tps: 176386.64231 + dps: 281770.46353 + tps: 178228.8533 } } dps_results: { key: "TestFury-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 281001.36343 - tps: 178464.71352 + dps: 283223.09536 + tps: 179949.25509 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 275155.71134 - tps: 173864.37142 + dps: 276135.61473 + tps: 174352.64237 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 275979.73255 + tps: 174279.32302 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 280293.0054 - tps: 177127.90012 + dps: 281315.05213 + tps: 177690.51773 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 280072.59689 - tps: 175713.51131 + dps: 282169.28135 + tps: 177330.38036 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 275111.82657 - tps: 173932.36902 + dps: 277271.45523 + tps: 175540.30885 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 282365.60099 - tps: 178357.84972 + dps: 284374.67946 + tps: 179909.95198 } } dps_results: { key: "TestFury-AllItems-TyrannicalPrimalDiamond" value: { - dps: 282274.58349 - tps: 174375.9191 + dps: 284188.46904 + tps: 175682.69545 } } dps_results: { key: "TestFury-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-VaporshieldMedallion-93262" value: { - dps: 280704.69394 - tps: 177418.88869 + dps: 281915.71766 + tps: 177926.99601 } } dps_results: { key: "TestFury-AllItems-VialofDragon'sBlood-87063" value: { - dps: 280106.84014 - tps: 176930.44381 + dps: 282414.87363 + tps: 178673.35424 } } dps_results: { key: "TestFury-AllItems-VialofIchorousBlood-100963" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-VialofLivingCorruption-105568" value: { - dps: 274860.2029 - tps: 173695.65188 + dps: 277123.78302 + tps: 175404.42726 } } dps_results: { key: "TestFury-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 276086.35322 - tps: 175412.64233 + dps: 278763.48282 + tps: 176925.38997 } } dps_results: { key: "TestFury-AllItems-VisionofthePredator-81192" value: { - dps: 275579.1644 - tps: 173966.21859 + dps: 277639.25036 + tps: 175524.02098 } } dps_results: { key: "TestFury-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 277415.08854 - tps: 174706.33159 + dps: 279938.36597 + tps: 176697.52791 } } dps_results: { key: "TestFury-AllItems-WindsweptPages-81125" value: { - dps: 279287.59657 - tps: 177070.439 + dps: 281586.3559 + tps: 178847.52347 } } dps_results: { key: "TestFury-AllItems-WoundripperMedallion-93253" value: { - dps: 277935.34069 - tps: 175357.74496 + dps: 279598.46501 + tps: 176144.22887 } } dps_results: { key: "TestFury-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 277662.51276 - tps: 176157.79474 + dps: 279355.63714 + tps: 176728.40405 } } dps_results: { key: "TestFury-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 279532.84789 - tps: 174442.92907 + dps: 281772.79127 + tps: 175530.03729 } } dps_results: { key: "TestFury-AllItems-YaungolFireCarrier-86518" value: { - dps: 294503.12571 - tps: 184298.2193 + dps: 296634.12618 + tps: 185605.85815 } } dps_results: { key: "TestFury-AllItems-Yu'lon'sBite-103987" value: { - dps: 277538.69387 - tps: 175203.85798 + dps: 279766.00166 + tps: 177004.7341 } } dps_results: { key: "TestFury-AllItems-ZenAlchemistStone-75274" value: { - dps: 284927.06123 - tps: 179998.08094 + dps: 287185.60917 + tps: 181675.82553 } } dps_results: { diff --git a/sim/warrior/protection/TestProtectionWarrior.results b/sim/warrior/protection/TestProtectionWarrior.results index ddc9418e67..fd888f0d7e 100644 --- a/sim/warrior/protection/TestProtectionWarrior.results +++ b/sim/warrior/protection/TestProtectionWarrior.results @@ -33,65 +33,65 @@ character_stats_results: { dps_results: { key: "TestProtectionWarrior-AllItems-AgilePrimalDiamond" value: { - dps: 427335.52407 - tps: 2.60403633864e+06 - dtps: 24162.59793 + dps: 429487.3499 + tps: 2.62255756689e+06 + dtps: 23648.91906 } } dps_results: { key: "TestProtectionWarrior-AllItems-AlacrityofXuen-103989" value: { - dps: 413460.0405 - tps: 2.52084732768e+06 - dtps: 15889.03979 + dps: 417121.28748 + tps: 2.54298683552e+06 + dtps: 15501.10703 } } dps_results: { key: "TestProtectionWarrior-AllItems-ArcaneBadgeoftheShieldwall-93347" value: { - dps: 405191.23362 - tps: 2.47554762202e+06 - dtps: 17401.01313 + dps: 410045.07406 + tps: 2.50235649925e+06 + dtps: 16894.4837 } } dps_results: { key: "TestProtectionWarrior-AllItems-ArrowflightMedallion-93258" value: { - dps: 411435.47258 - tps: 2.51510611095e+06 - dtps: 18368.0802 + dps: 413788.82334 + tps: 2.52425665582e+06 + dtps: 18326.52426 } } dps_results: { key: "TestProtectionWarrior-AllItems-AssuranceofConsequence-105472" value: { - dps: 401675.37875 - tps: 2.45640315012e+06 - dtps: 18314.25663 + dps: 408028.28396 + tps: 2.49117525991e+06 + dtps: 16499.71359 } } dps_results: { key: "TestProtectionWarrior-AllItems-AusterePrimalDiamond" value: { - dps: 418982.45776 - tps: 2.55395699391e+06 - dtps: 23720.03979 + dps: 422345.85835 + tps: 2.58015455547e+06 + dtps: 22838.35612 } } dps_results: { key: "TestProtectionWarrior-AllItems-BadJuju-96781" value: { - dps: 402484.36962 - tps: 2.46069779152e+06 - dtps: 18515.9705 + dps: 409328.72127 + tps: 2.50136603646e+06 + dtps: 16856.39125 } } dps_results: { key: "TestProtectionWarrior-AllItems-BadgeofKypariZar-84079" value: { - dps: 406133.85638 - tps: 2.48365958641e+06 - dtps: 17590.6827 + dps: 412360.14982 + tps: 2.52044335945e+06 + dtps: 16483.38026 } } dps_results: { @@ -121,1347 +121,1346 @@ dps_results: { dps_results: { key: "TestProtectionWarrior-AllItems-BlackBloodofY'Shaarj-105648" value: { - dps: 404333.39553 - tps: 2.46972456669e+06 - dtps: 17327.86306 + dps: 407940.58256 + tps: 2.48853097598e+06 + dtps: 16485.49542 } } dps_results: { key: "TestProtectionWarrior-AllItems-BlossomofPureSnow-89081" value: { - dps: 410369.04947 - tps: 2.50730913837e+06 - dtps: 18405.68893 + dps: 413930.6599 + tps: 2.52488201391e+06 + dtps: 17752.83274 } } dps_results: { key: "TestProtectionWarrior-AllItems-BottleofInfiniteStars-87057" value: { - dps: 401667.21305 - tps: 2.45530199633e+06 - dtps: 17500.65003 + dps: 408209.72679 + tps: 2.49385729047e+06 + dtps: 16072.73019 } } dps_results: { key: "TestProtectionWarrior-AllItems-BraidofTenSongs-84072" value: { - dps: 405256.30673 - tps: 2.47505176151e+06 - dtps: 17010.42855 + dps: 408575.13342 + tps: 2.49024948033e+06 + dtps: 16171.31109 } } dps_results: { key: "TestProtectionWarrior-AllItems-Brawler'sStatue-282039" value: { - dps: 419169.08731 - tps: 2.55974951125e+06 - dtps: 15171.09417 + dps: 417027.15209 + tps: 2.55122563206e+06 + dtps: 14565.54955 } } dps_results: { key: "TestProtectionWarrior-AllItems-BreathoftheHydra-96827" value: { - dps: 403071.61055 - tps: 2.45834490618e+06 - dtps: 17819.91622 + dps: 406253.0441 + tps: 2.47393190737e+06 + dtps: 16343.25944 } } dps_results: { key: "TestProtectionWarrior-AllItems-BroochofMunificentDeeds-87500" value: { - dps: 401788.34169 - tps: 2.45567992971e+06 - dtps: 18483.51307 + dps: 407099.1259 + tps: 2.48605374757e+06 + dtps: 17390.01421 } } dps_results: { key: "TestProtectionWarrior-AllItems-BrutalTalismanoftheShado-PanAssault-94508" value: { - dps: 411947.17832 - tps: 2.51506295606e+06 - dtps: 17228.32034 + dps: 416376.57457 + tps: 2.54421526832e+06 + dtps: 15798.9128 } } dps_results: { key: "TestProtectionWarrior-AllItems-BurningPrimalDiamond" value: { - dps: 427113.95302 - tps: 2.60248534128e+06 - dtps: 24162.59793 + dps: 430349.77224 + tps: 2.6282122429e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-CapacitivePrimalDiamond" value: { - dps: 443841.54891 - tps: 2.73061879762e+06 - dtps: 23966.84479 + dps: 445670.82977 + tps: 2.74184164639e+06 + dtps: 23287.8298 } } dps_results: { key: "TestProtectionWarrior-AllItems-CarbonicCarbuncle-81138" value: { - dps: 409729.36228 - tps: 2.49467934663e+06 - dtps: 18843.05761 + dps: 413472.57955 + tps: 2.51738049503e+06 + dtps: 16662.72454 } } dps_results: { key: "TestProtectionWarrior-AllItems-Cha-Ye'sEssenceofBrilliance-96888" value: { - dps: 413529.18589 - tps: 2.52930189252e+06 - dtps: 18270.90094 + dps: 420038.3982 + tps: 2.56786439324e+06 + dtps: 18092.15032 } } dps_results: { key: "TestProtectionWarrior-AllItems-CharmofTenSongs-84071" value: { - dps: 408216.39138 - tps: 2.49538252e+06 - dtps: 17079.35995 + dps: 414328.99959 + tps: 2.53422021961e+06 + dtps: 16808.46878 } } dps_results: { key: "TestProtectionWarrior-AllItems-CommunalIdolofDestruction-101168" value: { - dps: 403779.98979 - tps: 2.45580508381e+06 - dtps: 17991.80107 + dps: 407496.72679 + tps: 2.4774604656e+06 + dtps: 17300.08334 } } dps_results: { key: "TestProtectionWarrior-AllItems-CommunalStoneofDestruction-101171" value: { - dps: 401947.69718 - tps: 2.45694093074e+06 - dtps: 17692.84036 + dps: 408827.99626 + tps: 2.4968564132e+06 + dtps: 16765.15829 } } dps_results: { key: "TestProtectionWarrior-AllItems-CommunalStoneofWisdom-101183" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-ContemplationofChi-Ji-103988" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Coren'sColdChromiumCoaster-282035" value: { - dps: 415746.48004 - tps: 2.54010891442e+06 - dtps: 17803.11951 + dps: 422772.23949 + tps: 2.58123449492e+06 + dtps: 18304.2763 } } dps_results: { key: "TestProtectionWarrior-AllItems-CoreofDecency-87497" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CourageousPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24162.59793 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sBadgeofConquest-93419" value: { - dps: 401442.10982 - tps: 2.4537260809e+06 - dtps: 18275.30765 + dps: 407916.32242 + tps: 2.49180326718e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sBadgeofDominance-93600" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sBadgeofVictory-93606" value: { - dps: 404999.16095 - tps: 2.47489182097e+06 - dtps: 16345.88261 + dps: 408334.17471 + tps: 2.49279301472e+06 + dtps: 16020.0304 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sEmblemofCruelty-93485" value: { - dps: 406749.65124 - tps: 2.48550806255e+06 - dtps: 18803.53188 + dps: 413503.89107 + tps: 2.52668601674e+06 + dtps: 17932.26628 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sEmblemofMeditation-93487" value: { - dps: 401788.34169 - tps: 2.45567992971e+06 - dtps: 18499.12637 + dps: 407869.11184 + tps: 2.49100295504e+06 + dtps: 17357.90486 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sEmblemofTenacity-93486" value: { - dps: 401474.63603 - tps: 2.45348392612e+06 - dtps: 18628.25076 + dps: 407526.83488 + tps: 2.4886069945e+06 + dtps: 17897.80803 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sInsigniaofConquest-93424" value: { - dps: 401462.43896 - tps: 2.45386838493e+06 - dtps: 18275.30765 + dps: 407765.82463 + tps: 2.49074978264e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sInsigniaofDominance-93601" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedDreadfulGladiator'sInsigniaofVictory-93611" value: { - dps: 407390.72329 - tps: 2.49138383326e+06 - dtps: 16680.22925 + dps: 412741.09352 + tps: 2.52346765179e+06 + dtps: 15092.11876 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sBadgeofConquest-98755" value: { - dps: 401442.10982 - tps: 2.4537260809e+06 - dtps: 18275.30765 + dps: 407994.76947 + tps: 2.49235239653e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sBadgeofDominance-98910" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sBadgeofVictory-98912" value: { - dps: 405418.82676 - tps: 2.47717657838e+06 - dtps: 16343.34743 + dps: 410046.81868 + tps: 2.50378151204e+06 + dtps: 15552.72207 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sEmblemofCruelty-98811" value: { - dps: 409314.41406 - tps: 2.50400945532e+06 - dtps: 18700.6413 + dps: 415580.0289 + tps: 2.53942308348e+06 + dtps: 17854.20646 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sEmblemofMeditation-98813" value: { - dps: 401788.34169 - tps: 2.45567992971e+06 - dtps: 18499.12637 + dps: 407869.11184 + tps: 2.49100295504e+06 + dtps: 17357.90486 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sEmblemofTenacity-98812" value: { - dps: 401219.95468 - tps: 2.45205170091e+06 - dtps: 18584.90064 + dps: 407104.24397 + tps: 2.48599933914e+06 + dtps: 18360.29904 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sInsigniaofConquest-98760" value: { - dps: 401535.40509 - tps: 2.45437914779e+06 - dtps: 18275.30765 + dps: 407838.40501 + tps: 2.49125784535e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sInsigniaofDominance-98911" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-CraftedMalevolentGladiator'sInsigniaofVictory-98917" value: { - dps: 409051.8248 - tps: 2.50152695351e+06 - dtps: 16738.245 + dps: 412943.05747 + tps: 2.52277861831e+06 + dtps: 15347.77684 } } dps_results: { key: "TestProtectionWarrior-AllItems-CurseofHubris-105645" value: { - dps: 415256.80037 - tps: 2.53534290357e+06 - dtps: 20401.41729 + dps: 419703.49832 + tps: 2.55531149391e+06 + dtps: 19313.36563 } } dps_results: { key: "TestProtectionWarrior-AllItems-CutstitcherMedallion-93255" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Daelo'sFinalWords-87496" value: { - dps: 405693.85704 - tps: 2.47746346557e+06 - dtps: 17440.32046 + dps: 410240.57867 + tps: 2.51002745749e+06 + dtps: 15853.21835 } } dps_results: { key: "TestProtectionWarrior-AllItems-DarkglowEmbroidery(Rank3)-4893" value: { - dps: 418737.04677 - tps: 2.55460659562e+06 - dtps: 16419.34637 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15449.75791 } } dps_results: { key: "TestProtectionWarrior-AllItems-DarkmistVortex-87172" value: { - dps: 409918.45131 - tps: 2.50274003097e+06 - dtps: 16138.08597 + dps: 411234.34096 + tps: 2.51131045661e+06 + dtps: 16138.19681 } } dps_results: { key: "TestProtectionWarrior-AllItems-DeadeyeBadgeoftheShieldwall-93346" value: { - dps: 402167.38032 - tps: 2.45880157507e+06 - dtps: 17377.3081 + dps: 406356.18742 + tps: 2.48122052686e+06 + dtps: 17369.89428 } } dps_results: { key: "TestProtectionWarrior-AllItems-DelicateVialoftheSanguinaire-96895" value: { - dps: 412395.91025 - tps: 2.5231995082e+06 - dtps: 15454.96459 + dps: 417398.89999 + tps: 2.55378738231e+06 + dtps: 14876.87747 } } dps_results: { key: "TestProtectionWarrior-AllItems-DestructivePrimalDiamond" value: { - dps: 422597.07322 - tps: 2.57627113394e+06 - dtps: 24632.02902 + dps: 423111.32582 + tps: 2.58189912922e+06 + dtps: 23992.50645 } } dps_results: { key: "TestProtectionWarrior-AllItems-DisciplineofXuen-103986" value: { - dps: 403003.61634 - tps: 2.46436373782e+06 - dtps: 18028.79668 + dps: 408963.25104 + tps: 2.49786811995e+06 + dtps: 17647.85512 } } dps_results: { key: "TestProtectionWarrior-AllItems-Dominator'sArcaneBadge-93342" value: { - dps: 405191.23362 - tps: 2.47554762202e+06 - dtps: 17401.01313 + dps: 410045.07406 + tps: 2.50235649925e+06 + dtps: 16894.4837 } } dps_results: { key: "TestProtectionWarrior-AllItems-Dominator'sDeadeyeBadge-93341" value: { - dps: 402167.38032 - tps: 2.45880157507e+06 - dtps: 17377.3081 + dps: 406356.18742 + tps: 2.48122052686e+06 + dtps: 17369.89428 } } dps_results: { key: "TestProtectionWarrior-AllItems-Dominator'sDurableBadge-93345" value: { - dps: 406043.36962 - tps: 2.48181229081e+06 - dtps: 16862.46151 + dps: 408732.0449 + tps: 2.49280771103e+06 + dtps: 16919.108 } } dps_results: { key: "TestProtectionWarrior-AllItems-Dominator'sKnightlyBadge-93344" value: { - dps: 403919.76892 - tps: 2.4689830533e+06 - dtps: 16659.88663 + dps: 408386.04179 + tps: 2.49098722637e+06 + dtps: 16561.93127 } } dps_results: { key: "TestProtectionWarrior-AllItems-Dominator'sMendingBadge-93343" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sBadgeofConquest-84344" value: { - dps: 401442.10982 - tps: 2.4537260809e+06 - dtps: 18275.30765 + dps: 407916.32242 + tps: 2.49180326718e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sBadgeofDominance-84488" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sBadgeofVictory-84490" value: { - dps: 404999.16095 - tps: 2.47489182097e+06 - dtps: 16345.88261 + dps: 408334.17471 + tps: 2.49279301472e+06 + dtps: 16020.0304 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sEmblemofCruelty-84399" value: { - dps: 406749.65124 - tps: 2.48550806255e+06 - dtps: 18803.53188 + dps: 413503.89107 + tps: 2.52668601674e+06 + dtps: 17932.26628 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sEmblemofMeditation-84401" value: { - dps: 401788.34169 - tps: 2.45567992971e+06 - dtps: 18499.12637 + dps: 407869.11184 + tps: 2.49100295504e+06 + dtps: 17357.90486 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sEmblemofTenacity-84400" value: { - dps: 401474.63603 - tps: 2.45348392612e+06 - dtps: 18628.25076 + dps: 407526.83488 + tps: 2.4886069945e+06 + dtps: 17897.80803 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sInsigniaofConquest-84349" value: { - dps: 401462.43896 - tps: 2.45386838493e+06 - dtps: 18275.30765 + dps: 407870.06044 + tps: 2.49147943337e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sInsigniaofDominance-84489" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-DreadfulGladiator'sInsigniaofVictory-84495" value: { - dps: 407009.48556 - tps: 2.48882460056e+06 - dtps: 16424.13088 + dps: 412433.30922 + tps: 2.5205493405e+06 + dtps: 15932.84179 } } dps_results: { key: "TestProtectionWarrior-AllItems-DurableBadgeoftheShieldwall-93350" value: { - dps: 406043.36962 - tps: 2.48181229081e+06 - dtps: 16862.46151 + dps: 408732.0449 + tps: 2.49280771103e+06 + dtps: 16919.108 } } dps_results: { key: "TestProtectionWarrior-AllItems-DysmorphicSamophlangeofDiscontinuity-105615" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-EffulgentPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24156.49455 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23904.59879 } } dps_results: { key: "TestProtectionWarrior-AllItems-EmberPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24162.59793 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-EmblemofKypariZar-84077" value: { - dps: 407461.97558 - tps: 2.49066454709e+06 - dtps: 17260.47174 + dps: 413973.14774 + tps: 2.52930446286e+06 + dtps: 16863.73938 } } dps_results: { key: "TestProtectionWarrior-AllItems-EmblemoftheCatacombs-83733" value: { - dps: 405631.69556 - tps: 2.48409923985e+06 - dtps: 17199.90858 + dps: 409614.11222 + tps: 2.50512264645e+06 + dtps: 17685.27908 } } dps_results: { key: "TestProtectionWarrior-AllItems-EmptyFruitBarrel-81133" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-BloodyDancingSteel-5125" value: { - dps: 419733.92787 - tps: 2.56119212498e+06 - dtps: 17163.03759 + dps: 424481.81425 + tps: 2.59606301201e+06 + dtps: 15169.29642 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-Colossus-4445" value: { - dps: 415272.83636 - tps: 2.53597053161e+06 - dtps: 16252.29028 + dps: 420023.16763 + tps: 2.56671696065e+06 + dtps: 15187.78145 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-ElementalForce-4443" value: { - dps: 420571.33464 - tps: 2.56320977261e+06 - dtps: 17530.84292 + dps: 423362.63813 + tps: 2.57725726591e+06 + dtps: 16506.02663 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-JadeSpirit-4442" value: { - dps: 415549.40531 - tps: 2.5379066624e+06 - dtps: 17214.89377 + dps: 419606.83696 + tps: 2.56413088942e+06 + dtps: 15890.41295 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-River'sSong-4446" value: { - dps: 421581.07378 - tps: 2.5768093722e+06 - dtps: 15141.61019 + dps: 424987.01928 + tps: 2.59693923535e+06 + dtps: 15233.42057 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-SpiritofConquest-5124" value: { - dps: 415549.40531 - tps: 2.5379066624e+06 - dtps: 17214.89377 + dps: 419606.83696 + tps: 2.56413088942e+06 + dtps: 15890.41295 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnchantWeapon-Windsong-4441" value: { - dps: 418626.99958 - tps: 2.55614844555e+06 - dtps: 17040.16153 + dps: 422697.70781 + tps: 2.58509655632e+06 + dtps: 15861.48209 } } dps_results: { key: "TestProtectionWarrior-AllItems-EnigmaticPrimalDiamond" value: { - dps: 422597.07322 - tps: 2.57627113394e+06 - dtps: 24632.02902 + dps: 423111.32582 + tps: 2.58189912922e+06 + dtps: 23992.50645 } } dps_results: { key: "TestProtectionWarrior-AllItems-EssenceofTerror-87175" value: { - dps: 406553.64691 - tps: 2.48055478812e+06 - dtps: 16820.73368 + dps: 407610.92149 + tps: 2.48394377066e+06 + dtps: 18041.298 } } dps_results: { key: "TestProtectionWarrior-AllItems-EternalPrimalDiamond" value: { - dps: 422756.37533 - tps: 2.5792371459e+06 - dtps: 23730.0651 + dps: 423320.47617 + tps: 2.58387823226e+06 + dtps: 23015.1106 } } dps_results: { key: "TestProtectionWarrior-AllItems-EvilEyeofGalakras-105491" value: { - dps: 414576.15233 - tps: 2.53335891242e+06 - dtps: 16847.89868 + dps: 416800.93689 + tps: 2.54645320551e+06 + dtps: 15521.66575 } } dps_results: { key: "TestProtectionWarrior-AllItems-FabledFeatherofJi-Kun-96842" value: { - dps: 415945.17348 - tps: 2.54310051306e+06 - dtps: 17003.02789 + dps: 418573.44004 + tps: 2.55850746568e+06 + dtps: 14863.10962 } } dps_results: { key: "TestProtectionWarrior-AllItems-FearwurmBadge-84074" value: { - dps: 408180.30622 - tps: 2.49464166135e+06 - dtps: 17079.84633 + dps: 414128.03141 + tps: 2.53266076337e+06 + dtps: 16864.11814 } } dps_results: { key: "TestProtectionWarrior-AllItems-FearwurmRelic-84070" value: { - dps: 407917.09273 - tps: 2.49181043014e+06 - dtps: 17965.18321 + dps: 413329.26632 + tps: 2.52406578812e+06 + dtps: 16881.04604 } } dps_results: { key: "TestProtectionWarrior-AllItems-FelsoulIdolofDestruction-101263" value: { - dps: 406269.91178 - tps: 2.47529241414e+06 - dtps: 18365.52098 + dps: 408623.86522 + tps: 2.49478962159e+06 + dtps: 17290.19847 } } dps_results: { key: "TestProtectionWarrior-AllItems-FelsoulStoneofDestruction-101266" value: { - dps: 401941.40686 - tps: 2.45689692124e+06 - dtps: 17891.60572 + dps: 408842.79786 + tps: 2.49696004708e+06 + dtps: 16859.06666 } } dps_results: { key: "TestProtectionWarrior-AllItems-Fen-Yu,FuryofXuen-102248" value: { - dps: 415208.64924 - tps: 2.54558815627e+06 - dtps: 22868.45212 + dps: 416994.65568 + tps: 2.55415916218e+06 + dtps: 21464.34134 } } dps_results: { key: "TestProtectionWarrior-AllItems-FlashfrozenResinGlobule-100951" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-FlashingSteelTalisman-81265" value: { - dps: 401664.04229 - tps: 2.4552796291e+06 - dtps: 18270.98261 + dps: 408053.01608 + tps: 2.4927601439e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-FleetPrimalDiamond" value: { - dps: 419103.81668 - tps: 2.5544783687e+06 - dtps: 23820.46854 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23926.21457 } } dps_results: { key: "TestProtectionWarrior-AllItems-ForlornPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24162.59793 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-FortitudeoftheZandalari-96793" value: { - dps: 402147.10094 - tps: 2.45691217211e+06 - dtps: 18115.12093 + dps: 408463.78972 + tps: 2.49412734688e+06 + dtps: 17792.49643 } } dps_results: { key: "TestProtectionWarrior-AllItems-FrenziedCrystalofRage-105572" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Fusion-FireCore-105459" value: { - dps: 414474.02029 - tps: 2.52493467736e+06 - dtps: 16756.29594 + dps: 417245.75089 + tps: 2.54378934362e+06 + dtps: 15716.67602 } } dps_results: { key: "TestProtectionWarrior-AllItems-GazeoftheTwins-96915" value: { - dps: 425924.37562 - tps: 2.60018062526e+06 - dtps: 15860.19815 + dps: 428669.81248 + tps: 2.6175026999e+06 + dtps: 14923.78016 } } dps_results: { key: "TestProtectionWarrior-AllItems-Gerp'sPerfectArrow-87495" value: { - dps: 407918.17234 - tps: 2.49483683385e+06 - dtps: 18308.36543 + dps: 413512.05589 + tps: 2.52555919823e+06 + dtps: 17150.2741 } } dps_results: { key: "TestProtectionWarrior-AllItems-Gong-Lu,StrengthofXuen-102249" value: { - dps: 434710.67659 - tps: 2.67195178839e+06 - dtps: 21020.52202 + dps: 436355.32205 + tps: 2.67954675483e+06 + dtps: 20312.80708 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sBadgeofConquest-103145" value: { - dps: 401499.05762 - tps: 2.45412471553e+06 - dtps: 18275.30765 + dps: 408149.02258 + tps: 2.49343221026e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sBadgeofDominance-103308" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sBadgeofVictory-103314" value: { - dps: 408735.81411 - tps: 2.49913676805e+06 - dtps: 16463.86923 + dps: 413126.0997 + tps: 2.52544005263e+06 + dtps: 15579.00166 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sEmblemofCruelty-103210" value: { - dps: 410324.30876 - tps: 2.50994266004e+06 - dtps: 18258.18825 + dps: 417498.86963 + tps: 2.5521793345e+06 + dtps: 18640.3224 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sEmblemofMeditation-103212" value: { - dps: 401092.59077 - tps: 2.45116011046e+06 - dtps: 18583.38322 + dps: 407386.57709 + tps: 2.4879757335e+06 + dtps: 17781.81997 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sEmblemofTenacity-103211" value: { - dps: 401095.10104 - tps: 2.45117770407e+06 - dtps: 18439.1195 + dps: 407155.79001 + tps: 2.48636013998e+06 + dtps: 18488.98461 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sInsigniaofConquest-103150" value: { - dps: 401547.99944 - tps: 2.45446730824e+06 - dtps: 18275.30765 + dps: 408527.18592 + tps: 2.4960793971e+06 + dtps: 16757.94463 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sInsigniaofDominance-103309" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-GrievousGladiator'sInsigniaofVictory-103319" value: { - dps: 410394.20421 - tps: 2.50961268689e+06 - dtps: 16195.06372 + dps: 414314.28616 + tps: 2.53107624047e+06 + dtps: 15446.79836 } } dps_results: { key: "TestProtectionWarrior-AllItems-Haromm'sTalisman-105527" value: { - dps: 422980.54807 - tps: 2.60449520893e+06 - dtps: 18285.48384 + dps: 429396.38138 + tps: 2.64216367996e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Hawkmaster'sTalon-89082" value: { - dps: 405029.3114 - tps: 2.47616061346e+06 - dtps: 17310.14871 + dps: 409403.44125 + tps: 2.49794808908e+06 + dtps: 17274.94518 } } dps_results: { key: "TestProtectionWarrior-AllItems-Heart-LesionDefenderIdol-100999" value: { - dps: 408835.17654 - tps: 2.49932466267e+06 - dtps: 16258.77979 + dps: 410632.92093 + tps: 2.50861949844e+06 + dtps: 15514.5641 } } dps_results: { key: "TestProtectionWarrior-AllItems-Heart-LesionDefenderStone-101002" value: { - dps: 401741.174 - tps: 2.45581973822e+06 - dtps: 16615.48494 + dps: 408524.74681 + tps: 2.49505813646e+06 + dtps: 16282.95565 } } dps_results: { key: "TestProtectionWarrior-AllItems-Heart-LesionIdolofBattle-100991" value: { - dps: 413206.71751 - tps: 2.52612187988e+06 - dtps: 16781.53847 + dps: 418430.49915 + tps: 2.55863528588e+06 + dtps: 15681.12044 } } dps_results: { key: "TestProtectionWarrior-AllItems-Heart-LesionStoneofBattle-100990" value: { - dps: 404742.82333 - tps: 2.47388875695e+06 - dtps: 17550.51627 + dps: 410959.71625 + tps: 2.50777868793e+06 + dtps: 16079.65145 } } dps_results: { key: "TestProtectionWarrior-AllItems-HeartofFire-81181" value: { - dps: 405109.8167 - tps: 2.46871399943e+06 - dtps: 17357.61639 + dps: 409383.24404 + tps: 2.50144478004e+06 + dtps: 16590.60016 } } dps_results: { key: "TestProtectionWarrior-AllItems-HeartwarmerMedallion-93260" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-HelmbreakerMedallion-93261" value: { - dps: 414931.92686 - tps: 2.53501069641e+06 - dtps: 17072.46987 + dps: 416279.93509 + tps: 2.54074551201e+06 + dtps: 16592.18746 } } dps_results: { key: "TestProtectionWarrior-AllItems-Horridon'sLastGasp-96757" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-ImpassivePrimalDiamond" value: { - dps: 422597.07322 - tps: 2.57627113394e+06 - dtps: 24632.02902 + dps: 423111.32582 + tps: 2.58189912922e+06 + dtps: 23992.50645 } } dps_results: { key: "TestProtectionWarrior-AllItems-IndomitablePrimalDiamond" value: { - dps: 418640.98391 - tps: 2.55393417624e+06 - dtps: 16440.31489 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15445.98233 } } dps_results: { key: "TestProtectionWarrior-AllItems-InscribedBagofHydra-Spawn-96828" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-InsigniaofKypariZar-84078" value: { - dps: 408868.56593 - tps: 2.49833731338e+06 - dtps: 16916.14718 + dps: 413279.61185 + tps: 2.52606594963e+06 + dtps: 16410.48234 } } dps_results: { key: "TestProtectionWarrior-AllItems-IronBellyWok-89083" value: { - dps: 404131.69592 - tps: 2.46647624774e+06 - dtps: 16952.16792 + dps: 411214.82981 + tps: 2.50809872676e+06 + dtps: 15446.26497 } } dps_results: { key: "TestProtectionWarrior-AllItems-IronProtectorTalisman-85181" value: { - dps: 409475.61278 - tps: 2.50572292406e+06 - dtps: 17460.11967 + dps: 411661.06517 + tps: 2.51807931838e+06 + dtps: 16062.35084 } } dps_results: { key: "TestProtectionWarrior-AllItems-JadeBanditFigurine-86772" value: { - dps: 404535.08488 - tps: 2.47254493714e+06 - dtps: 17310.61024 + dps: 410337.51829 + tps: 2.50368798804e+06 + dtps: 17317.3971 } } dps_results: { key: "TestProtectionWarrior-AllItems-JadeCharioteerFigurine-86771" value: { - dps: 403861.83988 - tps: 2.46506120973e+06 - dtps: 17381.38554 + dps: 411843.21102 + tps: 2.51238169221e+06 + dtps: 16100.97474 } } dps_results: { key: "TestProtectionWarrior-AllItems-JadeCourtesanFigurine-86774" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-JadeMagistrateFigurine-86773" value: { - dps: 409564.14934 - tps: 2.50199027717e+06 - dtps: 18508.16556 + dps: 413276.56823 + tps: 2.52089334403e+06 + dtps: 17419.70971 } } dps_results: { key: "TestProtectionWarrior-AllItems-JadeWarlordFigurine-86775" value: { - dps: 402003.89717 - tps: 2.45732533117e+06 - dtps: 17369.43104 + dps: 407065.38424 + tps: 2.4858176198e+06 + dtps: 17341.59607 } } dps_results: { key: "TestProtectionWarrior-AllItems-Ji-Kun'sRisingWinds-96843" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 - hps: 20.60988 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Juggernaut'sFocusingCrystal-105514" value: { - dps: 416512.48162 - tps: 2.54918910043e+06 - dtps: 14730.91434 - hps: 13161.79442 + dps: 420593.40249 + tps: 2.57671929095e+06 + dtps: 14060.5371 + hps: 13290.75152 } } dps_results: { key: "TestProtectionWarrior-AllItems-Kardris'ToxicTotem-105540" value: { - dps: 421413.0436 - tps: 2.5935226174e+06 - dtps: 18275.30765 + dps: 429471.73293 + tps: 2.64269114079e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-KnightlyBadgeoftheShieldwall-93349" value: { - dps: 403919.76892 - tps: 2.4689830533e+06 - dtps: 16659.88663 + dps: 408386.04179 + tps: 2.49098722637e+06 + dtps: 16561.93127 } } dps_results: { key: "TestProtectionWarrior-AllItems-KnotofTenSongs-84073" value: { - dps: 408978.96497 - tps: 2.50031146702e+06 - dtps: 15648.93095 + dps: 412956.24998 + tps: 2.52488598173e+06 + dtps: 15501.87163 } } dps_results: { key: "TestProtectionWarrior-AllItems-Kor'kronBookofHurting-92785" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Lao-Chin'sLiquidCourage-89079" value: { - dps: 401921.57817 - tps: 2.45674905555e+06 - dtps: 16954.22972 + dps: 406798.38074 + tps: 2.48394853166e+06 + dtps: 17464.31498 } } dps_results: { key: "TestProtectionWarrior-AllItems-LeiShen'sFinalOrders-87072" value: { - dps: 412706.25092 - tps: 2.51858067277e+06 - dtps: 17094.6198 + dps: 415483.0219 + tps: 2.53395832738e+06 + dtps: 15891.9068 } } dps_results: { key: "TestProtectionWarrior-AllItems-LessonsoftheDarkmaster-81268" value: { - dps: 404327.63654 - tps: 2.46962497759e+06 - dtps: 17033.25256 + dps: 408959.91135 + tps: 2.49735201805e+06 + dtps: 16308.24089 } } dps_results: { key: "TestProtectionWarrior-AllItems-LightdrinkerIdolofRage-101200" value: { - dps: 401654.8985 - tps: 2.45521575277e+06 - dtps: 17970.68301 + dps: 408243.63416 + tps: 2.49409462136e+06 + dtps: 16503.78342 } } dps_results: { key: "TestProtectionWarrior-AllItems-LightdrinkerStoneofRage-101203" value: { - dps: 402465.66889 - tps: 2.4608987024e+06 - dtps: 17585.72374 + dps: 408245.06064 + tps: 2.49314325612e+06 + dtps: 17088.23904 } } dps_results: { key: "TestProtectionWarrior-AllItems-LightoftheCosmos-87065" value: { - dps: 407204.88941 - tps: 2.49044326898e+06 - dtps: 17187.44166 + dps: 409425.37816 + tps: 2.4987947127e+06 + dtps: 17224.68559 } } dps_results: { key: "TestProtectionWarrior-AllItems-LightweaveEmbroidery(Rank3)-4892" value: { - dps: 418737.04677 - tps: 2.55460659562e+06 - dtps: 16419.34637 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15449.75791 } } dps_results: { key: "TestProtectionWarrior-AllItems-LordBlastington'sScopeofDoom-4699" value: { - dps: 415549.40531 - tps: 2.5379066624e+06 - dtps: 17214.89377 + dps: 419606.83696 + tps: 2.56413088942e+06 + dtps: 15890.41295 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sBadgeofConquest-91452" value: { - dps: 401442.10982 - tps: 2.4537260809e+06 - dtps: 18275.30765 + dps: 407994.76947 + tps: 2.49235239653e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sBadgeofDominance-91753" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sBadgeofVictory-91763" value: { - dps: 405418.82676 - tps: 2.47717657838e+06 - dtps: 16343.34743 + dps: 410046.81868 + tps: 2.50378151204e+06 + dtps: 15552.72207 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sEmblemofCruelty-91562" value: { - dps: 409314.41406 - tps: 2.50400945532e+06 - dtps: 18700.6413 + dps: 415580.0289 + tps: 2.53942308348e+06 + dtps: 17854.20646 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sEmblemofMeditation-91564" value: { - dps: 401788.34169 - tps: 2.45567992971e+06 - dtps: 18499.12637 + dps: 407869.11184 + tps: 2.49100295504e+06 + dtps: 17357.90486 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sEmblemofTenacity-91563" value: { - dps: 401219.95468 - tps: 2.45205170091e+06 - dtps: 18584.90064 + dps: 407104.24397 + tps: 2.48599933914e+06 + dtps: 18360.29904 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sInsigniaofConquest-91457" value: { - dps: 401519.959 - tps: 2.45427102517e+06 - dtps: 18275.30765 + dps: 407987.25509 + tps: 2.49229981698e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sInsigniaofDominance-91754" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MalevolentGladiator'sInsigniaofVictory-91768" value: { - dps: 407955.30165 - tps: 2.49461428735e+06 - dtps: 16502.386 + dps: 411814.27411 + tps: 2.51577212059e+06 + dtps: 15377.30883 } } dps_results: { key: "TestProtectionWarrior-AllItems-MarkoftheCatacombs-83731" value: { - dps: 406396.2227 - tps: 2.48444128256e+06 - dtps: 18289.58647 + dps: 411322.99768 + tps: 2.51209194265e+06 + dtps: 17172.28202 } } dps_results: { key: "TestProtectionWarrior-AllItems-MarkoftheHardenedGrunt-92783" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MedallionofMystifyingVapors-93257" value: { - dps: 407858.37949 - tps: 2.49413175858e+06 - dtps: 16995.75413 + dps: 411767.22512 + tps: 2.51491395874e+06 + dtps: 15693.90542 } } dps_results: { key: "TestProtectionWarrior-AllItems-MedallionoftheCatacombs-83734" value: { - dps: 404900.92074 - tps: 2.47416739778e+06 - dtps: 16772.89888 + dps: 409349.75013 + tps: 2.50137093774e+06 + dtps: 15967.37417 } } dps_results: { key: "TestProtectionWarrior-AllItems-MendingBadgeoftheShieldwall-93348" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MirrorScope-4700" value: { - dps: 415549.40531 - tps: 2.5379066624e+06 - dtps: 17214.89377 + dps: 419606.83696 + tps: 2.56413088942e+06 + dtps: 15890.41295 } } dps_results: { key: "TestProtectionWarrior-AllItems-MistdancerDefenderIdol-101089" value: { - dps: 409254.86397 - tps: 2.49625846971e+06 - dtps: 16171.95958 + dps: 409790.28575 + tps: 2.49890128691e+06 + dtps: 15889.97787 } } dps_results: { key: "TestProtectionWarrior-AllItems-MistdancerDefenderStone-101087" value: { - dps: 401937.42206 - tps: 2.45719351886e+06 - dtps: 17403.53343 + dps: 408723.25291 + tps: 2.49644774451e+06 + dtps: 16731.66612 } } dps_results: { key: "TestProtectionWarrior-AllItems-MistdancerIdolofRage-101113" value: { - dps: 401582.62806 - tps: 2.45470985968e+06 - dtps: 17970.68301 + dps: 408202.03021 + tps: 2.49380339373e+06 + dtps: 16503.78342 } } dps_results: { key: "TestProtectionWarrior-AllItems-MistdancerStoneofRage-101117" value: { - dps: 401830.62763 - tps: 2.45645337394e+06 - dtps: 17998.96629 + dps: 407132.72844 + tps: 2.48636119993e+06 + dtps: 17377.00284 } } dps_results: { key: "TestProtectionWarrior-AllItems-MistdancerStoneofWisdom-101107" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-MithrilWristwatch-282033" value: { - dps: 411629.79747 - tps: 2.51748397061e+06 - dtps: 18354.4619 + dps: 418758.43249 + tps: 2.5595887732e+06 + dtps: 18092.49357 } } dps_results: { key: "TestProtectionWarrior-AllItems-MountainsageIdolofDestruction-101069" value: { - dps: 404965.45335 - tps: 2.46577399419e+06 - dtps: 17801.82715 + dps: 409897.49901 + tps: 2.49238312968e+06 + dtps: 17398.86678 } } dps_results: { key: "TestProtectionWarrior-AllItems-MountainsageStoneofDestruction-101072" value: { - dps: 401789.79673 - tps: 2.45616007614e+06 - dtps: 17202.02776 + dps: 408588.33482 + tps: 2.49550323159e+06 + dtps: 16201.40976 } } dps_results: { key: "TestProtectionWarrior-AllItems-Nazgrim'sBurnishedInsignia-105549" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-NitroBoosts-4223" value: { - dps: 418640.98391 - tps: 2.55393417624e+06 - dtps: 16440.31489 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15445.98233 } } dps_results: { key: "TestProtectionWarrior-AllItems-OathswornDefenderIdol-101303" value: { - dps: 408350.14733 - tps: 2.49334233881e+06 - dtps: 16558.88848 + dps: 409535.13463 + tps: 2.50221401508e+06 + dtps: 16162.06557 } } dps_results: { key: "TestProtectionWarrior-AllItems-OathswornDefenderStone-101306" value: { - dps: 401909.35585 - tps: 2.45699694739e+06 - dtps: 17752.70739 + dps: 408613.12017 + tps: 2.49567672882e+06 + dtps: 17113.99889 } } dps_results: { key: "TestProtectionWarrior-AllItems-OathswornIdolofBattle-101295" value: { - dps: 414660.31397 - tps: 2.53611874778e+06 - dtps: 16461.1323 + dps: 418682.91985 + tps: 2.55984198249e+06 + dtps: 15636.32762 } } dps_results: { key: "TestProtectionWarrior-AllItems-OathswornStoneofBattle-101294" value: { - dps: 404508.19978 - tps: 2.47224636968e+06 - dtps: 17933.87281 + dps: 410621.22729 + tps: 2.50540926278e+06 + dtps: 16424.70079 } } dps_results: { @@ -1500,97 +1499,97 @@ dps_results: { dps_results: { key: "TestProtectionWarrior-AllItems-PouchofWhiteAsh-103639" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-PowerfulPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24156.49455 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23904.59879 } } dps_results: { key: "TestProtectionWarrior-AllItems-PriceofProgress-81266" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sBadgeofConquest-103342" value: { - dps: 401499.05762 - tps: 2.45412471553e+06 - dtps: 18275.30765 + dps: 408149.02258 + tps: 2.49343221026e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sBadgeofDominance-103505" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sBadgeofVictory-103511" value: { - dps: 409642.8036 - tps: 2.5042744026e+06 - dtps: 16455.6874 + dps: 412138.92118 + tps: 2.51780162411e+06 + dtps: 15746.48233 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sEmblemofCruelty-103407" value: { - dps: 414611.31864 - tps: 2.5355133532e+06 - dtps: 18017.48618 + dps: 420089.44675 + tps: 2.56804743892e+06 + dtps: 19572.81745 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sEmblemofMeditation-103409" value: { - dps: 401795.05511 - tps: 2.45477202239e+06 - dtps: 18578.7455 + dps: 408681.84443 + tps: 2.49597947644e+06 + dtps: 18498.4104 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sEmblemofTenacity-103408" value: { - dps: 401095.10104 - tps: 2.45117770407e+06 - dtps: 18429.35409 + dps: 407155.79001 + tps: 2.48636013998e+06 + dtps: 18457.32946 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sInsigniaofConquest-103347" value: { - dps: 401560.40777 - tps: 2.4545541666e+06 - dtps: 18275.30765 + dps: 408404.52664 + tps: 2.49522078219e+06 + dtps: 16757.94463 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sInsigniaofDominance-103506" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-PridefulGladiator'sInsigniaofVictory-103516" value: { - dps: 414479.28926 - tps: 2.53301300385e+06 - dtps: 15159.75576 + dps: 414262.14848 + tps: 2.52850531627e+06 + dtps: 15328.92088 } } dps_results: { @@ -1604,737 +1603,737 @@ dps_results: { dps_results: { key: "TestProtectionWarrior-AllItems-Primordius'TalismanofRage-96873" value: { - dps: 423589.39323 - tps: 2.59077426705e+06 - dtps: 15243.55635 + dps: 427550.8684 + tps: 2.6164430054e+06 + dtps: 15542.66795 } } dps_results: { key: "TestProtectionWarrior-AllItems-PrismaticPrisonofPride-105474" value: { - dps: 411480.96402 - tps: 2.51397814001e+06 - dtps: 18291.44587 + dps: 418468.54294 + tps: 2.55522175793e+06 + dtps: 16491.70226 } } dps_results: { key: "TestProtectionWarrior-AllItems-PurifiedBindingsofImmerseus-105422" value: { - dps: 411480.96402 - tps: 2.51397814001e+06 - dtps: 18291.44587 + dps: 418468.54294 + tps: 2.55522175793e+06 + dtps: 16491.70226 } } dps_results: { key: "TestProtectionWarrior-AllItems-Qian-Le,CourageofNiuzao-102245" value: { - dps: 405389.98271 - tps: 2.47845040207e+06 - dtps: 20705.38134 + dps: 408496.45292 + tps: 2.48750684376e+06 + dtps: 19525.72997 } } dps_results: { key: "TestProtectionWarrior-AllItems-Qin-xi'sPolarizingSeal-87075" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofChi-Ji-79330" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofKypariZar-84075" value: { - dps: 410846.39283 - tps: 2.51391252011e+06 - dtps: 16442.8829 + dps: 412021.27224 + tps: 2.51973154913e+06 + dtps: 17633.64964 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofNiuzao-79329" value: { - dps: 410205.73699 - tps: 2.50687373076e+06 - dtps: 16075.22403 + dps: 409233.13492 + tps: 2.50102110529e+06 + dtps: 17022.8266 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofXuen-79327" value: { - dps: 410570.01521 - tps: 2.51040163178e+06 - dtps: 16292.94409 + dps: 414620.36541 + tps: 2.53277427193e+06 + dtps: 15693.59557 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofXuen-79328" value: { - dps: 401844.32548 - tps: 2.45687349548e+06 - dtps: 18273.94461 + dps: 407287.92826 + tps: 2.48777187777e+06 + dtps: 16916.38377 } } dps_results: { key: "TestProtectionWarrior-AllItems-RelicofYu'lon-79331" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Renataki'sSoulCharm-96741" value: { - dps: 402683.03841 - tps: 2.46129448036e+06 - dtps: 18412.59856 + dps: 408712.53964 + tps: 2.49625862684e+06 + dtps: 16859.75749 } } dps_results: { key: "TestProtectionWarrior-AllItems-ResolveofNiuzao-103990" value: { - dps: 408919.91742 - tps: 2.49166939972e+06 - dtps: 15701.35067 + dps: 412109.69735 + tps: 2.51328042756e+06 + dtps: 14605.51374 } } dps_results: { key: "TestProtectionWarrior-AllItems-ReverberatingPrimalDiamond" value: { - dps: 428365.00804 - tps: 2.61194247237e+06 - dtps: 24073.11099 + dps: 431374.22765 + tps: 2.63480260515e+06 + dtps: 24022.43832 } } dps_results: { key: "TestProtectionWarrior-AllItems-RevitalizingPrimalDiamond" value: { - dps: 427113.95302 - tps: 2.60248534128e+06 - dtps: 24162.59793 + dps: 430349.77224 + tps: 2.6282122429e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-RuneofRe-Origination-96918" value: { - dps: 403889.02468 - tps: 2.46677924801e+06 - dtps: 18792.98976 + dps: 409735.20181 + tps: 2.50063403196e+06 + dtps: 17266.27233 } } dps_results: { key: "TestProtectionWarrior-AllItems-SI:7Operative'sManual-92784" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-ScrollofReveredAncestors-89080" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SearingWords-81267" value: { - dps: 409691.90541 - tps: 2.5061616264e+06 - dtps: 18755.37248 + dps: 415826.80431 + tps: 2.54088626416e+06 + dtps: 17550.91318 } } dps_results: { key: "TestProtectionWarrior-AllItems-Shock-ChargerMedallion-93259" value: { - dps: 407604.4184 - tps: 2.49369804418e+06 - dtps: 16765.61062 + dps: 409962.96067 + tps: 2.50305462782e+06 + dtps: 16907.97165 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofCompassion-83736" value: { - dps: 401638.38068 - tps: 2.45510010609e+06 - dtps: 18113.11728 + dps: 408130.17178 + tps: 2.4933003418e+06 + dtps: 16516.30606 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofDevotion-83740" value: { - dps: 406687.76622 - tps: 2.48648214972e+06 - dtps: 18026.18329 + dps: 411643.40202 + tps: 2.51433483551e+06 + dtps: 17354.55922 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofFidelity-83737" value: { - dps: 412469.74689 - tps: 2.52605032615e+06 - dtps: 16586.14709 + dps: 413253.19482 + tps: 2.52965900605e+06 + dtps: 18508.63434 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofGrace-83738" value: { - dps: 406004.78954 - tps: 2.4815407748e+06 - dtps: 16912.7266 + dps: 408009.81539 + tps: 2.49095264125e+06 + dtps: 16276.6023 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofKypariZar-84076" value: { - dps: 406890.42532 - tps: 2.48745632892e+06 - dtps: 18015.0793 + dps: 411875.49678 + tps: 2.51551506433e+06 + dtps: 17375.6955 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofPatience-83739" value: { - dps: 404852.63593 - tps: 2.47536471167e+06 - dtps: 17465.04704 + dps: 409142.65632 + tps: 2.4964001098e+06 + dtps: 17008.84881 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigilofRampage-105580" value: { - dps: 402567.63241 - tps: 2.46160490438e+06 - dtps: 17941.08376 + dps: 408013.26465 + tps: 2.49248188369e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SigiloftheCatacombs-83732" value: { - dps: 407583.801 - tps: 2.48884879425e+06 - dtps: 17168.21865 + dps: 413084.47228 + tps: 2.52340651964e+06 + dtps: 17055.41162 } } dps_results: { key: "TestProtectionWarrior-AllItems-SinisterPrimalDiamond" value: { - dps: 420996.45527 - tps: 2.56626683844e+06 - dtps: 24335.33623 + dps: 421595.79853 + tps: 2.57249048927e+06 + dtps: 23672.81089 } } dps_results: { key: "TestProtectionWarrior-AllItems-Skeer'sBloodsoakedTalisman-105632" value: { - dps: 433970.78868 - tps: 2.65009230777e+06 - dtps: 14855.57135 + dps: 436002.88332 + tps: 2.65920899717e+06 + dtps: 14600.32322 } } dps_results: { key: "TestProtectionWarrior-AllItems-SkullrenderMedallion-93256" value: { - dps: 414931.92686 - tps: 2.53501069641e+06 - dtps: 17072.46987 + dps: 416279.93509 + tps: 2.54074551201e+06 + dtps: 16592.18746 } } dps_results: { key: "TestProtectionWarrior-AllItems-SoothingTalismanoftheShado-PanAssault-94509" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SoulBarrier-96927" value: { - dps: 400932.08807 - tps: 2.45015586714e+06 - dtps: 18749.35354 + dps: 407374.01441 + tps: 2.48800713337e+06 + dtps: 16970.34404 } } dps_results: { key: "TestProtectionWarrior-AllItems-SparkofZandalar-96770" value: { - dps: 407868.39167 - tps: 2.48965278021e+06 - dtps: 15372.56817 + dps: 412477.04254 + tps: 2.51544859058e+06 + dtps: 15592.77364 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpiritsoftheSun-87163" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpringrainIdolofDestruction-101023" value: { - dps: 406649.40709 - tps: 2.47850834458e+06 - dtps: 16646.54154 + dps: 409820.26689 + tps: 2.49353883995e+06 + dtps: 17328.96865 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpringrainIdolofRage-101009" value: { - dps: 401832.38688 - tps: 2.45645819227e+06 - dtps: 17966.35797 + dps: 408143.95022 + tps: 2.49339685463e+06 + dtps: 16503.78342 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpringrainStoneofDestruction-101026" value: { - dps: 401863.04399 - tps: 2.45667278526e+06 - dtps: 17058.67618 + dps: 408668.3709 + tps: 2.49606352685e+06 + dtps: 15860.27785 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpringrainStoneofRage-101012" value: { - dps: 401870.05688 - tps: 2.45672939937e+06 - dtps: 17662.71839 + dps: 407884.9742 + tps: 2.49062261045e+06 + dtps: 16879.15283 } } dps_results: { key: "TestProtectionWarrior-AllItems-SpringrainStoneofWisdom-101041" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Static-Caster'sMedallion-93254" value: { - dps: 407604.4184 - tps: 2.49369804418e+06 - dtps: 16765.61062 + dps: 409962.96067 + tps: 2.50305462782e+06 + dtps: 16907.97165 } } dps_results: { key: "TestProtectionWarrior-AllItems-SteadfastFootman'sMedallion-92782" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SteadfastTalismanoftheShado-PanAssault-94507" value: { - dps: 402648.14306 - tps: 2.45813293032e+06 - dtps: 17321.48807 + dps: 407600.88942 + tps: 2.48907444378e+06 + dtps: 15752.98662 } } dps_results: { key: "TestProtectionWarrior-AllItems-StreamtalkerIdolofDestruction-101222" value: { - dps: 404678.96628 - tps: 2.46725548406e+06 - dtps: 17952.81744 + dps: 407666.91207 + tps: 2.48690942347e+06 + dtps: 18210.67025 } } dps_results: { key: "TestProtectionWarrior-AllItems-StreamtalkerIdolofRage-101217" value: { - dps: 401745.05892 - tps: 2.45584687572e+06 - dtps: 17970.68301 + dps: 408304.79617 + tps: 2.49452275548e+06 + dtps: 16503.78342 } } dps_results: { key: "TestProtectionWarrior-AllItems-StreamtalkerStoneofDestruction-101225" value: { - dps: 401741.32668 - tps: 2.45549644476e+06 - dtps: 18032.13471 + dps: 408880.6418 + tps: 2.49722505971e+06 + dtps: 16510.38307 } } dps_results: { key: "TestProtectionWarrior-AllItems-StreamtalkerStoneofRage-101220" value: { - dps: 402136.449 - tps: 2.45859422697e+06 - dtps: 17837.38577 + dps: 408356.27232 + tps: 2.49392184469e+06 + dtps: 16712.47785 } } dps_results: { key: "TestProtectionWarrior-AllItems-StreamtalkerStoneofWisdom-101250" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-StuffofNightmares-87160" value: { - dps: 408088.05383 - tps: 2.48714433199e+06 - dtps: 16199.01478 + dps: 412099.19599 + tps: 2.51281557877e+06 + dtps: 14837.81556 } } dps_results: { key: "TestProtectionWarrior-AllItems-SunsoulDefenderIdol-101160" value: { - dps: 409338.98483 - tps: 2.49711614955e+06 - dtps: 16475.92654 + dps: 408869.89758 + tps: 2.49609262987e+06 + dtps: 16036.04941 } } dps_results: { key: "TestProtectionWarrior-AllItems-SunsoulDefenderStone-101163" value: { - dps: 401700.06601 - tps: 2.45553213246e+06 - dtps: 17726.24118 + dps: 408723.25291 + tps: 2.496447807e+06 + dtps: 16841.14879 } } dps_results: { key: "TestProtectionWarrior-AllItems-SunsoulIdolofBattle-101152" value: { - dps: 415395.37377 - tps: 2.54075456533e+06 - dtps: 17418.40549 + dps: 418594.79278 + tps: 2.55838264833e+06 + dtps: 16026.4206 } } dps_results: { key: "TestProtectionWarrior-AllItems-SunsoulStoneofBattle-101151" value: { - dps: 404508.08309 - tps: 2.47257209377e+06 - dtps: 17278.06735 + dps: 410476.34494 + tps: 2.50472156624e+06 + dtps: 15798.77241 } } dps_results: { key: "TestProtectionWarrior-AllItems-SunsoulStoneofWisdom-101138" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-SwordguardEmbroidery(Rank3)-4894" value: { - dps: 420225.05807 - tps: 2.56222425656e+06 - dtps: 15690.81017 + dps: 423852.82277 + tps: 2.58880081969e+06 + dtps: 15223.85616 } } dps_results: { key: "TestProtectionWarrior-AllItems-SymboloftheCatacombs-83735" value: { - dps: 406593.14864 - tps: 2.48658869315e+06 - dtps: 17794.56115 + dps: 411675.33309 + tps: 2.51599880043e+06 + dtps: 16555.30919 } } dps_results: { key: "TestProtectionWarrior-AllItems-SynapseSprings(MarkII)-4898" value: { - dps: 417036.81729 - tps: 2.54517503146e+06 - dtps: 17378.55564 + dps: 419960.93891 + tps: 2.56233077393e+06 + dtps: 15950.46253 } } dps_results: { key: "TestProtectionWarrior-AllItems-TalismanofBloodlust-96864" value: { - dps: 405502.2141 - tps: 2.47047636321e+06 - dtps: 17611.79293 + dps: 409289.71178 + tps: 2.48985645735e+06 + dtps: 17736.83109 } } dps_results: { key: "TestProtectionWarrior-AllItems-TerrorintheMists-87167" value: { - dps: 408500.98881 - tps: 2.48904077367e+06 - dtps: 18312.69597 + dps: 413593.54928 + tps: 2.51799965777e+06 + dtps: 17688.31243 } } dps_results: { key: "TestProtectionWarrior-AllItems-TheGloamingBlade-88149" value: { - dps: 418640.98391 - tps: 2.55393417624e+06 - dtps: 16440.31489 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15445.98233 } } dps_results: { key: "TestProtectionWarrior-AllItems-Thok'sAcid-GroovedTooth-105607" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Thok'sTailTip-105609" value: { - dps: 421544.83686 - tps: 2.56377739325e+06 - dtps: 18362.05842 + dps: 424184.56555 + tps: 2.58348857453e+06 + dtps: 17423.34537 } } dps_results: { key: "TestProtectionWarrior-AllItems-Thousand-YearPickledEgg-282031" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-TickingEbonDetonator-105612" value: { - dps: 402734.62163 - tps: 2.46324104171e+06 - dtps: 18234.8858 + dps: 410522.70059 + tps: 2.50861044265e+06 + dtps: 15812.04814 } } dps_results: { key: "TestProtectionWarrior-AllItems-Time-LostArtifact-103678" value: { - dps: 405117.48448 - tps: 2.47515180389e+06 - dtps: 16884.38319 + dps: 409165.70292 + tps: 2.49674342254e+06 + dtps: 16126.17797 } } dps_results: { key: "TestProtectionWarrior-AllItems-TrailseekerIdolofRage-101054" value: { - dps: 401649.06979 - tps: 2.45517495179e+06 - dtps: 17970.68301 + dps: 408177.74509 + tps: 2.49363337686e+06 + dtps: 16454.6459 } } dps_results: { key: "TestProtectionWarrior-AllItems-TrailseekerStoneofRage-101057" value: { - dps: 401857.93241 - tps: 2.4569687855e+06 - dtps: 17691.97327 + dps: 407782.06483 + tps: 2.49022654497e+06 + dtps: 17008.68561 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sBadgeofConquest-100043" value: { - dps: 401442.10982 - tps: 2.4537260809e+06 - dtps: 18275.30765 + dps: 407994.76947 + tps: 2.49235239653e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sBadgeofDominance-100016" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sBadgeofVictory-100019" value: { - dps: 407862.39432 - tps: 2.49441938512e+06 - dtps: 16673.74195 + dps: 411824.46911 + tps: 2.51717947923e+06 + dtps: 15587.53796 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sEmblemofCruelty-100066" value: { - dps: 409857.53894 - tps: 2.50702257209e+06 - dtps: 18833.5394 + dps: 416263.89157 + tps: 2.54365778734e+06 + dtps: 17965.96549 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sEmblemofMeditation-99990" value: { - dps: 401472.12576 - tps: 2.45346633251e+06 - dtps: 18757.82378 + dps: 407552.89591 + tps: 2.48878935784e+06 + dtps: 17616.60227 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sEmblemofTenacity-100092" value: { - dps: 401095.10104 - tps: 2.45117770407e+06 - dtps: 18446.15968 + dps: 407104.24397 + tps: 2.48599933914e+06 + dtps: 18406.89951 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sInsigniaofConquest-100026" value: { - dps: 401493.08262 - tps: 2.45408289053e+06 - dtps: 18275.30765 + dps: 407960.37872 + tps: 2.49211168234e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sInsigniaofDominance-100152" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalGladiator'sInsigniaofVictory-100085" value: { - dps: 410771.18694 - tps: 2.51232418581e+06 - dtps: 15802.03864 + dps: 414545.76941 + tps: 2.5326920855e+06 + dtps: 16085.89722 } } dps_results: { key: "TestProtectionWarrior-AllItems-TyrannicalPrimalDiamond" value: { - dps: 419156.54473 - tps: 2.55484746426e+06 - dtps: 24162.59793 + dps: 422225.61973 + tps: 2.57931284373e+06 + dtps: 23910.70217 } } dps_results: { key: "TestProtectionWarrior-AllItems-UnerringVisionofLeiShen-96930" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-VaporshieldMedallion-93262" value: { - dps: 407858.37949 - tps: 2.49413175858e+06 - dtps: 16995.75413 + dps: 411767.22512 + tps: 2.51491395874e+06 + dtps: 15693.90542 } } dps_results: { key: "TestProtectionWarrior-AllItems-VialofDragon'sBlood-87063" value: { - dps: 409339.96108 - tps: 2.49912436739e+06 - dtps: 15416.13638 + dps: 411927.09527 + tps: 2.51577080739e+06 + dtps: 15422.13585 } } dps_results: { key: "TestProtectionWarrior-AllItems-VialofIchorousBlood-100963" value: { - dps: 401384.30873 - tps: 2.45332147331e+06 - dtps: 18275.30765 + dps: 407745.49548 + tps: 2.49060747861e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-VialofLivingCorruption-105568" value: { - dps: 410207.35366 - tps: 2.50866108786e+06 - dtps: 17438.85328 + dps: 412744.27102 + tps: 2.52182743307e+06 + dtps: 17672.8952 } } dps_results: { key: "TestProtectionWarrior-AllItems-ViciousTalismanoftheShado-PanAssault-94511" value: { - dps: 401496.37375 - tps: 2.45410592844e+06 - dtps: 18275.30765 + dps: 407883.28753 + tps: 2.49157204402e+06 + dtps: 16615.87874 } } dps_results: { key: "TestProtectionWarrior-AllItems-VisionofthePredator-81192" value: { - dps: 408274.84484 - tps: 2.48621088173e+06 - dtps: 19105.24214 + dps: 412969.04871 + tps: 2.51421099029e+06 + dtps: 17283.81793 } } dps_results: { key: "TestProtectionWarrior-AllItems-VolatileTalismanoftheShado-PanAssault-94510" value: { - dps: 404531.20378 - tps: 2.46425444216e+06 - dtps: 16829.7454 + dps: 409227.47059 + tps: 2.49071794647e+06 + dtps: 16477.39599 } } dps_results: { key: "TestProtectionWarrior-AllItems-WindsweptPages-81125" value: { - dps: 403582.72214 - tps: 2.46424116574e+06 - dtps: 17846.17942 + dps: 408224.07473 + tps: 2.4923508314e+06 + dtps: 16576.01348 } } dps_results: { key: "TestProtectionWarrior-AllItems-WoundripperMedallion-93253" value: { - dps: 411435.47258 - tps: 2.51510611095e+06 - dtps: 18368.0802 + dps: 413788.82334 + tps: 2.52425665582e+06 + dtps: 18326.52426 } } dps_results: { key: "TestProtectionWarrior-AllItems-Wushoolay'sFinalChoice-96785" value: { - dps: 401385.1111 - tps: 2.45332708992e+06 - dtps: 18275.30765 + dps: 407746.29785 + tps: 2.49061309522e+06 + dtps: 16774.43525 } } dps_results: { key: "TestProtectionWarrior-AllItems-Xing-Ho,BreathofYu'lon-102246" value: { - dps: 398598.45694 - tps: 2.43363007729e+06 - dtps: 22706.64563 + dps: 397717.52574 + tps: 2.43043514729e+06 + dtps: 22295.02816 } } dps_results: { key: "TestProtectionWarrior-AllItems-YaungolFireCarrier-86518" value: { - dps: 418640.98391 - tps: 2.55393417624e+06 - dtps: 16440.31489 + dps: 422340.04202 + tps: 2.58100347416e+06 + dtps: 15445.98233 } } dps_results: { key: "TestProtectionWarrior-AllItems-Yu'lon'sBite-103987" value: { - dps: 411459.20592 - tps: 2.50277539947e+06 - dtps: 18332.67715 + dps: 417554.36337 + tps: 2.53715632787e+06 + dtps: 17568.23036 } } dps_results: { key: "TestProtectionWarrior-AllItems-ZenAlchemistStone-75274" value: { - dps: 408419.73261 - tps: 2.4962945301e+06 - dtps: 16223.05297 + dps: 412505.21055 + tps: 2.51926636926e+06 + dtps: 15444.0408 } } dps_results: { diff --git a/sim/wasm/main.go b/sim/wasm/main.go index d01848d186..bbfe11b69d 100644 --- a/sim/wasm/main.go +++ b/sim/wasm/main.go @@ -4,6 +4,7 @@ package main import ( + "fmt" "log" "runtime/debug" "strings" @@ -11,7 +12,9 @@ import ( "github.com/wowsims/mop/sim" "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/bulk" proto "github.com/wowsims/mop/sim/core/proto" + reforgeoptimizer "github.com/wowsims/mop/sim/core/reforge_optimizer" "github.com/wowsims/mop/sim/core/simsignals" protojson "google.golang.org/protobuf/encoding/protojson" googleProto "google.golang.org/protobuf/proto" @@ -23,15 +26,19 @@ func init() { } func main() { - c := make(chan struct{}, 0) + c := make(chan struct{}) js.Global().Set("computeStats", js.FuncOf(computeStats)) js.Global().Set("computeStatsJson", js.FuncOf(computeStatsJson)) + js.Global().Set("reforgeOptimize", js.FuncOf(reforgeOptimize)) + js.Global().Set("reforgeOptimizeAsync", js.FuncOf(reforgeOptimizeAsync)) js.Global().Set("raidSim", js.FuncOf(raidSim)) js.Global().Set("raidSimJson", js.FuncOf(raidSimJson)) js.Global().Set("raidSimAsync", js.FuncOf(raidSimAsync)) js.Global().Set("raidSimRequestSplit", js.FuncOf(raidSimRequestSplit)) js.Global().Set("raidSimResultCombination", js.FuncOf(raidSimResultCombination)) + js.Global().Set("bulkCombinationCount", js.FuncOf(bulkCombinationCount)) + js.Global().Set("bulkCandidates", js.FuncOf(bulkCandidates)) js.Global().Set("statWeights", js.FuncOf(statWeights)) js.Global().Set("statWeightsAsync", js.FuncOf(statWeightsAsync)) js.Global().Set("statWeightRequests", js.FuncOf(statWeightRequests)) @@ -126,6 +133,105 @@ func computeStatsJson(this js.Value, args []js.Value) (response interface{}) { return response } +func reforgeOptimize(this js.Value, args []js.Value) (response interface{}) { + defer func() { + if err := recover(); err != nil { + errStr := "" + switch errt := err.(type) { + case string: + errStr = errt + case error: + errStr = errt.Error() + } + + errStr += "\nStack Trace:\n" + string(debug.Stack()) + result := &proto.ReforgeOptimizeResult{Error: &proto.ErrorOutcome{Message: errStr}} + outbytes, err := googleProto.Marshal(result) + if err != nil { + log.Printf("[ERROR] Failed to marshal error (%s) result: %s", errStr, err.Error()) + return + } + outArray := js.Global().Get("Uint8Array").New(len(outbytes)) + js.CopyBytesToJS(outArray, outbytes) + response = outArray + } + }() + req := &proto.ReforgeOptimizeRequest{} + if err := googleProto.Unmarshal(getArgsBinary(args[0]), req); err != nil { + log.Printf("Failed to parse ReforgeOptimizeRequest: %s", err) + return nil + } + signals, err := simsignals.RegisterWithId(req.GetRequestId()) + if err != nil { + result := &proto.ReforgeOptimizeResult{Error: &proto.ErrorOutcome{Message: "Couldn't register for signal API: " + err.Error()}} + outbytes, err := googleProto.Marshal(result) + if err != nil { + log.Printf("[ERROR] Failed to marshal ReforgeOptimizeResult: %s", err.Error()) + return nil + } + outArray := js.Global().Get("Uint8Array").New(len(outbytes)) + js.CopyBytesToJS(outArray, outbytes) + response = outArray + return response + } + defer simsignals.UnregisterId(req.GetRequestId()) + result := reforgeoptimizer.OptimizeAsync(req, signals) + + outbytes, err := googleProto.Marshal(result) + if err != nil { + log.Printf("[ERROR] Failed to marshal ReforgeOptimizeResult: %s", err.Error()) + return nil + } + outArray := js.Global().Get("Uint8Array").New(len(outbytes)) + js.CopyBytesToJS(outArray, outbytes) + + response = outArray + return response +} + +func reforgeOptimizeAsync(this js.Value, args []js.Value) interface{} { + req := &proto.ReforgeOptimizeRequest{} + if err := googleProto.Unmarshal(getArgsBinary(args[0]), req); err != nil { + log.Printf("Failed to parse ReforgeOptimizeRequest: %s", err) + return nil + } + + requestId := args[2].String() + if strings.HasPrefix(requestId, " 0 + if !fullyCachedReforgeRequest { + shouldLogReforgeStages := request.GetReforgeRequest() != nil + candidateGenerationStartedAt := time.Now() + if shouldLogReforgeStages { + log.Printf("[Bulk Sim] Candidate generation started") + } + // Generation emits no progress of its own and can outlast the silence watchdog. + stopHeartbeat := startProgressHeartbeat(progress, func() *proto.ProgressMetrics { + return &proto.ProgressMetrics{} + }) + generateErr := ensureBulkSimCandidatesGenerated(request) + stopHeartbeat() + if generateErr != nil { + finishBulkSim(progress, proto.BulkSimStage_BulkSimStageError, &proto.BulkSimResult{ + Error: &proto.ErrorOutcome{Message: generateErr.Error()}, + }) + return + } + if shouldLogReforgeStages { + log.Printf("[Bulk Sim] Candidate generation completed total=%s candidates=%d optimizedCandidates=%d", time.Since(candidateGenerationStartedAt), len(request.GetCandidates()), len(request.GetOptimizedCandidates())) + } + } else { + log.Printf("[Bulk Sim] Candidate generation skipped optimizedCandidates=%d", len(request.GetOptimizedCandidates())) + } + if signals.Abort.IsTriggered() { + log.Printf("[Bulk Sim] Cancelled during candidate generation") + finishBulkSim(progress, proto.BulkSimStage_BulkSimStageError, &proto.BulkSimResult{ + Error: &proto.ErrorOutcome{Type: proto.ErrorOutcomeType_ErrorOutcomeAborted}, + }) + return + } + if request.GetReforgeRequest() == nil { + unregister() + bulk.BulkSimAsync(request, progress, requestId) + return + } + + optimizeBulkSimReforgeCandidates(request, progress, signals) + if signals.Abort.IsTriggered() { + unregister() + log.Printf("[Bulk Sim] Cancelled during reforge optimization") + finishBulkSim(progress, proto.BulkSimStage_BulkSimStageReforge, &proto.BulkSimResult{ + OptimizedCandidates: request.GetOptimizedCandidates(), + Error: &proto.ErrorOutcome{Type: proto.ErrorOutcomeType_ErrorOutcomeAborted}, + }) + return + } + request.ReforgeRequest = nil + unregister() + bulk.BulkSimAsync(request, progress, requestId) +} + +func optimizeBulkSimReforgeCandidates(request *proto.BulkSimRequest, progress chan *proto.ProgressMetrics, signals simsignals.Signals) { + reforgeRequest := request.GetReforgeRequest() + if reforgeRequest == nil || request.GetBaseRequest().GetRaid() == nil { + return + } + + totalCandidates := countBulkSimReforgeCandidates(request.GetCandidates()) + if totalCandidates == 0 { + request.Candidates = dedupeBulkSimReforgeCandidates(getBulkSimRequestBaselineGear(request), request.GetOptimizedCandidates()) + request.OptimizedCandidates = nil + return + } + concurrency := bulk.GetBulkSimStageConcurrency(request, bulk.BulkSimStageConfig{Stage: proto.BulkSimStage_BulkSimStageReforge}) + concurrency = max(1, min(concurrency, int(totalCandidates))) + stageStartedAt := time.Now() + log.Printf("[Bulk Sim] Reforge optimization started candidates=%d concurrency=%d", totalCandidates, concurrency) + warmBulkSimReforgeDatabase(request) + emitBulkSimReforgeProgress(progress, 0, totalCandidates, nil) + + optimizer := newBulkSimReforgeOptimizer(request) + accumulator := newBulkSimReforgeAccumulator(request.GetCandidates(), totalCandidates, progress != nil) + + jobs := make(chan bulkSimReforgeTask, max(16, 2*concurrency)) + var wg sync.WaitGroup + workerCount := max(1, concurrency) + for range workerCount { + wg.Go(func() { + for task := range jobs { + if signals.Abort.IsTriggered() { + continue + } + + duration, completed, optimized := optimizeBulkSimReforgeCandidateTask(optimizer, reforgeRequest, task.candidate, signals) + update := accumulator.complete(task, duration, completed, optimized) + if update.shouldEmit() { + emitBulkSimReforgeProgress(progress, update.completedCandidates, totalCandidates, update.candidateBatch) + } + } + }) + } + + for position, candidate := range request.GetCandidates() { + if signals.Abort.IsTriggered() { + break + } + if candidate == nil || candidate.Gear == nil { + continue + } + jobs <- bulkSimReforgeTask{position: position, candidate: candidate} + } + close(jobs) + wg.Wait() + // Flush any remaining partial candidates at the end. + if finalUpdate := accumulator.flush(); finalUpdate.shouldEmit() { + emitBulkSimReforgeProgress(progress, finalUpdate.completedCandidates, totalCandidates, finalUpdate.candidateBatch) + } + completedCandidates, minCandidateDuration, avgCandidateDuration, maxCandidateDuration := accumulator.timings() + log.Printf("[Bulk Sim] Reforge optimization completed candidates=%d total=%s minCandidate=%s avgCandidate=%s maxCandidate=%s", completedCandidates, time.Since(stageStartedAt), minCandidateDuration, avgCandidateDuration, maxCandidateDuration) + + baselineGear := getBulkSimRequestBaselineGear(request) + restoredCandidates := request.GetOptimizedCandidates() + // Only the solves that succeeded are reported as optimized, because that list is what + // the frontend writes into its reforge cache. + optimizedCandidates := slices.Concat(restoredCandidates, accumulator.optimizedCandidates()) + if signals.Abort.IsTriggered() { + request.OptimizedCandidates = optimizedCandidates + request.Candidates = nil + return + } + + // Everything that finished gets simmed, optimized or not. Deduplicate: avoid running + // the same reforged gear twice and exclude gear identical to the baseline (it is + // already simmed separately). + simCandidates := slices.Concat(restoredCandidates, compactBulkGearCandidates(accumulator.completedByPosition())) + request.Candidates = dedupeBulkSimReforgeCandidates(baselineGear, simCandidates) + // Include ALL optimized candidates (before dedup) so the frontend can write a cache entry + // for every input gear set, including those whose optimal reforge matched another candidate + // or the baseline. Without this, filtered runs (e.g. Require 4P) would always miss the + // cache because the matching entries were never written after the first run. + request.OptimizedCandidates = optimizedCandidates +} + +// Collects reforge pre-pass completions from all workers and decides what progress to +// emit. The mutex has a single owner here, and emitting is deliberately left to the +// caller: emitBulkSimReforgeProgress does a blocking channel send, which must not +// happen under the lock or every worker stalls behind the holder when the consumer +// falls behind. +type bulkSimReforgeAccumulator struct { + mutex sync.Mutex + totalCandidates int32 + reportProgress bool + completedByPositions []*proto.BulkGearCandidate + // Which completed positions actually produced an optimized solve. Only those may be + // reported as optimized candidates; completedByPositions also holds the ones that fell + // back to their input gear. One bit per position rather than a second pointer slice — + // the candidate is always the one already in completedByPositions. + optimizedByPositions []bool + completedCandidates int32 + totalDuration time.Duration + minDuration time.Duration + maxDuration time.Duration + // Completions are emitted in larger cache-write batches so progress updates stay + // lightweight even for very large candidate counts. + candidateBatch []*proto.BulkGearCandidate + lastProgressEmit time.Time +} + +// What the caller should emit after a completion. A nil batch with emitUpdate false +// means nothing is due yet. +type bulkSimReforgeProgressUpdate struct { + completedCandidates int32 + candidateBatch []*proto.BulkGearCandidate + emitUpdate bool +} + +func (update bulkSimReforgeProgressUpdate) shouldEmit() bool { + return update.candidateBatch != nil || update.emitUpdate +} + +func newBulkSimReforgeAccumulator(candidates []*proto.BulkGearCandidate, totalCandidates int32, reportProgress bool) *bulkSimReforgeAccumulator { + return &bulkSimReforgeAccumulator{ + totalCandidates: totalCandidates, + reportProgress: reportProgress, + completedByPositions: make([]*proto.BulkGearCandidate, len(candidates)), + optimizedByPositions: make([]bool, len(candidates)), + candidateBatch: make([]*proto.BulkGearCandidate, 0, bulkSimReforgeProgressOptimizedCandidateFlushSize), + lastProgressEmit: time.Now(), + } +} + +func (accumulator *bulkSimReforgeAccumulator) complete(task bulkSimReforgeTask, duration time.Duration, completed bool, optimized bool) bulkSimReforgeProgressUpdate { + accumulator.mutex.Lock() + defer accumulator.mutex.Unlock() + + accumulator.totalDuration += duration + var batch []*proto.BulkGearCandidate + if completed { + accumulator.completedCandidates++ + accumulator.completedByPositions[task.position] = task.candidate + if optimized { + accumulator.optimizedByPositions[task.position] = true + accumulator.candidateBatch = append(accumulator.candidateBatch, task.candidate) + } + if accumulator.completedCandidates == 1 || duration < accumulator.minDuration { + accumulator.minDuration = duration + } + if duration > accumulator.maxDuration { + accumulator.maxDuration = duration + } + if len(accumulator.candidateBatch) >= bulkSimReforgeProgressOptimizedCandidateFlushSize { + batch = accumulator.takeBatchLocked() + } + } + + update := bulkSimReforgeProgressUpdate{completedCandidates: accumulator.completedCandidates, candidateBatch: batch} + if batch == nil { + update.emitUpdate = accumulator.progressUpdateDueLocked() + } + return update +} + +func (accumulator *bulkSimReforgeAccumulator) flush() bulkSimReforgeProgressUpdate { + accumulator.mutex.Lock() + defer accumulator.mutex.Unlock() + return bulkSimReforgeProgressUpdate{ + completedCandidates: accumulator.completedCandidates, + candidateBatch: accumulator.takeBatchLocked(), + } +} + +// Hands the accumulated batch to the caller and starts a fresh one. Ownership must +// transfer rather than the slice being reused, because the batch is emitted after the +// lock is released and other workers keep appending in the meantime. +func (accumulator *bulkSimReforgeAccumulator) takeBatchLocked() []*proto.BulkGearCandidate { + if len(accumulator.candidateBatch) == 0 { + return nil + } + batch := accumulator.candidateBatch + accumulator.candidateBatch = make([]*proto.BulkGearCandidate, 0, bulkSimReforgeProgressOptimizedCandidateFlushSize) + return batch +} + +func (accumulator *bulkSimReforgeAccumulator) progressUpdateDueLocked() bool { + if !accumulator.reportProgress { + return false + } + if accumulator.completedCandidates < accumulator.totalCandidates && time.Since(accumulator.lastProgressEmit) < bulkSimReforgeProgressUpdateInterval { + return false + } + + accumulator.lastProgressEmit = time.Now() + return true +} + +func (accumulator *bulkSimReforgeAccumulator) completedByPosition() []*proto.BulkGearCandidate { + accumulator.mutex.Lock() + defer accumulator.mutex.Unlock() + return accumulator.completedByPositions +} + +// The subset of completed candidates whose solve succeeded, in position order. +func (accumulator *bulkSimReforgeAccumulator) optimizedCandidates() []*proto.BulkGearCandidate { + accumulator.mutex.Lock() + defer accumulator.mutex.Unlock() + optimized := make([]*proto.BulkGearCandidate, 0, len(accumulator.completedByPositions)) + for position, candidate := range accumulator.completedByPositions { + if accumulator.optimizedByPositions[position] && candidate != nil && candidate.Gear != nil { + optimized = append(optimized, candidate) + } + } + return optimized +} + +func (accumulator *bulkSimReforgeAccumulator) timings() (completed int32, minDuration time.Duration, avgDuration time.Duration, maxDuration time.Duration) { + accumulator.mutex.Lock() + defer accumulator.mutex.Unlock() + + avgDuration = time.Duration(0) + if accumulator.completedCandidates > 0 { + avgDuration = time.Duration(int64(accumulator.totalDuration) / int64(accumulator.completedCandidates)) + } + return accumulator.completedCandidates, accumulator.minDuration, avgDuration, accumulator.maxDuration +} + +func newBulkSimReforgeOptimizer(request *proto.BulkSimRequest) *bulkSimReforgeOptimizer { + templateRequest := googleProto.Clone(request.GetReforgeRequest()).(*proto.ReforgeOptimizeRequest) + if templateRequest.Settings == nil { + templateRequest.Settings = &proto.ReforgeSettings{} + } + templateRequest.Mode = proto.ReforgeOptimizeMode_ReforgeOptimizeModeBulk + templateRaid := googleProto.Clone(request.GetBaseRequest().GetRaid()).(*proto.Raid) + return &bulkSimReforgeOptimizer{ + templateRequest: templateRequest, + templateRaid: templateRaid, + optimizedGearByKey: make(map[bulkSimReforgeCandidateCacheKey]*proto.EquipmentSpec), + inFlightByKey: make(map[bulkSimReforgeCandidateCacheKey]*bulkSimReforgeInFlightSolve), + } +} + +func warmBulkSimReforgeDatabase(request *proto.BulkSimRequest) { + raid := googleProto.Clone(request.GetBaseRequest().GetRaid()).(*proto.Raid) + result := core.ComputeStats(&proto.ComputeStatsRequest{Raid: raid, SkipRotation: true}) + if result.GetErrorResult() != "" { + log.Printf("[Bulk Sim] Reforge database warm-up failed: %s", result.GetErrorResult()) + } +} + +// Returns whether the candidate is done (and so should be simmed) and, separately, whether +// it was actually optimized. A failed solve still sims with its original gear, but must not +// be reported as an optimized candidate: the frontend writes those into a 14-day reforge +// cache, and caching gear as its own optimization poisons every later run of that gear. +func optimizeBulkSimReforgeCandidateTask(optimizer *bulkSimReforgeOptimizer, reforgeRequest *proto.ReforgeOptimizeRequest, candidate *proto.BulkGearCandidate, signals simsignals.Signals) (duration time.Duration, completed bool, optimized bool) { + startedAt := time.Now() + gearKey := bulkSimReforgeGearKey(candidate.Gear) + // Retry without gems: a gem-inclusive model can be infeasible where the + // reforge-only one is not. + includeGems := reforgeRequest.GetSettings().GetIncludeGems() + optimizedGear := optimizer.optimizeWithKey(candidate.Gear, gearKey, includeGems, signals) + if optimizedGear == nil && !signals.Abort.IsTriggered() && includeGems { + optimizedGear = optimizer.optimizeWithKey(candidate.Gear, gearKey, false, signals) + } + if optimizedGear == nil { + if signals.Abort.IsTriggered() { + return time.Since(startedAt), false, false + } + log.Printf("[Bulk Sim] Reforge optimization failed for candidate %d; using original gear", candidate.Index) + return time.Since(startedAt), true, false + } + + candidate.Gear = optimizedGear + return time.Since(startedAt), true, true +} + +func countBulkSimReforgeCandidates(candidates []*proto.BulkGearCandidate) int32 { + var count int32 + for _, candidate := range candidates { + if candidate != nil && candidate.Gear != nil { + count++ + } + } + return count +} + +func emitBulkSimReforgeProgress(progress chan *proto.ProgressMetrics, completed int32, total int32, partialCandidates []*proto.BulkGearCandidate) { + if progress == nil { + return + } + + progress <- &proto.ProgressMetrics{ + BulkStage: proto.BulkSimStage_BulkSimStageReforge, + CompletedSims: completed, + TotalSims: total, + CompletedIterations: completed, + TotalIterations: total, + OptimizedCandidates: partialCandidates, + } +} + +func getBulkSimRequestBaselineGear(request *proto.BulkSimRequest) *proto.EquipmentSpec { + parties := request.GetBaseRequest().GetRaid().GetParties() + if len(parties) == 0 || parties[0] == nil { + return nil + } + players := parties[0].GetPlayers() + if len(players) == 0 || players[0] == nil { + return nil + } + return players[0].GetEquipment() +} + +func (optimizer *bulkSimReforgeOptimizer) optimizeWithKey(gear *proto.EquipmentSpec, gearKey bulkSimReforgeGearHash, includeGems bool, signals simsignals.Signals) *proto.EquipmentSpec { + key := bulkSimReforgeCandidateCacheKey{gearKey: gearKey, includeGems: includeGems} + optimizer.cacheMu.RLock() + cachedGear, cached := optimizer.optimizedGearByKey[key] + optimizer.cacheMu.RUnlock() + if cached { + // Clone on the hit path too: the caller assigns the result to candidate.Gear, so + // handing out the cache's own pointer would let any later in-place edit of one + // candidate's gear corrupt the entry every other candidate with the same gear reads. + return cloneEquipmentSpecOrNil(cachedGear) + } + + optimizer.cacheMu.Lock() + // Re-check under the write lock: another worker may have finished, or started, in the + // window since the read lock was dropped. + if cachedGear, cached := optimizer.optimizedGearByKey[key]; cached { + optimizer.cacheMu.Unlock() + return cloneEquipmentSpecOrNil(cachedGear) + } + if running := optimizer.inFlightByKey[key]; running != nil { + optimizer.cacheMu.Unlock() + <-running.done + return cloneEquipmentSpecOrNil(running.gear) + } + inFlight := &bulkSimReforgeInFlightSolve{done: make(chan struct{})} + optimizer.inFlightByKey[key] = inFlight + optimizer.cacheMu.Unlock() + + optimizedGear := optimizer.runReforgeOptimize(gear, key, signals) + + // Publish to the waiters before dropping the map entry. Closing first means a worker that + // took the entry just before this point still gets the result, and one arriving just after + // finds the cache entry runReforgeOptimize wrote — so no window reopens a duplicate solve. + inFlight.gear = optimizedGear + close(inFlight.done) + optimizer.cacheMu.Lock() + delete(optimizer.inFlightByKey, key) + optimizer.cacheMu.Unlock() + + return cloneEquipmentSpecOrNil(optimizedGear) +} + +// runReforgeOptimize runs one solve and records it in the result cache. Returns nil when the +// solve failed or was aborted. An abort is deliberately left uncached: the run is tearing down, +// and caching the empty result would make it look like a genuine failure. +func (optimizer *bulkSimReforgeOptimizer) runReforgeOptimize(gear *proto.EquipmentSpec, key bulkSimReforgeCandidateCacheKey, signals simsignals.Signals) *proto.EquipmentSpec { + reforgeRequest := optimizer.optimizeRequest(gear, key.includeGems) + if reforgeRequest == nil { + return nil + } + + result := reforgeoptimizer.OptimizeAsync(reforgeRequest, signals) + if result.GetError() != nil { + if result.GetError().GetType() == proto.ErrorOutcomeType_ErrorOutcomeAborted { + return nil + } + log.Printf("[Bulk Sim] Reforge optimization failed includeGems=%t: %s", key.includeGems, result.GetError().GetMessage()) + optimizer.storeCachedGear(key, nil) + return nil + } + optimizedGear := result.GetOptimizedGear() + optimizer.storeCachedGear(key, optimizedGear) + return optimizedGear +} + +func (optimizer *bulkSimReforgeOptimizer) optimizeRequest(gear *proto.EquipmentSpec, includeGems bool) *proto.ReforgeOptimizeRequest { + reforgeRequest := googleProto.Clone(optimizer.templateRequest).(*proto.ReforgeOptimizeRequest) + raid := googleProto.Clone(optimizer.templateRaid).(*proto.Raid) + if len(raid.Parties) == 0 || raid.Parties[0] == nil || len(raid.Parties[0].Players) == 0 || raid.Parties[0].Players[0] == nil { + return nil + } + + if reforgeRequest.Settings == nil { + reforgeRequest.Settings = &proto.ReforgeSettings{} + } + reforgeRequest.Settings.IncludeGems = includeGems + raid.Parties[0].Players[0].Equipment = googleProto.Clone(gear).(*proto.EquipmentSpec) + reforgeRequest.Raid = raid + + return reforgeRequest +} + +func (optimizer *bulkSimReforgeOptimizer) storeCachedGear(key bulkSimReforgeCandidateCacheKey, gear *proto.EquipmentSpec) { + optimizer.cacheMu.Lock() + defer optimizer.cacheMu.Unlock() + optimizer.optimizedGearByKey[key] = cloneEquipmentSpecOrNil(gear) +} + +func cloneEquipmentSpecOrNil(gear *proto.EquipmentSpec) *proto.EquipmentSpec { + if gear == nil { + return nil + } + return googleProto.Clone(gear).(*proto.EquipmentSpec) +} + +func dedupeBulkSimReforgeCandidates(baselineGear *proto.EquipmentSpec, candidates []*proto.BulkGearCandidate) []*proto.BulkGearCandidate { + seen := make(map[bulkSimReforgeGearHash]struct{}, len(candidates)+1) + if baselineGear != nil { + seen[bulkSimReforgeGearKey(baselineGear)] = struct{}{} + } + + deduped := make([]*proto.BulkGearCandidate, 0, len(candidates)) + for _, candidate := range candidates { + if candidate == nil || candidate.Gear == nil { + continue + } + + key := bulkSimReforgeGearKey(candidate.Gear) + if _, ok := seen[key]; ok { + continue + } + seen[key] = struct{}{} + deduped = append(deduped, candidate) + } + return deduped +} + +func compactBulkGearCandidates(candidates []*proto.BulkGearCandidate) []*proto.BulkGearCandidate { + return core.FilterSlice(candidates, func(candidate *proto.BulkGearCandidate) bool { + return candidate != nil && candidate.Gear != nil + }) +} + +var deterministicProtoMarshalOptions = googleProto.MarshalOptions{Deterministic: true} +var bulkSimReforgeMarshalBufferPool = sync.Pool{ + New: func() any { + buf := make([]byte, 0, 1024) + return &buf + }, +} + +func bulkSimReforgeGearKey(gear *proto.EquipmentSpec) bulkSimReforgeGearHash { + if gear == nil { + return sha256.Sum256(nil) + } + + bufferPtr := bulkSimReforgeMarshalBufferPool.Get().(*[]byte) + buffer := (*bufferPtr)[:0] + data, err := deterministicProtoMarshalOptions.MarshalAppend(buffer, gear) + if err != nil { + bulkSimReforgeMarshalBufferPool.Put(bufferPtr) + return sha256.Sum256([]byte(gear.String())) + } + + hash := sha256.Sum256(data) + if cap(data) <= 64*1024 { + *bufferPtr = data[:0] + bulkSimReforgeMarshalBufferPool.Put(bufferPtr) + } + return hash +} diff --git a/sim/web/bulk_bench_test.go b/sim/web/bulk_bench_test.go new file mode 100644 index 0000000000..fbe5bd547e --- /dev/null +++ b/sim/web/bulk_bench_test.go @@ -0,0 +1,135 @@ +//go:build with_db + +package main + +// End-to-end BulkSim benchmark exercising the full production flow: +// EnsureBulkSimCandidatesGenerated → parallel reforge optimize (with gear cache) +// → deduplicate by optimized gear → multistage bulk sim +// +// Loads mage-candidates-reference.json from the repository root. +// +// Usage: +// +// # Full end-to-end (reforge + bulk sim), single iteration: +// go test -tags with_db ./sim/web/ \ +// -bench BenchmarkBulkSimMageFullFlow -benchtime 1x -benchmem -v -timeout 7200s +// +// # Before/after analytical-path comparison — stash the analytical changes and re-run. + +import ( + "fmt" + "os" + "strconv" + "testing" + "time" + + "github.com/wowsims/mop/sim" + "github.com/wowsims/mop/sim/core/proto" + "google.golang.org/protobuf/encoding/protojson" + googleProto "google.golang.org/protobuf/proto" +) + +const mageBulkRequestPath = "../../mage-candidates-reference.json" + +func loadMageBulkSimRequest(tb testing.TB) *proto.BulkSimRequest { + tb.Helper() + data, err := os.ReadFile(mageBulkRequestPath) + if err != nil { + tb.Skipf("mage-candidates-reference.json not found at %q — skipping", mageBulkRequestPath) + return nil + } + var req proto.BulkSimRequest + if err := (protojson.UnmarshalOptions{DiscardUnknown: true}).Unmarshal(data, &req); err != nil { + tb.Fatalf("protojson.Unmarshal: %v", err) + } + // BENCH_MAX_ITEMS limits the bulk item list for quick sweep iterations. + if raw := os.Getenv("BENCH_MAX_ITEMS"); raw != "" { + if n, err2 := strconv.Atoi(raw); err2 == nil && n > 0 && req.BulkSettings != nil { + if n < len(req.BulkSettings.Items) { + req.BulkSettings.Items = req.BulkSettings.Items[:n] + } + } + } + return &req +} + +// BenchmarkBulkSimMageFullFlow runs the complete production pipeline via +// BulkSimAsync: candidate generation → parallel reforge optimize (with gear +// cache) → dedup by optimized gear → multistage bulk sim. +// +// Reports reforge_s, bulksim_s, sim_candidates, and top_dps per operation. +func BenchmarkBulkSimMageFullFlow(b *testing.B) { + sim.RegisterAll() + + req := loadMageBulkSimRequest(b) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + // Clone so each iteration starts clean — BulkSimAsync mutates Candidates/OptimizedCandidates. + iterReq := googleProto.Clone(req).(*proto.BulkSimRequest) + + progress := make(chan *proto.ProgressMetrics, 256) + requestID := fmt.Sprintf("bench-bulk-mage-%d", i) + + phaseTimings := make(map[proto.BulkSimStage]time.Time) + phaseDurations := make(map[proto.BulkSimStage]time.Duration) + var prevStage proto.BulkSimStage + prevTime := time.Now() + + // Collect progress in a goroutine so we can track phase transitions. + type phaseResult struct { + final *proto.BulkSimResult + timings map[proto.BulkSimStage]time.Duration + } + resultCh := make(chan phaseResult, 1) + go func() { + for msg := range progress { + stage := msg.GetBulkStage() + if stage != prevStage { + now := time.Now() + if prevStage != proto.BulkSimStage_BulkSimStageUnknown { + phaseDurations[prevStage] = now.Sub(prevTime) + } + phaseTimings[stage] = now + prevTime = now + prevStage = stage + } + if msg.GetFinalBulkSimResult() != nil { + resultCh <- phaseResult{final: msg.GetFinalBulkSimResult(), timings: phaseDurations} + return + } + } + resultCh <- phaseResult{timings: phaseDurations} + }() + + BulkSimAsync(iterReq, progress, requestID) + res := <-resultCh + + if err := res.final.GetError(); err != nil { + b.Errorf("iter %d: BulkSim error: %s", i, err.GetMessage()) + continue + } + + topDPS := 0.0 + for _, r := range res.final.GetTopResults() { + if dps := r.GetDpsMetrics().GetAvg(); dps > topDPS { + topDPS = dps + } + } + + reforgeDur := res.timings[proto.BulkSimStage_BulkSimStageReforge] + simDur := res.timings[proto.BulkSimStage_BulkSimStageLow] + + res.timings[proto.BulkSimStage_BulkSimStageMedium] + + res.timings[proto.BulkSimStage_BulkSimStageHigh] + + simCandidates := len(iterReq.GetCandidates()) + b.Logf("iter %d: optimizedCandidates=%d simCandidates=%d reforge=%s bulksim=%s topDPS=%.1f results=%d", + i, len(iterReq.GetOptimizedCandidates()), simCandidates, + reforgeDur, simDur, topDPS, len(res.final.GetTopResults())) + + b.ReportMetric(reforgeDur.Seconds(), "reforge_s/op") + b.ReportMetric(simDur.Seconds(), "bulksim_s/op") + b.ReportMetric(float64(simCandidates), "sim_candidates/op") + b.ReportMetric(topDPS, "top_dps/op") + } +} diff --git a/sim/web/main.go b/sim/web/main.go index d3ebd76df4..c3f6a3927f 100644 --- a/sim/web/main.go +++ b/sim/web/main.go @@ -11,19 +11,19 @@ import ( _ "net/http/pprof" "os" "os/signal" + "runtime/debug" "runtime/pprof" "strings" "sync" - "sync/atomic" "syscall" "time" - uuid "github.com/google/uuid" "github.com/pkg/browser" dist "github.com/wowsims/mop/binary_dist" "github.com/wowsims/mop/sim" "github.com/wowsims/mop/sim/core" proto "github.com/wowsims/mop/sim/core/proto" + reforgeoptimizer "github.com/wowsims/mop/sim/core/reforge_optimizer" "github.com/wowsims/mop/sim/core/simsignals" googleProto "google.golang.org/protobuf/proto" @@ -82,6 +82,14 @@ func main() { }() } + // Warm up the reforge optimizer's HiGHS WASM runtime in the background so the one-time + // module compile happens at startup instead of stalling the first /reforgeOptimizeAsync request. + go func() { + if err := reforgeoptimizer.WarmUp(); err != nil { + fmt.Printf("reforge optimizer warm-up failed: %v\n", err) + } + }() + s := &server{ progMut: sync.RWMutex{}, asyncProgresses: map[string]*asyncProgress{}, @@ -90,6 +98,11 @@ func main() { } // Handlers to decode and handle each proto function +const ( + asyncProgressSilenceTimeout = 10 * time.Minute + heartbeatInterval = 5 * time.Minute +) + var handlers = map[string]apiHandler{ "/raidSim": {msg: func() googleProto.Message { return &proto.RaidSimRequest{} }, handle: func(msg googleProto.Message) googleProto.Message { return core.RunRaidSim(msg.(*proto.RaidSimRequest)) @@ -106,6 +119,12 @@ var handlers = map[string]apiHandler{ "/computeStats": {msg: func() googleProto.Message { return &proto.ComputeStatsRequest{} }, handle: func(msg googleProto.Message) googleProto.Message { return core.ComputeStats(msg.(*proto.ComputeStatsRequest)) }}, + "/bulkCombinationCount": {msg: func() googleProto.Message { return &proto.BulkCombinationCountRequest{} }, handle: func(msg googleProto.Message) googleProto.Message { + return BulkCombinationCount(msg.(*proto.BulkCombinationCountRequest)) + }}, + "/bulkCandidates": {msg: func() googleProto.Message { return &proto.BulkCandidatesRequest{} }, handle: func(msg googleProto.Message) googleProto.Message { + return BulkCandidates(msg.(*proto.BulkCandidatesRequest)) + }}, "/abortById": {msg: func() googleProto.Message { return &proto.AbortRequest{} }, handle: func(msg googleProto.Message) googleProto.Message { requestId := msg.(*proto.AbortRequest).RequestId triggered := simsignals.AbortById(requestId) @@ -120,6 +139,86 @@ var asyncAPIHandlers = map[string]asyncAPIHandler{ "/statWeightsAsync": {msg: func() googleProto.Message { return &proto.StatWeightsRequest{} }, handle: func(msg googleProto.Message, reporter chan *proto.ProgressMetrics, requestId string) { core.StatWeightsAsync(msg.(*proto.StatWeightsRequest), reporter, requestId) }}, + "/bulkSimAsync": {msg: func() googleProto.Message { return &proto.BulkSimRequest{} }, handle: func(msg googleProto.Message, reporter chan *proto.ProgressMetrics, requestId string) { + BulkSimAsync(msg.(*proto.BulkSimRequest), reporter, requestId) + }}, + "/reforgeOptimizeAsync": {msg: func() googleProto.Message { return &proto.ReforgeOptimizeRequest{} }, handle: func(msg googleProto.Message, reporter chan *proto.ProgressMetrics, requestId string) { + ReforgeOptimizeAsync(msg.(*proto.ReforgeOptimizeRequest), reporter, requestId) + }}, +} + +func ReforgeOptimizeAsync(request *proto.ReforgeOptimizeRequest, progress chan *proto.ProgressMetrics, requestId string) { + if requestId == "" { + requestId = request.GetRequestId() + } + signals, err := simsignals.RegisterWithId(requestId) + if err != nil { + progress <- &proto.ProgressMetrics{ + FinalReforgeResult: &proto.ReforgeOptimizeResult{ + Error: &proto.ErrorOutcome{Message: "Couldn't register for signal API: " + err.Error()}, + }, + } + close(progress) + return + } + + go func() { + defer simsignals.UnregisterId(requestId) + defer close(progress) + stopHeartbeat := startProgressHeartbeat(progress, func() *proto.ProgressMetrics { + return &proto.ProgressMetrics{} + }) + defer stopHeartbeat() + defer func() { + if err := recover(); err != nil { + errStr := fmt.Sprint(err) + "\nStack Trace:\n" + string(debug.Stack()) + log.Printf("[ERROR] Reforge optimization panicked: %s", errStr) + progress <- &proto.ProgressMetrics{ + FinalReforgeResult: &proto.ReforgeOptimizeResult{Error: &proto.ErrorOutcome{Message: errStr}}, + } + } + }() + result := reforgeoptimizer.OptimizeAsync(request, signals) + stopHeartbeat() + progress <- &proto.ProgressMetrics{FinalReforgeResult: result} + }() +} + +// Keeps the handleAsyncAPI watchdog alive during a long silent phase. stop waits for the +// goroutine to exit so the caller can then close(progress) with no send in flight; guarding +// the send with a done channel is not enough, as select commits before the close is visible. +func startProgressHeartbeat(progress chan *proto.ProgressMetrics, tick func() *proto.ProgressMetrics) func() { + if progress == nil { + return func() {} + } + done := make(chan struct{}) + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + ticker := time.NewTicker(heartbeatInterval) + defer ticker.Stop() + for { + select { + case <-ticker.C: + // Nested select so a full progress buffer cannot wedge stop(). + select { + case progress <- tick(): + case <-done: + return + } + case <-done: + return + } + } + }() + var once sync.Once + return func() { + once.Do(func() { + close(done) + wg.Wait() + }) + } } type server struct { @@ -136,25 +235,6 @@ type asyncAPIHandler struct { handle func(googleProto.Message, chan *proto.ProgressMetrics, string) } -type asyncProgress struct { - id string - latestProgress atomic.Value -} - -func (s *server) addNewSim() *asyncProgress { - newID := uuid.NewString() - simProgress := &asyncProgress{ - id: newID, - } - simProgress.latestProgress.Store(&proto.ProgressMetrics{}) - - s.progMut.Lock() - s.asyncProgresses[newID] = simProgress - s.progMut.Unlock() - - return simProgress -} - func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(r.Body) if err != nil { @@ -170,8 +250,11 @@ func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { msg := handler.msg() if err := googleProto.Unmarshal(body, msg); err != nil { - log.Printf("Failed to parse request: %s", err.Error()) - w.WriteHeader(http.StatusInternalServerError) + message := fmt.Sprintf("Failed to parse %s request: %s (%s)", endpoint, err.Error(), protoParsePreview(body)) + log.Print(message) + simProgress := s.addNewSim() + simProgress.latestProgress.Store(asyncAPIParseErrorProgress(endpoint, message)) + s.writeAsyncAPIResult(w, simProgress.id) return } @@ -179,7 +262,8 @@ func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { // as the simulation advances it will push changes to the channel // these changes will be consumed by the goroutine below so the asyncProgress endpoint can fetch the results. reporter := make(chan *proto.ProgressMetrics, 100) - handler.handle(msg, reporter, r.URL.Query().Get("requestId")) + requestId := r.URL.Query().Get("requestId") + handler.handle(msg, reporter, requestId) // Generate a new async simulation simProgress := s.addNewSim() @@ -189,8 +273,12 @@ func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { go func() { for { select { - case <-time.After(time.Minute * 10): - // if we get no progress after 10 minutes, delete the pending sim and exit. + case <-time.After(asyncProgressSilenceTimeout): + // Nothing drains reporter after this, so the pipeline behind it would block + // on a full buffer for the process lifetime. + if requestId != "" { + simsignals.AbortById(requestId) + } s.progMut.Lock() delete(s.asyncProgresses, simProgress.id) s.progMut.Unlock() @@ -199,18 +287,36 @@ func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { if progMetric == nil { return } - simProgress.latestProgress.Store(progMetric) - if progMetric.FinalRaidResult != nil || progMetric.FinalWeightResult != nil { + if progMetric.BulkStage == proto.BulkSimStage_BulkSimStageReforge && len(progMetric.OptimizedCandidates) > 0 { + simProgress.appendPendingOptimizedCandidates(progMetric.OptimizedCandidates) + // Build the candidate-free copy directly: cloning the message first would + // deep-copy the whole candidate batch just to drop it again. + simProgress.latestProgress.Store(&proto.ProgressMetrics{ + BulkStage: progMetric.BulkStage, + CompletedSims: progMetric.CompletedSims, + TotalSims: progMetric.TotalSims, + CompletedIterations: progMetric.CompletedIterations, + TotalIterations: progMetric.TotalIterations, + Dps: progMetric.Dps, + Hps: progMetric.Hps, + PresimRunning: progMetric.PresimRunning, + FinalBulkSimResult: progMetric.FinalBulkSimResult, + }) + } else { + simProgress.latestProgress.Store(progMetric) + } + if progMetric.FinalRaidResult != nil || progMetric.FinalWeightResult != nil || progMetric.FinalBulkSimResult != nil || progMetric.FinalReforgeResult != nil { return } } } }() - protoResult := &proto.AsyncAPIResult{ - ProgressId: simProgress.id, - } + s.writeAsyncAPIResult(w, simProgress.id) +} +func (s *server) writeAsyncAPIResult(w http.ResponseWriter, progressId string) { + protoResult := &proto.AsyncAPIResult{ProgressId: progressId} outbytes, err := googleProto.Marshal(protoResult) if err != nil { log.Printf("[ERROR] Failed to marshal result: %s", err.Error()) @@ -222,6 +328,22 @@ func (s *server) handleAsyncAPI(w http.ResponseWriter, r *http.Request) { w.Write(outbytes) } +func asyncAPIParseErrorProgress(endpoint string, message string) *proto.ProgressMetrics { + errorOutcome := &proto.ErrorOutcome{Message: message} + switch endpoint { + case "/raidSimAsync": + return &proto.ProgressMetrics{FinalRaidResult: &proto.RaidSimResult{Error: errorOutcome}} + case "/statWeightsAsync": + return &proto.ProgressMetrics{FinalWeightResult: &proto.StatWeightsResult{Error: errorOutcome}} + case "/bulkSimAsync": + return &proto.ProgressMetrics{FinalBulkSimResult: &proto.BulkSimResult{Error: errorOutcome}} + case "/reforgeOptimizeAsync": + return &proto.ProgressMetrics{FinalReforgeResult: &proto.ReforgeOptimizeResult{Error: errorOutcome}} + default: + return &proto.ProgressMetrics{FinalRaidResult: &proto.RaidSimResult{Error: errorOutcome}} + } +} + func (s *server) setupAsyncServer() { // All async handlers here will call the addNewSim, generating a new UUID and cached progress state. for route := range asyncAPIHandlers { @@ -236,7 +358,7 @@ func (s *server) setupAsyncServer() { } msg := &proto.AsyncAPIResult{} if err := googleProto.Unmarshal(body, msg); err != nil { - log.Printf("Failed to parse request: %s", err.Error()) + log.Printf("Failed to parse /asyncProgress request: %s (%s)", err.Error(), protoParsePreview(body)) w.WriteHeader(http.StatusInternalServerError) return } @@ -250,6 +372,19 @@ func (s *server) setupAsyncServer() { return } latest := progress.latestProgress.Load().(*proto.ProgressMetrics) + pendingOptimizedCandidates := progress.peekPendingOptimizedCandidates() + if latest.FinalBulkSimResult != nil && len(latest.FinalBulkSimResult.OptimizedCandidates) > 0 { + remainingOptimizedCandidates := progress.filterUndeliveredOptimizedCandidates(latest.FinalBulkSimResult.OptimizedCandidates) + latestWithFilteredFinal := googleProto.Clone(latest).(*proto.ProgressMetrics) + latestWithFilteredFinal.FinalBulkSimResult = googleProto.Clone(latest.FinalBulkSimResult).(*proto.BulkSimResult) + latestWithFilteredFinal.FinalBulkSimResult.OptimizedCandidates = remainingOptimizedCandidates + latest = latestWithFilteredFinal + } + if len(pendingOptimizedCandidates) > 0 { + latestWithPending := googleProto.Clone(latest).(*proto.ProgressMetrics) + latestWithPending.OptimizedCandidates = pendingOptimizedCandidates + latest = latestWithPending + } outbytes, err := googleProto.Marshal(latest) if err != nil { log.Printf("[ERROR] Failed to marshal result: %s", err.Error()) @@ -257,16 +392,29 @@ func (s *server) setupAsyncServer() { return } + w.Header().Add("Content-Type", "application/x-protobuf") + if _, err := w.Write(outbytes); err != nil { + // Nothing reached the client, so leave both the pending candidates and the + // cached progress in place for the next poll rather than dropping them. + log.Printf("[ERROR] Failed to write async progress response: %s", err.Error()) + return + } + progress.markOptimizedCandidatesDelivered(pendingOptimizedCandidates) + // If this was the last result, delete the cache for this simulation. - if latest.FinalRaidResult != nil || latest.FinalWeightResult != nil { + if latest.FinalRaidResult != nil || latest.FinalWeightResult != nil || latest.FinalBulkSimResult != nil || latest.FinalReforgeResult != nil { s.progMut.Lock() delete(s.asyncProgresses, msg.ProgressId) s.progMut.Unlock() } - w.Header().Add("Content-Type", "application/x-protobuf") - w.Write(outbytes) }))) } + +func protoParsePreview(body []byte) string { + previewLen := min(len(body), 16) + return fmt.Sprintf("len=%d first_bytes=% x ascii=%q", len(body), body[:previewLen], body[:previewLen]) +} + func corsMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") diff --git a/tools/database/gen_bulksim_constants.ts.go b/tools/database/gen_bulksim_constants.ts.go new file mode 100644 index 0000000000..d4c1d2f448 --- /dev/null +++ b/tools/database/gen_bulksim_constants.ts.go @@ -0,0 +1,133 @@ +package database + +import ( + "bytes" + "fmt" + "maps" + "os" + "slices" + "text/template" + + "github.com/wowsims/mop/sim/core/bulk" + "github.com/wowsims/mop/sim/core/proto" +) + +type tsBulkItemSlotToBulkSlot struct { + ItemSlotName string + BulkSlotName string +} + +type tsBulkBulkSlotToItemSlot struct { + BulkSlotName string + ItemSlotName string +} + +type tsBulkBulkSlotToItemSlotPair struct { + BulkSlotName string + FirstSlot string + SecondSlot string +} + +type tsBulkConstants struct { + BulkSlotNames []string + ItemSlotToBulkSlot []tsBulkItemSlotToBulkSlot + BulkSlotToSingleItemSlot []tsBulkBulkSlotToItemSlot + BulkSlotToItemSlotPairs []tsBulkBulkSlotToItemSlotPair +} + +const bulkConstantsTSTemplate = `// Code generated by tools/database/gen_bulksim_constants.ts.go. DO NOT EDIT. + +import { ItemSlot } from '../../../proto/common'; + +export enum BulkSimItemSlot { +{{- range .BulkSlotNames }} + {{ . }}, +{{- end }} +} + +export const ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT: Map = new Map([ +{{- range .ItemSlotToBulkSlot }} + [ItemSlot.{{ .ItemSlotName }}, BulkSimItemSlot.{{ .BulkSlotName }}], +{{- end }} +]); + +export const BULK_SIM_ITEM_SLOT_TO_SINGLE_ITEM_SLOT: Map = new Map([ +{{- range .BulkSlotToSingleItemSlot }} + [BulkSimItemSlot.{{ .BulkSlotName }}, ItemSlot.{{ .ItemSlotName }}], +{{- end }} +]); + +export const BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS: Map = new Map([ +{{- range .BulkSlotToItemSlotPairs }} + [BulkSimItemSlot.{{ .BulkSlotName }}, [ItemSlot.{{ .FirstSlot }}, ItemSlot.{{ .SecondSlot }}]], +{{- end }} +]); +` + +func GenerateBulkSimConstantsTSFile() error { + bulkSlotIDs := make([]bulk.BulkSimItemSlot, 0, len(bulk.BulkSimItemSlotNames)) + for bulkSlotID := range bulk.BulkSimItemSlotNames { + bulkSlotIDs = append(bulkSlotIDs, bulkSlotID) + } + slices.Sort(bulkSlotIDs) + + bulkSlotNames := make([]string, 0, len(bulkSlotIDs)) + for _, bulkSlotID := range bulkSlotIDs { + bulkSlotNames = append(bulkSlotNames, bulk.BulkSimItemSlotNames[bulkSlotID]) + } + + itemSlotIDs := slices.Sorted(maps.Keys(bulk.ItemSlotToBulkSimItemSlot)) + itemSlotToBulkSlot := make([]tsBulkItemSlotToBulkSlot, 0, len(itemSlotIDs)) + for _, itemSlotID := range itemSlotIDs { + itemSlotToBulkSlot = append(itemSlotToBulkSlot, tsBulkItemSlotToBulkSlot{ + ItemSlotName: proto.ItemSlot_name[int32(itemSlotID)], + BulkSlotName: bulk.BulkSimItemSlotNames[bulk.ItemSlotToBulkSimItemSlot[itemSlotID]], + }) + } + + bulkSlotToSingleItemSlot := make([]tsBulkBulkSlotToItemSlot, 0, len(bulk.BulkSimItemSlotToSingleItemSlot)) + for _, bulkSlotID := range bulkSlotIDs { + itemSlotID, ok := bulk.BulkSimItemSlotToSingleItemSlot[bulkSlotID] + if !ok { + continue + } + bulkSlotToSingleItemSlot = append(bulkSlotToSingleItemSlot, tsBulkBulkSlotToItemSlot{ + BulkSlotName: bulk.BulkSimItemSlotNames[bulkSlotID], + ItemSlotName: proto.ItemSlot_name[int32(itemSlotID)], + }) + } + + bulkSlotToItemSlotPairs := make([]tsBulkBulkSlotToItemSlotPair, 0, len(bulk.BulkSimItemSlotToItemSlotPairs)) + for _, bulkSlotID := range bulkSlotIDs { + itemSlots, ok := bulk.BulkSimItemSlotToItemSlotPairs[bulkSlotID] + if !ok { + continue + } + bulkSlotToItemSlotPairs = append(bulkSlotToItemSlotPairs, tsBulkBulkSlotToItemSlotPair{ + BulkSlotName: bulk.BulkSimItemSlotNames[bulkSlotID], + FirstSlot: proto.ItemSlot_name[int32(itemSlots[0])], + SecondSlot: proto.ItemSlot_name[int32(itemSlots[1])], + }) + } + + tpl, err := template.New("bulkConstantsTS").Parse(bulkConstantsTSTemplate) + if err != nil { + return fmt.Errorf("failed to parse bulk constants TS template: %w", err) + } + + var buf bytes.Buffer + if err := tpl.Execute(&buf, tsBulkConstants{ + BulkSlotNames: bulkSlotNames, + ItemSlotToBulkSlot: itemSlotToBulkSlot, + BulkSlotToSingleItemSlot: bulkSlotToSingleItemSlot, + BulkSlotToItemSlotPairs: bulkSlotToItemSlotPairs, + }); err != nil { + return fmt.Errorf("failed to execute bulk constants TS template: %w", err) + } + + if err := os.WriteFile("ui/core/components/individual_sim_ui/bulk/constants_auto_gen.ts", buf.Bytes(), 0644); err != nil { + return fmt.Errorf("failed to write generated bulk constants TS file: %w", err) + } + + return nil +} diff --git a/tools/database/gen_character_constants_ts.go b/tools/database/gen_character_constants_ts.go new file mode 100644 index 0000000000..3e7b3d5042 --- /dev/null +++ b/tools/database/gen_character_constants_ts.go @@ -0,0 +1,156 @@ +package database + +import ( + "bytes" + "fmt" + "maps" + "os" + "slices" + "text/template" + + "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" +) + +type tsCharacterConstantsEligibleWeaponType struct { + WeaponTypeName string + CanUseTwoHand bool +} + +type tsCharacterConstantsClassCapability struct { + ClassName string + ArmorTypeNames []string + WeaponTypes []tsCharacterConstantsEligibleWeaponType + RangedWeaponTypeName []string + RaceNames []string +} + +type tsCharacterConstants struct { + ClassCapabilities []tsCharacterConstantsClassCapability + SpecCanDualWield []string +} + +const characterConstantsTSTemplate = `// Code generated by tools/database/gen_character_constants_ts.go. DO NOT EDIT. + +import { ArmorType, Class, Race, RangedWeaponType, Spec, WeaponType } from '../proto/common'; + +export type EligibleWeaponType = { + weaponType: WeaponType; + canUseTwoHand: boolean; +}; + +export const CLASS_ARMOR_TYPES: Record = { +{{- range .ClassCapabilities }} + [Class.{{ .ClassName }}]: [{{- range $index, $armorTypeName := .ArmorTypeNames }}{{ if $index }}, {{ end }}ArmorType.{{ $armorTypeName }}{{- end }}], +{{- end }} +}; + +export const CLASS_WEAPON_TYPES: Record = { +{{- range .ClassCapabilities }} + [Class.{{ .ClassName }}]: [{{- range $index, $weaponType := .WeaponTypes }}{{ if $index }}, {{ end }}{ weaponType: WeaponType.{{ $weaponType.WeaponTypeName }}, canUseTwoHand: {{ $weaponType.CanUseTwoHand }} }{{- end }}], +{{- end }} +}; + +export const CLASS_RANGED_WEAPON_TYPES: Record = { +{{- range .ClassCapabilities }} + [Class.{{ .ClassName }}]: [{{- range $index, $rangedWeaponTypeName := .RangedWeaponTypeName }}{{ if $index }}, {{ end }}RangedWeaponType.{{ $rangedWeaponTypeName }}{{- end }}], +{{- end }} +}; + +export const CLASS_RACES: Record = { +{{- range .ClassCapabilities }} + [Class.{{ .ClassName }}]: [{{- range $index, $raceName := .RaceNames }}{{ if $index }}, {{ end }}Race.{{ $raceName }}{{- end }}], +{{- end }} +}; + +export const SPEC_CAN_DUAL_WIELD = new Set([ +{{- range .SpecCanDualWield }} + Spec.{{ . }}, +{{- end }} +]); +` + +func GenerateCharacterConstantsTSFile() error { + classArmorTypes := core.ClassArmorTypeCapabilities + classWeaponTypes := core.ClassWeaponTypeCapabilities + classRangedWeaponTypes := core.ClassRangedWeaponTypeCapabilities + classRaces := core.ClassRaceCapabilities + specCanDualWield := core.SpecCanDualWieldCapabilities + + classIDs := slices.Sorted(maps.Keys(classArmorTypes)) + + classCapabilities := make([]tsCharacterConstantsClassCapability, 0, len(classIDs)) + for _, classID := range classIDs { + classIDValue := int32(classID) + + armorTypes := classArmorTypes[classID] + armorTypeNames := make([]string, 0, len(armorTypes)) + for _, armorType := range armorTypes { + armorTypeNames = append(armorTypeNames, proto.ArmorType_name[int32(armorType)]) + } + + weaponMap := classWeaponTypes[classID] + weaponTypeIDs := slices.Sorted(maps.Keys(weaponMap)) + weaponTypes := make([]tsCharacterConstantsEligibleWeaponType, 0, len(weaponTypeIDs)) + for _, weaponType := range weaponTypeIDs { + weaponTypeID := int32(weaponType) + weaponTypes = append(weaponTypes, tsCharacterConstantsEligibleWeaponType{ + WeaponTypeName: proto.WeaponType_name[weaponTypeID], + CanUseTwoHand: weaponMap[weaponType].CanUseTwoHand, + }) + } + + rangedWeaponTypes := classRangedWeaponTypes[classID] + rangedWeaponTypeNames := make([]string, 0, len(rangedWeaponTypes)) + for _, rangedWeaponType := range rangedWeaponTypes { + rangedWeaponTypeNames = append(rangedWeaponTypeNames, proto.RangedWeaponType_name[int32(rangedWeaponType)]) + } + + races := classRaces[classID] + raceNames := make([]string, 0, len(races)) + for _, race := range races { + raceNames = append(raceNames, proto.Race_name[int32(race)]) + } + + classCapabilities = append(classCapabilities, tsCharacterConstantsClassCapability{ + ClassName: proto.Class_name[classIDValue], + ArmorTypeNames: armorTypeNames, + WeaponTypes: weaponTypes, + RangedWeaponTypeName: rangedWeaponTypeNames, + RaceNames: raceNames, + }) + } + + specIDs := make([]proto.Spec, 0, len(specCanDualWield)) + for specID, canDualWield := range specCanDualWield { + if !canDualWield { + continue + } + specIDs = append(specIDs, specID) + } + slices.Sort(specIDs) + + specNames := make([]string, 0, len(specIDs)) + for _, specID := range specIDs { + specNames = append(specNames, proto.Spec_name[int32(specID)]) + } + + tpl, err := template.New("characterConstantsTS").Parse(characterConstantsTSTemplate) + if err != nil { + return fmt.Errorf("failed to parse character constants TS template: %w", err) + } + + var buf bytes.Buffer + if err := tpl.Execute(&buf, tsCharacterConstants{ + ClassCapabilities: classCapabilities, + SpecCanDualWield: specNames, + }); err != nil { + return fmt.Errorf("failed to execute character constants TS template: %w", err) + } + + if err := os.WriteFile("ui/core/player_classes/capabilities_auto_gen.ts", buf.Bytes(), 0644); err != nil { + return fmt.Errorf("failed to write generated capabilities TS file: %w", err) + } + + return nil +} diff --git a/tools/database/gen_db/main.go b/tools/database/gen_db/main.go index c2f664ba70..86b4243879 100644 --- a/tools/database/gen_db/main.go +++ b/tools/database/gen_db/main.go @@ -27,7 +27,7 @@ import ( // go run ./tools/database/gen_db -outDir=assets -gen=db var outDir = flag.String("outDir", "assets", "Path to output directory for writing generated .go files.") -var genAsset = flag.String("gen", "", "Asset to generate. Valid values are 'db', 'atlasloot', 'wowhead-items', 'wowhead-spells', 'wowhead-itemdb', 'mop-items', and 'wago-db2-items'") +var genAsset = flag.String("gen", "", "Asset to generate. Valid values are 'db', 'atlasloot' and 'go-to-ts'") var dbPath = flag.String("dbPath", "./tools/database/wowsims.db", "Location of the wowsims.db file produced by tools/db2tool") func main() { @@ -42,7 +42,15 @@ func main() { dbDir := fmt.Sprintf("%s/database", *outDir) inputsDir := fmt.Sprintf("%s/db_inputs", *outDir) - if *genAsset == "atlasloot" { + if *genAsset == "go-to-ts" { + if err := database.GenerateCharacterConstantsTSFile(); err != nil { + log.Fatalf("failed to generate character constants TS file: %v", err) + } + if err := database.GenerateBulkSimConstantsTSFile(); err != nil { + log.Fatalf("failed to generate bulk sim constants TS file: %v", err) + } + return + } else if *genAsset == "atlasloot" { helper, err := database.NewDBHelper() if err != nil { log.Fatalf("failed to initialize database: %v", err) @@ -283,10 +291,13 @@ func main() { item.Sources = database.InferFlexibleRaidItemSource(item) } - // 1. Add Belt Buckle gem socket to Waist. + // 1. Add Belt Buckle gem socket to Waist. Always present, so not tagged. // 2. Add Eye Of The Black Prince gem socket to Sha-touched items. - if item.Type == proto.ItemType_ItemTypeWaist || slices.Contains(item.GemSockets, proto.GemColor_GemColorShaTouched) { + if item.Type == proto.ItemType_ItemTypeWaist { + item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic) + } else if slices.Contains(item.GemSockets, proto.GemColor_GemColorShaTouched) { item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic) + item.EotbGemSocket = true } for _, source := range item.Sources { @@ -295,11 +306,13 @@ func main() { // "Reborn" weapons can have a Eye Of The Black Prince if item.ScalingOptions[int32(proto.ItemLevelState_Base)].Ilvl == 502 && strings.HasSuffix(item.Name, ", Reborn") && crafted.Profession == proto.Profession_Blacksmithing && item.Type == proto.ItemType_ItemTypeWeapon { item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic) + item.EotbGemSocket = true } } // Add Eye Of The Black Prince gem socket to Throne of Thunder weapons. if drop := source.GetDrop(); drop != nil && (item.Type == proto.ItemType_ItemTypeWeapon || item.Type == proto.ItemType_ItemTypeRanged) && (item.WeaponType != proto.WeaponType_WeaponTypeOffHand && item.WeaponType != proto.WeaponType_WeaponTypeShield) && drop.ZoneId == 6622 { item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic) + item.EotbGemSocket = true } if rep := source.GetRep(); rep != nil { @@ -690,7 +703,7 @@ type GlyphID struct { func CreateTempAgent(r *proto.Raid) core.Agent { encounter := core.MakeSingleTargetEncounter(0.0) - env, _, _ := core.NewEnvironment(r, encounter, false) + env, _, _ := core.NewEnvironment(r, encounter, false, false) return env.Raid.Parties[0].Players[0] } diff --git a/tools/gen_highs/main.go b/tools/gen_highs/main.go new file mode 100644 index 0000000000..a9641148a9 --- /dev/null +++ b/tools/gen_highs/main.go @@ -0,0 +1,576 @@ +// Command gen_highs syncs the HiGHS solver artifacts from the npm `highs` package into the repo. +// +// It copies node_modules/highs/build/highs.wasm to ui/worker/highs.wasm and generates +// ui/worker/highs_names_gen.go, which maps emscripten's symbolic import/export names to the +// single-letter names the wasm actually uses. +// +// That map is why this tool exists. The npm package is built with +// -sMINIFY_WASM_IMPORTS_AND_EXPORTS, so highs.wasm imports "a"."f" and exports "y" rather than +// __syscall_openat and _Highs_run. Which letter means what changes with every upstream build, so +// the Go wazero host (sim/core/reforge_optimizer/highswasm.go) cannot hardcode them; it looks +// them up by symbolic name through the generated map instead. +// +// Run via `make update-highs` after changing the pinned `highs` version in package.json. +package main + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "fmt" + "go/format" + "os" + "path/filepath" + "regexp" + "sort" + "strings" +) + +const ( + npmPackageDir = "node_modules/highs" + wasmDestPath = "ui/worker/highs.wasm" + namesDestPath = "ui/worker/highs_names_gen.go" + generatorLabel = "tools/gen_highs" +) + +func main() { + if err := run(); err != nil { + fmt.Fprintf(os.Stderr, "gen_highs: %v\n", err) + os.Exit(1) + } +} + +func run() error { + repoRoot, err := findRepoRoot() + if err != nil { + return err + } + + version, err := readNpmVersion(filepath.Join(repoRoot, npmPackageDir, "package.json")) + if err != nil { + return err + } + + jsSource, err := os.ReadFile(filepath.Join(repoRoot, npmPackageDir, "build/highs.js")) + if err != nil { + return fmt.Errorf("reading highs.js: %w (run `npm install` first)", err) + } + wasmSource, err := os.ReadFile(filepath.Join(repoRoot, npmPackageDir, "build/highs.wasm")) + if err != nil { + return fmt.Errorf("reading highs.wasm: %w (run `npm install` first)", err) + } + + names, err := extractNames(jsSource, wasmSource) + if err != nil { + return err + } + names.Version = version + + if err := os.WriteFile(filepath.Join(repoRoot, wasmDestPath), wasmSource, 0o644); err != nil { + return fmt.Errorf("writing %s: %w", wasmDestPath, err) + } + generated, err := renderNamesFile(names) + if err != nil { + return err + } + if err := os.WriteFile(filepath.Join(repoRoot, namesDestPath), generated, 0o644); err != nil { + return fmt.Errorf("writing %s: %w", namesDestPath, err) + } + + fmt.Printf("gen_highs: synced highs %s (%d imports, %d exports, %d bytes of wasm)\n", + version, len(names.Imports), len(names.Exports), len(wasmSource)) + return nil +} + +// findRepoRoot walks up from the working directory looking for go.mod, so the tool works from +// anywhere (`go run ./tools/gen_highs` runs in the caller's directory). +func findRepoRoot() (string, error) { + dir, err := os.Getwd() + if err != nil { + return "", err + } + for { + if _, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil { + return dir, nil + } + parent := filepath.Dir(dir) + if parent == dir { + return "", fmt.Errorf("could not find go.mod above the working directory") + } + dir = parent + } +} + +func readNpmVersion(path string) (string, error) { + raw, err := os.ReadFile(path) + if err != nil { + return "", fmt.Errorf("reading %s: %w (run `npm install` first)", path, err) + } + var manifest struct { + Version string `json:"version"` + } + if err := json.Unmarshal(raw, &manifest); err != nil { + return "", fmt.Errorf("parsing %s: %w", path, err) + } + if manifest.Version == "" { + return "", fmt.Errorf("%s has no version", path) + } + return manifest.Version, nil +} + +type wasmImport struct { + Symbol string + Minified string + Params []byte + Results []byte +} + +type highsNames struct { + Version string + ImportModule string + MemoryExport string + Imports []wasmImport + Exports map[string]string +} + +var ( + // var wasmImports={a:___cxa_throw,d:___syscall_fcntl64,...}; + wasmImportsPattern = regexp.MustCompile(`wasmImports\s*=\s*\{([^}]*)\}`) + // function assignWasmExports(wasmExports){_Highs_run=Module["_Highs_run"]=wasmExports["y"];...} + assignExportsPattern = regexp.MustCompile(`function assignWasmExports\([^)]*\)\s*\{([^}]*)\}`) + // _Highs_run=Module["_Highs_run"]=wasmExports["y"] — the leading identifier is the symbol. + exportStatementPattern = regexp.MustCompile(`^([A-Za-z_$][\w$]*)\s*=.*wasmExports\["([^"]+)"\]$`) + // initRuntime(){...;wasmExports["v"]();...} — the __wasm_call_ctors export, which + // assignWasmExports does not list. + callCtorsPattern = regexp.MustCompile(`function initRuntime\(\)\s*\{[^}]*?wasmExports\["([^"]+)"\]\(\)`) +) + +// callCtorsSymbol is emscripten's name for the static-constructor entry point. It is called +// positionally from initRuntime rather than assigned a symbolic name, so it gets one here. +const callCtorsSymbol = "__wasm_call_ctors" + +func extractNames(jsSource []byte, wasmSource []byte) (*highsNames, error) { + js := string(jsSource) + + moduleName, importTypes, memoryExport, firstFuncExport, err := parseWasmNames(wasmSource) + if err != nil { + return nil, err + } + + imports, err := parseWasmImports(js, importTypes) + if err != nil { + return nil, err + } + exports, err := parseWasmExports(js, memoryExport) + if err != nil { + return nil, err + } + + // __wasm_call_ctors is always the first function export of an emscripten module. Cross-check + // the name scraped out of initRuntime against that so a changed upstream JS shape fails here + // rather than at solve time. + if got := exports[callCtorsSymbol]; got != firstFuncExport { + return nil, fmt.Errorf("%s is export %q but the first function export is %q", callCtorsSymbol, got, firstFuncExport) + } + + return &highsNames{ + ImportModule: moduleName, + MemoryExport: memoryExport, + Imports: imports, + Exports: exports, + }, nil +} + +func parseWasmImports(js string, importTypes map[string]funcType) ([]wasmImport, error) { + match := wasmImportsPattern.FindStringSubmatch(js) + if match == nil { + return nil, fmt.Errorf("could not find the wasmImports object in highs.js") + } + + var imports []wasmImport + for entry := range strings.SplitSeq(match[1], ",") { + minified, symbol, found := strings.Cut(entry, ":") + if !found { + return nil, fmt.Errorf("could not parse wasmImports entry %q", entry) + } + minified, symbol = strings.TrimSpace(minified), strings.TrimSpace(symbol) + signature, ok := importTypes[minified] + if !ok { + return nil, fmt.Errorf("highs.js supplies import %q (%s) but highs.wasm does not import it", minified, symbol) + } + imports = append(imports, wasmImport{ + Symbol: symbol, + Minified: minified, + Params: signature.params, + Results: signature.results, + }) + } + if len(imports) != len(importTypes) { + return nil, fmt.Errorf("highs.wasm imports %d functions but highs.js supplies %d", len(importTypes), len(imports)) + } + + sort.Slice(imports, func(i, j int) bool { return imports[i].Symbol < imports[j].Symbol }) + return imports, nil +} + +func parseWasmExports(js string, memoryExport string) (map[string]string, error) { + match := assignExportsPattern.FindStringSubmatch(js) + if match == nil { + return nil, fmt.Errorf("could not find assignWasmExports in highs.js") + } + + exports := map[string]string{} + for statement := range strings.SplitSeq(match[1], ";") { + statement = strings.TrimSpace(statement) + if statement == "" { + continue + } + parts := exportStatementPattern.FindStringSubmatch(statement) + if parts == nil { + continue + } + // Only minified function exports are useful here. assignWasmExports also picks up the + // memory and the (unminified) indirect function table, both of which the wasm export + // section already describes. + if parts[2] == memoryExport || len(parts[2]) > 2 { + continue + } + exports[parts[1]] = parts[2] + } + if len(exports) == 0 { + return nil, fmt.Errorf("assignWasmExports in highs.js listed no function exports") + } + + ctors := callCtorsPattern.FindStringSubmatch(js) + if ctors == nil { + return nil, fmt.Errorf("could not find the %s call in initRuntime in highs.js", callCtorsSymbol) + } + exports[callCtorsSymbol] = ctors[1] + + return exports, nil +} + +type funcType struct { + params []byte + results []byte +} + +// parseWasmNames reads the type, import and export sections of a wasm binary and returns the +// module name every import shares, the signature of each imported function keyed by its minified +// name, the name of the exported memory, and the name of the first exported function. +func parseWasmNames(wasm []byte) (moduleName string, importTypes map[string]funcType, memoryExport string, firstFuncExport string, err error) { + if len(wasm) < 8 || !bytes.Equal(wasm[:4], []byte("\x00asm")) { + return "", nil, "", "", fmt.Errorf("highs.wasm is not a wasm binary") + } + + var types []funcType + importTypes = map[string]funcType{} + reader := &wasmReader{data: wasm, offset: 8} + + for reader.offset < len(wasm) { + sectionID, sectionEnd, sectionErr := reader.section() + if sectionErr != nil { + return "", nil, "", "", sectionErr + } + switch sectionID { + case 1: // type + if types, err = reader.readTypeSection(); err != nil { + return "", nil, "", "", err + } + case 2: // import + if moduleName, err = reader.readImportSection(types, importTypes); err != nil { + return "", nil, "", "", err + } + case 7: // export + if memoryExport, firstFuncExport, err = reader.readExportSection(); err != nil { + return "", nil, "", "", err + } + } + reader.offset = sectionEnd + } + + switch { + case moduleName == "": + return "", nil, "", "", fmt.Errorf("highs.wasm has no function imports") + case memoryExport == "": + return "", nil, "", "", fmt.Errorf("highs.wasm exports no memory") + case firstFuncExport == "": + return "", nil, "", "", fmt.Errorf("highs.wasm exports no functions") + } + return moduleName, importTypes, memoryExport, firstFuncExport, nil +} + +type wasmReader struct { + data []byte + offset int +} + +func (r *wasmReader) byte() (byte, error) { + if r.offset >= len(r.data) { + return 0, fmt.Errorf("unexpected end of wasm binary") + } + value := r.data[r.offset] + r.offset++ + return value, nil +} + +func (r *wasmReader) uvarint() (uint64, error) { + value, read := binary.Uvarint(r.data[r.offset:]) + if read <= 0 { + return 0, fmt.Errorf("malformed LEB128 at offset %d", r.offset) + } + r.offset += read + return value, nil +} + +func (r *wasmReader) name() (string, error) { + length, err := r.uvarint() + if err != nil { + return "", err + } + if r.offset+int(length) > len(r.data) { + return "", fmt.Errorf("name at offset %d runs past the end of the wasm binary", r.offset) + } + value := string(r.data[r.offset : r.offset+int(length)]) + r.offset += int(length) + return value, nil +} + +func (r *wasmReader) section() (id byte, end int, err error) { + if id, err = r.byte(); err != nil { + return 0, 0, err + } + size, err := r.uvarint() + if err != nil { + return 0, 0, err + } + end = r.offset + int(size) + if end > len(r.data) { + return 0, 0, fmt.Errorf("section %d runs past the end of the wasm binary", id) + } + return id, end, nil +} + +func (r *wasmReader) readTypeSection() ([]funcType, error) { + count, err := r.uvarint() + if err != nil { + return nil, err + } + types := make([]funcType, 0, count) + for range count { + form, err := r.byte() + if err != nil { + return nil, err + } + if form != 0x60 { + return nil, fmt.Errorf("unsupported type form 0x%02x in highs.wasm", form) + } + params, err := r.readValueTypes() + if err != nil { + return nil, err + } + results, err := r.readValueTypes() + if err != nil { + return nil, err + } + types = append(types, funcType{params: params, results: results}) + } + return types, nil +} + +func (r *wasmReader) readValueTypes() ([]byte, error) { + count, err := r.uvarint() + if err != nil { + return nil, err + } + if count == 0 { + return nil, nil + } + valueTypes := make([]byte, 0, count) + for range count { + valueType, err := r.byte() + if err != nil { + return nil, err + } + valueTypes = append(valueTypes, valueType) + } + return valueTypes, nil +} + +func (r *wasmReader) readImportSection(types []funcType, importTypes map[string]funcType) (string, error) { + count, err := r.uvarint() + if err != nil { + return "", err + } + moduleName := "" + for range count { + module, err := r.name() + if err != nil { + return "", err + } + field, err := r.name() + if err != nil { + return "", err + } + kind, err := r.byte() + if err != nil { + return "", err + } + switch kind { + case 0: // func + typeIdx, err := r.uvarint() + if err != nil { + return "", err + } + if int(typeIdx) >= len(types) { + return "", fmt.Errorf("import %s.%s references unknown type %d", module, field, typeIdx) + } + if moduleName != "" && module != moduleName { + return "", fmt.Errorf("highs.wasm imports from more than one module (%q and %q)", moduleName, module) + } + moduleName = module + importTypes[field] = types[typeIdx] + case 1: // table + if err := r.skipTable(); err != nil { + return "", err + } + case 2: // memory + if err := r.skipLimits(); err != nil { + return "", err + } + case 3: // global + r.offset += 2 + default: + return "", fmt.Errorf("unsupported import kind %d in highs.wasm", kind) + } + } + return moduleName, nil +} + +func (r *wasmReader) skipTable() error { + if _, err := r.byte(); err != nil { // element type + return err + } + return r.skipLimits() +} + +func (r *wasmReader) skipLimits() error { + flags, err := r.byte() + if err != nil { + return err + } + if _, err := r.uvarint(); err != nil { // minimum + return err + } + if flags&1 != 0 { + if _, err := r.uvarint(); err != nil { // maximum + return err + } + } + return nil +} + +func (r *wasmReader) readExportSection() (memoryExport string, firstFuncExport string, err error) { + count, err := r.uvarint() + if err != nil { + return "", "", err + } + for range count { + name, err := r.name() + if err != nil { + return "", "", err + } + kind, err := r.byte() + if err != nil { + return "", "", err + } + if _, err := r.uvarint(); err != nil { // index + return "", "", err + } + switch kind { + case 0: + if firstFuncExport == "" { + firstFuncExport = name + } + case 2: + if memoryExport != "" { + return "", "", fmt.Errorf("highs.wasm exports more than one memory") + } + memoryExport = name + } + } + return memoryExport, firstFuncExport, nil +} + +func renderNamesFile(names *highsNames) ([]byte, error) { + var out strings.Builder + fmt.Fprintf(&out, "// Code generated by %s. DO NOT EDIT.\n", generatorLabel) + fmt.Fprintf(&out, "// Source: npm highs@%s (node_modules/highs/build/highs.js).\n", names.Version) + fmt.Fprintf(&out, "// Regenerate with `make update-highs` after changing the pinned version in package.json.\n\n") + out.WriteString("package worker\n\n") + + fmt.Fprintf(&out, "// HighsVersion is the npm `highs` release highs.wasm and these names came from.\n") + fmt.Fprintf(&out, "const HighsVersion = %q\n\n", names.Version) + + out.WriteString("// HighsWASMImportModule is the single module name every highs.wasm import is namespaced\n") + out.WriteString("// under. emscripten minifies it along with the import names themselves.\n") + fmt.Fprintf(&out, "const HighsWASMImportModule = %q\n\n", names.ImportModule) + + out.WriteString("// HighsWASMMemoryExport is the minified name of highs.wasm's exported linear memory.\n") + fmt.Fprintf(&out, "const HighsWASMMemoryExport = %q\n\n", names.MemoryExport) + + out.WriteString("// HighsWASMImport is one host function highs.wasm expects to be given, with the\n") + out.WriteString("// signature read out of the wasm binary's type section. Params and Results hold raw wasm\n") + out.WriteString("// value-type bytes, which are exactly wazero's api.ValueType values.\n") + out.WriteString("type HighsWASMImport struct {\n") + out.WriteString("\t// Symbol is emscripten's stable name for the import, e.g. \"_fd_read\".\n") + out.WriteString("\tSymbol string\n") + out.WriteString("\t// Minified is the name highs.wasm actually imports, e.g. \"q\".\n") + out.WriteString("\tMinified string\n") + out.WriteString("\tParams []byte\n") + out.WriteString("\tResults []byte\n") + out.WriteString("}\n\n") + + out.WriteString("// HighsWASMImports lists every function highs.wasm imports, keyed by symbol so callers\n") + out.WriteString("// never have to know the minified names.\n") + out.WriteString("var HighsWASMImports = []HighsWASMImport{\n") + for _, imp := range names.Imports { + fmt.Fprintf(&out, "\t{Symbol: %q, Minified: %q, Params: %s, Results: %s},\n", + imp.Symbol, imp.Minified, renderValueTypes(imp.Params), renderValueTypes(imp.Results)) + } + out.WriteString("}\n\n") + + out.WriteString("// HighsWASMExports maps each emscripten export symbol to the minified name highs.wasm\n") + out.WriteString("// exports it under.\n") + out.WriteString("var HighsWASMExports = map[string]string{\n") + for _, symbol := range sortedKeys(names.Exports) { + fmt.Fprintf(&out, "\t%q: %q,\n", symbol, names.Exports[symbol]) + } + out.WriteString("}\n") + + formatted, err := format.Source([]byte(out.String())) + if err != nil { + return nil, fmt.Errorf("formatting generated %s: %w", namesDestPath, err) + } + return formatted, nil +} + +func renderValueTypes(valueTypes []byte) string { + if len(valueTypes) == 0 { + return "nil" + } + rendered := make([]string, 0, len(valueTypes)) + for _, valueType := range valueTypes { + rendered = append(rendered, fmt.Sprintf("0x%02x", valueType)) + } + return "[]byte{" + strings.Join(rendered, ", ") + "}" +} + +func sortedKeys(values map[string]string) []string { + keys := make([]string, 0, len(values)) + for key := range values { + keys = append(keys, key) + } + sort.Strings(keys) + return keys +} diff --git a/ui/core/components/detailed_results/combat_replay.tsx b/ui/core/components/detailed_results/combat_replay.tsx index 19a541f7ec..e2879f5e5a 100644 --- a/ui/core/components/detailed_results/combat_replay.tsx +++ b/ui/core/components/detailed_results/combat_replay.tsx @@ -6,6 +6,7 @@ import { ResourceType } from '../../proto/spell'; import { ActionId } from '../../proto_utils/action_id'; import { AuraStacksChangeLog, CastBeganLog, DamageDealtLog, Entity, ResourceChangedLog } from '../../proto_utils/logs_parser'; import { resourceColors, resourceNames } from '../../proto_utils/names'; +import { formatDurationSeconds } from '../../utils'; import { ActionMetrics, SimResult, SimResultFilter } from '../../proto_utils/sim_result'; import i18n from '../../../i18n/config'; import { ResultComponent, ResultComponentConfig, SimResultData } from './result_component'; @@ -120,6 +121,11 @@ const HIT_WINDOW_SEC = 0.45; const DMG_WINDOW_SEC = 1.1; const MAX_TICKER = 10; const MAX_ENEMIES = 8; +const REPLAY_TIME_FORMAT = { + showMilliseconds: true, + separatorStyle: 'colon', + minimumUnit: 'minutes', +} as const; export class CombatReplay extends ResultComponent { private actions: ReplayAction[] = []; @@ -460,7 +466,15 @@ export class CombatReplay extends ResultComponent { if (!id || (!id.spellId && !id.itemId) || !(id.name ?? '')) continue; if (id.otherId !== OtherAction.OtherActionNone) continue; if (isPermanent(aura.gainedAt, aura.fadedAt)) continue; - this.playerAuras.push({ gainedAt: aura.gainedAt, fadedAt: aura.fadedAt, name: id.name, iconUrl: id.iconUrl, actionId: id, targetIndex: -1, stacksChange: aura.stacksChange }); + this.playerAuras.push({ + gainedAt: aura.gainedAt, + fadedAt: aura.fadedAt, + name: id.name, + iconUrl: id.iconUrl, + actionId: id, + targetIndex: -1, + stacksChange: aura.stacksChange, + }); } } @@ -591,11 +605,18 @@ export class CombatReplay extends ResultComponent { for (let i = n % 2 === 0 ? 3 : 1; i < n; i += 2) rightInner.push(i); // Build slot list left→right with depth annotation. - interface Slot { idx: number; depth: number } + interface Slot { + idx: number; + depth: number; + } const leftSlots: Slot[] = [...leftInner].reverse().map((idx, i) => ({ idx, depth: leftInner.length - i })); - const centerSlots: Slot[] = n % 2 === 0 - ? [{ idx: 0, depth: 0 }, { idx: 1, depth: 0 }] - : [{ idx: 0, depth: 0 }]; + const centerSlots: Slot[] = + n % 2 === 0 + ? [ + { idx: 0, depth: 0 }, + { idx: 1, depth: 0 }, + ] + : [{ idx: 0, depth: 0 }]; const rightSlots: Slot[] = rightInner.map((idx, i) => ({ idx, depth: i + 1 })); const slots: Slot[] = [...leftSlots, ...centerSlots, ...rightSlots]; @@ -637,7 +658,7 @@ export class CombatReplay extends ResultComponent { const t = this.currentTime; this.ui.scrubber.value = String(Math.round((t / Math.max(this.fightLen, 0.001)) * 1000)); - this.ui.timeDisplay.textContent = `${this.formatReplayTime(t)} / ${this.formatReplayTime(this.fightLen)}`; + this.ui.timeDisplay.textContent = `${formatDurationSeconds(t, REPLAY_TIME_FORMAT)} / ${formatDurationSeconds(this.fightLen, REPLAY_TIME_FORMAT)}`; let actionIdx = -1; for (let i = 0; i < this.actions.length; i++) { @@ -1049,9 +1070,4 @@ export class CombatReplay extends ResultComponent { this.pause(); this.seekTo(0); } - - private formatReplayTime(seconds: number): string { - const m = Math.floor(seconds / 60); - return `${m}:${(seconds % 60).toFixed(1).padStart(4, '0')}`; - } } diff --git a/ui/core/components/individual_sim_ui/bulk/bulk_item_picker.tsx b/ui/core/components/individual_sim_ui/bulk/bulk_item_picker.tsx index db99f3e15b..94c1221fd6 100644 --- a/ui/core/components/individual_sim_ui/bulk/bulk_item_picker.tsx +++ b/ui/core/components/individual_sim_ui/bulk/bulk_item_picker.tsx @@ -12,7 +12,7 @@ import { ItemRenderer } from '../../gear_picker/gear_picker'; import { GearData } from '../../gear_picker/item_list'; import { SelectorModalTabs } from '../../gear_picker/selector_modal'; import { BulkTab } from '../bulk_tab'; -import { BulkSimItemSlot, bulkSimItemSlotToItemSlotPairs } from './utils'; +import { BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS, BulkSimItemSlot } from './utils'; export default class BulkItemPicker extends Component { private readonly itemElem: ItemRenderer; @@ -94,7 +94,7 @@ export default class BulkItemPicker extends Component { return null; } - const slots = bulkSimItemSlotToItemSlotPairs.get(this.bulkSlot); + const slots = BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS.get(this.bulkSlot); if (!slots) { return null; } @@ -104,7 +104,7 @@ export default class BulkItemPicker extends Component { private getFrozenBulkItemSlot(): ItemSlot | null { const frozenItem = this.bulkUI.frozenItems.get(this.bulkSlot); - const slots = bulkSimItemSlotToItemSlotPairs.get(this.bulkSlot); + const slots = BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS.get(this.bulkSlot); if (!frozenItem || !slots) { return null; } diff --git a/ui/core/components/individual_sim_ui/bulk/bulk_item_picker_group.tsx b/ui/core/components/individual_sim_ui/bulk/bulk_item_picker_group.tsx index 611ec28e45..ce4a38fc9f 100644 --- a/ui/core/components/individual_sim_ui/bulk/bulk_item_picker_group.tsx +++ b/ui/core/components/individual_sim_ui/bulk/bulk_item_picker_group.tsx @@ -32,23 +32,35 @@ export default class BulkItemPickerGroup extends ContentBlock { return !!this.pickers.get(idx); } - add(idx: number, item: EquippedItem, silent = false) { + // True when the slot already holds as many copies of this exact item as can be worn. + // Finger/trinket/weapon map to two physical slots, so two copies of a non-unique item fit. + // A shared limit category is deliberately allowed: ilvl tiers of one trinket are distinct + // ids (Evil Eye of Galakras ships six, all category 326) and comparing them is the point. + // Keeping two out of the same combination is initGroupedSlotPairs' job. + private isDuplicateOfExisting(item: EquippedItem): boolean { + const isDualSlot = + this.bulkSlot == BulkSimItemSlot.ItemSlotHandWeapon || + this.bulkSlot == BulkSimItemSlot.ItemSlotFinger || + this.bulkSlot == BulkSimItemSlot.ItemSlotTrinket; + const maxCopies = isDualSlot && !item._item.unique ? 2 : 1; + return Array.from(this.pickers.values()).filter(picker => picker.item.id === item.id).length >= maxCopies; + } + + // Returns false if the item was rejected, so callers can undo the entry they pushed onto + // the batch list; a stale one sims and counts toward combinations with no picker to remove it. + add(idx: number, item: EquippedItem, silent = false): boolean { if (!this.pickers.size) this.bodyElement.replaceChildren(); - // Block duplicate items from being added. - const pickers = Array.from(this.pickers.values()); - if ( - pickers.some( - picker => ((this.bulkSlot != BulkSimItemSlot.ItemSlotHandWeapon) && (picker.item.id === item.id)) || (picker.item._item.limitCategory != 0 && picker.item._item.limitCategory === item._item.limitCategory), - ) - ) { + // Equipped pickers (idx < 0) report what is worn rather than offering a choice, so they + // always render - the guard must never hide one. + if (idx >= 0 && this.isDuplicateOfExisting(item)) { if (!silent) new Toast({ delay: 1000, variant: 'error', body: <>{i18n.t('bulk_tab.search.item_unique', { itemName: item._item.name })}, }); - return; + return false; } if (this.pickers.has(idx)) { @@ -65,6 +77,8 @@ export default class BulkItemPickerGroup extends ContentBlock { variant: 'success', body: <>{i18n.t('bulk_tab.search.item_added', { itemName: item._item.name })}, }); + + return true; } update(idx: number, newItem: EquippedItem) { diff --git a/ui/core/components/individual_sim_ui/bulk/bulk_item_search.tsx b/ui/core/components/individual_sim_ui/bulk/bulk_item_search.tsx index 42b6986851..9f9541ee06 100644 --- a/ui/core/components/individual_sim_ui/bulk/bulk_item_search.tsx +++ b/ui/core/components/individual_sim_ui/bulk/bulk_item_search.tsx @@ -14,7 +14,7 @@ import { createNameDescriptionLabel } from '../../gear_picker/utils'; import { NumberPicker } from '../../pickers/number_picker'; import { BulkTab } from '../bulk_tab'; import { translateBulkSlotName } from '../../../../i18n/localization'; -import { itemSlotToBulkSimItemSlot } from './utils'; +import { ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT } from './utils'; const MAX_SEARCH_RESULTS = 21; @@ -186,7 +186,7 @@ export default class BulkItemSearch extends ContentBlock { {item.factionRestriction === UIItem_FactionRestriction.HORDE_ONLY && (H)} {item.factionRestriction === UIItem_FactionRestriction.ALLIANCE_ONLY && (A)} - {translateBulkSlotName(itemSlotToBulkSimItemSlot.get(getEligibleItemSlots(item)[0])!)} + {translateBulkSlotName(ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT.get(getEligibleItemSlots(item)[0])!)} , diff --git a/ui/core/components/individual_sim_ui/bulk/bulk_sim_results_renderer.tsx b/ui/core/components/individual_sim_ui/bulk/bulk_sim_results_renderer.tsx index c55a9a4d1a..fff838b9fb 100644 --- a/ui/core/components/individual_sim_ui/bulk/bulk_sim_results_renderer.tsx +++ b/ui/core/components/individual_sim_ui/bulk/bulk_sim_results_renderer.tsx @@ -3,14 +3,22 @@ import { ref } from 'tsx-vanilla'; import i18n from '../../../../i18n/config'; import { IndividualSimUI } from '../../../individual_sim_ui'; +import { ItemSlot, ItemSpec } from '../../../proto/common'; import { TypedEvent } from '../../../typed_event'; import { formatDeltaTextElem, formatToNumber } from '../../../utils'; import { Component } from '../../component'; import { ItemRenderer } from '../../gear_picker/gear_picker'; -import Toast from '../../toast'; -import { TopGearResult } from '../bulk_tab'; import { RaidSimResultsManager } from '../../raid_sim_action'; -import { ItemSlot, ItemSpec } from '../../../proto/common'; +import Toast from '../../toast'; +import { TopGearResult } from './types'; +import { BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS, getBulkItemSlotFromSlot, getBulkPlayerCanDualWield } from './utils'; + +const getSwappableItemSlotPair = (slot: number, canDualWield: boolean): [ItemSlot, ItemSlot] | undefined => + BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS.get(getBulkItemSlotFromSlot(slot, canDualWield)); + +const itemSpecPairsEqualUnordered = (resultItems: ItemSpec[], originalItems: ItemSpec[], [slot1, slot2]: [ItemSlot, ItemSlot]): boolean => + (ItemSpec.equals(resultItems[slot1], originalItems[slot1]) && ItemSpec.equals(resultItems[slot2], originalItems[slot2])) || + (ItemSpec.equals(resultItems[slot1], originalItems[slot2]) && ItemSpec.equals(resultItems[slot2], originalItems[slot1])); export default class BulkSimResultRenderer extends Component { readonly simUI: IndividualSimUI; @@ -71,12 +79,17 @@ export default class BulkSimResultRenderer extends Component { }); const items = (<>) as HTMLElement; + const canDualWield = getBulkPlayerCanDualWield(simUI.player); const resultAsSpec = result.gear.asSpec(); const originalEquipmentSpec = baseResult.gear.asSpec(); for (const [idx, spec] of resultAsSpec.items.entries()) { const itemContainer = (
) as HTMLElement; + const swappableItemSlotPair = getSwappableItemSlotPair(idx, canDualWield); + const itemChanged = swappableItemSlotPair + ? !itemSpecPairsEqualUnordered(resultAsSpec.items, originalEquipmentSpec.items, swappableItemSlotPair) + : !ItemSpec.equals(spec, originalEquipmentSpec.items[idx]); - if (spec.id != originalEquipmentSpec.items[idx].id) { + if (itemChanged) { itemContainer.style.border = '3px solid red'; } else { itemContainer.style.border = '3px solid transparent'; @@ -88,14 +101,8 @@ export default class BulkSimResultRenderer extends Component { if (spec.id == 0) { shouldRenderItem = false; - } else if (!ItemSpec.equals(spec, originalEquipmentSpec.items[idx])) { - shouldRenderItem = true; - } else if ([ItemSlot.ItemSlotFinger1, ItemSlot.ItemSlotTrinket1].includes(idx) && !ItemSpec.equals(resultAsSpec.items[idx + 1], originalEquipmentSpec.items[idx + 1])) { - shouldRenderItem = true; - } else if ([ItemSlot.ItemSlotFinger2, ItemSlot.ItemSlotTrinket2].includes(idx) && !ItemSpec.equals(resultAsSpec.items[idx - 1], originalEquipmentSpec.items[idx - 1])) { - shouldRenderItem = true; } else { - shouldRenderItem = false; + shouldRenderItem = itemChanged; } if (shouldRenderItem) { diff --git a/ui/core/components/individual_sim_ui/bulk/core_sim.ts b/ui/core/components/individual_sim_ui/bulk/core_sim.ts new file mode 100644 index 0000000000..6d1600234f --- /dev/null +++ b/ui/core/components/individual_sim_ui/bulk/core_sim.ts @@ -0,0 +1,90 @@ +import i18n from '../../../../i18n/config'; +import { IndividualSimUI } from '../../../individual_sim_ui'; +import { BulkSettings, DistributionMetrics, ProgressMetrics } from '../../../proto/api'; +import { Gear } from '../../../proto_utils/gear'; +import { ReforgeOptimizeConfig } from '../../../sim'; +import { BulkSimProgressConfig, TopGearResult } from './types'; +import { bulkSimStageToOptimisationStage, BulkSimReforgeCacheProgress, cleanBulkDpsMetrics, getCoreBulkSimTrackingMetrics } from './utils'; + +export interface CoreBulkSimContext { + simUI: IndividualSimUI; + throwIfBulkAborted: (signal: AbortSignal) => void; + runWithBulkAbort: (promise: Promise, signal: AbortSignal) => Promise; + setSimProgress: (progress: ProgressMetrics, config: BulkSimProgressConfig) => void; + setCacheRestoreProgress?: (progress: BulkSimReforgeCacheProgress) => void; + debugOptimisationRound: (message: string, data?: unknown) => void; +} + +export async function runCoreBulkSim( + context: CoreBulkSimContext, + gearSets: Gear[], + signal: AbortSignal, + reforgeConfig?: ReforgeOptimizeConfig, + bulkSettings?: BulkSettings, +): Promise<{ referenceDpsMetrics: DistributionMetrics; topGearResults: TopGearResult[]; metrics: Record }> { + context.throwIfBulkAborted(signal); + context.debugOptimisationRound('core bulk sim started', { + gearSets: gearSets.length, + }); + + let currentProgressStage: ProgressMetrics['bulkStage'] | undefined; + let currentProgressStageStartedAt = new Date().getTime(); + const updateProgress = (progress: ProgressMetrics) => { + if (progress.totalIterations <= 0) return; + if (progress.bulkStage !== currentProgressStage) { + currentProgressStage = progress.bulkStage; + currentProgressStageStartedAt = new Date().getTime(); + } + + const stageName = bulkSimStageToOptimisationStage(progress.bulkStage); + context.setSimProgress(progress, { + currentRound: 1, + totalRounds: 1, + title: stageName ? i18n.t(`bulk_tab.progress.${stageName}_iteration_rounds`) : i18n.t('bulk_tab.progress.refining_rounds'), + aggregateStartedAt: currentProgressStageStartedAt, + useSimCountProgress: true, + }); + }; + + const result = await context.runWithBulkAbort( + context.simUI.sim.runBulkSim( + gearSets, + updateProgress, + reforgeConfig, + bulkSettings, + progress => context.setCacheRestoreProgress?.(progress), + signal, + ), + signal, + ); + if (!result || (result && 'type' in result)) { + throw new Error(result?.message); + } + if (!result.baseline?.dpsMetrics) { + throw new Error('Bulk sim did not return baseline results.'); + } + + const topGearResults = result.topResults + .filter(topResult => topResult.gear && topResult.dpsMetrics) + .map(topResult => ({ + gear: context.simUI.sim.db.lookupEquipmentSpec(topResult.gear!), + dpsMetrics: cleanBulkDpsMetrics(topResult.dpsMetrics!), + })); + + context.debugOptimisationRound('core bulk sim complete', { + durationSeconds: result.timings?.totalSeconds ?? 0, + gearSets: gearSets.length, + stageMetrics: result.stageMetrics, + topGearResults: topGearResults.map((topResult, index) => ({ + rank: index + 1, + avg: topResult.dpsMetrics.avg, + stdev: topResult.dpsMetrics.stdev, + })), + }); + + return { + referenceDpsMetrics: result.baseline.dpsMetrics, + topGearResults, + metrics: getCoreBulkSimTrackingMetrics(result), + }; +} diff --git a/ui/core/components/individual_sim_ui/bulk/gem_selector_modal.tsx b/ui/core/components/individual_sim_ui/bulk/gem_selector_modal.tsx deleted file mode 100644 index b6a0fe8ca7..0000000000 --- a/ui/core/components/individual_sim_ui/bulk/gem_selector_modal.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { ref } from 'tsx-vanilla'; - -import i18n from '../../../../i18n/config'; -import { IndividualSimUI } from '../../../individual_sim_ui'; -import { GemColor, ItemSlot } from '../../../proto/common'; -import { UIGem } from '../../../proto/ui'; -import { ActionId } from '../../../proto_utils/action_id'; -import { EquippedItem } from '../../../proto_utils/equipped_item'; -import { Stats } from '../../../proto_utils/stats'; -import { EventID, TypedEvent } from '../../../typed_event'; -import { noop } from '../../../utils'; -import { BaseModal } from '../../base_modal'; -import ItemList, { ItemData } from '../../gear_picker/item_list'; -import { SelectorModalTabs } from '../../gear_picker/selector_modal'; - -export default class GemSelectorModal extends BaseModal { - private readonly simUI: IndividualSimUI; - - private readonly contentElem: HTMLElement; - private ilist: ItemList | null; - private socketColor: GemColor; - private onSelect: (itemData: ItemData) => void; - private onRemove: () => void; - - constructor(parent: HTMLElement, simUI: IndividualSimUI, socketColor: GemColor, onSelect: (itemData: ItemData) => void, onRemove: () => void) { - super(parent, 'selector-modal', { disposeOnClose: false, size: 'xl' }); - - this.simUI = simUI; - this.onSelect = onSelect; - this.onRemove = onRemove; - this.socketColor = socketColor; - this.ilist = null; - - window.scrollTo({ top: 0 }); - - this.header!.insertAdjacentElement('afterbegin',
{i18n.t('bulk_tab.gem_selector.title')}
); - const contentRef = ref(); - this.body.appendChild(
); - this.contentElem = contentRef.value!; - } - - show() { - // construct item list the first time its opened. - // This makes startup faster and also means we are sure to have item database loaded. - if (!this.ilist) { - this.ilist = new ItemList( - 'bulk-tab-gem-selector', - this.contentElem, - this.simUI, - ItemSlot.ItemSlotHead, - SelectorModalTabs.Gem1, - this.simUI.player, - SelectorModalTabs.Gem1, - { - equipItem: (_eventID: EventID, _equippedItem: EquippedItem | null) => { - return; - }, - getEquippedItem: () => null, - changeEvent: new TypedEvent(), // FIXME - }, - this.simUI.player.getGems(this.socketColor).map((gem: UIGem) => { - return { - item: gem, - id: gem.id, - actionId: ActionId.fromItemId(gem.id), - name: gem.name, - quality: gem.quality, - phase: gem.phase, - nameDescription: '', - baseEP: this.simUI.player.computeStatsEP(new Stats(gem.stats)), - ignoreEPFilter: true, - onEquip: noop, - }; - }), - this.socketColor, - gem => { - return this.simUI.player.computeGemEP(gem); - }, - () => { - return null; - }, - this.onRemove, - this.onSelect, - ); - - this.ilist.sizeRefresh(); - - const applyFilter = () => this.ilist?.applyFilters(); - - const phaseChangeEvent = this.simUI.sim.phaseChangeEmitter.on(applyFilter); - const filtersChangeChangeEvent = this.simUI.sim.filtersChangeEmitter.on(applyFilter); - - this.addOnDisposeCallback(() => { - phaseChangeEvent.dispose(); - filtersChangeChangeEvent.dispose(); - this.ilist?.dispose(); - }); - } - - this.open(); - } -} diff --git a/ui/core/components/individual_sim_ui/bulk/types.ts b/ui/core/components/individual_sim_ui/bulk/types.ts new file mode 100644 index 0000000000..b0347b95dd --- /dev/null +++ b/ui/core/components/individual_sim_ui/bulk/types.ts @@ -0,0 +1,59 @@ +import { DistributionMetrics } from '../../../proto/api'; +import { Gear } from '../../../proto_utils/gear'; + +export const WEB_ITERATIONS_LIMIT = 1_000_000; +export const NATIVE_ITERATIONS_LIMIT = 10_000_000; + +export const WEB_COMBINATIONS_LIMIT = 5_000; +export const NATIVE_COMBINATIONS_LIMIT = 100_000; + +export type OptimisationStage = 'low' | 'medium' | 'high'; +export type OptimisationStageConfig = { + concurrency?: number; + minIterations?: number; + targetErrorPct: number; + minSurvivors?: number; + maxSurvivors?: number; +}; + +export const BULK_OPTIMISATION_MIN_COMBINATIONS = 20; + +export const STAGE_CONFIG: Record = { + low: { + minIterations: 100, + targetErrorPct: 1, + minSurvivors: 20, + maxSurvivors: 100, + }, + medium: { + minIterations: 1000, + targetErrorPct: 0.2, + minSurvivors: 5, + maxSurvivors: 25, + concurrency: 3, + }, + high: { + targetErrorPct: 0.05, + concurrency: 1, + }, +}; + +export interface TopGearResult { + gear: Gear; + dpsMetrics: DistributionMetrics; +} + +export interface BulkSimRoundConfig { + currentRound: number; + totalRounds: number; + title?: string; + stageCurrentRound?: number; + stageRounds?: number; +} + +export interface BulkSimProgressConfig extends BulkSimRoundConfig { + aggregateCompletedIterations?: number; + aggregateTotalIterations?: number; + aggregateStartedAt?: number; + useSimCountProgress?: boolean; +} diff --git a/ui/core/components/individual_sim_ui/bulk/utils.ts b/ui/core/components/individual_sim_ui/bulk/utils.ts index 83955a44f3..f6cc9b20ee 100644 --- a/ui/core/components/individual_sim_ui/bulk/utils.ts +++ b/ui/core/components/individual_sim_ui/bulk/utils.ts @@ -1,88 +1,349 @@ -import { ItemSlot } from '../../../proto/common'; - -// Combines Fingers 1 and 2 and Trinket 1 and 2 into single groups -export enum BulkSimItemSlot { - ItemSlotHead, - ItemSlotNeck, - ItemSlotShoulder, - ItemSlotBack, - ItemSlotChest, - ItemSlotWrist, - ItemSlotHands, - ItemSlotWaist, - ItemSlotLegs, - ItemSlotFeet, - ItemSlotFinger, - ItemSlotTrinket, - ItemSlotMainHand, - ItemSlotOffHand, - ItemSlotHandWeapon, // Weapon grouping slot for specs that can dual-wield -} +import type { Player } from '../../../player'; +import { isSpecDualWieldCapable } from '../../../player_classes/capabilities'; +import { BulkGearCandidate, BulkSimResult, BulkSimStage, DistributionMetrics, ReforgeOptimizeMode, ReforgeOptimizeRequest } from '../../../proto/api'; +import { Class, Debuffs, EquipmentSpec, ItemRandomSuffix, ItemSlot, ItemSpec, PartyBuffs, RaidBuffs, ReforgeStat, WeaponType } from '../../../proto/common'; +import { ItemEffectRandPropPoints, SimDatabase, SimEnchant, SimGem, SimItem } from '../../../proto/db'; +import { UIEnchant as Enchant, UIGem as Gem, UIItem as Item } from '../../../proto/ui'; +import { Database } from '../../../proto_utils/database'; +import { EquippedItem } from '../../../proto_utils/equipped_item'; +import { Gear } from '../../../proto_utils/gear'; +import { getGearIdentityKey, getReforgeCacheGearKey } from '../../../proto_utils/utils'; +import { ReforgeGearCache } from '../../../reforge_cache'; +import { sleep } from '../../../utils'; +import { ReforgeOptimizer } from '../../suggest_reforges_action'; +import { + BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS, + BULK_SIM_ITEM_SLOT_TO_SINGLE_ITEM_SLOT, + BulkSimItemSlot, + ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT, +} from './constants_auto_gen'; +import { OptimisationStage, STAGE_CONFIG } from './types'; + +export { BulkSimItemSlot, ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT, BULK_SIM_ITEM_SLOT_TO_SINGLE_ITEM_SLOT, BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS }; -export const itemSlotToBulkSimItemSlot: Map = new Map([ - [ItemSlot.ItemSlotHead, BulkSimItemSlot.ItemSlotHead], - [ItemSlot.ItemSlotNeck, BulkSimItemSlot.ItemSlotNeck], - [ItemSlot.ItemSlotShoulder, BulkSimItemSlot.ItemSlotShoulder], - [ItemSlot.ItemSlotBack, BulkSimItemSlot.ItemSlotBack], - [ItemSlot.ItemSlotChest, BulkSimItemSlot.ItemSlotChest], - [ItemSlot.ItemSlotWrist, BulkSimItemSlot.ItemSlotWrist], - [ItemSlot.ItemSlotHands, BulkSimItemSlot.ItemSlotHands], - [ItemSlot.ItemSlotWaist, BulkSimItemSlot.ItemSlotWaist], - [ItemSlot.ItemSlotLegs, BulkSimItemSlot.ItemSlotLegs], - [ItemSlot.ItemSlotFeet, BulkSimItemSlot.ItemSlotFeet], - [ItemSlot.ItemSlotFinger1, BulkSimItemSlot.ItemSlotFinger], - [ItemSlot.ItemSlotFinger2, BulkSimItemSlot.ItemSlotFinger], - [ItemSlot.ItemSlotTrinket1, BulkSimItemSlot.ItemSlotTrinket], - [ItemSlot.ItemSlotTrinket2, BulkSimItemSlot.ItemSlotTrinket], - [ItemSlot.ItemSlotMainHand, BulkSimItemSlot.ItemSlotMainHand], - [ItemSlot.ItemSlotOffHand, BulkSimItemSlot.ItemSlotOffHand], -]); - -export const bulkSimItemSlotToSingleItemSlot: Map = new Map([ - [BulkSimItemSlot.ItemSlotHead, ItemSlot.ItemSlotHead], - [BulkSimItemSlot.ItemSlotNeck, ItemSlot.ItemSlotNeck], - [BulkSimItemSlot.ItemSlotShoulder, ItemSlot.ItemSlotShoulder], - [BulkSimItemSlot.ItemSlotBack, ItemSlot.ItemSlotBack], - [BulkSimItemSlot.ItemSlotChest, ItemSlot.ItemSlotChest], - [BulkSimItemSlot.ItemSlotWrist, ItemSlot.ItemSlotWrist], - [BulkSimItemSlot.ItemSlotHands, ItemSlot.ItemSlotHands], - [BulkSimItemSlot.ItemSlotWaist, ItemSlot.ItemSlotWaist], - [BulkSimItemSlot.ItemSlotLegs, ItemSlot.ItemSlotLegs], - [BulkSimItemSlot.ItemSlotFeet, ItemSlot.ItemSlotFeet], - [BulkSimItemSlot.ItemSlotMainHand, ItemSlot.ItemSlotMainHand], - [BulkSimItemSlot.ItemSlotOffHand, ItemSlot.ItemSlotOffHand], -]); - -export const bulkSimItemSlotToItemSlotPairs: Map = new Map([ - [BulkSimItemSlot.ItemSlotFinger, [ItemSlot.ItemSlotFinger2, ItemSlot.ItemSlotFinger1]], - [BulkSimItemSlot.ItemSlotTrinket, [ItemSlot.ItemSlotTrinket2, ItemSlot.ItemSlotTrinket1]], - [BulkSimItemSlot.ItemSlotHandWeapon, [ItemSlot.ItemSlotOffHand, ItemSlot.ItemSlotMainHand]], -]); +const BULK_CACHE_LOOKUP_BATCH_SIZE = 2000; +const BULK_CACHE_PROGRESS_CHECK_MODULO = 64; +const BULK_CACHE_YIELD_BUDGET_MS = 16; export const getBulkItemSlotFromSlot = (slot: ItemSlot, canDualWield: boolean): BulkSimItemSlot => { if (canDualWield && [ItemSlot.ItemSlotMainHand, ItemSlot.ItemSlotOffHand].includes(slot)) { return BulkSimItemSlot.ItemSlotHandWeapon; } - return itemSlotToBulkSimItemSlot.get(slot)!; + return ITEM_SLOT_TO_BULK_SIM_ITEM_SLOT.get(slot)!; +}; + +export const getBulkPlayerCanDualWield = (player: Player): boolean => { + // Hunters are intentionally excluded from bulk dual-wield grouping to match backend behavior. + return isSpecDualWieldCapable(player.getSpec()) && player.getClass() !== Class.ClassHunter; +}; + +const TWO_HAND_ONLY_WEAPON_TYPES: WeaponType[] = [WeaponType.WeaponTypePolearm, WeaponType.WeaponTypeStaff]; + +export const getBulkFreezeWeaponTypes = (player: Player, slot: ItemSlot.ItemSlotMainHand | ItemSlot.ItemSlotOffHand): WeaponType[] => { + const playerCanDualWield = getBulkPlayerCanDualWield(player); + + return Array.from( + new Set( + player + .getPlayerClass() + .weaponTypes.filter( + eligibleWeaponType => + slot === ItemSlot.ItemSlotMainHand || + (playerCanDualWield && !TWO_HAND_ONLY_WEAPON_TYPES.includes(eligibleWeaponType.weaponType)), + ) + .map(eligibleWeaponType => eligibleWeaponType.weaponType), + ), + ); }; -export const binomialCoefficient = (n: number, k: number): number => { - if (Number.isNaN(n) || Number.isNaN(k)) return NaN; - if (k < 0 || k > n) return 0; - if (k === 0 || k === n) return 1; - if (k === 1 || k === n - 1) return n; - if (n - k < k) k = n - k; - let res = n; - for (let j = 2; j <= k; j++) res *= (n - j + 1) / j; - return Math.round(res); +export const cleanBulkDpsMetrics = (dpsMetrics: DistributionMetrics): DistributionMetrics => { + dpsMetrics.hist = []; + dpsMetrics.allValues = []; + return dpsMetrics; }; -export function getAllPairs(arr: T[]): [T, T][] { - const pairs: [T, T][] = []; - for (let i = 0; i < arr.length; i++) { - for (let j = i + 1; j < arr.length; j++) { - pairs.push([arr[i], arr[j]]); +export const dedupeGearSets = (gearSets: Gear[], existingGearSets: Gear[] = []): Gear[] => { + const seenGearKeys = new Set(); + for (let i = 0; i < existingGearSets.length; i++) { + seenGearKeys.add(getGearIdentityKey(existingGearSets[i].asSpec())); + } + + const deduped: Gear[] = []; + for (let i = 0; i < gearSets.length; i++) { + const gear = gearSets[i]; + const gearKey = getGearIdentityKey(gear.asSpec()); + if (seenGearKeys.has(gearKey)) { + continue; } + seenGearKeys.add(gearKey); + deduped.push(gear); } - return pairs; + + return deduped; +}; + +export const shouldRunOptimisationStage = (stage: OptimisationStage, candidateCount: number): boolean => { + const maxSurvivors = STAGE_CONFIG[stage].maxSurvivors; + return maxSurvivors === undefined || candidateCount > maxSurvivors; +}; + +export const getOptimisationStageMinIterations = (stage: OptimisationStage, highStageIterations: number): number => + STAGE_CONFIG[stage].minIterations ?? highStageIterations; + +export const bulkSimStageToOptimisationStage = (stage: BulkSimStage): OptimisationStage | 'reforging' | null => { + switch (stage) { + case BulkSimStage.BulkSimStageReforge: + return 'reforging'; + case BulkSimStage.BulkSimStageLow: + return 'low'; + case BulkSimStage.BulkSimStageMedium: + return 'medium'; + case BulkSimStage.BulkSimStageHigh: + return 'high'; + default: + return null; + } +}; + +export const getCoreBulkSimTrackingMetrics = (result: BulkSimResult): Record => { + const metrics: Record = { + total_sim_rounds: result.stageMetrics.reduce((total, stage) => total + stage.inputGearSets + 1, 0), + }; + + for (const stage of result.stageMetrics) { + const stageName = bulkSimStageToOptimisationStage(stage.stage); + if (!stageName) continue; + metrics[`${stageName}_skipped`] = 0; + metrics[`${stageName}_input_gear_sets`] = stage.inputGearSets; + metrics[`${stageName}_results`] = stage.survivors; + metrics[`${stageName}_survivors`] = stage.survivors; + metrics[`${stageName}_iterations`] = stage.iterations; + metrics[`${stageName}_target_error_pct`] = stage.targetErrorPct; + metrics[`${stageName}_concurrency`] = stage.concurrency; + metrics[`${stageName}_duration_seconds`] = Math.round(stage.durationSeconds); + } + + if (result.timings) { + metrics.core_simming_duration_seconds = Math.round(result.timings.simmingSeconds); + metrics.core_total_duration_seconds = Math.round(result.timings.totalSeconds); + } + + return metrics; +}; + +export const makeBulkGearDatabase = (db: Database, gearSets: Gear[], extraItems: EquippedItem[] = []): SimDatabase => { + const items = new Map(); + const randomSuffixes = new Map(); + const reforgeStats = new Map(); + const itemEffectRandPropPoints = new Map(); + const enchants = new Map(); + const gems = new Map(); + + const addEquippedItem = (equippedItem: EquippedItem) => { + const item = equippedItem.item; + items.set(item.id, item); + + const randomSuffix = equippedItem.randomSuffix; + if (randomSuffix) randomSuffixes.set(randomSuffix.id, randomSuffix); + + const itemReforge = equippedItem.reforge; + if (itemReforge) { + const reforge = db.getReforgeById(itemReforge.id); + if (reforge) reforgeStats.set(reforge.id, reforge); + } + + const scalingIlvls = new Set([equippedItem.ilvl]); + Object.values(item.scalingOptions ?? {}).forEach(opt => { + if (opt?.ilvl) scalingIlvls.add(opt.ilvl); + }); + scalingIlvls.forEach(ilvl => { + const rpp = db.getItemEffectRandPropPoints(ilvl); + if (rpp) itemEffectRandPropPoints.set(rpp.ilvl, rpp); + }); + + const enchant = equippedItem.enchant; + if (enchant) enchants.set(enchant.effectId, enchant); + + const tinker = equippedItem.tinker; + if (tinker) enchants.set(tinker.effectId, tinker); + + for (const gem of equippedItem.gems) { + if (gem) gems.set(gem.id, gem); + } + }; + + for (const gearSet of gearSets) { + for (const equippedItem of gearSet.asArray()) { + if (equippedItem) addEquippedItem(equippedItem); + } + } + for (const equippedItem of extraItems) { + addEquippedItem(equippedItem); + } + + return SimDatabase.create({ + items: Array.from(items.values()).map(item => SimItem.fromJson(Item.toJson(item), { ignoreUnknownFields: true })), + randomSuffixes: Array.from(randomSuffixes.values()), + reforgeStats: Array.from(reforgeStats.values()), + itemEffectRandPropPoints: Array.from(itemEffectRandPropPoints.values()), + enchants: Array.from(enchants.values()).map(enchant => SimEnchant.fromJson(Enchant.toJson(enchant), { ignoreUnknownFields: true })), + gems: Array.from(gems.values()).map(gem => SimGem.fromJson(Gem.toJson(gem), { ignoreUnknownFields: true })), + }); +}; + +export const makeBulkItemDatabaseFromSpecs = (db: Database, baselineGear: Gear, itemSpecs: readonly ItemSpec[]): SimDatabase => { + const extraItems = itemSpecs + .map(itemSpec => (itemSpec ? db.lookupItemSpec(itemSpec) : null)) + .filter((item): item is EquippedItem => item != null); + return makeBulkGearDatabase(db, [baselineGear], extraItems); +}; + +type BulkSimReforgeCacheData = { + cache: ReforgeGearCache; + candidates: BulkGearCandidate[]; + optimizedCandidates: BulkGearCandidate[]; + cachedOptimizedGearSets: Gear[]; + cacheKeysByCandidateIndex: Map; +}; + +export type BulkSimReforgeCacheProgress = { + stage?: 'candidate-build' | 'cache-restore'; + processedCandidates: number; + totalCandidates: number; + restoredCandidates: number; +}; + +type BulkSimReforgeCacheContext = { + player: Player; + gearSets?: Gear[]; + candidateSpecs?: EquipmentSpec[]; + candidateGearKeys?: string[]; + candidateIndices?: number[]; + db: Database; + reforgeRequest: ReforgeOptimizeRequest; + raidBuffs: RaidBuffs; + partyBuffs: PartyBuffs | undefined; + debuffs: Debuffs; + onProgress?: (progress: BulkSimReforgeCacheProgress) => void; + signal?: AbortSignal; +}; + +export async function getBulkSimReforgeCacheData({ + player, + gearSets, + candidateSpecs, + candidateGearKeys, + candidateIndices, + db, + reforgeRequest, + raidBuffs, + partyBuffs, + debuffs, + onProgress, + signal, +}: BulkSimReforgeCacheContext): Promise { + throwIfAborted(signal); + if (!gearSets && !candidateSpecs) { + throw new Error('Either gearSets or candidateSpecs must be provided for cache restore.'); + } + + const cache = ReforgeGearCache.get(player.getPlayerSpec()); + const configHash = await ReforgeOptimizer.getConfigHash({ player, reforgeRequest, raidBuffs, partyBuffs, debuffs }); + const frozenItemSlots = + reforgeRequest.settings?.freezeItemSlots && reforgeRequest.settings.frozenItemSlots.length ? reforgeRequest.settings.frozenItemSlots : undefined; + const totalCandidates = candidateSpecs?.length ?? gearSets!.length; + onProgress?.({ + stage: 'cache-restore', + processedCandidates: 0, + totalCandidates, + restoredCandidates: 0, + }); + + let lastYieldAt = performance.now(); + + const candidates: BulkGearCandidate[] = []; + const optimizedCandidates: BulkGearCandidate[] = []; + const cachedOptimizedGearSets: Gear[] = []; + const cacheKeysByCandidateIndex = new Map(); + const pendingEntries: Array<{ index: number; spec: EquipmentSpec; cacheKey: string }> = []; + + let processedCandidates = 0; + let restoredCandidates = 0; + const shouldLookupCache = await cache.hasEntries(); + + const flushPendingEntries = async () => { + if (!pendingEntries.length) { + return; + } + + const cachedGearByKey = shouldLookupCache + ? await cache.getMany( + pendingEntries.map(entry => entry.cacheKey), + signal, + ) + : new Map(); + for (const entry of pendingEntries) { + throwIfAborted(signal); + const cachedGear = cachedGearByKey.get(entry.cacheKey); + if (cachedGear) { + optimizedCandidates.push(BulkGearCandidate.create({ index: entry.index, gear: cachedGear })); + cachedOptimizedGearSets.push(db.lookupEquipmentSpec(cachedGear)); + restoredCandidates++; + } else { + candidates.push(BulkGearCandidate.create({ index: entry.index, gear: entry.spec })); + cacheKeysByCandidateIndex.set(entry.index, entry.cacheKey); + } + + processedCandidates++; + if (processedCandidates % BULK_CACHE_PROGRESS_CHECK_MODULO === 0 || processedCandidates === totalCandidates) { + const now = performance.now(); + if (processedCandidates === totalCandidates || now - lastYieldAt >= BULK_CACHE_YIELD_BUDGET_MS) { + onProgress?.({ + stage: 'cache-restore', + processedCandidates, + totalCandidates, + restoredCandidates, + }); + await sleep(0); + lastYieldAt = performance.now(); + } + } + } + + pendingEntries.length = 0; + }; + + for (let i = 0; i < totalCandidates; i++) { + throwIfAborted(signal); + const spec = candidateSpecs?.[i] ?? gearSets![i].asSpec(); + const gearKey = candidateGearKeys?.[i] ?? getReforgeCacheGearKey(gearSets![i].asSpec(), frozenItemSlots); + const candidateIndex = candidateIndices?.[i] ?? i; + const cacheKey = await ReforgeGearCache.getKey(gearKey, configHash); + pendingEntries.push({ index: candidateIndex, spec, cacheKey }); + + if (pendingEntries.length >= BULK_CACHE_LOOKUP_BATCH_SIZE || i + 1 === totalCandidates) { + await flushPendingEntries(); + } + } + + return { cache, candidates, optimizedCandidates, cachedOptimizedGearSets, cacheKeysByCandidateIndex }; } + +export async function writeBulkSimReforgeCacheResults(optimizedCandidates: BulkGearCandidate[], cacheData: BulkSimReforgeCacheData): Promise { + const cacheEntries: Array<{ key: string; optimizedGear: EquipmentSpec }> = []; + for (let i = 0; i < optimizedCandidates.length; i++) { + const candidate = optimizedCandidates[i]; + const cacheKey = cacheData.cacheKeysByCandidateIndex.get(candidate.index); + if (!cacheKey || !candidate.gear) { + continue; + } + cacheEntries.push({ key: cacheKey, optimizedGear: candidate.gear }); + } + await cacheData.cache.setGearMany(cacheEntries); +} + +export const throwIfAborted = (signal?: AbortSignal, errorMessage = 'Bulk Sim Aborted'): void => { + if (signal?.aborted) { + throw new Error(errorMessage); + } +}; diff --git a/ui/core/components/individual_sim_ui/bulk_tab.tsx b/ui/core/components/individual_sim_ui/bulk_tab.tsx index ce93526c51..5db1e39a05 100644 --- a/ui/core/components/individual_sim_ui/bulk_tab.tsx +++ b/ui/core/components/individual_sim_ui/bulk_tab.tsx @@ -6,57 +6,59 @@ import { ref } from 'tsx-vanilla'; import { REPO_RELEASES_URL } from '../../constants/other'; import { IndividualSimUI } from '../../individual_sim_ui'; import i18n from '../../../i18n/config'; -import { BulkSettings, DistributionMetrics, ProgressMetrics, RaidSimResult } from '../../proto/api'; -import { Class, GemColor, HandType, ItemRandomSuffix, ItemSlot, ItemSpec, RangedWeaponType, ReforgeStat, Spec, WeaponType } from '../../proto/common'; -import { ItemEffectRandPropPoints, SimDatabase, SimEnchant, SimGem, SimItem } from '../../proto/db'; -import { UIEnchant, UIGem, UIItem } from '../../proto/ui'; -import { ActionId } from '../../proto_utils/action_id'; +import { BulkRequiredSetBonus, BulkSettings, BulkSimStage, DistributionMetrics, ProgressMetrics } from '../../proto/api'; +import { ItemSlot, ItemSpec, Spec, WeaponType } from '../../proto/common'; import { EquippedItem } from '../../proto_utils/equipped_item'; import { Gear } from '../../proto_utils/gear'; -import { getEmptyGemSocketIconUrl } from '../../proto_utils/gems'; -import { canEquipItem, getEligibleItemSlots, isSecondaryItemSlot } from '../../proto_utils/utils'; +import { canEquipItem, getEligibleItemSlots, getGearIdentityKey, isSecondaryItemSlot } from '../../proto_utils/utils'; import { RequestTypes } from '../../sim_signal_manager'; import { RelativeStatCap } from '../suggest_reforges_action'; import { TypedEvent } from '../../typed_event'; -import { getEnumValues, isExternal, promisePool, sleep } from '../../utils'; -import { ItemData } from '../gear_picker/item_list'; +import { formatDurationSeconds, formatToNumber, getEnumValues, isDevMode, isExternal, sleep } from '../../utils'; import SelectorModal from '../gear_picker/selector_modal'; import { SimTab } from '../sim_tab'; import Toast from '../toast'; import BulkItemPickerGroup from './bulk/bulk_item_picker_group'; import BulkItemSearch from './bulk/bulk_item_search'; import BulkSimResultRenderer from './bulk/bulk_sim_results_renderer'; -import GemSelectorModal from './bulk/gem_selector_modal'; +import { runCoreBulkSim as runCoreBulkSimImpl } from './bulk/core_sim'; import { - binomialCoefficient, + BULK_SIM_ITEM_SLOT_TO_ITEM_SLOT_PAIRS, + BULK_SIM_ITEM_SLOT_TO_SINGLE_ITEM_SLOT, BulkSimItemSlot, - bulkSimItemSlotToSingleItemSlot, - bulkSimItemSlotToItemSlotPairs, - getAllPairs, + dedupeGearSets, getBulkItemSlotFromSlot, + getBulkPlayerCanDualWield, + getBulkFreezeWeaponTypes, } from './bulk/utils'; +import { + BulkSimProgressConfig, + NATIVE_COMBINATIONS_LIMIT, + NATIVE_ITERATIONS_LIMIT, + TopGearResult, + WEB_COMBINATIONS_LIMIT, + WEB_ITERATIONS_LIMIT, +} from './bulk/types'; import { BulkGearJsonImporter } from './importers'; import { BooleanPicker } from '../pickers/boolean_picker'; import { trackEvent } from '../../../tracking/utils'; import { EnumPicker } from '../pickers/enum_picker'; -import { translateBulkSlotName, translateWeaponType } from '../../../i18n/localization'; +import { translateWeaponType } from '../../../i18n/localization'; import { ProgressTrackerModal } from '../progress_tracker_modal'; +import { ReforgeOptimizeConfig } from '../../sim'; -const WEB_DEFAULT_ITERATIONS = 5_000; -const WEB_ITERATIONS_LIMIT = 100_000; -const LOCAL_ITERATIONS_LIMIT = 5_000_000; - -const WEB_COMBINATIONS_LIMIT = 50_000; -const LOCAL_COMBINATIONS_LIMIT = 100_000; +const BULK_SETTINGS_STORAGE_KEY = 'bulk-settings.v2'; +const LEGACY_BULK_SETTINGS_STORAGE_KEY = 'bulk-settings.v1'; -export interface TopGearResult { - gear: Gear; - dpsMetrics: DistributionMetrics; -} +type BulkSetBonusOption = { + setId: number; + setName: string; + totalPieces: number; +}; export class BulkTab extends SimTab { readonly simUI: IndividualSimUI; - readonly playerCanDualWield: boolean; + playerCanDualWield: boolean; readonly playerIsFuryWarrior: boolean; readonly itemsChangedEmitter = new TypedEvent(); @@ -79,13 +81,22 @@ export class BulkTab extends SimTab { protected pickerGroups: Map = new Map(); protected simStart: number = 0; + protected bulkSimStartedAt: number = 0; protected combinations = 0; protected iterations = 0; protected isRunning: boolean = false; protected isCancelling = false; protected bulkSimAbortController: AbortController | null = null; - - inheritUpgrades: boolean; + protected bulkSimAbortPromise: Promise | null = null; + protected bulkSimUsesWasmConcurrency = false; + protected rawCombinations = 0; + protected usesLegacyBulkSim = false; + private combinationsCalcRequestVersion = 0; + private webSimWarningContainer: HTMLElement | null = null; + + inheritUpgrades: boolean = true; + useLegacyBulkSim: boolean = false; + requiredSetBonuses: Map = new Map(); frozenItems: Map = new Map([ [BulkSimItemSlot.ItemSlotFinger, null], [BulkSimItemSlot.ItemSlotTrinket, null], @@ -95,8 +106,6 @@ export class BulkTab extends SimTab { [ItemSlot.ItemSlotMainHand, []], [ItemSlot.ItemSlotOffHand, []], ]); - fallbackGems: SimGem[]; - gemIconElements: HTMLImageElement[]; protected topGearResults: TopGearResult[] | null = null; protected originalGear: Gear | null = null; @@ -106,7 +115,7 @@ export class BulkTab extends SimTab { super(parentElem, simUI, { identifier: 'bulk-tab', title: i18n.t('bulk_tab.title') }); this.simUI = simUI; - this.playerCanDualWield = this.simUI.player.getPlayerSpec().canDualWield && this.simUI.player.getClass() !== Class.ClassHunter; + this.playerCanDualWield = getBulkPlayerCanDualWield(this.simUI.player); this.playerIsFuryWarrior = this.simUI.player.getSpec() === Spec.SpecFuryWarrior; const setupTabBtnRef = ref(); @@ -198,19 +207,26 @@ export class BulkTab extends SimTab { id: 'bulk-sim-progress-tracker', title: 'Bulk Sim', hasProgressBar: true, - onCancel: () => { - this.abortBulkSim(); + onCancel: async () => { + if (!this.isRunning || this.isCancelling) return; + + trackEvent({ + action: 'sim', + category: 'batch_sim', + label: 'batch_cancel', + value: this.bulkSimStartedAt > 0 ? Math.round((new Date().getTime() - this.bulkSimStartedAt) / 1000) : 0, + }); + + this.isCancelling = true; + await this.abortBulkSimWork(); }, }); - this.inheritUpgrades = true; - this.fallbackGems = Array.from({ length: 5 }, () => UIGem.create()); - this.gemIconElements = []; - this.buildTabContent(); this.simUI.sim.waitForInit().then(() => { this.loadSettings(); + this.updateWebSimWarning(); const loadEquippedItems = () => { if (this.isRunning) { return; @@ -226,9 +242,45 @@ export class BulkTab extends SimTab { } } + const equippedIds = new Set( + this.simUI.player + .getEquippedItems() + .filter(Boolean) + .map(item => item!.id), + ); + + // Sync user-added pickers with currently equipped state: + // - Hide pickers for items that are now equipped (the dedicated equipped slot covers them). + // - Restore pickers for items that are no longer equipped but still in the user's list. + for (let idx = 0; idx < this.items.length; idx++) { + const itemSpec = this.items[idx]; + if (!itemSpec) continue; + + const equippedItem = this.simUI.sim.db + .lookupItemSpec(itemSpec) + ?.withChallengeMode(this.simUI.player.getChallengeModeEnabled()) + .withDynamicStats(); + if (!equippedItem) continue; + + getEligibleItemSlots(equippedItem.item, this.playerIsFuryWarrior).forEach(slot => { + if (this.isSecondaryItemSlot(slot) || !canEquipItem(equippedItem.item, this.simUI.player.getPlayerSpec(), slot)) return; + + const bulkSlot = getBulkItemSlotFromSlot(slot, this.playerCanDualWield); + const group = this.pickerGroups.get(bulkSlot); + if (!group) return; + + if (equippedIds.has(itemSpec.id)) { + if (group.has(idx)) group.remove(idx, true); + } else { + if (!group.has(idx)) group.add(idx, equippedItem, true); + } + }); + } + this.simUI.player.getEquippedItems().forEach((equippedItem, slot) => { const bulkSlot = getBulkItemSlotFromSlot(slot, this.playerCanDualWield); - const group = this.pickerGroups.get(bulkSlot)!; + const group = this.pickerGroups.get(bulkSlot); + if (!group) return; const idx = this.isSecondaryItemSlot(slot) ? -2 : -1; if (equippedItem) { group.add(idx, equippedItem, true); @@ -238,7 +290,7 @@ export class BulkTab extends SimTab { this.itemsChangedEmitter.emit(TypedEvent.nextEventID()); }; const updateCombinationsCount = () => { - this.combinationsElem.replaceChildren(this.getCombinationsCount()); + void this.refreshCombinationsCount(); }; TypedEvent.onAny([this.simUI.player.challengeModeChangeEmitter, this.simUI.player.gearChangeEmitter]).on(() => loadEquippedItems()); @@ -253,10 +305,12 @@ export class BulkTab extends SimTab { } private getSettingsKey(): string { - return this.simUI.getStorageKey('bulk-settings.v1'); + return this.simUI.getStorageKey(BULK_SETTINGS_STORAGE_KEY); } private loadSettings() { + window.localStorage.removeItem(this.simUI.getStorageKey(LEGACY_BULK_SETTINGS_STORAGE_KEY)); + const storedSettings = window.localStorage.getItem(this.getSettingsKey()); if (storedSettings != null) { let settings: BulkSettings; @@ -270,32 +324,21 @@ export class BulkTab extends SimTab { this.addItems(settings.items, true); this.setInheritUpgrades(settings.inheritUpgrades); + this.setUseLegacyBulkSim(settings.useLegacyBulkSim); this.setFrozenItem(BulkSimItemSlot.ItemSlotFinger, this.getEquippedItemForFrozenSlot(BulkSimItemSlot.ItemSlotFinger, settings.freezeRingSlot)); this.setFrozenItem(BulkSimItemSlot.ItemSlotTrinket, this.getEquippedItemForFrozenSlot(BulkSimItemSlot.ItemSlotTrinket, settings.freezeTrinketSlot)); this.setFrozenWeaponSlot(settings.freezeWeaponSlot); - this.setWeaponTypeFilter(ItemSlot.ItemSlotMainHand, settings.freezeMainhandWeaponSlots); - this.setWeaponTypeFilter(ItemSlot.ItemSlotOffHand, settings.freezeOffhandWeaponSlots); - this.fallbackGems = new Array( - SimGem.create({ id: settings.defaultRedGem }), - SimGem.create({ id: settings.defaultYellowGem }), - SimGem.create({ id: settings.defaultBlueGem }), - SimGem.create({ id: settings.defaultMetaGem }), - SimGem.create({ id: settings.defaultPrismaticGem }), - ); - - this.fallbackGems.forEach((gem, idx) => { - ActionId.fromItemId(gem.id) - .fill() - .then(filledId => { - if (gem.id) { - this.gemIconElements[idx].src = filledId.iconUrl; - this.gemIconElements[idx].classList.remove('hide'); - } - }); - }); + this.setWeaponTypeFilter(ItemSlot.ItemSlotMainHand, this.sanitizeWeaponTypeFilter(ItemSlot.ItemSlotMainHand, settings.freezeMainhandWeaponSlots)); + this.setWeaponTypeFilter(ItemSlot.ItemSlotOffHand, this.sanitizeWeaponTypeFilter(ItemSlot.ItemSlotOffHand, settings.freezeOffhandWeaponSlots)); + this.setRequiredSetBonuses(settings.requiredSetBonuses); } } + private sanitizeWeaponTypeFilter(slot: ItemSlot.ItemSlotMainHand | ItemSlot.ItemSlotOffHand, weaponTypes: WeaponType[]): WeaponType[] { + const selectableWeaponTypes = getBulkFreezeWeaponTypes(this.simUI.player, slot); + return weaponTypes.filter(weaponType => selectableWeaponTypes.includes(weaponType)); + } + private storeSettings() { const settings = this.createBulkSettings(); const setStr = BulkSettings.toJsonString(settings, { enumAsInteger: true }); @@ -306,75 +349,38 @@ export class BulkTab extends SimTab { return BulkSettings.create({ items: this.getItems(), inheritUpgrades: this.inheritUpgrades, - defaultRedGem: this.fallbackGems[0].id, - defaultYellowGem: this.fallbackGems[1].id, - defaultBlueGem: this.fallbackGems[2].id, - defaultMetaGem: this.fallbackGems[3].id, - defaultPrismaticGem: this.fallbackGems[4].id, + useLegacyBulkSim: this.useLegacyBulkSim, iterationsPerCombo: this.getDefaultIterationsCount(), freezeRingSlot: this.getFrozenItemSlot(BulkSimItemSlot.ItemSlotFinger), freezeTrinketSlot: this.getFrozenItemSlot(BulkSimItemSlot.ItemSlotTrinket), freezeWeaponSlot: this.frozenWeaponSlot, freezeMainhandWeaponSlots: this.weaponTypeFilters.get(ItemSlot.ItemSlotMainHand)?.slice(), freezeOffhandWeaponSlots: this.weaponTypeFilters.get(ItemSlot.ItemSlotOffHand)?.slice(), + requiredSetBonuses: this.getRequiredSetBonusesForSettings(), }); } private getDefaultIterationsCount(): number { - if (isExternal()) return WEB_DEFAULT_ITERATIONS; - return this.simUI.sim.getIterations(); } - protected createBulkItemsDatabase(): SimDatabase { - const itemsDb = SimDatabase.create(); - for (const is of this.items.values()) { - if (!is) continue; - - const item = this.simUI.sim.db.lookupItemSpec(is); - if (!item) { - throw new Error(`item with ID ${is.id} not found in database`); - } - itemsDb.items.push(SimItem.fromJson(UIItem.toJson(item.item), { ignoreUnknownFields: true })); - - const ieRpp = this.simUI.sim.db.getItemEffectRandPropPoints(item.ilvl); - if (ieRpp) { - itemsDb.itemEffectRandPropPoints.push(ItemEffectRandPropPoints.create(this.simUI.sim.db.getItemEffectRandPropPoints(item.ilvl))); - } - - if (item.enchant) { - itemsDb.enchants.push( - SimEnchant.fromJson(UIEnchant.toJson(item.enchant), { - ignoreUnknownFields: true, - }), - ); - } - if (item.randomSuffix) { - itemsDb.randomSuffixes.push( - ItemRandomSuffix.fromJson(ItemRandomSuffix.toJson(item.randomSuffix), { - ignoreUnknownFields: true, - }), - ); - } - if (item.reforge) { - itemsDb.reforgeStats.push( - ReforgeStat.fromJson(ReforgeStat.toJson(item.reforge), { - ignoreUnknownFields: true, - }), - ); - } - for (const gem of item.gems) { - if (gem) { - itemsDb.gems.push(SimGem.fromJson(UIGem.toJson(gem), { ignoreUnknownFields: true })); - } - } + private updateWebSimWarning() { + if (!this.webSimWarningContainer) { + return; } - for (const gem of this.fallbackGems) { - if (gem.id > 0) { - itemsDb.gems.push(gem); - } + + if (this.simUI.sim.isNative === false) { + this.webSimWarningContainer.replaceChildren( +

+ + + {i18n.t('bulk_tab.download_native')} + +

, + ); + } else { + this.webSimWarningContainer.replaceChildren(); } - return itemsDb; } // Add an item to its eligible bulk sim item slot(s). Mainly used for importing and search @@ -393,7 +399,9 @@ export class BulkTab extends SimTab { const idx = this.items.push(item) - 1; const bulkSlot = getBulkItemSlotFromSlot(slot, this.playerCanDualWield); const group = this.pickerGroups.get(bulkSlot)!; - group.add(idx, equippedItem, silent); + if (!group.add(idx, equippedItem, silent)) { + this.items.pop(); + } }); } }); @@ -409,7 +417,9 @@ export class BulkTab extends SimTab { const idx = this.items.push(item) - 1; const group = this.pickerGroups.get(bulkSlot)!; - group.add(idx, equippedItem); + if (!group.add(idx, equippedItem)) { + this.items.pop(); + } this.itemsChangedEmitter.emit(TypedEvent.nextEventID()); } } @@ -490,214 +500,199 @@ export class BulkTab extends SimTab { return result; } - protected getAllWeaponCombos(): [EquippedItem | null, EquippedItem | null][] { - const allWeaponCombos: [EquippedItem | null, EquippedItem | null][] = []; - - // First find any configured 2H weapons. - let all2HWeapons: EquippedItem[] = []; - - for (const bulkItemSlot of [BulkSimItemSlot.ItemSlotMainHand, BulkSimItemSlot.ItemSlotHandWeapon]) { - if (!this.pickerGroups.has(bulkItemSlot)) { - continue; - } - - const pickerGroup = this.pickerGroups.get(bulkItemSlot)!; - const allItemOptions: EquippedItem[] = Array.from(pickerGroup.pickers.values()).map(picker => picker.item); - all2HWeapons = all2HWeapons.concat( - allItemOptions.filter( - equippedItem => - ![RangedWeaponType.RangedWeaponTypeUnknown, RangedWeaponType.RangedWeaponTypeWand].includes(equippedItem.item.rangedWeaponType) || - equippedItem.item.handType == HandType.HandTypeTwoHand, - ), - ); - } - - for (const twoHandWeapon of all2HWeapons) { - allWeaponCombos.push([twoHandWeapon, null]); - } - - // Then loop through all pairs of MH and OH items. - const mhGroup = this.pickerGroups.get(BulkSimItemSlot.ItemSlotMainHand); - const ohGroup = this.pickerGroups.get(BulkSimItemSlot.ItemSlotOffHand); + private getAvailableBulkSetBonuses(): BulkSetBonusOption[] { + const setBonuses = new Map }>(); - if (mhGroup?.pickers.size) { - for (const mhItem of Array.from(mhGroup.pickers.values()).map(picker => picker.item)) { - if (all2HWeapons.includes(mhItem)) { - continue; - } + for (const pickerGroup of this.pickerGroups.values()) { + for (const picker of pickerGroup.pickers.values()) { + const item = picker.item.item; + if (!item.setId || !item.setName) continue; - if (ohGroup?.pickers.size) { - for (const ohItem of Array.from(ohGroup.pickers.values()).map(picker => picker.item)) { - allWeaponCombos.push([mhItem, ohItem]); - } - } else { - allWeaponCombos.push([mhItem, null]); + if (!setBonuses.has(item.setId)) { + setBonuses.set(item.setId, { + setId: item.setId, + setName: item.setName, + totalPieces: 0, + itemIds: new Set(), + }); } - } - } else if (ohGroup?.pickers.size) { - for (const ohItem of Array.from(ohGroup.pickers.values()).map(picker => picker.item)) { - allWeaponCombos.push([null, ohItem]); + setBonuses.get(item.setId)!.itemIds.add(item.id); } } - // Finally loop through all one-hand weapons. Double count these since they can go in either slot. - const oneHandGroup = this.pickerGroups.get(BulkSimItemSlot.ItemSlotHandWeapon); + return Array.from(setBonuses.values()) + .map(setBonus => ({ + setId: setBonus.setId, + setName: setBonus.setName, + totalPieces: setBonus.itemIds.size, + })) + .filter(setBonus => setBonus.setName && setBonus.totalPieces >= 2) + .sort((a, b) => a.setName.localeCompare(b.setName) || a.setId - b.setId); + } - if (oneHandGroup?.pickers.size) { - const allOneHandWeapons: EquippedItem[] = Array.from(oneHandGroup.pickers.values()) - .map(picker => picker.item) - .filter(item => !all2HWeapons.includes(item)); + private getRequiredSetBonusesForSettings(): BulkRequiredSetBonus[] { + const setBonusesById = new Map(this.getAvailableBulkSetBonuses().map(setBonus => [setBonus.setId, setBonus])); + return Array.from(this.requiredSetBonuses.values()) + .map(requiredSetBonus => { + const setBonus = setBonusesById.get(requiredSetBonus.setId); + if (!setBonus || requiredSetBonus.pieces > setBonus.totalPieces) return null; + return BulkRequiredSetBonus.create(requiredSetBonus); + }) + .filter((requiredSetBonus): requiredSetBonus is BulkRequiredSetBonus => requiredSetBonus !== null) + .sort((a, b) => a.setId - b.setId); + } - for (let i = 0; i < allOneHandWeapons.length; i++) { - if (allOneHandWeapons.slice(0, i).some((item: EquippedItem) => item.equals(allOneHandWeapons[i], true, true, true, this.inheritUpgrades))) { - continue; - } + private getRequiredFourPieceSetBonusId(): number | undefined { + return Array.from(this.requiredSetBonuses.entries()).find(([, requiredSetBonus]) => requiredSetBonus.pieces === 4)?.[0]; + } - for (let j = i + 1; j < allOneHandWeapons.length; j++) { - if ( - allOneHandWeapons - .slice(i + 1, j) - .some((item: EquippedItem) => item.equals(allOneHandWeapons[j], true, true, true, this.inheritUpgrades)) - ) { - continue; - } + private hasOtherRequiredSetBonus(setId: number, pieces?: number): boolean { + return Array.from(this.requiredSetBonuses.entries()).some( + ([requiredSetBonusId, requiredSetBonus]) => requiredSetBonusId !== setId && (pieces === undefined || requiredSetBonus.pieces === pieces), + ); + } - allWeaponCombos.push([allOneHandWeapons[i], allOneHandWeapons[j]]); + private canEnableRequiredTwoPiece(setId: number): boolean { + if (this.requiredSetBonuses.get(setId)?.pieces === 2) return true; - if (!allOneHandWeapons[i].equals(allOneHandWeapons[j], true, true, true, this.inheritUpgrades)) { - allWeaponCombos.push([allOneHandWeapons[j], allOneHandWeapons[i]]); - } - } - } - } - - return allWeaponCombos.filter(([mhItem, ohItem]) => this.weaponComboMatchesSettings(mhItem, ohItem)); + const fourPieceSetBonusId = this.getRequiredFourPieceSetBonusId(); + return (fourPieceSetBonusId === undefined || fourPieceSetBonusId === setId) && this.canSatisfyRequiredSetBonus(setId, 2); } - protected getItemsForCombo(comboIdx: number): Map { - const itemsForCombo = new Map(); + private canEnableRequiredFourPiece(setBonus: BulkSetBonusOption): boolean { + if (this.requiredSetBonuses.get(setBonus.setId)?.pieces === 4) return true; - // Deal with weapon combos first since they bridge multiple slots. - const allWeaponPairs = this.getAllWeaponCombos(); - const numWeaponPairs = allWeaponPairs.length; + const fourPieceSetBonusId = this.getRequiredFourPieceSetBonusId(); + return ( + setBonus.totalPieces >= 4 && + (fourPieceSetBonusId === undefined || fourPieceSetBonusId === setBonus.setId) && + !this.hasOtherRequiredSetBonus(setBonus.setId, 2) && + this.canSatisfyRequiredSetBonus(setBonus.setId, 4) + ); + } - if (numWeaponPairs > 0) { - const weaponPairIdx = comboIdx % numWeaponPairs; - comboIdx = Math.floor(comboIdx / numWeaponPairs); - const weaponPairToUse = allWeaponPairs[weaponPairIdx]; + private hasMatchingRequiredSetBonusCombination(requiredSetBonuses: BulkRequiredSetBonus[]): boolean { + if (!requiredSetBonuses.length) return true; - if (weaponPairToUse[0]) { - itemsForCombo.set(ItemSlot.ItemSlotMainHand, weaponPairToUse[0]); - } + const requiredSetBonusIndexes = new Map(); + requiredSetBonuses.forEach((requiredSetBonus, index) => { + requiredSetBonusIndexes.set(requiredSetBonus.setId, index); + }); - if (weaponPairToUse[1]) { - itemsForCombo.set(ItemSlot.ItemSlotOffHand, weaponPairToUse[1]); - } - } + const requiredPieces = requiredSetBonuses.map(requiredSetBonus => requiredSetBonus.pieces); + const baseGear = this.originalGear ?? this.simUI.player.getGear(); + const baseCounts = new Array(requiredSetBonuses.length).fill(0); + baseGear.getEquippedItems().forEach(equippedItem => this.addItemToRequiredSetBonusCounts(baseCounts, requiredSetBonusIndexes, equippedItem, 1)); + + const dimensions: number[][][] = []; for (const [bulkItemSlot, pickerGroup] of this.pickerGroups.entries()) { if ( - pickerGroup.pickers.size == 0 || - [BulkSimItemSlot.ItemSlotMainHand, BulkSimItemSlot.ItemSlotOffHand, BulkSimItemSlot.ItemSlotHandWeapon].includes(bulkItemSlot) + pickerGroup.pickers.size === 0 || + [ + BulkSimItemSlot.ItemSlotMainHand, + BulkSimItemSlot.ItemSlotOffHand, + BulkSimItemSlot.ItemSlotHandWeapon, + BulkSimItemSlot.ItemSlotFinger, + BulkSimItemSlot.ItemSlotTrinket, + ].includes(bulkItemSlot) ) { continue; } const optionsForSlot: EquippedItem[] = Array.from(pickerGroup.pickers.values()).map(picker => picker.item); - const numOptions = optionsForSlot.length; + const slotToUse = BULK_SIM_ITEM_SLOT_TO_SINGLE_ITEM_SLOT.get(bulkItemSlot)!; + dimensions.push(optionsForSlot.map(option => this.getRequiredSetBonusOptionDeltas(baseGear, requiredSetBonusIndexes, [[slotToUse, option]]))); + } - if ([BulkSimItemSlot.ItemSlotFinger, BulkSimItemSlot.ItemSlotTrinket].includes(bulkItemSlot)) { - if (numOptions < 2) { - throw `At least 2 items must be selected for ${translateBulkSlotName(bulkItemSlot)}`; - } + const clampCounts = (counts: number[]) => counts.map((count, index) => Math.min(requiredPieces[index], Math.max(0, count))); + let states = new Map(); + const initialState = clampCounts(baseCounts); + states.set(initialState.join(','), initialState); - let pairsForSlot = getAllPairs(optionsForSlot); - const frozenItem = this.frozenItems.get(bulkItemSlot); + for (const optionDeltas of dimensions) { + if (!optionDeltas.length) { + return false; + } - if (frozenItem) { - pairsForSlot = optionsForSlot.filter(option => !frozenItem.equals(option)).map(option => [frozenItem, option]); + const nextStates = new Map(); + for (const counts of states.values()) { + for (const deltas of optionDeltas) { + const nextCounts = clampCounts(counts.map((count, index) => count + deltas[index])); + nextStates.set(nextCounts.join(','), nextCounts); } + } - const numPairs = pairsForSlot.length; - const pairIdx = comboIdx % numPairs; - comboIdx = Math.floor(comboIdx / numPairs); - const pairToUse = pairsForSlot[pairIdx]; - const slotsToUse = bulkSimItemSlotToItemSlotPairs.get(bulkItemSlot)!; - itemsForCombo.set(slotsToUse[0], pairToUse[0]); - itemsForCombo.set(slotsToUse[1], pairToUse[1]); - } else { - const optionIdx = comboIdx % numOptions; - comboIdx = Math.floor(comboIdx / numOptions); - itemsForCombo.set(bulkSimItemSlotToSingleItemSlot.get(bulkItemSlot)!, optionsForSlot[optionIdx]); + if (!nextStates.size) { + return false; } + states = nextStates; } - return itemsForCombo; - } - - private getFrozenWeaponItem(): EquippedItem | undefined { - if (!this.frozenWeaponSlot) { - return undefined; + for (const counts of states.values()) { + if (counts.every((count, index) => count >= requiredPieces[index])) { + return true; + } } - return this.simUI.player.getGear().getEquippedItem(this.frozenWeaponSlot) || undefined; + return false; } - private matchesWeaponTypeFilter(equippedItem: EquippedItem | null, slot: ItemSlot.ItemSlotMainHand | ItemSlot.ItemSlotOffHand): boolean { - const filter = this.weaponTypeFilters.get(slot)!; - if (filter.length === 0) { - return true; - } + private addItemToRequiredSetBonusCounts(counts: number[], requiredSetBonusIndexes: Map, equippedItem: EquippedItem | null, delta: number) { + const item = equippedItem?.item; + if (!item?.setId) return; - if (!equippedItem) { - return false; - } + const index = requiredSetBonusIndexes.get(item.setId); + if (index === undefined) return; - return equippedItem.item.weaponType > WeaponType.WeaponTypeUnknown && filter.includes(equippedItem.item.weaponType); + counts[index] += delta; } - private weaponComboMatchesSettings(mhItem: EquippedItem | null, ohItem: EquippedItem | null): boolean { - const frozenWeaponItem = this.getFrozenWeaponItem(); - - if (this.frozenWeaponSlot === ItemSlot.ItemSlotMainHand && frozenWeaponItem && !mhItem?.equals(frozenWeaponItem)) { - return false; - } - if (this.frozenWeaponSlot === ItemSlot.ItemSlotOffHand && frozenWeaponItem && !ohItem?.equals(frozenWeaponItem)) { - return false; + private getRequiredSetBonusOptionDeltas( + baseGear: Gear, + requiredSetBonusIndexes: Map, + slotItems: Array<[ItemSlot, EquippedItem | null]>, + ): number[] { + const deltas = new Array(requiredSetBonusIndexes.size).fill(0); + for (const [slot, equippedItem] of slotItems) { + this.addItemToRequiredSetBonusCounts(deltas, requiredSetBonusIndexes, baseGear.getEquippedItem(slot), -1); + this.addItemToRequiredSetBonusCounts(deltas, requiredSetBonusIndexes, equippedItem, 1); } - - return this.matchesWeaponTypeFilter(mhItem, ItemSlot.ItemSlotMainHand) && this.matchesWeaponTypeFilter(ohItem, ItemSlot.ItemSlotOffHand); + return deltas; } - protected calculateBulkCombinations() { + protected async calculateBulkCombinations() { try { - let numCombinations: number = this.getAllWeaponCombos().length; - - for (const [bulkItemSlot, pickerGroup] of this.pickerGroups.entries()) { - if ([BulkSimItemSlot.ItemSlotMainHand, BulkSimItemSlot.ItemSlotOffHand, BulkSimItemSlot.ItemSlotHandWeapon].includes(bulkItemSlot)) { - continue; - } - - const numOptions: number = pickerGroup.pickers.size; - - if (numOptions > 1 && [BulkSimItemSlot.ItemSlotFinger, BulkSimItemSlot.ItemSlotTrinket].includes(bulkItemSlot)) { - if (this.frozenItems.get(bulkItemSlot)) { - numCombinations *= numOptions - 1; - } else { - numCombinations *= binomialCoefficient(numOptions, 2); - } - } else { - numCombinations *= Math.max(numOptions, 1); - } + const bulkSettings = this.createBulkSettings(); + const combinationCountResult = await this.simUI.sim.getBulkCombinationCount(bulkSettings); + if (combinationCountResult.error) { + throw new Error(combinationCountResult.error.message || 'Failed to calculate bulk combinations'); } - - this.combinations = numCombinations; - this.iterations = this.simUI.sim.getIterations() * numCombinations; + this.rawCombinations = combinationCountResult.rawCombinations; + this.combinations = combinationCountResult.combinations; + this.iterations = combinationCountResult.iterations; + this.usesLegacyBulkSim = combinationCountResult.useLegacyBulkSim; } catch (e) { this.simUI.handleCrash(e); } } + private async refreshCombinationsCount() { + const requestVersion = ++this.combinationsCalcRequestVersion; + this.combinationsElem.replaceChildren(this.getCombinationsLoading()); + await this.calculateBulkCombinations(); + if (requestVersion !== this.combinationsCalcRequestVersion) { + return; + } + this.combinationsElem.replaceChildren(this.getCombinationsCount()); + } + + private canSatisfyRequiredSetBonus(setId: number, pieces: number): boolean { + const requiredSetBonuses = Array.from(this.requiredSetBonuses.values()).filter(requiredSetBonus => requiredSetBonus.setId !== setId); + requiredSetBonuses.push(BulkRequiredSetBonus.create({ setId, pieces })); + return this.hasMatchingRequiredSetBonusCombination(requiredSetBonuses); + } + protected buildTabContent() { this.buildSetupTabContent(); this.buildResultsTabContent(); @@ -708,18 +703,12 @@ export class BulkTab extends SimTab { const bagImportBtnRef = ref(); const favsImportBtnRef = ref(); const clearBtnRef = ref(); + const webSimWarningRef = ref(); this.setupTabElem.appendChild( <> {/* // TODO: Remove once we're more comfortable with the state of Batch sim */}

- {isExternal() && ( -

- - - {i18n.t('bulk_tab.download_local')} - -

- )} +