Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,11 @@ Trinket Lab is one trinket tier list per specialization, charted the way Bloodma

The candidates are every trinket in the active season's loot tables — raid, Mythic+ (reissued older dungeon trinkets included, through the season's own tables), delves and crafting — filtered for the specialization as Upgrade Finder filters them. Each is simulated at every chosen item level, the top of an upgrade track (Champion, Hero and Myth by default), below the level its own source can give it, and then at that level: a delve or dungeon trinket stops at the top of the Hero track, a raid trinket reaches the Myth track and a last boss's its own higher drop level, and a crafted trinket its crafting cap. Source limits are set as in Weapon Lab. The Great Vault is on by default: it gives Mythic+ loot on the Myth track, above the dungeon chest's Hero track, so a dungeon trinket runs up to the vault's level (Myth 6/6 unless you choose another) and the chest's level stays one of its steps. Crafted trinkets have no track; their level is chosen from the item levels the season uses, up to the crafting cap SimulationCraft's own profiles craft to. Equal footing shows every trinket at every level instead. The bar for a trinket is what it adds over no trinket, split at each level; its tier is read at its top level, with the same thresholds as Weapon Lab.

A specialization with more trinkets than the final round size (16, 32 or 64; 64 covers every list in Midnight Season 2) is screened first, one run per trinket at its top level, and the best go on to be simulated at every level; the rest keep their screened number and no curve. Tanks are ranked on the weighted DPS and survival score with a calibrated boss each, and Augmentation on the raid's damage against its measured share, as in Weapon Lab. A trinket that completes an item set with the reference gear — Zul'jin's Guillotine Technique beside Maze'roa — is marked, and the rest are measured from the best trinket without one. A full season list is about 2,700 trinket and item level runs per scenario, with the vault on.
A specialization with more trinkets than the final round size (16, 32 or 64; 64 covers every list in Midnight Season 2) is screened first, one run per trinket at its top level, and the best go on to be simulated at every level; the rest keep their screened number and no curve. Tanks are ranked on the weighted DPS and survival score with a calibrated boss each, and Augmentation on the raid's damage against its measured share, as in Weapon Lab. A trinket that completes an item set with the reference gear — Zul'jin's Guillotine Technique beside Maze'roa — is simulated twice and listed twice: with the set's bonus, as that character would wear it, and with the bonus switched off (`set_bonus=bite_of_zuljan_2pc=0`), the trinket alone. The rest are measured from the best trinket without a set bonus. A full season list is about 2,700 trinket and item level runs per scenario, with the vault on.

**The tier list page.** A finished job offers one page with every class and specialization, each trinket in its tier with its split bar, source, item level and Wowhead tooltip, and the gain at every level in the row's data so the website can import it. Two trinkets together are not the sum of their bars; the page says so.
**Fight style and targets.** Trinket Lab simulates the fight style chosen under the run settings, and **Also compare 3 and 5 targets** runs every specialization at 1, 3 and 5 targets in that style — AoE trinkets move a lot between them.

**The tier list page.** A finished job offers one page in the design of mythicpersona.com's weapon tier list, with its fonts inside the file: every class and specialization, each trinket in its tier with its split bar, source, item level and Wowhead tooltip, and the gain at every level in the row's data so the website can import it. When the job ran 1, 3 and 5 targets, tabs at the top switch between them, with no script. Two trinkets together are not the sum of their bars; the page says so.

## Tank simulation

Expand Down
2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "simc-lab",
"productName": "SimC Lab",
"desktopName": "simc-lab.desktop",
"version": "1.19.0",
"version": "1.20.0",
"description": "Local SimulationCraft workbench with upgrade finder and tank simulation.",
"author": "Roburmaster",
"private": true,
Expand Down
8 changes: 4 additions & 4 deletions lib/catalog.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ export async function loadCatalog(source) {
export function parseSetBonuses(text){
const out=[];
for(const line of String(text).split(/\r?\n/)){
const match=line.match(/^\s*\{\s*"((?:[^"\\]|\\.)*)"\s*,\s*"[^"]*"\s*,\s*"[^"]*"\s*,([^{]+)\{([^}]*)\}/);
const match=line.match(/^\s*\{\s*"((?:[^"\\]|\\.)*)"\s*,\s*"([^"]*)"\s*,\s*"[^"]*"\s*,([^{]+)\{([^}]*)\}/);
if(!match)continue;
const [,setId,pieces,classId,specId,,spellId]=match[2].split(',').map(v=>Number(v.trim()));
const items=match[3].split(',').map(v=>Number(v.trim())).filter(Boolean);
if(items.length&&pieces>0)out.push({name:match[1].replace(/\\"/g,'"'),setId,pieces,classId,specId,spellId,items});
const [,setId,pieces,classId,specId,,spellId]=match[3].split(',').map(v=>Number(v.trim()));
const items=match[4].split(',').map(v=>Number(v.trim())).filter(Boolean);
if(items.length&&pieces>0)out.push({name:match[1].replace(/\\"/g,'"'),option:match[2],setId,pieces,classId,specId,spellId,items});
}
return out;
}
Loading
Loading