Compare commits

...

13 Commits

Author SHA1 Message Date
kvan7
e24192e815 add back all rest of pseudo for later 2024-12-17 18:07:22 -06:00
kvan7
eae60af416 fix ignore 2024-12-17 18:00:25 -06:00
kvan7
da65938d3c remove git ignored files 2024-12-17 17:52:19 -06:00
kvan7
a9ccb01d99 psesudo only ele 2024-12-17 17:46:24 -06:00
kvan7
252109f1bd uhhhhhhhhhhhh, maybe pseudo will get support before GGG 2024-12-16 20:04:24 -06:00
Kvan7
e44953128d Hard coded strings (#80) 2024-12-16 16:32:12 -06:00
kvan7
561d70f6e1 add new client strings 2024-12-16 16:08:22 -06:00
AreChen
0b45860507 Update Traditional Chinese (#79)
* Update issue templates

* Update issue templates

* Update for Traditional Chinese

* Update Traditional Chinese
2024-12-16 16:05:12 -06:00
kvan7
fdc7a15c57 bump gitignore so i dont lose files 2024-12-15 21:21:35 -06:00
kvan7
3dee7841ef revert tests cause they were really terrible 2024-12-15 12:43:04 -06:00
kvan7
b63b353886 tests yay, this is terrible Add junit tests :( #74 2024-12-15 11:27:28 -06:00
kvan7
0e16863c7b Adds starting for localization 2024-12-15 08:49:42 -06:00
kvan7
f0d758b279 [Parse Error] - Dualstring bow #60 2024-12-14 23:12:56 -06:00
71 changed files with 105415 additions and 759 deletions

View File

@@ -0,0 +1,22 @@
---
name: Not Recognized Modifier
about: For "Not Recognized Modifier" errors
title: "[Not Recognized Modifier] - PUT MODIFIER HERE"
labels: bug, parse error
assignees: ''
---
## Not Recognized Modifier
***Put name of item here, and in the title***
`Text of the modifier here`
### Item Text
***Please provide the item's description***
- Can be copied with `ctrl`+`shift`+`c`
- Can also be copied from below the error message
```
Please paste it HERE
```

6
.gitignore vendored
View File

@@ -26,8 +26,4 @@ yarn-error.log*
docs/.vitepress/dist
docs/.vitepress/cache
renderer/public/.DS_Store/EXPORT/tables/English/*.json
renderer/public/.DS_Store/vendor/client/tables/*.json
!renderer/public/.DS_Store/vendor/client/tables/ArmourTypesOverride.json
renderer/public/.DS_Store/vendor/json-api/*.json
*.bin

View File

@@ -41,6 +41,9 @@
"pdps",
"uniquefoil",
"WAYSTONE"
]
],
"files.associations": {
"*.ndjson": "jsonl"
}
}
}

View File

@@ -38,6 +38,9 @@
"prettier": "3.4.2",
"typescript": "5.6.x",
"vite": "^5.0.0",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^2.1.8",
"vitest-mock-extended": "^2.0.2",
"vue-tsc": "^2.0.0"
},
"optionalDependencies": {
@@ -1402,6 +1405,149 @@
"vue": "^3.2.25"
}
},
"node_modules/@vitest/expect": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz",
"integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "2.1.8",
"@vitest/utils": "2.1.8",
"chai": "^5.1.2",
"tinyrainbow": "^1.2.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/mocker": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz",
"integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "2.1.8",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.12"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"msw": "^2.4.9",
"vite": "^5.0.0"
},
"peerDependenciesMeta": {
"msw": {
"optional": true
},
"vite": {
"optional": true
}
}
},
"node_modules/@vitest/mocker/node_modules/estree-walker": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0"
}
},
"node_modules/@vitest/mocker/node_modules/magic-string": {
"version": "0.30.15",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz",
"integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/@vitest/pretty-format": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz",
"integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"tinyrainbow": "^1.2.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/runner": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz",
"integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/utils": "2.1.8",
"pathe": "^1.1.2"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz",
"integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "2.1.8",
"magic-string": "^0.30.12",
"pathe": "^1.1.2"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot/node_modules/magic-string": {
"version": "0.30.15",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz",
"integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/@vitest/spy": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz",
"integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==",
"dev": true,
"license": "MIT",
"dependencies": {
"tinyspy": "^3.0.2"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/utils": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz",
"integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "2.1.8",
"loupe": "^3.1.2",
"tinyrainbow": "^1.2.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@volar/language-core": {
"version": "2.4.10",
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz",
@@ -1990,6 +2136,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/assertion-error": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
"integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
}
},
"node_modules/autoprefixer": {
"version": "10.4.20",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
@@ -2135,6 +2291,16 @@
"semver": "^7.0.0"
}
},
"node_modules/cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/call-bind": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
@@ -2195,6 +2361,23 @@
],
"license": "CC-BY-4.0"
},
"node_modules/chai": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
"integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
"dev": true,
"license": "MIT",
"dependencies": {
"assertion-error": "^2.0.1",
"check-error": "^2.1.1",
"deep-eql": "^5.0.1",
"loupe": "^3.1.0",
"pathval": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2212,6 +2395,16 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/check-error": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
"integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 16"
}
},
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -2393,6 +2586,16 @@
}
}
},
"node_modules/deep-eql": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -2605,6 +2808,13 @@
"node": ">= 0.4"
}
},
"node_modules/es-module-lexer": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
"integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
"dev": true,
"license": "MIT"
},
"node_modules/es-object-atoms": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
@@ -3241,6 +3451,16 @@
"node": ">=0.10.0"
}
},
"node_modules/expect-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
"integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3609,6 +3829,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/globrex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
"dev": true,
"license": "MIT"
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -4342,6 +4569,13 @@
"devOptional": true,
"license": "MIT"
},
"node_modules/loupe": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
"integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
"dev": true,
"license": "MIT"
},
"node_modules/lru-cache": {
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
@@ -4787,6 +5021,23 @@
"node": ">=8"
}
},
"node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"dev": true,
"license": "MIT"
},
"node_modules/pathval": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
"integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 14.16"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -5358,6 +5609,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/siginfo": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true,
"license": "ISC"
},
"node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
@@ -5417,6 +5675,20 @@
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"license": "MIT"
},
"node_modules/stackback": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true,
"license": "MIT"
},
"node_modules/std-env": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
"integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
"dev": true,
"license": "MIT"
},
"node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
@@ -5738,6 +6010,50 @@
"node": ">=0.8"
}
},
"node_modules/tinybench": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
"integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true,
"license": "MIT"
},
"node_modules/tinyexec": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
"integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
"dev": true,
"license": "MIT"
},
"node_modules/tinypool": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
"integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^18.0.0 || >=20.0.0"
}
},
"node_modules/tinyrainbow": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
"integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/tinyspy": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
"integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/tippy.js": {
"version": "6.3.7",
"resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
@@ -5759,12 +6075,48 @@
"node": ">=8.0"
}
},
"node_modules/ts-essentials": {
"version": "10.0.3",
"resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-10.0.3.tgz",
"integrity": "sha512-/FrVAZ76JLTWxJOERk04fm8hYENDo0PWSP3YLQKxevLwWtxemGcl5JJEzN4iqfDlRve0ckyfFaOBu4xbNH/wZw==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"typescript": ">=4.5.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
"license": "Apache-2.0"
},
"node_modules/tsconfck": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz",
"integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==",
"dev": true,
"license": "MIT",
"bin": {
"tsconfck": "bin/tsconfck.js"
},
"engines": {
"node": "^18 || >=20"
},
"peerDependencies": {
"typescript": "^5.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
@@ -6048,6 +6400,139 @@
}
}
},
"node_modules/vite-node": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz",
"integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==",
"dev": true,
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.3.7",
"es-module-lexer": "^1.5.4",
"pathe": "^1.1.2",
"vite": "^5.0.0"
},
"bin": {
"vite-node": "vite-node.mjs"
},
"engines": {
"node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/vite-tsconfig-paths": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz",
"integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^4.1.1",
"globrex": "^0.1.2",
"tsconfck": "^3.0.3"
},
"peerDependencies": {
"vite": "*"
},
"peerDependenciesMeta": {
"vite": {
"optional": true
}
}
},
"node_modules/vitest": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz",
"integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/expect": "2.1.8",
"@vitest/mocker": "2.1.8",
"@vitest/pretty-format": "^2.1.8",
"@vitest/runner": "2.1.8",
"@vitest/snapshot": "2.1.8",
"@vitest/spy": "2.1.8",
"@vitest/utils": "2.1.8",
"chai": "^5.1.2",
"debug": "^4.3.7",
"expect-type": "^1.1.0",
"magic-string": "^0.30.12",
"pathe": "^1.1.2",
"std-env": "^3.8.0",
"tinybench": "^2.9.0",
"tinyexec": "^0.3.1",
"tinypool": "^1.0.1",
"tinyrainbow": "^1.2.0",
"vite": "^5.0.0",
"vite-node": "2.1.8",
"why-is-node-running": "^2.3.0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
"node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
"@types/node": "^18.0.0 || >=20.0.0",
"@vitest/browser": "2.1.8",
"@vitest/ui": "2.1.8",
"happy-dom": "*",
"jsdom": "*"
},
"peerDependenciesMeta": {
"@edge-runtime/vm": {
"optional": true
},
"@types/node": {
"optional": true
},
"@vitest/browser": {
"optional": true
},
"@vitest/ui": {
"optional": true
},
"happy-dom": {
"optional": true
},
"jsdom": {
"optional": true
}
}
},
"node_modules/vitest-mock-extended": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/vitest-mock-extended/-/vitest-mock-extended-2.0.2.tgz",
"integrity": "sha512-n3MBqVITKyclZ0n0y66hkT4UiiEYFQn9tteAnIxT0MPz1Z8nFcPUG3Cf0cZOyoPOj/cq6Ab1XFw2lM/qM5EDWQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ts-essentials": ">=10.0.0"
},
"peerDependencies": {
"typescript": "3.x || 4.x || 5.x",
"vitest": ">=2.0.0"
}
},
"node_modules/vitest/node_modules/magic-string": {
"version": "0.30.15",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz",
"integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/vscode-uri": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
@@ -6278,6 +6763,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/why-is-node-running": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
"integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
"license": "MIT",
"dependencies": {
"siginfo": "^2.0.0",
"stackback": "0.0.2"
},
"bin": {
"why-is-node-running": "cli.js"
},
"engines": {
"node": ">=8"
}
},
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",

View File

@@ -2,12 +2,14 @@
"name": "exiled-exchange-2",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"lint": "eslint --ext .ts,.vue src",
"lint-fix": "eslint --ext .ts,.vue src --fix",
"build": "vue-tsc --noEmit && vite build",
"make-index-files": "node src/assets/make-index-files.mjs"
"make-index-files": "node src/assets/make-index-files.mjs",
"test": "vitest"
},
"dependencies": {
"@fortawesome/fontawesome-free": "6.x.x",
@@ -40,6 +42,9 @@
"prettier": "3.4.2",
"typescript": "5.6.x",
"vite": "^5.0.0",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^2.1.8",
"vitest-mock-extended": "^2.0.2",
"vue-tsc": "^2.0.0"
},
"optionalDependencies": {

View File

@@ -129,6 +129,41 @@ dist
.yarn/install-state.gz
.pnp.*
__pycache__
vendor/json-api/*.json
vendor/json-api/en/*.json
vendor/json-api/ru/*.json
vendor/json-api/ko/*.json
vendor/json-api/cmn-Hant/*.json
vendor/client/tables/*.json
vendor/client/descriptions/*
!vendor/client/descriptions/.gitkeep
!vendor/client/descriptions/.gitkeep
vendor/client/tables/*
!vendor/client/tables/index.ts
!vendor/client/tables/ArmourTypesOverride.json
!vendor/client/tables/en/.gitkeep
!vendor/client/tables/ru/.gitkeep
!vendor/client/tables/ko/.gitkeep
!vendor/client/tables/cmn-Hant/.gitkeep
!vendor/client/tables/en/ArmourTypesOverride.json
!vendor/client/tables/ru/ArmourTypesOverride.json
!vendor/client/tables/ko/ArmourTypesOverride.json
!vendor/client/tables/cmn-Hant/ArmourTypesOverride.json
!vendor/json-api/.gitkeep
!vendor/json-api/en/.gitkeep
!vendor/json-api/ru/.gitkeep
!vendor/json-api/ko/.gitkeep
!vendor/json-api/cmn-Hant/.gitkeep
EXPORT/tables/English/*.json
EXPORT/tables/Korean/*.json
EXPORT/tables/Russian/*.json
EXPORT/tables/Traditional Chinese/*.json

View File

@@ -1,7 +1,8 @@
{
"steam": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Path of Exile 2",
"translations": [
"English"
"English",
"Russian"
],
"tables": [
{

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,758 @@
[
{
"_index": 0,
"Id": "LifeFlask",
"Name": "Флаконы жизни",
"TradeMarketCategory": 28,
"ItemClassCategory": 0
},
{
"_index": 1,
"Id": "ManaFlask",
"Name": "Флаконы маны",
"TradeMarketCategory": 29,
"ItemClassCategory": 0
},
{
"_index": 2,
"Id": "DONOTUSE5",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 3,
"Id": "Currency",
"Name": "Вещи на обмен",
"TradeMarketCategory": 39,
"ItemClassCategory": 6
},
{
"_index": 4,
"Id": "Amulet",
"Name": "Амулеты",
"TradeMarketCategory": 21,
"ItemClassCategory": 7
},
{
"_index": 5,
"Id": "Ring",
"Name": "Кольца",
"TradeMarketCategory": 22,
"ItemClassCategory": 8
},
{
"_index": 6,
"Id": "Claw",
"Name": "Когти",
"TradeMarketCategory": 4,
"ItemClassCategory": 9
},
{
"_index": 7,
"Id": "Dagger",
"Name": "Кинжалы",
"TradeMarketCategory": 5,
"ItemClassCategory": 3
},
{
"_index": 8,
"Id": "Wand",
"Name": "Жезлы",
"TradeMarketCategory": 6,
"ItemClassCategory": 10
},
{
"_index": 9,
"Id": "One Hand Sword",
"Name": "Одноручные мечи",
"TradeMarketCategory": 7,
"ItemClassCategory": 2
},
{
"_index": 10,
"Id": "DONOTUSE6",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 11,
"Id": "One Hand Axe",
"Name": "Одноручные топоры",
"TradeMarketCategory": 9,
"ItemClassCategory": 11
},
{
"_index": 12,
"Id": "One Hand Mace",
"Name": "Одноручные булавы",
"TradeMarketCategory": 10,
"ItemClassCategory": 1
},
{
"_index": 13,
"Id": "Bow",
"Name": "Луки",
"TradeMarketCategory": 13,
"ItemClassCategory": 12
},
{
"_index": 14,
"Id": "Staff",
"Name": "Посохи",
"TradeMarketCategory": 14,
"ItemClassCategory": 4
},
{
"_index": 15,
"Id": "Two Hand Sword",
"Name": "Двуручные мечи",
"TradeMarketCategory": 15,
"ItemClassCategory": 13
},
{
"_index": 16,
"Id": "Two Hand Axe",
"Name": "Двуручные топоры",
"TradeMarketCategory": 16,
"ItemClassCategory": 14
},
{
"_index": 17,
"Id": "Two Hand Mace",
"Name": "Двуручные булавы",
"TradeMarketCategory": 17,
"ItemClassCategory": 15
},
{
"_index": 18,
"Id": "Active Skill Gem",
"Name": "Камни умений",
"TradeMarketCategory": 26,
"ItemClassCategory": 16
},
{
"_index": 19,
"Id": "Support Skill Gem",
"Name": "Камни поддержки",
"TradeMarketCategory": 27,
"ItemClassCategory": 17
},
{
"_index": 20,
"Id": "Quiver",
"Name": "Колчаны",
"TradeMarketCategory": 19,
"ItemClassCategory": 18
},
{
"_index": 21,
"Id": "Belt",
"Name": "Пояса",
"TradeMarketCategory": 23,
"ItemClassCategory": 19
},
{
"_index": 22,
"Id": "Gloves",
"Name": "Перчатки",
"TradeMarketCategory": 0,
"ItemClassCategory": 20
},
{
"_index": 23,
"Id": "Boots",
"Name": "Обувь",
"TradeMarketCategory": 1,
"ItemClassCategory": 21
},
{
"_index": 24,
"Id": "Body Armour",
"Name": "Доспехи",
"TradeMarketCategory": 2,
"ItemClassCategory": 22
},
{
"_index": 25,
"Id": "Helmet",
"Name": "Шлемы",
"TradeMarketCategory": 3,
"ItemClassCategory": 23
},
{
"_index": 26,
"Id": "Shield",
"Name": "Щиты",
"TradeMarketCategory": 20,
"ItemClassCategory": 24
},
{
"_index": 27,
"Id": "SmallRelic",
"Name": "Малые реликвии",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 28,
"Id": "MediumRelic",
"Name": "Средние реликвии",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 29,
"Id": "LargeRelic",
"Name": "Большие реликвии",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 30,
"Id": "StackableCurrency",
"Name": "Валюта",
"TradeMarketCategory": 39,
"ItemClassCategory": 6
},
{
"_index": 31,
"Id": "QuestItem",
"Name": "Вещи для заданий",
"TradeMarketCategory": null,
"ItemClassCategory": 25
},
{
"_index": 32,
"Id": "Sceptre",
"Name": "Скипетры",
"TradeMarketCategory": 11,
"ItemClassCategory": 61
},
{
"_index": 33,
"Id": "UtilityFlask",
"Name": "Обереги",
"TradeMarketCategory": 31,
"ItemClassCategory": 69
},
{
"_index": 34,
"Id": "DONOTUSE7",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 35,
"Id": "Map",
"Name": "Путевые камни",
"TradeMarketCategory": 34,
"ItemClassCategory": 26
},
{
"_index": 36,
"Id": "Unarmed",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": 66
},
{
"_index": 37,
"Id": "FishingRod",
"Name": "Удочки",
"TradeMarketCategory": null,
"ItemClassCategory": 27
},
{
"_index": 38,
"Id": "MapFragment",
"Name": "Обрывки карт",
"TradeMarketCategory": 37,
"ItemClassCategory": 28
},
{
"_index": 39,
"Id": "HideoutDoodad",
"Name": "Предметы убежища",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 40,
"Id": "Microtransaction",
"Name": "Микротранзакции",
"TradeMarketCategory": 53,
"ItemClassCategory": null
},
{
"_index": 41,
"Id": "Jewel",
"Name": "Самоцветы",
"TradeMarketCategory": 35,
"ItemClassCategory": 29
},
{
"_index": 42,
"Id": "DivinationCard",
"Name": "Гадальные карты",
"TradeMarketCategory": 40,
"ItemClassCategory": 30
},
{
"_index": 43,
"Id": "DONOTUSE8",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 44,
"Id": "DONOTUSE9",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 45,
"Id": "DONOTUSE10",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 46,
"Id": "MiscMapItem",
"Name": "Прочие предметы карт",
"TradeMarketCategory": 38,
"ItemClassCategory": 33
},
{
"_index": 47,
"Id": "Leaguestone",
"Name": "Камни лиги",
"TradeMarketCategory": 33,
"ItemClassCategory": 34
},
{
"_index": 48,
"Id": "PantheonSoul",
"Name": "Души Пантеона",
"TradeMarketCategory": null,
"ItemClassCategory": 35
},
{
"_index": 49,
"Id": "UniqueFragment",
"Name": "Фрагменты",
"TradeMarketCategory": 41,
"ItemClassCategory": 36
},
{
"_index": 50,
"Id": "AbyssJewel",
"Name": "Самоцветы Бездны",
"TradeMarketCategory": 36,
"ItemClassCategory": 37
},
{
"_index": 51,
"Id": "IncursionItem",
"Name": "Предметы Вмешательства",
"TradeMarketCategory": null,
"ItemClassCategory": 38
},
{
"_index": 52,
"Id": "DelveSocketableCurrency",
"Name": "Валюта Спуска",
"TradeMarketCategory": 43,
"ItemClassCategory": 39
},
{
"_index": 53,
"Id": "Incubator",
"Name": "Инкубаторы",
"TradeMarketCategory": 45,
"ItemClassCategory": 40
},
{
"_index": 54,
"Id": "UniqueShard",
"Name": "Осколки",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 55,
"Id": "UniqueShardBase",
"Name": "Стержни осколков",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 56,
"Id": "DONOTUSE11",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 57,
"Id": "Warstaff",
"Name": "Боевые посохи",
"TradeMarketCategory": 18,
"ItemClassCategory": 5
},
{
"_index": 58,
"Id": "DelveStackableSocketableCurrency",
"Name": "Валюта Спуска",
"TradeMarketCategory": 43,
"ItemClassCategory": 39
},
{
"_index": 59,
"Id": "AtlasUpgradeItem",
"Name": "Предметы улучшения Атласа",
"TradeMarketCategory": null,
"ItemClassCategory": 41
},
{
"_index": 60,
"Id": "DONOTUSE4",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 61,
"Id": "HiddenItem",
"Name": "Сокрытые предметы",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 62,
"Id": "DONOTUSE1",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 63,
"Id": "DONOTUSE2",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 64,
"Id": "DONOTUSE3",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 65,
"Id": "HeistContract",
"Name": "Контракты",
"TradeMarketCategory": 48,
"ItemClassCategory": 42
},
{
"_index": 66,
"Id": "HeistEquipmentWeapon",
"Name": "Разбойничьи принадлежности",
"TradeMarketCategory": 48,
"ItemClassCategory": 43
},
{
"_index": 67,
"Id": "HeistEquipmentTool",
"Name": "Разбойничий инструмент",
"TradeMarketCategory": 48,
"ItemClassCategory": 44
},
{
"_index": 68,
"Id": "HeistEquipmentUtility",
"Name": "Разбойничьи накидки",
"TradeMarketCategory": 48,
"ItemClassCategory": 45
},
{
"_index": 69,
"Id": "HeistEquipmentReward",
"Name": "Разбойничьи броши",
"TradeMarketCategory": 48,
"ItemClassCategory": 46
},
{
"_index": 70,
"Id": "HeistBlueprint",
"Name": "Чертежи",
"TradeMarketCategory": 48,
"ItemClassCategory": 47
},
{
"_index": 71,
"Id": "Trinket",
"Name": "Украшения",
"TradeMarketCategory": 25,
"ItemClassCategory": 48
},
{
"_index": 72,
"Id": "HeistObjective",
"Name": "Предметы кражи",
"TradeMarketCategory": null,
"ItemClassCategory": 49
},
{
"_index": 73,
"Id": "ExpeditionLogbook",
"Name": "Журналы экспедиции",
"TradeMarketCategory": 49,
"ItemClassCategory": 50
},
{
"_index": 74,
"Id": "IncubatorStackable",
"Name": "Инкубаторы",
"TradeMarketCategory": 45,
"ItemClassCategory": 40
},
{
"_index": 75,
"Id": "ArchnemesisMod",
"Name": "Свойства Возмездия",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 76,
"Id": "Meta Skill Gem",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": 64
},
{
"_index": 77,
"Id": "Spear",
"Name": "Копья",
"TradeMarketCategory": 55,
"ItemClassCategory": 57
},
{
"_index": 78,
"Id": "Crossbow",
"Name": "Самострелы",
"TradeMarketCategory": 56,
"ItemClassCategory": 58
},
{
"_index": 79,
"Id": "Focus",
"Name": "Фокусы",
"TradeMarketCategory": null,
"ItemClassCategory": 59
},
{
"_index": 80,
"Id": "InstanceLocalItem",
"Name": "Местные предметы области",
"TradeMarketCategory": null,
"ItemClassCategory": 51
},
{
"_index": 81,
"Id": "SentinelDrone",
"Name": "Часовые",
"TradeMarketCategory": 51,
"ItemClassCategory": 52
},
{
"_index": 82,
"Id": "MemoryLine",
"Name": "Воспоминания",
"TradeMarketCategory": 52,
"ItemClassCategory": 54
},
{
"_index": 83,
"Id": "Flail",
"Name": "Кистени",
"TradeMarketCategory": null,
"ItemClassCategory": 60
},
{
"_index": 84,
"Id": "Relic",
"Name": "Реликвии",
"TradeMarketCategory": 54,
"ItemClassCategory": 53
},
{
"_index": 85,
"Id": "SanctumSpecialRelic",
"Name": "Священные реликвии",
"TradeMarketCategory": null,
"ItemClassCategory": 53
},
{
"_index": 86,
"Id": "Breachstone",
"Name": "Камни Разлома",
"TradeMarketCategory": 37,
"ItemClassCategory": 55
},
{
"_index": 87,
"Id": "GiftBox",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 88,
"Id": "VaultKey",
"Name": "Ключи от хранилищ",
"TradeMarketCategory": 38,
"ItemClassCategory": 56
},
{
"_index": 89,
"Id": "ItemisedSanctum",
"Name": "Монеты Испытания",
"TradeMarketCategory": 38,
"ItemClassCategory": 33
},
{
"_index": 90,
"Id": "DONOTUSE12",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 91,
"Id": "UncutSkillGem",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": 65
},
{
"_index": 92,
"Id": "Buckler",
"Name": "Баклеры",
"TradeMarketCategory": 57,
"ItemClassCategory": null
},
{
"_index": 93,
"Id": "Thrown One Hand Axe",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 94,
"Id": "Thrown Two Hand Axe",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 95,
"Id": "ConventionTreasure",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 96,
"Id": "TrapTool",
"Name": "Ловушки",
"TradeMarketCategory": null,
"ItemClassCategory": 63
},
{
"_index": 97,
"Id": "Crossbow Attachment REMOVE",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 98,
"Id": "SkillGemToken",
"Name": "Вещи на обмен",
"TradeMarketCategory": 39,
"ItemClassCategory": 6
},
{
"_index": 99,
"Id": "Nothing",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 100,
"Id": "UltimatumKey",
"Name": "Начертанные Ультиматумы",
"TradeMarketCategory": 38,
"ItemClassCategory": 33
},
{
"_index": 101,
"Id": "UncutSupportGem",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": 65
},
{
"_index": 102,
"Id": "UncutReservationGem",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": 65
},
{
"_index": 103,
"Id": "Thrown Shield",
"Name": "",
"TradeMarketCategory": null,
"ItemClassCategory": null
},
{
"_index": 104,
"Id": "SoulCore",
"Name": "Размещаемое",
"TradeMarketCategory": null,
"ItemClassCategory": 67
},
{
"_index": 105,
"Id": "TowerAugmentation",
"Name": "Плитки",
"TradeMarketCategory": null,
"ItemClassCategory": 68
},
{
"_index": 106,
"Id": "Omen",
"Name": "Предзнаменования",
"TradeMarketCategory": null,
"ItemClassCategory": 70
},
{
"_index": 107,
"Id": "PinnacleKey",
"Name": "Древние ключи",
"TradeMarketCategory": null,
"ItemClassCategory": null
}
]

View File

@@ -0,0 +1,8 @@
supported_languages=("en" "ru")
for lang in "${supported_languages[@]}"; do
echo "Copying $lang"
cp -R ./vendor/client/pyDumps/$lang/* ./data/$lang/
done

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -3007,6 +3007,7 @@
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Emerald"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Ruby"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Sapphire"}}
{"name": "Heroic Tragedy", "refName": "Heroic Tragedy", "namespace": "UNIQUE", "unique": {"base": "Timeless Jewel"}}
{"name": "Prism of Belief", "refName": "Prism of Belief", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "The Adorned", "refName": "The Adorned", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "Brain Rattler", "refName": "Brain Rattler", "namespace": "UNIQUE", "unique": {"base": "Studded Greatclub"}}
@@ -3021,6 +3022,11 @@
{"name": "Guiding Palm", "refName": "Guiding Palm", "namespace": "UNIQUE", "unique": {"base": "Shrine Sceptre"}}
{"name": "Hoghunt", "refName": "Hoghunt", "namespace": "UNIQUE", "unique": {"base": "Felled Greatclub"}}
{"name": "Hrimnor's Hymn", "refName": "Hrimnor's Hymn", "namespace": "UNIQUE", "unique": {"base": "Oak Greathammer"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "War Spear"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Vampiric Blade"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Charred Shortsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Corroded Longsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Rippled Greatsword"}}
{"name": "Lifesprig", "refName": "Lifesprig", "namespace": "UNIQUE", "unique": {"base": "Attuned Wand"}}
{"name": "Matsya", "refName": "Matsya", "namespace": "UNIQUE", "unique": {"base": "Crescent Quarterstaff"}}
{"name": "Mist Whisper", "refName": "Mist Whisper", "namespace": "UNIQUE", "unique": {"base": "Makeshift Crossbow"}}

View File

@@ -1,3 +1,32 @@
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "id": "cold_damage_+%", "matchers": [{"string": "#% increased Cold Damage", "negate": false}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3291658075"], "pseudo": ["pseudo.pseudo_increased_cold_damage"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "id": "elemental_damage_+%", "matchers": [{"string": "#% increased Elemental Damage", "negate": false}, {"string": "#% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3141070085"], "pseudo": ["pseudo.pseudo_increased_elemental_damage"]}}}
{"ref": "#% increased Elemental Damage with Attacks", "better": 1, "id": "elemental_damage_with_attack_skills_+%", "matchers": [{"string": "#% increased Elemental Damage with Attacks", "negate": false}, {"string": "#% reduced Elemental Damage with Attacks", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_387439868"], "enchant": ["enchant.stat_387439868"], "rune": ["rune.stat_387439868"], "pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "id": "fire_damage_+%", "matchers": [{"string": "#% increased Fire Damage", "negate": false}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3962278098"], "pseudo": ["pseudo.pseudo_increased_fire_damage"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "id": "lightning_damage_+%", "matchers": [{"string": "#% increased Lightning Damage", "negate": false}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2231156303"], "pseudo": ["pseudo.pseudo_increased_lightning_damage"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "id": "mana_regeneration_rate_+%", "matchers": [{"string": "#% increased Mana Regeneration Rate", "negate": false}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "enchant": ["enchant.stat_789117908"], "rune": ["rune.stat_789117908"], "pseudo": ["pseudo.pseudo_increased_mana_regen"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "id": "base_movement_velocity_+%", "matchers": [{"string": "#% increased Movement Speed", "negate": false}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "sanctum": ["sanctum.stat_1416455556"], "pseudo": ["pseudo.pseudo_increased_movement_speed"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "id": "spell_damage_+%", "matchers": [{"string": "#% increased Spell Damage", "negate": false}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "pseudo": ["pseudo.pseudo_increased_spell_damage"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "+# to Strength", "better": 1, "id": "additional_strength", "matchers": [{"string": "# to Strength", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_4080418644"], "implicit": ["implicit.stat_4080418644"], "enchant": ["enchant.stat_4080418644"]}}}
{"ref": "+# to Dexterity", "better": 1, "id": "additional_dexterity", "matchers": [{"string": "# to Dexterity", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3261801346"], "implicit": ["implicit.stat_3261801346"], "enchant": ["enchant.stat_3261801346"]}}}
{"ref": "+# to Intelligence", "better": 1, "id": "additional_intelligence", "matchers": [{"string": "# to Intelligence", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_328541901"], "implicit": ["implicit.stat_328541901"], "enchant": ["enchant.stat_328541901"]}}}
@@ -29,7 +58,6 @@
{"ref": "#% increased Evasion and Energy Shield", "better": 1, "id": "local_evasion_and_energy_shield_+%", "matchers": [{"string": "#% increased Evasion and Energy Shield", "negate": false}, {"string": "#% reduced Evasion and Energy Shield", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1999113824"], "enchant": ["enchant.stat_1999113824"]}}}
{"ref": "#% increased Attribute Requirements", "better": 1, "id": "local_attribute_requirements_+%", "matchers": [{"string": "#% increased Attribute Requirements", "negate": false}, {"string": "#% reduced Attribute Requirements", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3639275092"], "enchant": ["enchant.stat_3639275092"]}}}
{"ref": "+# to Stun Threshold", "better": 1, "id": "stun_threshold_+", "matchers": [{"string": "# to Stun Threshold", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_915769802"], "rune": ["rune.stat_915769802"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "id": "base_movement_velocity_+%", "matchers": [{"string": "#% increased Movement Speed", "negate": false}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "sanctum": ["sanctum.stat_1416455556"]}}}
{"ref": "# to # Physical Thorns damage", "better": 1, "id": "thorns_minimum_base_physical_damage", "matchers": [{"string": "# to # Physical Thorns damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2881298780"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "id": "attack_minimum_added_physical_damage", "matchers": [{"string": "Adds # to # Physical Damage to Attacks", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"]}}}
{"ref": "Adds # to # Fire damage to Attacks", "better": 1, "id": "attack_minimum_added_fire_damage", "matchers": [{"string": "Adds # to # Fire damage to Attacks", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"]}}}
@@ -45,10 +73,6 @@
{"ref": "Allies in your Presence deal # to # additional Attack Lightning Damage", "better": 1, "id": "allies_in_presence_attack_minimum_added_lightning_damage", "matchers": [{"string": "Allies in your Presence deal # to # additional Attack Lightning Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2854751904"]}}}
{"ref": "No Physical Damage", "better": 1, "id": "local_physical_damage_+%", "matchers": [{"string": "No Physical Damage", "negate": false}], "trade": {"ids": null}}
{"ref": "Allies in your Presence deal #% increased Damage", "better": 1, "id": "allies_in_presence_damage_+%", "matchers": [{"string": "Allies in your Presence deal #% increased Damage", "negate": false}, {"string": "Allies in your Presence deal #% reduced Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1798257884"], "enchant": ["enchant.stat_1798257884"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "id": "spell_damage_+%", "matchers": [{"string": "#% increased Spell Damage", "negate": false}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2974417149"], "enchant": ["enchant.stat_2974417149"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "id": "fire_damage_+%", "matchers": [{"string": "#% increased Fire Damage", "negate": false}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3962278098"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "id": "cold_damage_+%", "matchers": [{"string": "#% increased Cold Damage", "negate": false}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3291658075"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "id": "lightning_damage_+%", "matchers": [{"string": "#% increased Lightning Damage", "negate": false}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2231156303"]}}}
{"ref": "#% increased Chaos Damage", "better": 1, "id": "chaos_damage_+%", "matchers": [{"string": "#% increased Chaos Damage", "negate": false}, {"string": "#% reduced Chaos Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_736967255"]}}}
{"ref": "#% increased Spell Physical Damage", "better": 1, "id": "spell_physical_damage_+%", "matchers": [{"string": "#% increased Spell Physical Damage", "negate": false}, {"string": "#% reduced Spell Physical Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2768835289"]}}}
{"ref": "#% increased Trap Damage", "better": 1, "id": "trap_damage_+%", "matchers": [{"string": "#% increased Trap Damage", "negate": false}, {"string": "#% reduced Trap Damage", "negate": true}], "trade": {"ids": null}}
@@ -64,7 +88,6 @@
{"ref": "+# to Level of all Projectile Skills", "better": 1, "id": "projectile_skill_gem_level_+", "matchers": [{"string": "# to Level of all Projectile Skills", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1202301673"]}}}
{"ref": "# Life Regeneration per second", "better": 1, "id": "base_life_regeneration_rate_per_minute", "matchers": [{"string": "# Life Regeneration per second", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3325883026"], "implicit": ["implicit.stat_3325883026"]}}}
{"ref": "Allies in your Presence Regenerate # Life per second", "better": 1, "id": "allies_in_presence_life_regeneration_rate_per_minute", "matchers": [{"string": "Allies in your Presence Regenerate # Life per second", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_4010677958"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "id": "mana_regeneration_rate_+%", "matchers": [{"string": "#% increased Mana Regeneration Rate", "negate": false}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "enchant": ["enchant.stat_789117908"], "rune": ["rune.stat_789117908"]}}}
{"ref": "Leech #% of Physical Attack Damage as Life", "better": 1, "id": "base_life_leech_from_physical_attack_damage_permyriad", "matchers": [{"string": "Leech #% of Physical Attack Damage as Life", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2557965901"], "enchant": ["enchant.stat_2557965901"]}}}
{"ref": "Leeches #% of Physical Damage as Life", "better": 1, "id": "local_life_leech_from_physical_damage_permyriad", "matchers": [{"string": "Leeches #% of Physical Damage as Life", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_55876295"], "rune": ["rune.stat_55876295"]}}}
{"ref": "Leech #% of Physical Attack Damage as Mana", "better": 1, "id": "base_mana_leech_from_physical_attack_damage_permyriad", "matchers": [{"string": "Leech #% of Physical Attack Damage as Mana", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_707457662"], "enchant": ["enchant.stat_707457662"]}}}
@@ -114,7 +137,7 @@
{"ref": "+#% to all Maximum Elemental Resistances", "better": 1, "id": "additional_maximum_all_elemental_resistances_%", "matchers": [{"string": "#% to all Maximum Elemental Resistances", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1978899297"], "implicit": ["implicit.stat_1978899297"], "enchant": ["enchant.stat_1978899297"]}}}
{"ref": "#% increased Energy Shield Recharge Rate", "better": 1, "id": "energy_shield_recharge_rate_+%", "matchers": [{"string": "#% increased Energy Shield Recharge Rate", "negate": false}, {"string": "#% reduced Energy Shield Recharge Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2339757871"]}}}
{"ref": "#% chance to Pierce an Enemy", "better": 1, "id": "base_chance_to_pierce_%", "matchers": [{"string": "#% chance to Pierce an Enemy", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2321178454"], "implicit": ["implicit.stat_2321178454"], "enchant": ["enchant.stat_2321178454"]}}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}], "trade": {"ids": null}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}, {"string": "Bow Attacks fire # additional Arrows", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3885405204"], "implicit": ["implicit.stat_3885405204"], "enchant": ["enchant.stat_3885405204"]}}}
{"ref": "Loads an additional bolt", "better": 1, "id": "base_number_of_crossbow_bolts", "matchers": [{"string": "Loads an additional bolt", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1039380318"], "implicit": ["implicit.stat_1039380318"], "enchant": ["enchant.stat_1039380318"]}}}
{"ref": "#% increased Flask Life Recovery rate", "better": 1, "id": "flask_life_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Life Recovery rate", "negate": false}, {"string": "#% reduced Flask Life Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_51994685"]}}}
{"ref": "#% increased Flask Mana Recovery rate", "better": 1, "id": "flask_mana_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Mana Recovery rate", "negate": false}, {"string": "#% reduced Flask Mana Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1412217137"]}}}
@@ -132,7 +155,6 @@
{"ref": "#% of Damage taken Recouped as Mana", "better": 1, "id": "damage_taken_goes_to_mana_%", "matchers": [{"string": "#% of Damage taken Recouped as Mana", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_472520716"], "enchant": ["enchant.stat_472520716"]}}}
{"ref": "#% increased Stun Duration", "better": 1, "id": "local_base_stun_duration_+%", "matchers": [{"string": "#% increased Stun Duration", "negate": false}, {"string": "#% reduced Stun Duration", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_748522257"]}}}
{"ref": "Causes #% increased Stun Buildup", "better": 1, "id": "local_hit_damage_stun_multiplier_+%", "matchers": [{"string": "Causes #% increased Stun Buildup", "negate": false}, {"string": "Causes #% reduced Stun Buildup", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_791928121"], "implicit": ["implicit.stat_791928121"], "enchant": ["enchant.stat_791928121"], "rune": ["rune.stat_791928121"]}}}
{"ref": "#% increased Elemental Damage with Attacks", "better": 1, "id": "elemental_damage_with_attack_skills_+%", "matchers": [{"string": "#% increased Elemental Damage with Attacks", "negate": false}, {"string": "#% reduced Elemental Damage with Attacks", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_387439868"], "enchant": ["enchant.stat_387439868"], "rune": ["rune.stat_387439868"]}}}
{"ref": "Gain #% of Damage as Extra Fire Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_fire", "matchers": [{"string": "Gain #% of Damage as Extra Fire Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3015669065"]}}}
{"ref": "Gain #% of Damage as Extra Cold Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_cold", "matchers": [{"string": "Gain #% of Damage as Extra Cold Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2505884597"]}}}
{"ref": "Gain #% of Damage as Extra Lightning Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_lightning", "matchers": [{"string": "Gain #% of Damage as Extra Lightning Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3278136794"]}}}
@@ -197,7 +219,7 @@
{"ref": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "better": 1, "id": "local_explode_on_kill_with_crit_%_physical_damage_to_deal", "matchers": [{"string": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_1541903247"]}}}
{"ref": "Crushes Enemies on Hit", "better": 1, "id": "local_crush_on_hit", "matchers": [{"string": "Crushes Enemies on Hit", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Maim on Hit", "better": 1, "id": "local_maim_on_hit_%", "matchers": [{"string": "#% chance to Maim on Hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2763429652"]}}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": null}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_535217483"]}}}
{"ref": "Uses both hand slots", "better": 1, "id": "local_weapon_uses_both_hands", "matchers": [{"string": "Uses both hand slots", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Blind Enemies on hit", "better": 1, "id": "local_chance_to_blind_on_hit_%", "matchers": [{"string": "#% chance to Blind Enemies on hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2301191210"]}}}
{"ref": "#% chance to Poison on Hit", "better": 1, "id": "local_poison_on_hit_%", "matchers": [{"string": "#% chance to Poison on Hit", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_795138349"], "enchant": ["enchant.stat_3885634897"], "rune": ["rune.stat_3885634897"]}}}
@@ -254,7 +276,6 @@
{"ref": "#% increased Daze Buildup", "better": 1, "id": "daze_build_up_+%", "matchers": [{"string": "#% increased Daze Buildup", "negate": false}, {"string": "#% reduced Daze Buildup", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1949833742"]}}}
{"ref": "Debuffs on you expire #% faster", "better": 1, "id": "debuff_time_passed_+%", "matchers": [{"string": "Debuffs on you expire #% faster", "negate": false}, {"string": "Debuffs on you expire #% slower", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1238227257"]}}}
{"ref": "#% increased Duration of Ignite, Shock and Chill on Enemies", "better": 1, "id": "ignite_shock_chill_duration_+%", "matchers": [{"string": "#% increased Duration of Ignite, Shock and Chill on Enemies", "negate": false}, {"string": "#% reduced Duration of Ignite, Shock and Chill on Enemies", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1062710370"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "id": "elemental_damage_+%", "matchers": [{"string": "#% increased Elemental Damage", "negate": false}, {"string": "#% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3141070085"]}}}
{"ref": "Empowered Attacks deal #% increased Damage", "better": 1, "id": "empowered_attack_damage_+%", "matchers": [{"string": "Empowered Attacks deal #% increased Damage", "negate": false}, {"string": "Empowered Attacks deal #% reduced Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1569101201"]}}}
{"ref": "Meta Skills gain #% increased Energy", "better": 1, "id": "energy_generated_+%", "matchers": [{"string": "Meta Skills gain #% increased Energy", "negate": false}, {"string": "Meta Skills gain #% reduced Energy", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_4236566306"], "enchant": ["enchant.stat_4236566306"]}}}
{"ref": "Damaging Ailments deal damage #% faster", "better": 1, "id": "damaging_ailments_deal_damage_+%_faster", "matchers": [{"string": "Damaging Ailments deal damage #% faster", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_538241406"]}}}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -27,9 +27,10 @@
"stats": "ts-node stats.ts",
"copy-files": "cp -R EXPORT/tables/English/* vendor/client/tables/",
"push-ndjson": "bash ./push-ndjson.sh",
"anon-python": "python ./vendor/client/parser.py",
"anon-vodka-python": "python ./vendor/client/parser.py",
"langs-anon-vodka-python": "python ./vendor/client/parserRunner.py",
"temp-images": "python ./data/en/imageFix.py",
"copy-py-ndjson": "cp -R ./vendor/client/pyDumps/en/* ./data/en/",
"copy-py-ndjson": "bash ./copy-py-ndjson.sh",
"fetch-json": "bash ./pull-json.sh"
},
"keywords": [],

View File

@@ -1,32 +1,45 @@
#!/bin/bash
# URLs to fetch JSON from
urls=(
"https://www.pathofexile.com/api/trade2/data/filters"
"https://www.pathofexile.com/api/trade2/data/stats"
"https://www.pathofexile.com/api/trade2/data/items"
"https://www.pathofexile.com/api/trade2/data/static"
# Array of language codes and their corresponding base URLs
declare -A lang_urls=(
["en"]="https://www.pathofexile.com"
["ru"]="https://ru.pathofexile.com"
["ko"]="https://poe.game.daum.net"
)
# Directory to save the JSON files
output_dir="./vendor/json-api"
# URLs to fetch JSON from (relative paths)
urls=(
"/api/trade2/data/filters"
"/api/trade2/data/stats"
"/api/trade2/data/items"
"/api/trade2/data/static"
)
# Create output directory if it doesn't exist
mkdir -p "$output_dir"
# Loop through each URL
for url in "${urls[@]}"; do
# Extract the filename from the URL
filename=$(basename "$url")
echo "Fetching JSON from: $url"
# Loop through each language
for lang in "${!lang_urls[@]}"; do
# Directory to save the JSON files for the current language
output_dir="./vendor/json-api/$lang"
# Fetch the JSON data and save it to a file
curl -s "$url" -o "$output_dir/$filename.json"
if [ $? -eq 0 ]; then
echo "Saved JSON to: $output_dir/$filename.json"
else
echo "Failed to fetch JSON from: $url"
fi
# Create output directory if it doesn't exist
mkdir -p "$output_dir"
# Loop through each URL
for relative_url in "${urls[@]}"; do
# Construct the full URL
url="${lang_urls[$lang]}$relative_url"
# Extract the filename from the relative URL
filename=$(basename "$relative_url")
echo "Fetching JSON from: $url for language: $lang"
# Fetch the JSON data and save it to a file
curl -s "$url" -o "$output_dir/$filename.json"
if [ $? -eq 0 ]; then
echo "Saved JSON to: $output_dir/$filename.json"
else
echo "Failed to fetch JSON from: $url"
fi
done
done

View File

@@ -6,13 +6,16 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Get the data directory
DATA_DIR="./data/en"
DATA_DIR="./data"
SUPPORTED_LANG=("en" "ru")
# Get all *.ndjson files in the data directory
FILES=$(find $DATA_DIR -name "*.ndjson")
# Loop through each file and push it to the actual data directory, overwriting any existing files
for file in $FILES; do
echo "Pushing $file to data/en"
cp $file ../data/en
for lang in "${SUPPORTED_LANG[@]}"; do
FILES=$(find $DATA_DIR/$lang -name "*.ndjson")
# Loop through each file and push it to the actual data directory, overwriting any existing files
for file in $FILES; do
echo "Pushing $file to data/$lang"
cp $file ../data/$lang
done
done

View File

@@ -1,5 +1,5 @@
"""Tries to prepare the necessary data for poe-trade to work properly.
It requires all files from
"""Tries to prepare the necessary data for poe-trade to work properly.
It requires all files from
Path of Exile 2/Bundles2/_.index.bin/metadata/statdescriptions
NOT
Path of Exile 2/Bundles2/_.index.bin/metadata/statdescriptions/specific_skill_stat_descriptions
@@ -12,442 +12,498 @@ Credits and Resources:
SnosMe - https://github.com/SnosMe/poe-dat-viewer
SnosMe - https://github.com/SnosMe/awakened-poe-trade
"""
import os
import json
import os
import re
import requests
import urllib.parse
def get_script_dir():
"""Returns the directory where the script is located."""
return os.path.dirname(os.path.realpath(__file__))
cwd = get_script_dir()
base_dir = cwd + "/tables/"
out_dir = cwd + "/pyDumps/en"
import requests
def load_file(file):
return json.loads(open(f"{base_dir}/{file}.json").read())
class Parser:
def get_script_dir(self):
"""Returns the directory where the script is located."""
return os.path.dirname(os.path.realpath(__file__))
base_items = load_file("BaseItemTypes")
item_classes = load_file("ItemClasses")
item_class_categories = load_file("ItemClassCategories")
armour_types = load_file("ArmourTypes")
weapon_types = load_file("WeaponTypes")
skill_gems = load_file("SkillGems")
skill_gem_info = load_file("SkillGemInfo")
stats_file = load_file("Stats")
translation_files = os.listdir(f"{cwd}/descriptions")
mods_file = load_file("Mods")
trade_stats = json.loads(open(f"{cwd}/../json-api/stats.json").read()) # content of https://www.pathofexile.com/api/trade2/data/stats
trade_items = json.loads(open(f"{cwd}/../json-api/items.json").read()) # content of https://www.pathofexile.com/api/trade2/data/items
trade_exchange_items = json.loads(open(f"{cwd}/../json-api/static.json").read()) # content of https://www.pathofexile.com/api/trade2/data/static
def load_file(self, file):
return json.loads(open(f"{self.base_dir}/{self.lang}/{file}.json").read())
items = {}
unique_items = []
parsed_item_class_categories = {}
parsed_item_classes = {}
stats = {}
stats_trade_ids = {}
mod_translations = {}
mods = {}
def __init__(self, lang="en"):
self.lang = lang
def make_poe_cdn_url(path):
return urllib.parse.urljoin('https://web.poecdn.com/', path)
self.cwd = self.get_script_dir()
self.base_dir = self.cwd + "/tables/"
self.out_dir = self.cwd + f"/pyDumps/{self.lang}"
self.base_items = self.load_file("BaseItemTypes")
self.item_classes = self.load_file("ItemClasses")
self.item_class_categories = self.load_file("ItemClassCategories")
self.armour_types = self.load_file("ArmourTypes")
self.weapon_types = self.load_file("WeaponTypes")
self.skill_gems = self.load_file("SkillGems")
self.skill_gem_info = self.load_file("SkillGemInfo")
self.stats_file = self.load_file("Stats")
self.translation_files = os.listdir(f"{self.cwd}/descriptions")
self.mods_file = self.load_file("Mods")
# NOTE: could need to add local here?
self.trade_stats = json.loads(
open(f"{self.cwd}/../json-api/en/stats.json").read()
) # content of https://www.pathofexile.com/api/trade2/data/stats
self.trade_items = json.loads(
open(f"{self.cwd}/../json-api/en/items.json").read()
) # content of https://www.pathofexile.com/api/trade2/data/items
self.trade_exchange_items = json.loads(
open(f"{self.cwd}/../json-api/en/static.json").read()
) # content of https://www.pathofexile.com/api/trade2/data/static
def convert_stat_name(stat):
stat = stat.strip()
open_square_bracket = stat.find("[")
close_square_bracket = stat.find("]")
while open_square_bracket >= 0 and close_square_bracket > 0:
# resolve brackets, this can be either the plain text or a key|value pair
key = stat[open_square_bracket + 1:close_square_bracket]
self.items = {}
self.unique_items = []
self.parsed_item_class_categories = {}
self.parsed_item_classes = {}
self.stats = {}
self.stats_trade_ids = {}
self.mod_translations = {}
self.mods = {}
self.matchers_no_trade_ids = []
if "|" in key: # key|value pair
key = key.split("|")[1] # use value
stat = stat[:open_square_bracket] + key + stat[close_square_bracket + 1:]
def make_poe_cdn_url(self, path):
return urllib.parse.urljoin("https://web.poecdn.com/", path)
def convert_stat_name(self, stat):
stat = stat.strip()
open_square_bracket = stat.find("[")
close_square_bracket = stat.find("]")
pattern = re.compile(r'{\d+}')
for match in pattern.findall(stat):
stat = stat.replace(match, "#")
stat = stat.replace("{0:+d}", "+#")
if len(stat) == 0:
return None
if stat[0] == "{" and stat[1] == "}":
stat = "#" + stat[2:]
return stat
while open_square_bracket >= 0 and close_square_bracket > 0:
# resolve brackets, this can be either the plain text or a key|value pair
key = stat[open_square_bracket + 1 : close_square_bracket]
def parse_trade_ids():
for res in trade_stats["result"]:
for entry in res.get("entries"):
id = entry.get("id")
text = entry.get("text")
type = entry.get("type")
text = convert_stat_name(text)
if text not in stats_trade_ids:
stats_trade_ids[text] = {}
if type not in stats_trade_ids[text]:
stats_trade_ids[text][type] = []
stats_trade_ids[text][type].append(id)
if "|" in key: # key|value pair
key = key.split("|")[1] # use value
stat = stat[:open_square_bracket] + key + stat[close_square_bracket + 1 :]
def parse_mod(id, english):
matchers = []
ref = None
for lang in english:
raw = lang
lang = convert_stat_name(lang)
if lang == None:
continue
matcher = lang
# remove prefixs
if matcher[0] == "+":
matcher = matcher[1:]
open_square_bracket = stat.find("[")
close_square_bracket = stat.find("]")
has_negate = matcher.find("negate") > 0
if has_negate:
matcher = matcher[:matcher.find('"')].strip()
pattern = re.compile(r"{\d+}")
for match in pattern.findall(stat):
stat = stat.replace(match, "#")
matchers.append({
"string": matcher,
"negate": has_negate
})
if ref == None:
ref = lang
id = id.split(" ")
for a in id:
mod_translations[a] = {
"ref": ref,
"matchers": matchers,
}
stat = stat.replace("{0:+d}", "+#")
def parse_translation_file(file):
dir = f"{cwd}/descriptions/{file}"
print("Parsing", dir)
stats_translations = open(dir, encoding="utf-16").read().split("\n")
for i in range(0, len(stats_translations)):
line = stats_translations[i]
if len(stat) == 0:
return None
if line == "description":
# start of the translation block
id = stats_translations[i + 1].strip()[2:].replace('"', "") # skip first 2 characters
english = stats_translations[i + 3].strip() # skip first 2 characters
start = english.find('"')
end = english.rfind('"')
english = english[start + 1: end]
# convert to array so we can add the negated option later on, if one exists
english = [english]
negate_english = stats_translations[i + 4].strip()
if "lang" not in negate_english and "negate" in negate_english:
# mod has a negated version
end = negate_english.find('negate')
negate_english = negate_english[negate_english.find('"') + 1:end + len('negate')]
english.append(negate_english)
parse_mod(id, english)
if stat[0] == "{" and stat[1] == "}":
stat = "#" + stat[2:]
def parse_mods():
for stat in stats_file:
id = stat.get("_index")
name = stat.get("Id")
stats[id] = name
# translations
for file in translation_files:
if os.path.isdir(f"{cwd}/descriptions/{file}"):
# traverse directories if it doesnt start with _
if not file.startswith("_"):
for _file in os.listdir(f"{cwd}/descriptions/{file}"):
parse_translation_file(f"{file}/{_file}")
elif ".csd" in file:
parse_translation_file(file)
for mod in mods_file:
id = mod.get("Id")
stats_key = mod.get("StatsKey1")
if stats_key != None:
stats_id = stats.get(stats_key)
translation = mod_translations.get(stats_id)
if translation:
ref = translation.get("ref")
matchers = translation.get("matchers")
ids = stats_trade_ids.get(matchers[0].get("string"))
if ids == None and len(matchers) > 1:
ids = stats_trade_ids.get(matchers[1].get("string"))
if ids == None:
print("No trade ids found for", matchers[0].get("string"), "or", matchers[1].get("string"))
trade = {"ids": ids}
mods[id] = {
"ref": translation.get("ref"),
"better": 1,
"id": stats_id,
"matchers": translation.get("matchers"),
"trade": trade
}
return stat
def parse_categories():
# parse item categories
for cat in item_class_categories:
id = cat.get("_index")
if id is None:
continue
text = cat.get("Id")
parsed_item_class_categories[id] = text
def parse_trade_ids(self):
for res in self.trade_stats["result"]:
for entry in res.get("entries"):
id = entry.get("id")
text = entry.get("text")
type = entry.get("type")
text = self.convert_stat_name(text)
for cat in item_classes:
id = cat.get("_index")
if id is None:
continue
text = cat.get("Id")
parsed_item_classes[id] = {
"name": text,
"short": parsed_item_class_categories.get(cat.get("ItemClassCategory"))
}
if text not in self.stats_trade_ids:
self.stats_trade_ids[text] = {}
def parse_items():
for entry in trade_items["result"]:
for item in entry.get("entries"):
name = item.get("name")
if name == None:
if type not in self.stats_trade_ids[text]:
self.stats_trade_ids[text][type] = []
self.stats_trade_ids[text][type].append(id)
def parse_mod(self, id, english):
matchers = []
ref = None
for lang in english:
lang = self.convert_stat_name(lang)
if lang is None:
continue
text = item.get("text")
type = item.get("type")
# unique item
flags = item.get("flags")
unique_items.append({
matcher = lang
# remove prefixes
if matcher[0] == "+":
matcher = matcher[1:]
has_negate = matcher.find("negate") > 0
if has_negate:
matcher = matcher[: matcher.find('"')].strip()
matchers.append({"string": matcher, "negate": has_negate})
if ref is None:
ref = lang
id = id.split(" ")
for a in id:
if a == "number_of_additional_arrows":
matchers.append(
{"string": "Bow Attacks fire # additional Arrows", "negate": False}
)
self.mod_translations[a] = {
"ref": ref,
"matchers": matchers,
}
def parse_translation_file(self, file):
dir = f"{self.cwd}/descriptions/{file}"
print("Parsing", dir)
stats_translations = open(dir, encoding="utf-16").read().split("\n")
for i in range(0, len(stats_translations)):
line = stats_translations[i]
if line == "description":
# start of the translation block
id = (
stats_translations[i + 1].strip()[2:].replace('"', "")
) # skip first 2 characters
english = stats_translations[i + 3].strip() # skip first 2 characters
start = english.find('"')
end = english.rfind('"')
english = english[start + 1 : end]
# convert to array so we can add the negated option later on, if one exists
english = [english]
negate_english = stats_translations[i + 4].strip()
if "lang" not in negate_english and "negate" in negate_english:
# mod has a negated version
end = negate_english.find("negate")
negate_english = negate_english[
negate_english.find('"') + 1 : end + len("negate")
]
english.append(negate_english)
self.parse_mod(id, english)
def parse_mods(self):
for stat in self.stats_file:
id = stat.get("_index")
name = stat.get("Id")
self.stats[id] = name
# translations
for file in self.translation_files:
if os.path.isdir(f"{self.cwd}/descriptions/{file}"):
# traverse directories if it doesnt start with _
if not file.startswith("_"):
for _file in os.listdir(f"{self.cwd}/descriptions/{file}"):
self.parse_translation_file(f"{file}/{_file}")
elif ".csd" in file:
self.parse_translation_file(file)
for mod in self.mods_file:
id = mod.get("Id")
stats_key = mod.get("StatsKey1")
if stats_key is not None:
stats_id = self.stats.get(stats_key)
translation = self.mod_translations.get(stats_id)
if translation:
ref = translation.get("ref")
matchers = translation.get("matchers")
ids = self.stats_trade_ids.get(matchers[0].get("string"))
# if ref.lower() == "bow attacks fire an additional arrow":
# print("ID")
# print(f"stats_id: {stats_id}")
# print(f"matchers: {matchers}")
# print(f"ref: {ref}")
# print("break")
# print(f"mod: {mod}")
# print(f"stats_trade_ids: {stats_trade_ids}")
# print(f"ids: {ids}")
# print(f"translation: {translation}")
if ids is None and len(matchers) > 1:
ids = self.stats_trade_ids.get(matchers[1].get("string"))
if ids is None:
# print(
# "No trade ids found for",
# matchers[0].get("string"),
# "or",
# matchers[1].get("string"),
# )
self.matchers_no_trade_ids.append(matchers[0].get("string"))
self.matchers_no_trade_ids.append(matchers[1].get("string"))
elif ids is None:
# print("No trade ids found for", matchers[0].get("string"))
self.matchers_no_trade_ids.append(matchers[0].get("string"))
trade = {"ids": ids}
self.mods[id] = {
"ref": translation.get("ref"),
"better": 1,
"id": stats_id,
"matchers": translation.get("matchers"),
"trade": trade,
}
def parse_categories(self):
# parse item categories
for cat in self.item_class_categories:
id = cat.get("_index")
if id is None:
continue
text = cat.get("Id")
self.parsed_item_class_categories[id] = text
for cat in self.item_classes:
id = cat.get("_index")
if id is None:
continue
text = cat.get("Id")
self.parsed_item_classes[id] = {
"name": text,
"short": self.parsed_item_class_categories.get(
cat.get("ItemClassCategory")
),
}
def parse_items(self):
for entry in self.trade_items["result"]:
for item in entry.get("entries"):
name = item.get("name")
if name is None:
continue
text = item.get("text")
type = item.get("type")
# unique item
flags = item.get("flags")
self.unique_items.append(
{
"name": name,
"refName": name,
"namespace": "UNIQUE",
"unique": {"base": type},
}
)
# parse base items
for item in self.base_items:
id = item.get("_index")
if id is None:
continue
name = item.get("Name")
if len(name) == 0:
continue
class_key = item.get("ItemClassesKey")
self.items[id] = {
"name": name,
"refName": name,
"namespace": "UNIQUE",
"unique": {
"base": type
}
})
"namespace": "ITEM",
"class": class_key,
"dropLevel": item.get("DropLevel"),
"width": item.get("Width"),
"height": item.get("Height"),
}
# parse base items
for item in base_items:
id = item.get("_index")
if id is None:
continue
name = item.get("Name")
if len(name) == 0:
continue
class_key = item.get("ItemClassesKey")
items[id] = {
"name": name,
"refName": name,
"namespace": "ITEM",
"class": class_key,
"dropLevel": item.get("DropLevel"),
"width": item.get("Width"),
"height": item.get("Height"),
}
if class_key is not None:
class_info = parsed_item_classes.get(class_key).get("short")
# if class_info in ["Belt", "Ring", "Amulet"]:
if class_info != None:
items[id].update({
"craftable": {
"category": class_info
if class_key is not None:
class_info = self.parsed_item_classes.get(class_key).get("short")
# if class_info in ["Belt", "Ring", "Amulet"]:
if class_info is not None:
self.items[id].update({"craftable": {"category": class_info}})
# convert base items into gems
for gem in self.skill_gems:
id = gem.get("BaseItemTypesKey")
if id in self.items:
self.items[id].update(
{
"namespace": "GEM",
"gem": {"awakened": False, "transfigured": False},
}
})
)
# convert base items into gems
for gem in skill_gems:
id = gem.get("BaseItemTypesKey")
if id in items:
items[id].update({
"namespace": "GEM",
"gem": {
"awakened": False,
"transfigured": False
}
})
# weapons and armor need the craftable tag ("craftable": "type (helmet, boots etc)")
# convert base items into weapons
for wpn in weapon_types:
id = wpn.get("BaseItemTypesKey")
if id in items:
class_key = items[id].get("class")
items[id].update({
"craftable": {
"category": parsed_item_classes.get(class_key).get("short"),
}
})
# weapons and armor need the craftable tag ("craftable": "type (helmet, boots etc)")
# convert base items into weapons
for wpn in self.weapon_types:
id = wpn.get("BaseItemTypesKey")
# convert base items into armor types
# armour needs the armour tag ("armour": "ar": [min, max], "ev": [min, max], "es": [min, max])
# Changed since db only has once value for each stat
for armour in armour_types:
id = armour.get("BaseItemTypesKey")
ar = [armour.get("Armour"), armour.get("Armour")]
ev = [armour.get("Evasion"), armour.get("Evasion")]
es = [armour.get("EnergyShield"), armour.get("EnergyShield")]
armour = {}
if ar[1] > 1:
armour["ar"] = ar
if ev[1] > 1:
armour["ev"] = ev
if es[1] > 1:
armour["es"] = es
if id in items:
items[id].update({
"armour": armour
})
if id in self.items:
class_key = self.items[id].get("class")
self.items[id].update(
{
"craftable": {
"category": self.parsed_item_classes.get(class_key).get(
"short"
),
}
}
)
def parse_trade_exchange_items():
items_ids = {}
for id, item in items.items():
items_ids[item.get("name")] = id
# convert base items into armor types
# armour needs the armour tag ("armour": "ar": [min, max], "ev": [min, max], "es": [min, max])
# Changed since db only has once value for each stat
for armour in self.armour_types:
id = armour.get("BaseItemTypesKey")
for category in trade_exchange_items["result"]:
for entry in category.get("entries"):
item_name = entry.get("text")
ar = [armour.get("Armour"), armour.get("Armour")]
ev = [armour.get("Evasion"), armour.get("Evasion")]
es = [armour.get("EnergyShield"), armour.get("EnergyShield")]
if not item_name in items_ids:
armour = {}
if ar[1] > 1:
armour["ar"] = ar
if ev[1] > 1:
armour["ev"] = ev
if es[1] > 1:
armour["es"] = es
if id in self.items:
self.items[id].update({"armour": armour})
def parse_trade_exchange_items(self):
items_ids = {}
for id, item in self.items.items():
items_ids[item.get("name")] = id
for category in self.trade_exchange_items["result"]:
for entry in category.get("entries"):
item_name = entry.get("text")
if item_name not in items_ids:
continue
self.items[items_ids[item_name]].update(
{
"tradeTag": entry.get("id"),
"icon": self.make_poe_cdn_url(entry.get("image")),
}
)
def resolve_item_classes(self):
for item_class in self.item_classes:
id = item_class.get("_index")
if id is None:
continue
items[items_ids[item_name]].update({
"tradeTag": entry.get("id"),
"icon": make_poe_cdn_url(entry.get("image"))
})
def resolve_item_classes():
for item_class in item_classes:
id = item_class.get("_index")
if id is None:
continue
name = item_class.get("Name")
item_class_category = item_class.get("ItemClassCategory")
if id in items:
items[id].update({
"class": name,
"category": parsed_item_classes.get(item_class_category)
})
name = item_class.get("Name")
item_class_category = item_class.get("ItemClassCategory")
def write_to_file():
f = open(f"{out_dir}/items.ndjson", "w", encoding="utf-8")
items_name = sorted(items.values(), key=lambda x: x.get("name"))
for item in items_name:
name = item.get("name")
namespace = item.get("namespace", "ITEM")
craftable = item.get("craftable", None)
gem = item.get("gem", None)
armour = item.get("armour", None)
width = item.get("width", None)
height = item.get("height", None)
tradeTag = item.get("tradeTag", None)
icon = item.get("icon", "%NOT_FOUND%")
out = {
"name": name,
"refName": name,
"namespace": namespace,
"icon": icon,
if id in self.items:
self.items[id].update(
{
"class": name,
"category": self.parsed_item_classes.get(item_class_category),
}
)
def write_to_file(self):
f = open(f"{self.out_dir}/items.ndjson", "w", encoding="utf-8")
items_name = sorted(self.items.values(), key=lambda x: x.get("name"))
for item in items_name:
name = item.get("name")
namespace = item.get("namespace", "ITEM")
craftable = item.get("craftable", None)
gem = item.get("gem", None)
armour = item.get("armour", None)
width = item.get("width", None)
height = item.get("height", None)
tradeTag = item.get("tradeTag", None)
icon = item.get("icon", "%NOT_FOUND%")
out = {
"name": name,
"refName": name,
"namespace": namespace,
"icon": icon,
}
if tradeTag:
out.update({"tradeTag": tradeTag})
if craftable:
out.update({"craftable": craftable})
if armour:
out.update({"armour": armour})
if width:
out.update({"w": width})
if height:
out.update({"h": height})
if gem:
out.update({"gem": gem})
f.write(json.dumps(out) + "\n")
for item in self.unique_items:
f.write(json.dumps(item) + "\n")
f.close()
# somehow not a thing? - possibly missing some data
self.mods["physical_local_damage_+%"] = {
"ref": "#% increased Physical Damage",
"better": 1,
"id": "physical_local_damage_+%",
"matchers": [{"string": "#% increased Physical Damage"}],
"trade": {
"ids": {
"explicit": ["explicit.stat_419810844"],
"fractured": ["fractured.stat_419810844"],
"rune": ["rune.stat_419810844"],
}
},
}
if tradeTag:
out.update({
"tradeTag": tradeTag
})
if craftable:
out.update({
"craftable": craftable
})
if armour:
out.update({
"armour": armour
})
if width:
out.update({
"w": width
})
if height:
out.update({
"h": height
})
if gem:
out.update({
"gem": gem
})
f.write(json.dumps(out) + "\n")
for item in unique_items:
f.write(json.dumps(item) + "\n")
f.close()
# somehow not a thing? - possibly missing some data
mods["physical_local_damage_+%"] = {
"ref": "#% increased Physical Damage", "better": 1, "id": "physical_local_damage_+%", "matchers": [{"string": "#% increased Physical Damage"}], "trade": {"ids": {"explicit": ["explicit.stat_419810844"], "fractured": ["fractured.stat_419810844"], "rune": ["rune.stat_419810844"]}}
}
seen = set()
m = open(f"{out_dir}/stats.ndjson", "w", encoding="utf-8")
for mod in mods.values():
id = mod.get("id")
if id in seen:
continue
m.write(json.dumps(mod) + "\n")
seen.add(id)
m.close()
with open(f"{get_script_dir()}/pyDumps/items_dump.json", "w", encoding="utf-8") as f:
f.write(json.dumps(items, indent=4))
with open(f"{get_script_dir()}/pyDumps/mods_dump.json", "w", encoding="utf-8") as f:
f.write(json.dumps(mods, indent=4))
seen = set()
m = open(f"{self.out_dir}/stats.ndjson", "w", encoding="utf-8")
for mod in self.mods.values():
id = mod.get("id")
if id in seen:
continue
m.write(json.dumps(mod) + "\n")
seen.add(id)
m.close()
with open(
f"{self.get_script_dir()}/pyDumps/{self.lang+'-out'}/items_dump.json",
"w",
encoding="utf-8",
) as f:
f.write(json.dumps(self.items, indent=4))
with open(
f"{self.get_script_dir()}/pyDumps/{self.lang+'-out'}/mods_dump.json",
"w",
encoding="utf-8",
) as f:
f.write(json.dumps(self.mods, indent=4))
with open(
f"{self.get_script_dir()}/pyDumps/{self.lang+'-out'}/matchers_no_trade_ids.json",
"w",
encoding="utf-8",
) as f:
f.write(json.dumps(self.matchers_no_trade_ids, indent=4))
def run(self):
self.parse_trade_ids()
self.parse_mods()
self.parse_categories()
self.parse_items()
self.resolve_item_classes()
self.parse_trade_exchange_items()
self.write_to_file()
if __name__ == "__main__":
parse_trade_ids()
parse_mods()
parse_categories()
parse_items()
resolve_item_classes()
parse_trade_exchange_items()
write_to_file()
Parser().run()

View File

@@ -0,0 +1,9 @@
from parser import Parser
SUPPORTED_LANGUAGES = ["en", "ru"]
if __name__ == "__main__":
for lang in SUPPORTED_LANGUAGES:
print(f"Generating {lang} tables")
parser = Parser(lang)
parser.run()

File diff suppressed because it is too large Load Diff

View File

@@ -27679,10 +27679,24 @@
{
"string": "Bow Attacks fire an additional Arrow",
"negate": false
},
{
"string": "Bow Attacks fire # additional Arrows",
"negate": false
}
],
"trade": {
"ids": null
"ids": {
"explicit": [
"explicit.stat_3885405204"
],
"implicit": [
"implicit.stat_3885405204"
],
"enchant": [
"enchant.stat_3885405204"
]
}
}
},
"AdditionalArrow2": {
@@ -27693,10 +27707,24 @@
{
"string": "Bow Attacks fire an additional Arrow",
"negate": false
},
{
"string": "Bow Attacks fire # additional Arrows",
"negate": false
}
],
"trade": {
"ids": null
"ids": {
"explicit": [
"explicit.stat_3885405204"
],
"implicit": [
"implicit.stat_3885405204"
],
"enchant": [
"enchant.stat_3885405204"
]
}
}
},
"AdditionalAmmo1": {
@@ -35578,7 +35606,11 @@
}
],
"trade": {
"ids": null
"ids": {
"implicit": [
"implicit.stat_535217483"
]
}
}
},
"SpearImplicitDisableOffhandSlot1": {
@@ -35812,10 +35844,24 @@
{
"string": "Bow Attacks fire an additional Arrow",
"negate": false
},
{
"string": "Bow Attacks fire # additional Arrows",
"negate": false
}
],
"trade": {
"ids": null
"ids": {
"explicit": [
"explicit.stat_3885405204"
],
"implicit": [
"implicit.stat_3885405204"
],
"enchant": [
"enchant.stat_3885405204"
]
}
}
},
"BowImplicitProjectileAttackRange1": {
@@ -45823,10 +45869,24 @@
{
"string": "Bow Attacks fire an additional Arrow",
"negate": false
},
{
"string": "Bow Attacks fire # additional Arrows",
"negate": false
}
],
"trade": {
"ids": null
"ids": {
"explicit": [
"explicit.stat_3885405204"
],
"implicit": [
"implicit.stat_3885405204"
],
"enchant": [
"enchant.stat_3885405204"
]
}
}
},
"CorruptionAdditionalAmmo1": {
@@ -65380,10 +65440,24 @@
{
"string": "Bow Attacks fire an additional Arrow",
"negate": false
},
{
"string": "Bow Attacks fire # additional Arrows",
"negate": false
}
],
"trade": {
"ids": null
"ids": {
"explicit": [
"explicit.stat_3885405204"
],
"implicit": [
"implicit.stat_3885405204"
],
"enchant": [
"enchant.stat_3885405204"
]
}
}
},
"UniqueFlaskLifeRecoveryRate1": {

View File

@@ -3007,6 +3007,7 @@
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Emerald"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Ruby"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Sapphire"}}
{"name": "Heroic Tragedy", "refName": "Heroic Tragedy", "namespace": "UNIQUE", "unique": {"base": "Timeless Jewel"}}
{"name": "Prism of Belief", "refName": "Prism of Belief", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "The Adorned", "refName": "The Adorned", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "Brain Rattler", "refName": "Brain Rattler", "namespace": "UNIQUE", "unique": {"base": "Studded Greatclub"}}
@@ -3021,6 +3022,11 @@
{"name": "Guiding Palm", "refName": "Guiding Palm", "namespace": "UNIQUE", "unique": {"base": "Shrine Sceptre"}}
{"name": "Hoghunt", "refName": "Hoghunt", "namespace": "UNIQUE", "unique": {"base": "Felled Greatclub"}}
{"name": "Hrimnor's Hymn", "refName": "Hrimnor's Hymn", "namespace": "UNIQUE", "unique": {"base": "Oak Greathammer"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "War Spear"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Vampiric Blade"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Charred Shortsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Corroded Longsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Rippled Greatsword"}}
{"name": "Lifesprig", "refName": "Lifesprig", "namespace": "UNIQUE", "unique": {"base": "Attuned Wand"}}
{"name": "Matsya", "refName": "Matsya", "namespace": "UNIQUE", "unique": {"base": "Crescent Quarterstaff"}}
{"name": "Mist Whisper", "refName": "Mist Whisper", "namespace": "UNIQUE", "unique": {"base": "Makeshift Crossbow"}}

View File

@@ -114,7 +114,7 @@
{"ref": "+#% to all Maximum Elemental Resistances", "better": 1, "id": "additional_maximum_all_elemental_resistances_%", "matchers": [{"string": "#% to all Maximum Elemental Resistances", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1978899297"], "implicit": ["implicit.stat_1978899297"], "enchant": ["enchant.stat_1978899297"]}}}
{"ref": "#% increased Energy Shield Recharge Rate", "better": 1, "id": "energy_shield_recharge_rate_+%", "matchers": [{"string": "#% increased Energy Shield Recharge Rate", "negate": false}, {"string": "#% reduced Energy Shield Recharge Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2339757871"]}}}
{"ref": "#% chance to Pierce an Enemy", "better": 1, "id": "base_chance_to_pierce_%", "matchers": [{"string": "#% chance to Pierce an Enemy", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2321178454"], "implicit": ["implicit.stat_2321178454"], "enchant": ["enchant.stat_2321178454"]}}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}], "trade": {"ids": null}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}, {"string": "Bow Attacks fire # additional Arrows", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3885405204"], "implicit": ["implicit.stat_3885405204"], "enchant": ["enchant.stat_3885405204"]}}}
{"ref": "Loads an additional bolt", "better": 1, "id": "base_number_of_crossbow_bolts", "matchers": [{"string": "Loads an additional bolt", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1039380318"], "implicit": ["implicit.stat_1039380318"], "enchant": ["enchant.stat_1039380318"]}}}
{"ref": "#% increased Flask Life Recovery rate", "better": 1, "id": "flask_life_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Life Recovery rate", "negate": false}, {"string": "#% reduced Flask Life Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_51994685"]}}}
{"ref": "#% increased Flask Mana Recovery rate", "better": 1, "id": "flask_mana_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Mana Recovery rate", "negate": false}, {"string": "#% reduced Flask Mana Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1412217137"]}}}
@@ -197,7 +197,7 @@
{"ref": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "better": 1, "id": "local_explode_on_kill_with_crit_%_physical_damage_to_deal", "matchers": [{"string": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_1541903247"]}}}
{"ref": "Crushes Enemies on Hit", "better": 1, "id": "local_crush_on_hit", "matchers": [{"string": "Crushes Enemies on Hit", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Maim on Hit", "better": 1, "id": "local_maim_on_hit_%", "matchers": [{"string": "#% chance to Maim on Hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2763429652"]}}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": null}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_535217483"]}}}
{"ref": "Uses both hand slots", "better": 1, "id": "local_weapon_uses_both_hands", "matchers": [{"string": "Uses both hand slots", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Blind Enemies on hit", "better": 1, "id": "local_chance_to_blind_on_hit_%", "matchers": [{"string": "#% chance to Blind Enemies on hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2301191210"]}}}
{"ref": "#% chance to Poison on Hit", "better": 1, "id": "local_poison_on_hit_%", "matchers": [{"string": "#% chance to Poison on Hit", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_795138349"], "enchant": ["enchant.stat_3885634897"], "rune": ["rune.stat_3885634897"]}}}

View File

View File

View File

@@ -0,0 +1,86 @@
import json
import os
def get_script_dir():
"""Returns the directory where the script is located."""
return os.path.dirname(os.path.realpath(__file__))
# List of localization codes
localizations = ["en", "ru", "ko", "cmn-Hant"]
def process_filtered_pseudo_stats(loc):
filtered_file_path = f"{get_script_dir()}/{loc}/pseudo_stats.ndjson"
stats_file_path = f"{get_script_dir()}/../../data/{loc}/stats.ndjson"
output_file_path = f"{get_script_dir()}/../../data/{loc}/updated_stats.ndjson"
# Load all stats at the start to avoid repeated loading
with open(stats_file_path, "r", encoding="utf-8") as stats_file:
original_stats_lines = [json.loads(line) for line in stats_file]
updated_lines = []
matched_keys = set() # To track keys that have been updated
with open(filtered_file_path, "r", encoding="utf-8") as filtered_file:
for line in filtered_file:
try:
pseudo_object = json.loads(line)
# Check for non-pseudo keys
if "trade" in pseudo_object and "ids" in pseudo_object["trade"]:
non_pseudo_found = any(
key in pseudo_object["trade"]["ids"]
for key in ["explicit", "implicit", "enchant"]
)
if non_pseudo_found:
# Search for the corresponding stat
for stats_object in original_stats_lines:
# Check if the trade.ids matches with non-pseudo keys
for key in ["explicit", "implicit", "enchant"]:
if key in pseudo_object["trade"]["ids"]:
value_to_find = pseudo_object["trade"]["ids"][key]
# Ensure stats_object exists and has 'trade' and 'ids' before accessing
if (
stats_object.get("trade") is not None
and stats_object["trade"].get("ids") is not None
and stats_object["trade"]["ids"].get(key)
== value_to_find
):
# Cut the line and add the pseudo value
new_stats_object = (
stats_object.copy()
) # Use copy to avoid modifying original
new_stats_object["trade"]["ids"]["pseudo"] = (
pseudo_object["trade"]["ids"].get("pseudo")
)
updated_lines.append(new_stats_object)
matched_keys.add(
json.dumps(stats_object, ensure_ascii=False)
)
break
# If not matched, add the pseudo object as is
else:
updated_lines.append(pseudo_object)
except json.JSONDecodeError:
print(f"Error parsing JSON from filtered file: {line}")
# Write updated lines and remaining original stats to a new stats file
with open(output_file_path, "w", encoding="utf-8") as output_file:
# Write new lines at the top
for updated_line in updated_lines:
output_file.write(json.dumps(updated_line, ensure_ascii=False) + "\n")
# Write the original lines that have not been matched
for original_line in original_stats_lines:
if json.dumps(original_line, ensure_ascii=False) not in matched_keys:
output_file.write(json.dumps(original_line, ensure_ascii=False) + "\n")
print(f"Updated stats written to {output_file_path} for {loc}.")
if __name__ == "__main__":
for loc in localizations:
process_filtered_pseudo_stats(loc)

View File

@@ -0,0 +1,292 @@
{"ref": "# Crafted Modifiers", "better": 1, "matchers": [{"string": "# Crafted Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_mods"]}}}
{"ref": "# Crafted Prefix Modifiers", "better": 1, "matchers": [{"string": "# Crafted Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_prefix_mods"]}}}
{"ref": "# Crafted Suffix Modifiers", "better": 1, "matchers": [{"string": "# Crafted Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_suffix_mods"]}}}
{"ref": "# Empty Modifiers", "better": 1, "matchers": [{"string": "# Empty Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_affix_mods"]}}}
{"ref": "# Empty Prefix Modifiers", "better": 1, "matchers": [{"string": "# Empty Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_prefix_mods"]}}}
{"ref": "# Empty Suffix Modifiers", "better": 1, "matchers": [{"string": "# Empty Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_suffix_mods"]}}}
{"ref": "# Enchant Modifiers", "better": 1, "matchers": [{"string": "# Enchant Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_enchant_mods"]}}}
{"ref": "# Fractured Modifiers", "better": 1, "matchers": [{"string": "# Fractured Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_fractured_mods"]}}}
{"ref": "# Implicit Modifiers", "better": 1, "matchers": [{"string": "# Implicit Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_implicit_mods"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "# Modifiers", "better": 1, "matchers": [{"string": "# Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_affix_mods"]}}}
{"ref": "# Notable Passive Skills", "better": 1, "matchers": [{"string": "# Notable Passive Skills "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_notable_passive_skills"]}}}
{"ref": "# Prefix Modifiers", "better": 1, "matchers": [{"string": "# Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_prefix_mods"]}}}
{"ref": "# Suffix Modifiers", "better": 1, "matchers": [{"string": "# Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_suffix_mods"]}}}
{"ref": "# total Elemental Resistances", "better": 1, "matchers": [{"string": "# total Elemental Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_elemental_resistances"]}}}
{"ref": "# total Resistances", "better": 1, "matchers": [{"string": "# total Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_resistances"]}}}
{"ref": "#% Base Defence Percentile", "better": 1, "matchers": [{"string": "#% Base Defence Percentile "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_base_defence_percentile"]}}}
{"ref": "#% chance for dropped Maps to convert to Atlas Memories", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Atlas Memories "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_memory_line"]}}}
{"ref": "#% chance for dropped Maps to convert to Conqueror Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Conqueror Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_conqueror_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Elder Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Elder Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_elder_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Maven Invitations", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Maven Invitations "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_maven_invitation"]}}}
{"ref": "#% chance for dropped Maps to convert to Scarabs", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Scarabs "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_scarab"]}}}
{"ref": "#% chance for dropped Maps to convert to Shaper Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Shaper Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_shaper_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Unique Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Unique Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_unique_map"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% increased Burning Damage"}, {"string": "#% reduced Burning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% increased Cold Damage"}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Cold Damage with Attack Skills"}, {"string": "#% reduced Cold Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage_with_attack_skills"], "explicit": ["explicit.stat_860668586"], "implicit": ["implicit.stat_860668586"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% increased Elemental Damage"}, {"string": "Has #% increased Elemental Damage"}, {"string": "#% reduced Elemental Damage", "negate": true}, {"string": "Has #% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Elemental Damage with Attack Skills"}, {"string": "#% reduced Elemental Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% increased Fire Damage"}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Fire Damage with Attack Skills"}, {"string": "#% reduced Fire Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage_with_attack_skills"], "implicit": ["implicit.stat_2468413380"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Damage"}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Lightning Damage with Attack Skills"}, {"string": "#% reduced Lightning Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage_with_attack_skills"], "explicit": ["explicit.stat_4208907162"], "implicit": ["implicit.stat_4208907162"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% increased Mana Regeneration Rate"}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% increased Movement Speed"}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Rarity of Items found", "better": 1, "matchers": [{"string": "#% increased Rarity of Items found"}, {"string": "#% reduced Rarity of Items found", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_rarity"], "explicit": ["explicit.stat_3917489142"], "implicit": ["implicit.stat_3917489142"], "fractured": ["fractured.stat_3917489142"], "scourge": ["scourge.stat_3917489142"], "crafted": ["crafted.stat_3917489142"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% increased Spell Damage"}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Life Regenerated per Second", "better": 1, "matchers": [{"string": "#% of Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_percent_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Life"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Mana"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased maximum Energy Shield", "better": 1, "matchers": [{"string": "#% total increased maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_energy_shield"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Level of Socketed Aura Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Aura Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_aura_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Bow Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Bow Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_bow_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Chaos Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Chaos Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_chaos_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Cold Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Cold Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_cold_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Curse Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Curse Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_curse_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Dexterity Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Dexterity Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_dexterity_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Elemental Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Elemental Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_elemental_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Fire Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Fire Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_fire_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Golem Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Golem Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_golem_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Intelligence Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Intelligence Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_intelligence_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Lightning Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Lightning Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_lightning_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Melee Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Melee Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_melee_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Minion Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Minion Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_minion_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Movement Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Movement Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_movement_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Projectile Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Projectile Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_projectile_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Skill Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Skill Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_skill_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Spell Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Spell Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_spell_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Strength Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Strength Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_strength_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Support Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Support Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_support_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Vaal Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Vaal Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_vaal_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Warcry Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Warcry Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_warcry_gem_levels"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Critical Strike Chance for Spells", "better": 1, "matchers": [{"string": "+#% total Critical Strike Chance for Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_critical_strike_chance_for_spells"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total Resistance", "better": 1, "matchers": [{"string": "+#% total Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_resistance"]}}}
{"ref": "+#% total to all Elemental Resistances", "better": 1, "matchers": [{"string": "+#% total to all Elemental Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_elemental_resistances"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "Adds # to # Chaos Damage", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage"], "explicit": ["explicit.stat_2223678961", "explicit.stat_3531280422"], "implicit": ["implicit.stat_2223678961", "implicit.stat_3531280422"], "fractured": ["fractured.stat_2223678961"], "enchant": ["enchant.stat_2223678961"], "scourge": ["scourge.stat_2223678961"]}}}
{"ref": "Adds # to # Chaos Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_attacks"], "explicit": ["explicit.stat_674553446"], "implicit": ["implicit.stat_674553446"], "fractured": ["fractured.stat_674553446"], "crafted": ["crafted.stat_674553446"]}}}
{"ref": "Adds # to # Chaos Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_spells"], "explicit": ["explicit.stat_2300399854"], "implicit": ["implicit.stat_2300399854"], "fractured": ["fractured.stat_2300399854"]}}}
{"ref": "Adds # to # Cold Damage", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage"], "explicit": ["explicit.stat_1037193709", "explicit.stat_2387423236"], "implicit": ["implicit.stat_1037193709", "implicit.stat_2387423236"], "fractured": ["fractured.stat_1037193709", "fractured.stat_2387423236"], "enchant": ["enchant.stat_1037193709"], "scourge": ["scourge.stat_1037193709"], "crafted": ["crafted.stat_1037193709", "crafted.stat_2387423236"]}}}
{"ref": "Adds # to # Cold Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_attacks"], "explicit": ["explicit.stat_4067062424"], "implicit": ["implicit.stat_4067062424"], "fractured": ["fractured.stat_4067062424"], "crafted": ["crafted.stat_4067062424"]}}}
{"ref": "Adds # to # Cold Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_spells"], "explicit": ["explicit.stat_2469416729"], "implicit": ["implicit.stat_2469416729"], "fractured": ["fractured.stat_2469416729"], "scourge": ["scourge.stat_2469416729"], "crafted": ["crafted.stat_2469416729"]}}}
{"ref": "Adds # to # Damage", "better": 1, "matchers": [{"string": "Adds # to # Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage"]}}}
{"ref": "Adds # to # Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Damage to Attacks "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_attacks"]}}}
{"ref": "Adds # to # Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Damage to Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_spells"]}}}
{"ref": "Adds # to # Elemental Damage", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage"]}}}
{"ref": "Adds # to # Elemental Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage to Attacks "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_attacks"]}}}
{"ref": "Adds # to # Elemental Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage to Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_spells"]}}}
{"ref": "Adds # to # Fire Damage", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage"], "explicit": ["explicit.stat_321077055", "explicit.stat_709508406"], "implicit": ["implicit.stat_321077055", "implicit.stat_709508406"], "fractured": ["fractured.stat_321077055", "fractured.stat_709508406"], "enchant": ["enchant.stat_709508406"], "scourge": ["scourge.stat_709508406"], "crafted": ["crafted.stat_321077055", "crafted.stat_709508406"]}}}
{"ref": "Adds # to # Fire Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_attacks"], "explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"], "fractured": ["fractured.stat_1573130764"], "crafted": ["crafted.stat_1573130764"]}}}
{"ref": "Adds # to # Fire Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_spells"], "explicit": ["explicit.stat_1133016593"], "implicit": ["implicit.stat_1133016593"], "fractured": ["fractured.stat_1133016593"], "scourge": ["scourge.stat_1133016593"], "crafted": ["crafted.stat_1133016593"]}}}
{"ref": "Adds # to # Lightning Damage", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage"], "explicit": ["explicit.stat_1334060246", "explicit.stat_3336890334"], "implicit": ["implicit.stat_1334060246", "implicit.stat_3336890334"], "fractured": ["fractured.stat_1334060246", "fractured.stat_3336890334"], "enchant": ["enchant.stat_3336890334"], "scourge": ["scourge.stat_3336890334"], "crafted": ["crafted.stat_1334060246", "crafted.stat_3336890334"]}}}
{"ref": "Adds # to # Lightning Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_attacks"], "explicit": ["explicit.stat_1754445556"], "implicit": ["implicit.stat_1754445556"], "fractured": ["fractured.stat_1754445556"], "crafted": ["crafted.stat_1754445556"]}}}
{"ref": "Adds # to # Lightning Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_spells"], "explicit": ["explicit.stat_2831165374"], "implicit": ["implicit.stat_2831165374"], "fractured": ["fractured.stat_2831165374"], "scourge": ["scourge.stat_2831165374"], "crafted": ["crafted.stat_2831165374"]}}}
{"ref": "Adds # to # Physical Damage", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage"], "explicit": ["explicit.stat_1940865751", "explicit.stat_960081730"], "implicit": ["implicit.stat_1940865751"], "fractured": ["fractured.stat_1940865751", "fractured.stat_960081730"], "scourge": ["scourge.stat_1940865751"], "crafted": ["crafted.stat_1940865751"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_attacks"], "explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"], "fractured": ["fractured.stat_3032590688"], "crafted": ["crafted.stat_3032590688"]}}}
{"ref": "Adds # to # Physical Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_spells"], "explicit": ["explicit.stat_2435536961"], "implicit": ["implicit.stat_2435536961"], "fractured": ["fractured.stat_2435536961"], "scourge": ["scourge.stat_2435536961"]}}}
{"ref": "Has # Influences", "better": 1, "matchers": [{"string": "Has # Influences "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_influence_count"]}}}
{"ref": "Has Crusader Influence", "better": 1, "matchers": [{"string": "Has Crusader Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_crusader_influence"]}}}
{"ref": "Has Elder Influence", "better": 1, "matchers": [{"string": "Has Elder Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_elder_influence"]}}}
{"ref": "Has Hunter Influence", "better": 1, "matchers": [{"string": "Has Hunter Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_hunter_influence"]}}}
{"ref": "Has Logbook Area: Battleground Graves", "better": 1, "matchers": [{"string": "Has Logbook Area: Battleground Graves "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_battleground_graves"]}}}
{"ref": "Has Logbook Area: Bluffs", "better": 1, "matchers": [{"string": "Has Logbook Area: Bluffs "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_bluffs"]}}}
{"ref": "Has Logbook Area: Cemetery", "better": 1, "matchers": [{"string": "Has Logbook Area: Cemetery "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_cemetery"]}}}
{"ref": "Has Logbook Area: Desert Ruins", "better": 1, "matchers": [{"string": "Has Logbook Area: Desert Ruins "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_desert_ruins"]}}}
{"ref": "Has Logbook Area: Dried Riverbed", "better": 1, "matchers": [{"string": "Has Logbook Area: Dried Riverbed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_dried_riverbed"]}}}
{"ref": "Has Logbook Area: Forest Ruins", "better": 1, "matchers": [{"string": "Has Logbook Area: Forest Ruins "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_forest_ruins"]}}}
{"ref": "Has Logbook Area: Karui Wargraves", "better": 1, "matchers": [{"string": "Has Logbook Area: Karui Wargraves "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_karui_wargraves"]}}}
{"ref": "Has Logbook Area: Mountainside", "better": 1, "matchers": [{"string": "Has Logbook Area: Mountainside "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_mountainside"]}}}
{"ref": "Has Logbook Area: Rotting Temple", "better": 1, "matchers": [{"string": "Has Logbook Area: Rotting Temple "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_rotting_temple"]}}}
{"ref": "Has Logbook Area: Sarn Slums", "better": 1, "matchers": [{"string": "Has Logbook Area: Sarn Slums "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_sarn_slums"]}}}
{"ref": "Has Logbook Area: Scrublands", "better": 1, "matchers": [{"string": "Has Logbook Area: Scrublands "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_scrublands"]}}}
{"ref": "Has Logbook Area: Shipwreck Reef", "better": 1, "matchers": [{"string": "Has Logbook Area: Shipwreck Reef "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_shipwreck_reef"]}}}
{"ref": "Has Logbook Area: Utzaal Outskirts", "better": 1, "matchers": [{"string": "Has Logbook Area: Utzaal Outskirts "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_utzaal_outskirts"]}}}
{"ref": "Has Logbook Area: Vaal Temple", "better": 1, "matchers": [{"string": "Has Logbook Area: Vaal Temple "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_vaal_temple"]}}}
{"ref": "Has Logbook Area: Volcanic Island", "better": 1, "matchers": [{"string": "Has Logbook Area: Volcanic Island "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_volcano"]}}}
{"ref": "Has Logbook Faction: Black Scythe Mercenaries", "better": 0, "matchers": [{"string": "Black Scythe Mercenaries"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_mercenaries"]}}}
{"ref": "Has Logbook Faction: Druids of the Broken Circle", "better": 0, "matchers": [{"string": "Druids of the Broken Circle"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_druids"]}}}
{"ref": "Has Logbook Faction: Knights of the Sun", "better": 0, "matchers": [{"string": "Knights of the Sun"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_knights"]}}}
{"ref": "Has Logbook Faction: Order of the Chalice", "better": 0, "matchers": [{"string": "Order of the Chalice"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_order"]}}}
{"ref": "Has Redeemer Influence", "better": 1, "matchers": [{"string": "Has Redeemer Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_redeemer_influence"]}}}
{"ref": "Has Room: Antechamber", "better": 0, "matchers": [{"string": "Antechamber"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_antechamber"]}, "option": true}}
{"ref": "Has Room: Apex of Ascension (Tier 3)", "better": 0, "matchers": [{"string": "Apex of Ascension (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_3"]}, "option": true}}
{"ref": "Has Room: Apex of Atzoatl", "better": 0, "matchers": [{"string": "Apex of Atzoatl"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_apex"]}, "option": true}}
{"ref": "Has Room: Arena of Valour (Tier 2)", "better": 0, "matchers": [{"string": "Arena of Valour (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_2"]}, "option": true}}
{"ref": "Has Room: Armourer's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Armourer's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_1"]}, "option": true}}
{"ref": "Has Room: Armoury (Tier 2)", "better": 0, "matchers": [{"string": "Armoury (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_2"]}, "option": true}}
{"ref": "Has Room: Atlas of Worlds (Tier 3)", "better": 0, "matchers": [{"string": "Atlas of Worlds (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_3"]}, "option": true}}
{"ref": "Has Room: Automaton Lab (Tier 2)", "better": 0, "matchers": [{"string": "Automaton Lab (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_2"]}, "option": true}}
{"ref": "Has Room: Banquet Hall", "better": 0, "matchers": [{"string": "Banquet Hall"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_banquet_hall"]}, "option": true}}
{"ref": "Has Room: Barracks (Tier 2)", "better": 0, "matchers": [{"string": "Barracks (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_2"]}, "option": true}}
{"ref": "Has Room: Breach Containment Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Breach Containment Chamber (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_2"]}, "option": true}}
{"ref": "Has Room: Catalyst of Corruption (Tier 2)", "better": 0, "matchers": [{"string": "Catalyst of Corruption (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_2"]}, "option": true}}
{"ref": "Has Room: Cellar", "better": 0, "matchers": [{"string": "Cellar"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cellar"]}, "option": true}}
{"ref": "Has Room: Chamber of Iron (Tier 3)", "better": 0, "matchers": [{"string": "Chamber of Iron (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_3"]}, "option": true}}
{"ref": "Has Room: Chasm", "better": 0, "matchers": [{"string": "Chasm"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chasm_room"]}, "option": true}}
{"ref": "Has Room: Cloister", "better": 0, "matchers": [{"string": "Cloister"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cloister"]}, "option": true}}
{"ref": "Has Room: Conduit of Lightning (Tier 3)", "better": 0, "matchers": [{"string": "Conduit of Lightning (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_3"]}, "option": true}}
{"ref": "Has Room: Corruption Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Corruption Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_1"]}, "option": true}}
{"ref": "Has Room: Court of Sealed Death (Tier 3)", "better": 0, "matchers": [{"string": "Court of Sealed Death (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_3"]}, "option": true}}
{"ref": "Has Room: Crucible of Flame (Tier 3)", "better": 0, "matchers": [{"string": "Crucible of Flame (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_3"]}, "option": true}}
{"ref": "Has Room: Cultivar Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Cultivar Chamber (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_2"]}, "option": true}}
{"ref": "Has Room: Defense Research Lab (Tier 3)", "better": 0, "matchers": [{"string": "Defense Research Lab (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_3"]}, "option": true}}
{"ref": "Has Room: Demolition Lab (Tier 2)", "better": 0, "matchers": [{"string": "Demolition Lab (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_2"]}, "option": true}}
{"ref": "Has Room: Department of Thaumaturgy (Tier 2)", "better": 0, "matchers": [{"string": "Department of Thaumaturgy (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_2"]}, "option": true}}
{"ref": "Has Room: Doryani's Institute (Tier 3)", "better": 0, "matchers": [{"string": "Doryani's Institute (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_3"]}, "option": true}}
{"ref": "Has Room: Engineering Department (Tier 2)", "better": 0, "matchers": [{"string": "Engineering Department (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_2"]}, "option": true}}
{"ref": "Has Room: Explosives Room (Tier 1)", "better": 0, "matchers": [{"string": "Explosives Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_1"]}, "option": true}}
{"ref": "Has Room: Factory (Tier 3)", "better": 0, "matchers": [{"string": "Factory (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_3"]}, "option": true}}
{"ref": "Has Room: Flame Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Flame Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_1"]}, "option": true}}
{"ref": "Has Room: Gemcutter's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Gemcutter's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_1"]}, "option": true}}
{"ref": "Has Room: Glittering Halls (Tier 3)", "better": 0, "matchers": [{"string": "Glittering Halls (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_3"]}, "option": true}}
{"ref": "Has Room: Guardhouse (Tier 1)", "better": 0, "matchers": [{"string": "Guardhouse (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_1"]}, "option": true}}
{"ref": "Has Room: Hall of Champions (Tier 3)", "better": 0, "matchers": [{"string": "Hall of Champions (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_3"]}, "option": true}}
{"ref": "Has Room: Hall of Heroes (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Heroes (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_2"]}, "option": true}}
{"ref": "Has Room: Hall of Legends (Tier 3)", "better": 0, "matchers": [{"string": "Hall of Legends (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_3"]}, "option": true}}
{"ref": "Has Room: Hall of Locks (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Locks (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_2"]}, "option": true}}
{"ref": "Has Room: Hall of Lords (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Lords (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_2"]}, "option": true}}
{"ref": "Has Room: Hall of Mettle (Tier 1)", "better": 0, "matchers": [{"string": "Hall of Mettle (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_1"]}, "option": true}}
{"ref": "Has Room: Hall of Offerings (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Offerings (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_2"]}, "option": true}}
{"ref": "Has Room: Hall of War (Tier 3)", "better": 0, "matchers": [{"string": "Hall of War (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_3"]}, "option": true}}
{"ref": "Has Room: Halls", "better": 0, "matchers": [{"string": "Halls"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_halls"]}, "option": true}}
{"ref": "Has Room: Hatchery (Tier 1)", "better": 0, "matchers": [{"string": "Hatchery (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_1"]}, "option": true}}
{"ref": "Has Room: House of the Others (Tier 3)", "better": 0, "matchers": [{"string": "House of the Others (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_3"]}, "option": true}}
{"ref": "Has Room: Hurricane Engine (Tier 2)", "better": 0, "matchers": [{"string": "Hurricane Engine (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_2"]}, "option": true}}
{"ref": "Has Room: Hybridisation Chamber (Tier 3)", "better": 0, "matchers": [{"string": "Hybridisation Chamber (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_3"]}, "option": true}}
{"ref": "Has Room: Jeweller's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Jeweller's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_1"]}, "option": true}}
{"ref": "Has Room: Jewellery Forge (Tier 2)", "better": 0, "matchers": [{"string": "Jewellery Forge (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_2"]}, "option": true}}
{"ref": "Has Room: Lightning Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Lightning Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_1"]}, "option": true}}
{"ref": "Has Room: Locus of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Locus of Corruption (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_3"]}, "option": true}}
{"ref": "Has Room: Museum of Artefacts (Tier 3)", "better": 0, "matchers": [{"string": "Museum of Artefacts (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_3"]}, "option": true}}
{"ref": "Has Room: Office of Cartography (Tier 2)", "better": 0, "matchers": [{"string": "Office of Cartography (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Forge (Tier 2)", "better": 0, "matchers": [{"string": "Omnitect Forge (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Reactor Plant (Tier 2)", "better": 0, "matchers": [{"string": "Omnitect Reactor Plant (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_2"]}, "option": true}}
{"ref": "Has Room: Passageways", "better": 0, "matchers": [{"string": "Passageways"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_passageways"]}, "option": true}}
{"ref": "Has Room: Pits", "better": 0, "matchers": [{"string": "Pits"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_the_pits"]}, "option": true}}
{"ref": "Has Room: Poison Garden (Tier 1)", "better": 0, "matchers": [{"string": "Poison Garden (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_1"]}, "option": true}}
{"ref": "Has Room: Pools of Restoration (Tier 1)", "better": 0, "matchers": [{"string": "Pools of Restoration (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_1"]}, "option": true}}
{"ref": "Has Room: Royal Meeting Room (Tier 1)", "better": 0, "matchers": [{"string": "Royal Meeting Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_1"]}, "option": true}}
{"ref": "Has Room: Sacrificial Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Sacrificial Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_1"]}, "option": true}}
{"ref": "Has Room: Sadist's Den (Tier 3)", "better": 0, "matchers": [{"string": "Sadist's Den (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Immortality (Tier 3)", "better": 0, "matchers": [{"string": "Sanctum of Immortality (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Unity (Tier 2)", "better": 0, "matchers": [{"string": "Sanctum of Unity (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_2"]}, "option": true}}
{"ref": "Has Room: Sanctum of Vitality (Tier 2)", "better": 0, "matchers": [{"string": "Sanctum of Vitality (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_2"]}, "option": true}}
{"ref": "Has Room: Shrine of Empowerment (Tier 1)", "better": 0, "matchers": [{"string": "Shrine of Empowerment (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_1"]}, "option": true}}
{"ref": "Has Room: Shrine of Unmaking (Tier 3)", "better": 0, "matchers": [{"string": "Shrine of Unmaking (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_3"]}, "option": true}}
{"ref": "Has Room: Sparring Room (Tier 1)", "better": 0, "matchers": [{"string": "Sparring Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_1"]}, "option": true}}
{"ref": "Has Room: Splinter Research Lab (Tier 1)", "better": 0, "matchers": [{"string": "Splinter Research Lab (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_1"]}, "option": true}}
{"ref": "Has Room: Storage Room (Tier 1)", "better": 0, "matchers": [{"string": "Storage Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_1"]}, "option": true}}
{"ref": "Has Room: Storm of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Storm of Corruption (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_3"]}, "option": true}}
{"ref": "Has Room: Strongbox Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Strongbox Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_1"]}, "option": true}}
{"ref": "Has Room: Surveyor's Study (Tier 1)", "better": 0, "matchers": [{"string": "Surveyor's Study (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_1"]}, "option": true}}
{"ref": "Has Room: Tempest Generator (Tier 1)", "better": 0, "matchers": [{"string": "Tempest Generator (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_1"]}, "option": true}}
{"ref": "Has Room: Temple Defense Workshop (Tier 2)", "better": 0, "matchers": [{"string": "Temple Defense Workshop (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_2"]}, "option": true}}
{"ref": "Has Room: Temple Nexus (Tier 3)", "better": 0, "matchers": [{"string": "Temple Nexus (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_3"]}, "option": true}}
{"ref": "Has Room: Throne of Atziri (Tier 3)", "better": 0, "matchers": [{"string": "Throne of Atziri (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_3"]}, "option": true}}
{"ref": "Has Room: Tombs", "better": 0, "matchers": [{"string": "Tombs"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tombs"]}, "option": true}}
{"ref": "Has Room: Torment Cells (Tier 1)", "better": 0, "matchers": [{"string": "Torment Cells (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_1"]}, "option": true}}
{"ref": "Has Room: Torture Cages (Tier 2)", "better": 0, "matchers": [{"string": "Torture Cages (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_2"]}, "option": true}}
{"ref": "Has Room: Toxic Grove (Tier 3)", "better": 0, "matchers": [{"string": "Toxic Grove (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_3"]}, "option": true}}
{"ref": "Has Room: Trap Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Trap Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_1"]}, "option": true}}
{"ref": "Has Room: Treasury (Tier 2)", "better": 0, "matchers": [{"string": "Treasury (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_2"]}, "option": true}}
{"ref": "Has Room: Tunnels", "better": 0, "matchers": [{"string": "Tunnels"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tunnels"]}, "option": true}}
{"ref": "Has Room: Vault (Tier 1)", "better": 0, "matchers": [{"string": "Vault (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_1"]}, "option": true}}
{"ref": "Has Room: Warehouses (Tier 2)", "better": 0, "matchers": [{"string": "Warehouses (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_2"]}, "option": true}}
{"ref": "Has Room: Wealth of the Vaal (Tier 3)", "better": 0, "matchers": [{"string": "Wealth of the Vaal (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_3"]}, "option": true}}
{"ref": "Has Room: Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_1"]}, "option": true}}
{"ref": "Has Shaper Influence", "better": 1, "matchers": [{"string": "Has Shaper Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_shaper_influence"]}}}
{"ref": "Has Warlord Influence", "better": 1, "matchers": [{"string": "Has Warlord Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_warlord_influence"]}}}
{"ref": "Mirrored Tablet has # Islands", "better": 1, "matchers": [{"string": "Mirrored Tablet has # Islands "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_lake_number_of_islands"]}}}
{"ref": "More Currency: #%", "better": 1, "matchers": [{"string": "More Currency: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_currency_drops"]}}}
{"ref": "More Divination Cards: #%", "better": 1, "matchers": [{"string": "More Divination Cards: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_card_drops"]}}}
{"ref": "More Maps: #%", "better": 1, "matchers": [{"string": "More Maps: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_map_drops"]}}}
{"ref": "More Scarabs: #%", "better": 1, "matchers": [{"string": "More Scarabs: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_scarab_drops"]}}}
{"ref": "Quality (Attack Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Attack Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attack_quality"]}}}
{"ref": "Quality (Attribute Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Attribute Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attribute_quality"]}}}
{"ref": "Quality (Caster Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Caster Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_caster_quality"]}}}
{"ref": "Quality (Critical Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Critical Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_critical_quality"]}}}
{"ref": "Quality (Currency): #%", "better": 1, "matchers": [{"string": "Quality (Currency): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_currency"]}}}
{"ref": "Quality (Defence Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Defence Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_defense_quality"]}}}
{"ref": "Quality (Divination Cards): #%", "better": 1, "matchers": [{"string": "Quality (Divination Cards): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_cards"]}}}
{"ref": "Quality (Elemental Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Elemental Damage Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_elemental_quality"]}}}
{"ref": "Quality (Life and Mana Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Life and Mana Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resource_quality"]}}}
{"ref": "Quality (Pack Size): #%", "better": 1, "matchers": [{"string": "Quality (Pack Size): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_pack_size"]}}}
{"ref": "Quality (Physical and Chaos Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Physical and Chaos Damage Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_physical_chaos_quality"]}}}
{"ref": "Quality (Rarity): #%", "better": 1, "matchers": [{"string": "Quality (Rarity): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_rarity"]}}}
{"ref": "Quality (Resistance Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Resistance Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resistance_quality"]}}}
{"ref": "Quality (Scarabs): #%", "better": 1, "matchers": [{"string": "Quality (Scarabs): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_scarabs"]}}}
{"ref": "Quality (Speed Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Speed Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_speed_quality"]}}}
{"ref": "Reflection of Abyss (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Abyss (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38892"]}}}
{"ref": "Reflection of Ambush (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Ambush (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_48307"]}}}
{"ref": "Reflection of Angling (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Angling (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40794"]}}}
{"ref": "Reflection of Azurite (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Azurite (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40031"]}}}
{"ref": "Reflection of Bestiary (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Bestiary (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55569"]}}}
{"ref": "Reflection of Breach (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Breach (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62572"]}}}
{"ref": "Reflection of Brutality (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Brutality (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29096"]}}}
{"ref": "Reflection of Camaraderie (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Camaraderie (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35395"]}}}
{"ref": "Reflection of Catalysis (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Catalysis (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57850"]}}}
{"ref": "Reflection of Chaos (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Chaos (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50834"]}}}
{"ref": "Reflection of Conflict (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Conflict (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_1931"]}}}
{"ref": "Reflection of Darkness (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Darkness (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34457"]}}}
{"ref": "Reflection of Delirium (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Delirium (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_22138"]}}}
{"ref": "Reflection of Delve (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Delve (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18737"]}}}
{"ref": "Reflection of Demonfire (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Demonfire (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_28500"]}}}
{"ref": "Reflection of Domination (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Domination (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_63412"]}}}
{"ref": "Reflection of Entrapment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Entrapment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_44399"]}}}
{"ref": "Reflection of Essence (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Essence (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49862"]}}}
{"ref": "Reflection of Experimentation (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Experimentation (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55676"]}}}
{"ref": "Reflection of Flame (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Flame (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_42468"]}}}
{"ref": "Reflection of Fractured Dimensions (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Fractured Dimensions (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49488"]}}}
{"ref": "Reflection of Frost (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Frost (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38110"]}}}
{"ref": "Reflection of Guilt (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Guilt (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25480"]}}}
{"ref": "Reflection of Imprisonment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Imprisonment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_10363"]}}}
{"ref": "Reflection of Kalandra (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Kalandra (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_36591"]}}}
{"ref": "Reflection of Legion (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Legion (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_403"]}}}
{"ref": "Reflection of Metamorph (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Metamorph (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_3699"]}}}
{"ref": "Reflection of Occultism (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Occultism (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24451"]}}}
{"ref": "Reflection of Paradise (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Paradise (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50846"]}}}
{"ref": "Reflection of Perverted Faith (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Perverted Faith (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27678"]}}}
{"ref": "Reflection of Phaaryl (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Phaaryl (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_7674"]}}}
{"ref": "Reflection of Possession (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Possession (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25049"]}}}
{"ref": "Reflection of Power (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Power (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35950"]}}}
{"ref": "Reflection of Scourge (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Scourge (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62360"]}}}
{"ref": "Reflection of Stasis (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Stasis (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_32968"]}}}
{"ref": "Reflection of Sulphite (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Sulphite (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_45086"]}}}
{"ref": "Reflection of the Black Scythe (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Black Scythe (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_9662"]}}}
{"ref": "Reflection of the Breachlord (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Breachlord (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62935"]}}}
{"ref": "Reflection of the Broken Circle (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Broken Circle (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_43128"]}}}
{"ref": "Reflection of the Chalice (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Chalice (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_64561"]}}}
{"ref": "Reflection of the Chasm (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Chasm (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57101"]}}}
{"ref": "Reflection of the Dream (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Dream (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27117"]}}}
{"ref": "Reflection of the Harbingers (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Harbingers (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_37203"]}}}
{"ref": "Reflection of the Hunter (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Hunter (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18816"]}}}
{"ref": "Reflection of the Monolith (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Monolith (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34796"]}}}
{"ref": "Reflection of the Nightmare (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Nightmare (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24232"]}}}
{"ref": "Reflection of the Storm (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Storm (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_2745"]}}}
{"ref": "Reflection of the Sun (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Sun (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60034"]}}}
{"ref": "Reflection of the Trove (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Trove (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_46772"]}}}
{"ref": "Reflection of the Wilderness (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Wilderness (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29224"]}}}
{"ref": "Reflection of Thralldom (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Thralldom (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_26813"]}}}
{"ref": "Reflection of Torment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Torment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_53950"]}}}
{"ref": "Reflection of Tyranny (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Tyranny (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60981"]}}}

View File

@@ -0,0 +1,81 @@
import json
import os
def get_script_dir():
"""Returns the directory where the script is located."""
return os.path.dirname(os.path.realpath(__file__))
# List of localization codes
localizations = ["en", "ru", "ko", "cmn-Hant"]
# File containing the pseudo keys to filter on
keys_file_path = (
f"{get_script_dir()}/pseudo_keys.ndjson" # Path to your ndjson pseudo keys file
)
def load_pseudo_keys():
pseudo_keys = set()
with open(keys_file_path, "r", encoding="utf-8") as keys_file:
for line in keys_file:
try:
json_object = json.loads(line)
# Assume the pseudo keys are stored under the 'trade.ids.pseudo' path
if (
"trade" in json_object
and "ids" in json_object["trade"]
and "pseudo" in json_object["trade"]["ids"]
):
for key in json_object["trade"]["ids"]["pseudo"]:
pseudo_keys.add(key)
except json.JSONDecodeError as e:
print(f"Error parsing JSON in keys file: {e}")
return pseudo_keys
def process_localization_file(input_file_path, output_file_path, pseudo_keys):
result_list = []
with open(input_file_path, "r", encoding="utf-8") as input_file:
for line in input_file:
try:
json_object = json.loads(line)
# Check if 'trade.ids.pseudo' exists
if has_nested_key(json_object, "trade.ids.pseudo") and any(
value in pseudo_keys
for value in json_object["trade"]["ids"]["pseudo"]
):
result_list.append(json_object)
except json.JSONDecodeError as e:
print(f"Error parsing JSON: {e}")
with open(output_file_path, "w", encoding="utf-8") as output_file:
for item in result_list:
output_file.write(json.dumps(item, ensure_ascii=False) + "\n")
print(
f"Processing complete for {input_file_path}. Check {output_file_path} for results."
)
def has_nested_key(obj, key_path):
keys = key_path.split(".")
for key in keys:
if isinstance(obj, dict) and key in obj:
obj = obj[key]
else:
return False
return True
if __name__ == "__main__":
pseudo_keys = load_pseudo_keys()
for loc in localizations:
input_file_path = f"{get_script_dir()}/../../data/{loc}/stats.ndjson.old" # Path to the input file
output_file_path = (
f"{get_script_dir()}/{loc}/pseudo_stats.ndjson" # Path to the output file
)
process_localization_file(input_file_path, output_file_path, pseudo_keys)

View File

@@ -0,0 +1,292 @@
{"ref": "# Crafted Modifiers", "better": 1, "matchers": [{"string": "# 工藝詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_mods"]}}}
{"ref": "# Crafted Prefix Modifiers", "better": 1, "matchers": [{"string": "# 工藝前綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_prefix_mods"]}}}
{"ref": "# Crafted Suffix Modifiers", "better": 1, "matchers": [{"string": "# 工藝後綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_suffix_mods"]}}}
{"ref": "# Empty Modifiers", "better": 1, "matchers": [{"string": "# 空詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_affix_mods"]}}}
{"ref": "# Empty Prefix Modifiers", "better": 1, "matchers": [{"string": "# 空前綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_prefix_mods"]}}}
{"ref": "# Empty Suffix Modifiers", "better": 1, "matchers": [{"string": "# 空後綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_suffix_mods"]}}}
{"ref": "# Enchant Modifiers", "better": 1, "matchers": [{"string": "# 附魔詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_enchant_mods"]}}}
{"ref": "# Fractured Modifiers", "better": 1, "matchers": [{"string": "# 破裂詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_fractured_mods"]}}}
{"ref": "# Implicit Modifiers", "better": 1, "matchers": [{"string": "# 固定詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_implicit_mods"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# 每秒生命回復 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "# Modifiers", "better": 1, "matchers": [{"string": "# 詞綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_affix_mods"]}}}
{"ref": "# Notable Passive Skills", "better": 1, "matchers": [{"string": "# 強力天賦 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_notable_passive_skills"]}}}
{"ref": "# Prefix Modifiers", "better": 1, "matchers": [{"string": "# 前綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_prefix_mods"]}}}
{"ref": "# Suffix Modifiers", "better": 1, "matchers": [{"string": "# 後綴 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_suffix_mods"]}}}
{"ref": "# total Elemental Resistances", "better": 1, "matchers": [{"string": "# 元素抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_elemental_resistances"]}}}
{"ref": "# total Resistances", "better": 1, "matchers": [{"string": "# 總抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_resistances"]}}}
{"ref": "#% Base Defence Percentile", "better": 1, "matchers": [{"string": "#% 基礎防禦百分比 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_base_defence_percentile"]}}}
{"ref": "#% chance for dropped Maps to convert to Atlas Memories", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至輿圖記憶 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_memory_line"]}}}
{"ref": "#% chance for dropped Maps to convert to Conqueror Maps", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至征服者地圖 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_conqueror_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Elder Maps", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至尊師地圖 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_elder_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Maven Invitations", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至釋界之邀 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_maven_invitation"]}}}
{"ref": "#% chance for dropped Maps to convert to Scarabs", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至聖甲蟲 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_scarab"]}}}
{"ref": "#% chance for dropped Maps to convert to Shaper Maps", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至塑界者地圖 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_shaper_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Unique Maps", "better": 1, "matchers": [{"string": "掉落的地圖有 #% 機率轉化至傳奇地圖 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_unique_map"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "增加 #% 燃燒傷害"}, {"string": "減少 #% 燃燒傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "增加 #% 冰冷傷害"}, {"string": "減少 #% 冰冷傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Damage with Attack Skills", "better": 1, "matchers": [{"string": "攻擊技能增加 #% 冰冷傷害"}, {"string": "攻擊技能減少 #% 冰冷傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage_with_attack_skills"], "explicit": ["explicit.stat_860668586"], "implicit": ["implicit.stat_860668586"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 冰冷法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "增加 #% 元素傷害"}, {"string": "有增加 #% 的元素傷害"}, {"string": "有減少 #% 的元素傷害", "negate": true}, {"string": "減少 #% 元素傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "攻擊技能增加 #% 元素傷害"}, {"string": "攻擊技能減少 #% 元素傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "增加 #% 火焰傷害"}, {"string": "減少 #% 火焰傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Damage with Attack Skills", "better": 1, "matchers": [{"string": "攻擊技能增加 #% 火焰傷害"}, {"string": "攻擊技能減少 #% 火焰傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage_with_attack_skills"], "implicit": ["implicit.stat_2468413380"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 火焰法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "增加 #% 閃電傷害"}, {"string": "減少 #% 閃電傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Damage with Attack Skills", "better": 1, "matchers": [{"string": "攻擊技能增加 #% 閃電傷害"}, {"string": "攻擊技能減少 #% 閃電傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage_with_attack_skills"], "explicit": ["explicit.stat_4208907162"], "implicit": ["implicit.stat_4208907162"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 閃電法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "增加 #% 魔力回復率"}, {"string": "減少 #% 魔力回復率", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "增加 #% 移動速度"}, {"string": "減少 #% 移動速度", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Rarity of Items found", "better": 1, "matchers": [{"string": "增加 #% 物品稀有度"}, {"string": "減少 #% 物品稀有度", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_rarity"], "explicit": ["explicit.stat_3917489142"], "implicit": ["implicit.stat_3917489142"], "fractured": ["fractured.stat_3917489142"], "scourge": ["scourge.stat_3917489142"], "crafted": ["crafted.stat_3917489142"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 法術傷害"}, {"string": "減少 #% 法術傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Life Regenerated per Second", "better": 1, "matchers": [{"string": "每秒回復 #% 生命 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_percent_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% 的物理攻擊傷害偷取生命"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% 物理攻擊傷害偷取魔力"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased maximum Energy Shield", "better": 1, "matchers": [{"string": "增加 #% 最大能量護盾 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_energy_shield"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "增加 #% 物裡傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# 最大能量護盾 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# 最大生命 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# 最大魔力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# 全能力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# 敏捷 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# 智慧 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Level of Socketed Aura Gems", "better": 1, "matchers": [{"string": "+# 插槽中光環寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_aura_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Bow Gems", "better": 1, "matchers": [{"string": "+# 插槽中弓寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_bow_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Chaos Gems", "better": 1, "matchers": [{"string": "+# 插槽中混沌寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_chaos_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Cold Gems", "better": 1, "matchers": [{"string": "+# 插槽中冰冷寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_cold_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Curse Gems", "better": 1, "matchers": [{"string": "+# 插槽中詛咒寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_curse_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Dexterity Gems", "better": 1, "matchers": [{"string": "+# 插槽中敏捷寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_dexterity_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Elemental Gems", "better": 1, "matchers": [{"string": "+# 插槽中元素寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_elemental_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Fire Gems", "better": 1, "matchers": [{"string": "+# 插槽中火焰寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_fire_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Gems", "better": 1, "matchers": [{"string": "+# 插槽中寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Golem Gems", "better": 1, "matchers": [{"string": "+# 插槽中魔像寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_golem_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Intelligence Gems", "better": 1, "matchers": [{"string": "+# 插槽中智慧寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_intelligence_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Lightning Gems", "better": 1, "matchers": [{"string": "+# 插槽中閃電寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_lightning_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Melee Gems", "better": 1, "matchers": [{"string": "+# 插槽中近戰寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_melee_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Minion Gems", "better": 1, "matchers": [{"string": "+# 插槽中召喚物寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_minion_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Movement Gems", "better": 1, "matchers": [{"string": "+# 插槽中位移寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_movement_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Projectile Gems", "better": 1, "matchers": [{"string": "+# 插槽中投射物寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_projectile_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Skill Gems", "better": 1, "matchers": [{"string": "+# 插槽中技能寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_skill_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Spell Gems", "better": 1, "matchers": [{"string": "+# 插槽中法術寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_spell_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Strength Gems", "better": 1, "matchers": [{"string": "+# 插槽中力量寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_strength_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Support Gems", "better": 1, "matchers": [{"string": "+# 插槽中輔助寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_support_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Vaal Gems", "better": 1, "matchers": [{"string": "+# 插槽中瓦爾寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_vaal_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Warcry Gems", "better": 1, "matchers": [{"string": "+# 插槽中戰吼寶石等級 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_warcry_gem_levels"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# 力量 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% 全域暴擊機率 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% 全域暴擊加成 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% 攻擊速度 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% 施放速度 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Critical Strike Chance for Spells", "better": 1, "matchers": [{"string": "+#% 法術暴擊機率 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_critical_strike_chance_for_spells"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% 元素抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total Resistance", "better": 1, "matchers": [{"string": "+#% 總抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_resistance"]}}}
{"ref": "+#% total to all Elemental Resistances", "better": 1, "matchers": [{"string": "+#% 元素抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_elemental_resistances"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% 總混沌抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% 冰冷抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% 火焰抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% 閃電抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "Adds # to # Chaos Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 混沌傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage"], "explicit": ["explicit.stat_2223678961", "explicit.stat_3531280422"], "implicit": ["implicit.stat_2223678961", "implicit.stat_3531280422"], "fractured": ["fractured.stat_2223678961"], "enchant": ["enchant.stat_2223678961"], "scourge": ["scourge.stat_2223678961"]}}}
{"ref": "Adds # to # Chaos Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 混沌傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_attacks"], "explicit": ["explicit.stat_674553446"], "implicit": ["implicit.stat_674553446"], "fractured": ["fractured.stat_674553446"], "crafted": ["crafted.stat_674553446"]}}}
{"ref": "Adds # to # Chaos Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 混沌傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_spells"], "explicit": ["explicit.stat_2300399854"], "implicit": ["implicit.stat_2300399854"], "fractured": ["fractured.stat_2300399854"]}}}
{"ref": "Adds # to # Cold Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 冰冷傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage"], "explicit": ["explicit.stat_1037193709", "explicit.stat_2387423236"], "implicit": ["implicit.stat_1037193709", "implicit.stat_2387423236"], "fractured": ["fractured.stat_1037193709", "fractured.stat_2387423236"], "enchant": ["enchant.stat_1037193709"], "scourge": ["scourge.stat_1037193709"], "crafted": ["crafted.stat_1037193709", "crafted.stat_2387423236"]}}}
{"ref": "Adds # to # Cold Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 冰冷傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_attacks"], "explicit": ["explicit.stat_4067062424"], "implicit": ["implicit.stat_4067062424"], "fractured": ["fractured.stat_4067062424"], "crafted": ["crafted.stat_4067062424"]}}}
{"ref": "Adds # to # Cold Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 冰冷傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_spells"], "explicit": ["explicit.stat_2469416729"], "implicit": ["implicit.stat_2469416729"], "fractured": ["fractured.stat_2469416729"], "scourge": ["scourge.stat_2469416729"], "crafted": ["crafted.stat_2469416729"]}}}
{"ref": "Adds # to # Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage"]}}}
{"ref": "Adds # to # Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_attacks"]}}}
{"ref": "Adds # to # Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_spells"]}}}
{"ref": "Adds # to # Elemental Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 元素傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage"]}}}
{"ref": "Adds # to # Elemental Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 元素傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_attacks"]}}}
{"ref": "Adds # to # Elemental Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 元素傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_spells"]}}}
{"ref": "Adds # to # Fire Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 火焰傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage"], "explicit": ["explicit.stat_321077055", "explicit.stat_709508406"], "implicit": ["implicit.stat_321077055", "implicit.stat_709508406"], "fractured": ["fractured.stat_321077055", "fractured.stat_709508406"], "enchant": ["enchant.stat_709508406"], "scourge": ["scourge.stat_709508406"], "crafted": ["crafted.stat_321077055", "crafted.stat_709508406"]}}}
{"ref": "Adds # to # Fire Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 火焰傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_attacks"], "explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"], "fractured": ["fractured.stat_1573130764"], "crafted": ["crafted.stat_1573130764"]}}}
{"ref": "Adds # to # Fire Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 火焰傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_spells"], "explicit": ["explicit.stat_1133016593"], "implicit": ["implicit.stat_1133016593"], "fractured": ["fractured.stat_1133016593"], "scourge": ["scourge.stat_1133016593"], "crafted": ["crafted.stat_1133016593"]}}}
{"ref": "Adds # to # Lightning Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 閃電傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage"], "explicit": ["explicit.stat_1334060246", "explicit.stat_3336890334"], "implicit": ["implicit.stat_1334060246", "implicit.stat_3336890334"], "fractured": ["fractured.stat_1334060246", "fractured.stat_3336890334"], "enchant": ["enchant.stat_3336890334"], "scourge": ["scourge.stat_3336890334"], "crafted": ["crafted.stat_1334060246", "crafted.stat_3336890334"]}}}
{"ref": "Adds # to # Lightning Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 閃電傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_attacks"], "explicit": ["explicit.stat_1754445556"], "implicit": ["implicit.stat_1754445556"], "fractured": ["fractured.stat_1754445556"], "crafted": ["crafted.stat_1754445556"]}}}
{"ref": "Adds # to # Lightning Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 閃電傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_spells"], "explicit": ["explicit.stat_2831165374"], "implicit": ["implicit.stat_2831165374"], "fractured": ["fractured.stat_2831165374"], "scourge": ["scourge.stat_2831165374"], "crafted": ["crafted.stat_2831165374"]}}}
{"ref": "Adds # to # Physical Damage", "better": 1, "matchers": [{"string": "附加 # 至 # 物理傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage"], "explicit": ["explicit.stat_1940865751", "explicit.stat_960081730"], "implicit": ["implicit.stat_1940865751"], "fractured": ["fractured.stat_1940865751"], "scourge": ["scourge.stat_1940865751"], "crafted": ["crafted.stat_1940865751"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "matchers": [{"string": "攻擊附加 # 至 # 物理傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_attacks"], "explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"], "fractured": ["fractured.stat_3032590688"], "crafted": ["crafted.stat_3032590688"]}}}
{"ref": "Adds # to # Physical Damage to Spells", "better": 1, "matchers": [{"string": "法術附加 # 至 # 物理傷害"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_spells"], "explicit": ["explicit.stat_2435536961"], "implicit": ["implicit.stat_2435536961"], "fractured": ["fractured.stat_2435536961"], "scourge": ["scourge.stat_2435536961"]}}}
{"ref": "Has # Influences", "better": 1, "matchers": [{"string": "有 # 勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_influence_count"]}}}
{"ref": "Has Crusader Influence", "better": 1, "matchers": [{"string": "有聖戰軍王勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_crusader_influence"]}}}
{"ref": "Has Elder Influence", "better": 1, "matchers": [{"string": "有尊師勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_elder_influence"]}}}
{"ref": "Has Hunter Influence", "better": 1, "matchers": [{"string": "有狩獵者勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_hunter_influence"]}}}
{"ref": "Has Logbook Area: Battleground Graves", "better": 1, "matchers": [{"string": "有日誌區域:烽火墳墓 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_battleground_graves"]}}}
{"ref": "Has Logbook Area: Bluffs", "better": 1, "matchers": [{"string": "有日誌區域:陡岸峭壁 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_bluffs"]}}}
{"ref": "Has Logbook Area: Cemetery", "better": 1, "matchers": [{"string": "有日誌區域:公墓 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_cemetery"]}}}
{"ref": "Has Logbook Area: Desert Ruins", "better": 1, "matchers": [{"string": "有日誌區域:沙漠廢墟 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_desert_ruins"]}}}
{"ref": "Has Logbook Area: Dried Riverbed", "better": 1, "matchers": [{"string": "有日誌區域:乾枯河床 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_dried_riverbed"]}}}
{"ref": "Has Logbook Area: Forest Ruins", "better": 1, "matchers": [{"string": "有日誌區域:森林遺跡 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_forest_ruins"]}}}
{"ref": "Has Logbook Area: Karui Wargraves", "better": 1, "matchers": [{"string": "有日誌區域:卡魯戰爭墓地 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_karui_wargraves"]}}}
{"ref": "Has Logbook Area: Mountainside", "better": 1, "matchers": [{"string": "有日誌區域:迷黯山腰 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_mountainside"]}}}
{"ref": "Has Logbook Area: Rotting Temple", "better": 1, "matchers": [{"string": "有日誌區域:腐朽神殿 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_rotting_temple"]}}}
{"ref": "Has Logbook Area: Sarn Slums", "better": 1, "matchers": [{"string": "有日誌區域:薩恩貧民窟 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_sarn_slums"]}}}
{"ref": "Has Logbook Area: Scrublands", "better": 1, "matchers": [{"string": "有日誌區域:灌木叢 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_scrublands"]}}}
{"ref": "Has Logbook Area: Shipwreck Reef", "better": 1, "matchers": [{"string": "有日誌區域:沉船岩礁 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_shipwreck_reef"]}}}
{"ref": "Has Logbook Area: Utzaal Outskirts", "better": 1, "matchers": [{"string": "有日誌區域:奧札爾郊野 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_utzaal_outskirts"]}}}
{"ref": "Has Logbook Area: Vaal Temple", "better": 1, "matchers": [{"string": "有日誌區域:瓦爾神殿 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_vaal_temple"]}}}
{"ref": "Has Logbook Area: Volcanic Island", "better": 1, "matchers": [{"string": "有日誌區域:火山島 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_volcano"]}}}
{"ref": "Has Logbook Faction: Black Scythe Mercenaries", "better": 0, "matchers": [{"string": "黑鐮傭兵"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_mercenaries"]}}}
{"ref": "Has Logbook Faction: Druids of the Broken Circle", "better": 0, "matchers": [{"string": "破碎環之德魯伊"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_druids"]}}}
{"ref": "Has Logbook Faction: Knights of the Sun", "better": 0, "matchers": [{"string": "豔陽騎士"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_knights"]}}}
{"ref": "Has Logbook Faction: Order of the Chalice", "better": 0, "matchers": [{"string": "聖杯之序"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_order"]}}}
{"ref": "Has Redeemer Influence", "better": 1, "matchers": [{"string": "有救贖者勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_redeemer_influence"]}}}
{"ref": "Has Room: Antechamber", "better": 0, "matchers": [{"string": "神殿前院"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_antechamber"]}, "option": true}}
{"ref": "Has Room: Apex of Ascension (Tier 3)", "better": 0, "matchers": [{"string": "祭祀之巔 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_3"]}, "option": true}}
{"ref": "Has Room: Apex of Atzoatl", "better": 0, "matchers": [{"string": "阿茲瓦特之巔"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_apex"]}, "option": true}}
{"ref": "Has Room: Arena of Valour (Tier 2)", "better": 0, "matchers": [{"string": "傳說對決 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_2"]}, "option": true}}
{"ref": "Has Room: Armourer's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "裝甲磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_1"]}, "option": true}}
{"ref": "Has Room: Armoury (Tier 2)", "better": 0, "matchers": [{"string": "軍械庫 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_2"]}, "option": true}}
{"ref": "Has Room: Atlas of Worlds (Tier 3)", "better": 0, "matchers": [{"string": "異界輿圖 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_3"]}, "option": true}}
{"ref": "Has Room: Automaton Lab (Tier 2)", "better": 0, "matchers": [{"string": "自運研究所 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_2"]}, "option": true}}
{"ref": "Has Room: Banquet Hall", "better": 0, "matchers": [{"string": "神殿宴會場"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_banquet_hall"]}, "option": true}}
{"ref": "Has Room: Barracks (Tier 2)", "better": 0, "matchers": [{"string": "軍隊憩所 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_2"]}, "option": true}}
{"ref": "Has Room: Breach Containment Chamber (Tier 2)", "better": 0, "matchers": [{"string": "裂痕異域室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_2"]}, "option": true}}
{"ref": "Has Room: Catalyst of Corruption (Tier 2)", "better": 0, "matchers": [{"string": "腐敗孳生室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_2"]}, "option": true}}
{"ref": "Has Room: Cellar", "better": 0, "matchers": [{"string": "神殿地窖"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cellar"]}, "option": true}}
{"ref": "Has Room: Chamber of Iron (Tier 3)", "better": 0, "matchers": [{"string": "鋼鍛之室 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_3"]}, "option": true}}
{"ref": "Has Room: Chasm", "better": 0, "matchers": [{"string": "神殿裂口"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chasm_room"]}, "option": true}}
{"ref": "Has Room: Cloister", "better": 0, "matchers": [{"string": "神殿廟"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cloister"]}, "option": true}}
{"ref": "Has Room: Conduit of Lightning (Tier 3)", "better": 0, "matchers": [{"string": "雷霆導管 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_3"]}, "option": true}}
{"ref": "Has Room: Corruption Chamber (Tier 1)", "better": 0, "matchers": [{"string": "腐敗之室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_1"]}, "option": true}}
{"ref": "Has Room: Court of Sealed Death (Tier 3)", "better": 0, "matchers": [{"string": "封亡院庭 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_3"]}, "option": true}}
{"ref": "Has Room: Crucible of Flame (Tier 3)", "better": 0, "matchers": [{"string": "烈焰熔爐 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_3"]}, "option": true}}
{"ref": "Has Room: Cultivar Chamber (Tier 2)", "better": 0, "matchers": [{"string": "培育秘室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_2"]}, "option": true}}
{"ref": "Has Room: Defense Research Lab (Tier 3)", "better": 0, "matchers": [{"string": "禦防研究所 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_3"]}, "option": true}}
{"ref": "Has Room: Demolition Lab (Tier 2)", "better": 0, "matchers": [{"string": "拆除庫 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_2"]}, "option": true}}
{"ref": "Has Room: Department of Thaumaturgy (Tier 2)", "better": 0, "matchers": [{"string": "魔法部 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_2"]}, "option": true}}
{"ref": "Has Room: Doryani's Institute (Tier 3)", "better": 0, "matchers": [{"string": "多里亞尼之院 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_3"]}, "option": true}}
{"ref": "Has Room: Engineering Department (Tier 2)", "better": 0, "matchers": [{"string": "工程部 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_2"]}, "option": true}}
{"ref": "Has Room: Explosives Room (Tier 1)", "better": 0, "matchers": [{"string": "彈藥庫 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_1"]}, "option": true}}
{"ref": "Has Room: Factory (Tier 3)", "better": 0, "matchers": [{"string": "瓦爾工廠 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_3"]}, "option": true}}
{"ref": "Has Room: Flame Workshop (Tier 1)", "better": 0, "matchers": [{"string": "獄炎磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_1"]}, "option": true}}
{"ref": "Has Room: Gemcutter's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "刻石磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_1"]}, "option": true}}
{"ref": "Has Room: Glittering Halls (Tier 3)", "better": 0, "matchers": [{"string": "閃耀聖殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_3"]}, "option": true}}
{"ref": "Has Room: Guardhouse (Tier 1)", "better": 0, "matchers": [{"string": "衛兵房 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_1"]}, "option": true}}
{"ref": "Has Room: Hall of Champions (Tier 3)", "better": 0, "matchers": [{"string": "冠軍聖殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_3"]}, "option": true}}
{"ref": "Has Room: Hall of Heroes (Tier 2)", "better": 0, "matchers": [{"string": "英雄之殿 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_2"]}, "option": true}}
{"ref": "Has Room: Hall of Legends (Tier 3)", "better": 0, "matchers": [{"string": "神話之殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_3"]}, "option": true}}
{"ref": "Has Room: Hall of Locks (Tier 2)", "better": 0, "matchers": [{"string": "千鎖殿堂 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_2"]}, "option": true}}
{"ref": "Has Room: Hall of Lords (Tier 2)", "better": 0, "matchers": [{"string": "權貴殿堂 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_2"]}, "option": true}}
{"ref": "Has Room: Hall of Mettle (Tier 1)", "better": 0, "matchers": [{"string": "勇氣之殿 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_1"]}, "option": true}}
{"ref": "Has Room: Hall of Offerings (Tier 2)", "better": 0, "matchers": [{"string": "獻祭殿堂 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_2"]}, "option": true}}
{"ref": "Has Room: Hall of War (Tier 3)", "better": 0, "matchers": [{"string": "戰爭聖殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_3"]}, "option": true}}
{"ref": "Has Room: Halls", "better": 0, "matchers": [{"string": "神殿殿堂"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_halls"]}, "option": true}}
{"ref": "Has Room: Hatchery (Tier 1)", "better": 0, "matchers": [{"string": "孵化室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_1"]}, "option": true}}
{"ref": "Has Room: House of the Others (Tier 3)", "better": 0, "matchers": [{"string": "異者居所 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_3"]}, "option": true}}
{"ref": "Has Room: Hurricane Engine (Tier 2)", "better": 0, "matchers": [{"string": "颶風引擎室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_2"]}, "option": true}}
{"ref": "Has Room: Hybridisation Chamber (Tier 3)", "better": 0, "matchers": [{"string": "異種之域 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_3"]}, "option": true}}
{"ref": "Has Room: Jeweller's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "寶匠磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_1"]}, "option": true}}
{"ref": "Has Room: Jewellery Forge (Tier 2)", "better": 0, "matchers": [{"string": "珠寶冶煉室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_2"]}, "option": true}}
{"ref": "Has Room: Lightning Workshop (Tier 1)", "better": 0, "matchers": [{"string": "風雷磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_1"]}, "option": true}}
{"ref": "Has Room: Locus of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "腐敗之地 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_3"]}, "option": true}}
{"ref": "Has Room: Museum of Artefacts (Tier 3)", "better": 0, "matchers": [{"string": "文物展館 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_3"]}, "option": true}}
{"ref": "Has Room: Office of Cartography (Tier 2)", "better": 0, "matchers": [{"string": "製圖研製室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Forge (Tier 2)", "better": 0, "matchers": [{"string": "全能冶煉室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Reactor Plant (Tier 2)", "better": 0, "matchers": [{"string": "全能反應廠 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_2"]}, "option": true}}
{"ref": "Has Room: Passageways", "better": 0, "matchers": [{"string": "神殿通道"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_passageways"]}, "option": true}}
{"ref": "Has Room: Pits", "better": 0, "matchers": [{"string": "神殿舊窖"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_the_pits"]}, "option": true}}
{"ref": "Has Room: Poison Garden (Tier 1)", "better": 0, "matchers": [{"string": "監獄花園 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_1"]}, "option": true}}
{"ref": "Has Room: Pools of Restoration (Tier 1)", "better": 0, "matchers": [{"string": "治癒之泉 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_1"]}, "option": true}}
{"ref": "Has Room: Royal Meeting Room (Tier 1)", "better": 0, "matchers": [{"string": "王室宴客室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_1"]}, "option": true}}
{"ref": "Has Room: Sacrificial Chamber (Tier 1)", "better": 0, "matchers": [{"string": "獻祭之室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_1"]}, "option": true}}
{"ref": "Has Room: Sadist's Den (Tier 3)", "better": 0, "matchers": [{"string": "虐狂之巢 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Immortality (Tier 3)", "better": 0, "matchers": [{"string": "不朽聖殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Unity (Tier 2)", "better": 0, "matchers": [{"string": "統領聖殿 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_2"]}, "option": true}}
{"ref": "Has Room: Sanctum of Vitality (Tier 2)", "better": 0, "matchers": [{"string": "活力聖殿 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_2"]}, "option": true}}
{"ref": "Has Room: Shrine of Empowerment (Tier 1)", "better": 0, "matchers": [{"string": "恩賜神殿 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_1"]}, "option": true}}
{"ref": "Has Room: Shrine of Unmaking (Tier 3)", "better": 0, "matchers": [{"string": "毀滅神殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_3"]}, "option": true}}
{"ref": "Has Room: Sparring Room (Tier 1)", "better": 0, "matchers": [{"string": "格鬥場 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_1"]}, "option": true}}
{"ref": "Has Room: Splinter Research Lab (Tier 1)", "better": 0, "matchers": [{"string": "裂界研究所 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_1"]}, "option": true}}
{"ref": "Has Room: Storage Room (Tier 1)", "better": 0, "matchers": [{"string": "儲物室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_1"]}, "option": true}}
{"ref": "Has Room: Storm of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "腐敗風暴 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_3"]}, "option": true}}
{"ref": "Has Room: Strongbox Chamber (Tier 1)", "better": 0, "matchers": [{"string": "寶箱之殿 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_1"]}, "option": true}}
{"ref": "Has Room: Surveyor's Study (Tier 1)", "better": 0, "matchers": [{"string": "研究書房 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_1"]}, "option": true}}
{"ref": "Has Room: Tempest Generator (Tier 1)", "better": 0, "matchers": [{"string": "暴雷發電室 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_1"]}, "option": true}}
{"ref": "Has Room: Temple Defense Workshop (Tier 2)", "better": 0, "matchers": [{"string": "神殿禦防室 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_2"]}, "option": true}}
{"ref": "Has Room: Temple Nexus (Tier 3)", "better": 0, "matchers": [{"string": "死神靈殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_3"]}, "option": true}}
{"ref": "Has Room: Throne of Atziri (Tier 3)", "better": 0, "matchers": [{"string": "阿茲里宴殿 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_3"]}, "option": true}}
{"ref": "Has Room: Tombs", "better": 0, "matchers": [{"string": "神殿陵寢"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tombs"]}, "option": true}}
{"ref": "Has Room: Torment Cells (Tier 1)", "better": 0, "matchers": [{"string": "磨難牢房 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_1"]}, "option": true}}
{"ref": "Has Room: Torture Cages (Tier 2)", "better": 0, "matchers": [{"string": "拷刑大牢 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_2"]}, "option": true}}
{"ref": "Has Room: Toxic Grove (Tier 3)", "better": 0, "matchers": [{"string": "劇毒果園 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_3"]}, "option": true}}
{"ref": "Has Room: Trap Workshop (Tier 1)", "better": 0, "matchers": [{"string": "陷阱磨坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_1"]}, "option": true}}
{"ref": "Has Room: Treasury (Tier 2)", "better": 0, "matchers": [{"string": "祕寶庫 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_2"]}, "option": true}}
{"ref": "Has Room: Tunnels", "better": 0, "matchers": [{"string": "神殿地道"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tunnels"]}, "option": true}}
{"ref": "Has Room: Vault (Tier 1)", "better": 0, "matchers": [{"string": "藏寶庫 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_1"]}, "option": true}}
{"ref": "Has Room: Warehouses (Tier 2)", "better": 0, "matchers": [{"string": "倉庫間 (階級 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_2"]}, "option": true}}
{"ref": "Has Room: Wealth of the Vaal (Tier 3)", "better": 0, "matchers": [{"string": "瓦爾聚寶庫 (階級 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_3"]}, "option": true}}
{"ref": "Has Room: Workshop (Tier 1)", "better": 0, "matchers": [{"string": "工作坊 (階級 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_1"]}, "option": true}}
{"ref": "Has Shaper Influence", "better": 1, "matchers": [{"string": "有塑者勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_shaper_influence"]}}}
{"ref": "Has Warlord Influence", "better": 1, "matchers": [{"string": "有總督軍勢力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_warlord_influence"]}}}
{"ref": "Mirrored Tablet has # Islands", "better": 1, "matchers": [{"string": "鏡像碑牌有 # 島嶼 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_lake_number_of_islands"]}}}
{"ref": "More Currency: #%", "better": 1, "matchers": [{"string": "更多通貨:#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_currency_drops"]}}}
{"ref": "More Divination Cards: #%", "better": 1, "matchers": [{"string": "額外命運卡:#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_card_drops"]}}}
{"ref": "More Maps: #%", "better": 1, "matchers": [{"string": "更多地圖:#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_map_drops"]}}}
{"ref": "More Scarabs: #%", "better": 1, "matchers": [{"string": "更多聖甲蟲:#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_scarab_drops"]}}}
{"ref": "Quality (Attack Modifiers): #%", "better": 1, "matchers": [{"string": "品質(攻擊詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attack_quality"]}}}
{"ref": "Quality (Attribute Modifiers): #%", "better": 1, "matchers": [{"string": "品質(能力值詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attribute_quality"]}}}
{"ref": "Quality (Caster Modifiers): #%", "better": 1, "matchers": [{"string": "品質(法術詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_caster_quality"]}}}
{"ref": "Quality (Critical Modifiers): #%", "better": 1, "matchers": [{"string": "品質(暴擊詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_critical_quality"]}}}
{"ref": "Quality (Currency): #%", "better": 1, "matchers": [{"string": "品質(通貨):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_currency"]}}}
{"ref": "Quality (Defence Modifiers): #%", "better": 1, "matchers": [{"string": "品質(防禦詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_defense_quality"]}}}
{"ref": "Quality (Divination Cards): #%", "better": 1, "matchers": [{"string": "品質(命運卡):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_cards"]}}}
{"ref": "Quality (Elemental Damage Modifiers): #%", "better": 1, "matchers": [{"string": "品質(元素傷害詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_elemental_quality"]}}}
{"ref": "Quality (Life and Mana Modifiers): #%", "better": 1, "matchers": [{"string": "品質(生命和魔力詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resource_quality"]}}}
{"ref": "Quality (Pack Size): #%", "better": 1, "matchers": [{"string": "品質(怪物群大小):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_pack_size"]}}}
{"ref": "Quality (Physical and Chaos Damage Modifiers): #%", "better": 1, "matchers": [{"string": "品質(物理和混沌傷害詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_physical_chaos_quality"]}}}
{"ref": "Quality (Rarity): #%", "better": 1, "matchers": [{"string": "品質(稀有度):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_rarity"]}}}
{"ref": "Quality (Resistance Modifiers): #%", "better": 1, "matchers": [{"string": "品質(抗性詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resistance_quality"]}}}
{"ref": "Quality (Scarabs): #%", "better": 1, "matchers": [{"string": "品質(聖甲蟲):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_scarabs"]}}}
{"ref": "Quality (Speed Modifiers): #%", "better": 1, "matchers": [{"string": "品質(速度詞綴):#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_speed_quality"]}}}
{"ref": "Reflection of Abyss (Difficulty #)", "better": 1, "matchers": [{"string": "深淵映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38892"]}}}
{"ref": "Reflection of Ambush (Difficulty #)", "better": 1, "matchers": [{"string": "伏擊映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_48307"]}}}
{"ref": "Reflection of Angling (Difficulty #)", "better": 1, "matchers": [{"string": "釣魚映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40794"]}}}
{"ref": "Reflection of Azurite (Difficulty #)", "better": 1, "matchers": [{"string": "碧藍映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40031"]}}}
{"ref": "Reflection of Bestiary (Difficulty #)", "better": 1, "matchers": [{"string": "獸獵映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55569"]}}}
{"ref": "Reflection of Breach (Difficulty #)", "better": 1, "matchers": [{"string": "裂痕映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62572"]}}}
{"ref": "Reflection of Brutality (Difficulty #)", "better": 1, "matchers": [{"string": "殘暴映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29096"]}}}
{"ref": "Reflection of Camaraderie (Difficulty #)", "better": 1, "matchers": [{"string": "友誼映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35395"]}}}
{"ref": "Reflection of Catalysis (Difficulty #)", "better": 1, "matchers": [{"string": "催化映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57850"]}}}
{"ref": "Reflection of Chaos (Difficulty #)", "better": 1, "matchers": [{"string": "混沌映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50834"]}}}
{"ref": "Reflection of Conflict (Difficulty #)", "better": 1, "matchers": [{"string": "衝突映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_1931"]}}}
{"ref": "Reflection of Darkness (Difficulty #)", "better": 1, "matchers": [{"string": "黑暗映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34457"]}}}
{"ref": "Reflection of Delirium (Difficulty #)", "better": 1, "matchers": [{"string": "譫妄映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_22138"]}}}
{"ref": "Reflection of Delve (Difficulty #)", "better": 1, "matchers": [{"string": "掘獄映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18737"]}}}
{"ref": "Reflection of Demonfire (Difficulty #)", "better": 1, "matchers": [{"string": "業火映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_28500"]}}}
{"ref": "Reflection of Domination (Difficulty #)", "better": 1, "matchers": [{"string": "支配映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_63412"]}}}
{"ref": "Reflection of Entrapment (Difficulty #)", "better": 1, "matchers": [{"string": "誘捕映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_44399"]}}}
{"ref": "Reflection of Essence (Difficulty #)", "better": 1, "matchers": [{"string": "精髓映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49862"]}}}
{"ref": "Reflection of Experimentation (Difficulty #)", "better": 1, "matchers": [{"string": "實驗映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55676"]}}}
{"ref": "Reflection of Flame (Difficulty #)", "better": 1, "matchers": [{"string": "烈焰映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_42468"]}}}
{"ref": "Reflection of Fractured Dimensions (Difficulty #)", "better": 1, "matchers": [{"string": "破裂次元映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49488"]}}}
{"ref": "Reflection of Frost (Difficulty #)", "better": 1, "matchers": [{"string": "寒霜映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38110"]}}}
{"ref": "Reflection of Guilt (Difficulty #)", "better": 1, "matchers": [{"string": "責難映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25480"]}}}
{"ref": "Reflection of Imprisonment (Difficulty #)", "better": 1, "matchers": [{"string": "監禁映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_10363"]}}}
{"ref": "Reflection of Kalandra (Difficulty #)", "better": 1, "matchers": [{"string": "卡蘭德映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_36591"]}}}
{"ref": "Reflection of Legion (Difficulty #)", "better": 1, "matchers": [{"string": "戰亂映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_403"]}}}
{"ref": "Reflection of Metamorph (Difficulty #)", "better": 1, "matchers": [{"string": "鍊魔映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_3699"]}}}
{"ref": "Reflection of Occultism (Difficulty #)", "better": 1, "matchers": [{"string": "神秘映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24451"]}}}
{"ref": "Reflection of Paradise (Difficulty #)", "better": 1, "matchers": [{"string": "天堂映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50846"]}}}
{"ref": "Reflection of Perverted Faith (Difficulty #)", "better": 1, "matchers": [{"string": "怪其信仰映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27678"]}}}
{"ref": "Reflection of Phaaryl (Difficulty #)", "better": 1, "matchers": [{"string": "法瑞爾映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_7674"]}}}
{"ref": "Reflection of Possession (Difficulty #)", "better": 1, "matchers": [{"string": "附身映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25049"]}}}
{"ref": "Reflection of Power (Difficulty #)", "better": 1, "matchers": [{"string": "權力映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35950"]}}}
{"ref": "Reflection of Scourge (Difficulty #)", "better": 1, "matchers": [{"string": "災魘映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62360"]}}}
{"ref": "Reflection of Stasis (Difficulty #)", "better": 1, "matchers": [{"string": "靜止映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_32968"]}}}
{"ref": "Reflection of Sulphite (Difficulty #)", "better": 1, "matchers": [{"string": "硫酸映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_45086"]}}}
{"ref": "Reflection of the Black Scythe (Difficulty #)", "better": 1, "matchers": [{"string": "黑暗血鐮映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_9662"]}}}
{"ref": "Reflection of the Breachlord (Difficulty #)", "better": 1, "matchers": [{"string": "裂痕君主映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62935"]}}}
{"ref": "Reflection of the Broken Circle (Difficulty #)", "better": 1, "matchers": [{"string": "破碎環映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_43128"]}}}
{"ref": "Reflection of the Chalice (Difficulty #)", "better": 1, "matchers": [{"string": "聖杯映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_64561"]}}}
{"ref": "Reflection of the Chasm (Difficulty #)", "better": 1, "matchers": [{"string": "裂口映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57101"]}}}
{"ref": "Reflection of the Dream (Difficulty #)", "better": 1, "matchers": [{"string": "夢想映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27117"]}}}
{"ref": "Reflection of the Harbingers (Difficulty #)", "better": 1, "matchers": [{"string": "神諭映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_37203"]}}}
{"ref": "Reflection of the Hunter (Difficulty #)", "better": 1, "matchers": [{"string": "獵人映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18816"]}}}
{"ref": "Reflection of the Monolith (Difficulty #)", "better": 1, "matchers": [{"string": "石陣映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34796"]}}}
{"ref": "Reflection of the Nightmare (Difficulty #)", "better": 1, "matchers": [{"string": "噩夢映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24232"]}}}
{"ref": "Reflection of the Storm (Difficulty #)", "better": 1, "matchers": [{"string": "風暴映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_2745"]}}}
{"ref": "Reflection of the Sun (Difficulty #)", "better": 1, "matchers": [{"string": "豔陽映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60034"]}}}
{"ref": "Reflection of the Trove (Difficulty #)", "better": 1, "matchers": [{"string": "寶庫映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_46772"]}}}
{"ref": "Reflection of the Wilderness (Difficulty #)", "better": 1, "matchers": [{"string": "荒野映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29224"]}}}
{"ref": "Reflection of Thralldom (Difficulty #)", "better": 1, "matchers": [{"string": "奴役映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_26813"]}}}
{"ref": "Reflection of Torment (Difficulty #)", "better": 1, "matchers": [{"string": "磨難映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_53950"]}}}
{"ref": "Reflection of Tyranny (Difficulty #)", "better": 1, "matchers": [{"string": "暴政映像 (難度 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60981"]}}}

View File

@@ -0,0 +1,32 @@
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# 每秒生命回復 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "增加 #% 燃燒傷害"}, {"string": "減少 #% 燃燒傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "增加 #% 冰冷傷害"}, {"string": "減少 #% 冰冷傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 冰冷法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "增加 #% 元素傷害"}, {"string": "有增加 #% 的元素傷害"}, {"string": "有減少 #% 的元素傷害", "negate": true}, {"string": "減少 #% 元素傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "攻擊技能增加 #% 元素傷害"}, {"string": "攻擊技能減少 #% 元素傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "增加 #% 火焰傷害"}, {"string": "減少 #% 火焰傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 火焰法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "增加 #% 閃電傷害"}, {"string": "減少 #% 閃電傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 閃電法術傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "增加 #% 魔力回復率"}, {"string": "減少 #% 魔力回復率", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "增加 #% 移動速度"}, {"string": "減少 #% 移動速度", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "增加 #% 法術傷害"}, {"string": "減少 #% 法術傷害", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% 的物理攻擊傷害偷取生命"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% 物理攻擊傷害偷取魔力"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "增加 #% 物裡傷害 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# 最大能量護盾 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# 最大生命 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# 最大魔力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# 全能力 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# 敏捷 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# 智慧 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# 力量 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% 全域暴擊機率 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% 全域暴擊加成 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% 攻擊速度 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% 施放速度 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% 元素抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% 總混沌抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% 冰冷抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% 火焰抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% 閃電抗性 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}

View File

@@ -0,0 +1,292 @@
{"ref": "# Crafted Modifiers", "better": 1, "matchers": [{"string": "# Crafted Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_mods"]}}}
{"ref": "# Crafted Prefix Modifiers", "better": 1, "matchers": [{"string": "# Crafted Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_prefix_mods"]}}}
{"ref": "# Crafted Suffix Modifiers", "better": 1, "matchers": [{"string": "# Crafted Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_suffix_mods"]}}}
{"ref": "# Empty Modifiers", "better": 1, "matchers": [{"string": "# Empty Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_affix_mods"]}}}
{"ref": "# Empty Prefix Modifiers", "better": 1, "matchers": [{"string": "# Empty Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_prefix_mods"]}}}
{"ref": "# Empty Suffix Modifiers", "better": 1, "matchers": [{"string": "# Empty Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_suffix_mods"]}}}
{"ref": "# Enchant Modifiers", "better": 1, "matchers": [{"string": "# Enchant Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_enchant_mods"]}}}
{"ref": "# Fractured Modifiers", "better": 1, "matchers": [{"string": "# Fractured Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_fractured_mods"]}}}
{"ref": "# Implicit Modifiers", "better": 1, "matchers": [{"string": "# Implicit Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_implicit_mods"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "# Modifiers", "better": 1, "matchers": [{"string": "# Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_affix_mods"]}}}
{"ref": "# Notable Passive Skills", "better": 1, "matchers": [{"string": "# Notable Passive Skills "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_notable_passive_skills"]}}}
{"ref": "# Prefix Modifiers", "better": 1, "matchers": [{"string": "# Prefix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_prefix_mods"]}}}
{"ref": "# Suffix Modifiers", "better": 1, "matchers": [{"string": "# Suffix Modifiers "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_suffix_mods"]}}}
{"ref": "# total Elemental Resistances", "better": 1, "matchers": [{"string": "# total Elemental Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_elemental_resistances"]}}}
{"ref": "# total Resistances", "better": 1, "matchers": [{"string": "# total Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_resistances"]}}}
{"ref": "#% Base Defence Percentile", "better": 1, "matchers": [{"string": "#% Base Defence Percentile "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_base_defence_percentile"]}}}
{"ref": "#% chance for dropped Maps to convert to Atlas Memories", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Atlas Memories "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_memory_line"]}}}
{"ref": "#% chance for dropped Maps to convert to Conqueror Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Conqueror Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_conqueror_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Elder Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Elder Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_elder_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Maven Invitations", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Maven Invitations "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_maven_invitation"]}}}
{"ref": "#% chance for dropped Maps to convert to Scarabs", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Scarabs "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_scarab"]}}}
{"ref": "#% chance for dropped Maps to convert to Shaper Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Shaper Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_shaper_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Unique Maps", "better": 1, "matchers": [{"string": "#% chance for dropped Maps to convert to Unique Maps "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_unique_map"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% increased Burning Damage"}, {"string": "#% reduced Burning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% increased Cold Damage"}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Cold Damage with Attack Skills"}, {"string": "#% reduced Cold Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage_with_attack_skills"], "explicit": ["explicit.stat_860668586"], "implicit": ["implicit.stat_860668586"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% increased Elemental Damage"}, {"string": "Has #% increased Elemental Damage"}, {"string": "#% reduced Elemental Damage", "negate": true}, {"string": "Has #% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Elemental Damage with Attack Skills"}, {"string": "#% reduced Elemental Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% increased Fire Damage"}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Fire Damage with Attack Skills"}, {"string": "#% reduced Fire Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage_with_attack_skills"], "implicit": ["implicit.stat_2468413380"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Damage"}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Lightning Damage with Attack Skills"}, {"string": "#% reduced Lightning Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage_with_attack_skills"], "explicit": ["explicit.stat_4208907162"], "implicit": ["implicit.stat_4208907162"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% increased Mana Regeneration Rate"}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% increased Movement Speed"}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Rarity of Items found", "better": 1, "matchers": [{"string": "#% increased Rarity of Items found"}, {"string": "#% reduced Rarity of Items found", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_rarity"], "explicit": ["explicit.stat_3917489142"], "implicit": ["implicit.stat_3917489142"], "fractured": ["fractured.stat_3917489142"], "scourge": ["scourge.stat_3917489142"], "crafted": ["crafted.stat_3917489142"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% increased Spell Damage"}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Life Regenerated per Second", "better": 1, "matchers": [{"string": "#% of Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_percent_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Life"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Mana"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased maximum Energy Shield", "better": 1, "matchers": [{"string": "#% total increased maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_energy_shield"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Level of Socketed Aura Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Aura Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_aura_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Bow Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Bow Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_bow_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Chaos Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Chaos Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_chaos_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Cold Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Cold Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_cold_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Curse Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Curse Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_curse_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Dexterity Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Dexterity Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_dexterity_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Elemental Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Elemental Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_elemental_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Fire Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Fire Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_fire_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Golem Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Golem Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_golem_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Intelligence Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Intelligence Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_intelligence_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Lightning Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Lightning Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_lightning_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Melee Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Melee Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_melee_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Minion Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Minion Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_minion_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Movement Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Movement Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_movement_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Projectile Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Projectile Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_projectile_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Skill Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Skill Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_skill_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Spell Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Spell Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_spell_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Strength Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Strength Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_strength_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Support Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Support Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_support_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Vaal Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Vaal Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_vaal_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Warcry Gems", "better": 1, "matchers": [{"string": "+# total to Level of Socketed Warcry Gems "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_warcry_gem_levels"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Critical Strike Chance for Spells", "better": 1, "matchers": [{"string": "+#% total Critical Strike Chance for Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_critical_strike_chance_for_spells"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total Resistance", "better": 1, "matchers": [{"string": "+#% total Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_resistance"]}}}
{"ref": "+#% total to all Elemental Resistances", "better": 1, "matchers": [{"string": "+#% total to all Elemental Resistances "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_elemental_resistances"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "Adds # to # Chaos Damage", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage"], "explicit": ["explicit.stat_2223678961", "explicit.stat_3531280422"], "implicit": ["implicit.stat_2223678961", "implicit.stat_3531280422"], "fractured": ["fractured.stat_2223678961"], "enchant": ["enchant.stat_2223678961"], "scourge": ["scourge.stat_2223678961"]}}}
{"ref": "Adds # to # Chaos Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_attacks"], "explicit": ["explicit.stat_674553446"], "implicit": ["implicit.stat_674553446"], "fractured": ["fractured.stat_674553446"], "crafted": ["crafted.stat_674553446"]}}}
{"ref": "Adds # to # Chaos Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Chaos Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_spells"], "explicit": ["explicit.stat_2300399854"], "implicit": ["implicit.stat_2300399854"], "fractured": ["fractured.stat_2300399854"]}}}
{"ref": "Adds # to # Cold Damage", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage"], "explicit": ["explicit.stat_1037193709", "explicit.stat_2387423236"], "implicit": ["implicit.stat_1037193709", "implicit.stat_2387423236"], "fractured": ["fractured.stat_1037193709", "fractured.stat_2387423236"], "enchant": ["enchant.stat_1037193709"], "scourge": ["scourge.stat_1037193709"], "crafted": ["crafted.stat_1037193709", "crafted.stat_2387423236"]}}}
{"ref": "Adds # to # Cold Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_attacks"], "explicit": ["explicit.stat_4067062424"], "implicit": ["implicit.stat_4067062424"], "fractured": ["fractured.stat_4067062424"], "crafted": ["crafted.stat_4067062424"]}}}
{"ref": "Adds # to # Cold Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Cold Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_spells"], "explicit": ["explicit.stat_2469416729"], "implicit": ["implicit.stat_2469416729"], "fractured": ["fractured.stat_2469416729"], "scourge": ["scourge.stat_2469416729"], "crafted": ["crafted.stat_2469416729"]}}}
{"ref": "Adds # to # Damage", "better": 1, "matchers": [{"string": "Adds # to # Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage"]}}}
{"ref": "Adds # to # Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Damage to Attacks "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_attacks"]}}}
{"ref": "Adds # to # Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Damage to Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_spells"]}}}
{"ref": "Adds # to # Elemental Damage", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage"]}}}
{"ref": "Adds # to # Elemental Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage to Attacks "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_attacks"]}}}
{"ref": "Adds # to # Elemental Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Elemental Damage to Spells "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_spells"]}}}
{"ref": "Adds # to # Fire Damage", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage"], "explicit": ["explicit.stat_321077055", "explicit.stat_709508406"], "implicit": ["implicit.stat_321077055", "implicit.stat_709508406"], "fractured": ["fractured.stat_321077055", "fractured.stat_709508406"], "enchant": ["enchant.stat_709508406"], "scourge": ["scourge.stat_709508406"], "crafted": ["crafted.stat_321077055", "crafted.stat_709508406"]}}}
{"ref": "Adds # to # Fire Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_attacks"], "explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"], "fractured": ["fractured.stat_1573130764"], "crafted": ["crafted.stat_1573130764"]}}}
{"ref": "Adds # to # Fire Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Fire Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_spells"], "explicit": ["explicit.stat_1133016593"], "implicit": ["implicit.stat_1133016593"], "fractured": ["fractured.stat_1133016593"], "scourge": ["scourge.stat_1133016593"], "crafted": ["crafted.stat_1133016593"]}}}
{"ref": "Adds # to # Lightning Damage", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage"], "explicit": ["explicit.stat_1334060246", "explicit.stat_3336890334"], "implicit": ["implicit.stat_1334060246", "implicit.stat_3336890334"], "fractured": ["fractured.stat_1334060246", "fractured.stat_3336890334"], "enchant": ["enchant.stat_3336890334"], "scourge": ["scourge.stat_3336890334"], "crafted": ["crafted.stat_1334060246", "crafted.stat_3336890334"]}}}
{"ref": "Adds # to # Lightning Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_attacks"], "explicit": ["explicit.stat_1754445556"], "implicit": ["implicit.stat_1754445556"], "fractured": ["fractured.stat_1754445556"], "crafted": ["crafted.stat_1754445556"]}}}
{"ref": "Adds # to # Lightning Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Lightning Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_spells"], "explicit": ["explicit.stat_2831165374"], "implicit": ["implicit.stat_2831165374"], "fractured": ["fractured.stat_2831165374"], "scourge": ["scourge.stat_2831165374"], "crafted": ["crafted.stat_2831165374"]}}}
{"ref": "Adds # to # Physical Damage", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage"], "explicit": ["explicit.stat_1940865751", "explicit.stat_960081730"], "implicit": ["implicit.stat_1940865751"], "fractured": ["fractured.stat_1940865751", "fractured.stat_960081730"], "scourge": ["scourge.stat_1940865751"], "crafted": ["crafted.stat_1940865751"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage to Attacks"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_attacks"], "explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"], "fractured": ["fractured.stat_3032590688"], "crafted": ["crafted.stat_3032590688"]}}}
{"ref": "Adds # to # Physical Damage to Spells", "better": 1, "matchers": [{"string": "Adds # to # Physical Damage to Spells"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_spells"], "explicit": ["explicit.stat_2435536961"], "implicit": ["implicit.stat_2435536961"], "fractured": ["fractured.stat_2435536961"], "scourge": ["scourge.stat_2435536961"]}}}
{"ref": "Has # Influences", "better": 1, "matchers": [{"string": "Has # Influences "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_influence_count"]}}}
{"ref": "Has Crusader Influence", "better": 1, "matchers": [{"string": "Has Crusader Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_crusader_influence"]}}}
{"ref": "Has Elder Influence", "better": 1, "matchers": [{"string": "Has Elder Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_elder_influence"]}}}
{"ref": "Has Hunter Influence", "better": 1, "matchers": [{"string": "Has Hunter Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_hunter_influence"]}}}
{"ref": "Has Logbook Area: Battleground Graves", "better": 1, "matchers": [{"string": "Has Logbook Area: Battleground Graves "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_battleground_graves"]}}}
{"ref": "Has Logbook Area: Bluffs", "better": 1, "matchers": [{"string": "Has Logbook Area: Bluffs "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_bluffs"]}}}
{"ref": "Has Logbook Area: Cemetery", "better": 1, "matchers": [{"string": "Has Logbook Area: Cemetery "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_cemetery"]}}}
{"ref": "Has Logbook Area: Desert Ruins", "better": 1, "matchers": [{"string": "Has Logbook Area: Desert Ruins "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_desert_ruins"]}}}
{"ref": "Has Logbook Area: Dried Riverbed", "better": 1, "matchers": [{"string": "Has Logbook Area: Dried Riverbed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_dried_riverbed"]}}}
{"ref": "Has Logbook Area: Forest Ruins", "better": 1, "matchers": [{"string": "Has Logbook Area: Forest Ruins "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_forest_ruins"]}}}
{"ref": "Has Logbook Area: Karui Wargraves", "better": 1, "matchers": [{"string": "Has Logbook Area: Karui Wargraves "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_karui_wargraves"]}}}
{"ref": "Has Logbook Area: Mountainside", "better": 1, "matchers": [{"string": "Has Logbook Area: Mountainside "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_mountainside"]}}}
{"ref": "Has Logbook Area: Rotting Temple", "better": 1, "matchers": [{"string": "Has Logbook Area: Rotting Temple "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_rotting_temple"]}}}
{"ref": "Has Logbook Area: Sarn Slums", "better": 1, "matchers": [{"string": "Has Logbook Area: Sarn Slums "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_sarn_slums"]}}}
{"ref": "Has Logbook Area: Scrublands", "better": 1, "matchers": [{"string": "Has Logbook Area: Scrublands "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_scrublands"]}}}
{"ref": "Has Logbook Area: Shipwreck Reef", "better": 1, "matchers": [{"string": "Has Logbook Area: Shipwreck Reef "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_shipwreck_reef"]}}}
{"ref": "Has Logbook Area: Utzaal Outskirts", "better": 1, "matchers": [{"string": "Has Logbook Area: Utzaal Outskirts "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_utzaal_outskirts"]}}}
{"ref": "Has Logbook Area: Vaal Temple", "better": 1, "matchers": [{"string": "Has Logbook Area: Vaal Temple "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_vaal_temple"]}}}
{"ref": "Has Logbook Area: Volcanic Island", "better": 1, "matchers": [{"string": "Has Logbook Area: Volcanic Island "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_volcano"]}}}
{"ref": "Has Logbook Faction: Black Scythe Mercenaries", "better": 0, "matchers": [{"string": "Black Scythe Mercenaries"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_mercenaries"]}}}
{"ref": "Has Logbook Faction: Druids of the Broken Circle", "better": 0, "matchers": [{"string": "Druids of the Broken Circle"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_druids"]}}}
{"ref": "Has Logbook Faction: Knights of the Sun", "better": 0, "matchers": [{"string": "Knights of the Sun"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_knights"]}}}
{"ref": "Has Logbook Faction: Order of the Chalice", "better": 0, "matchers": [{"string": "Order of the Chalice"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_order"]}}}
{"ref": "Has Redeemer Influence", "better": 1, "matchers": [{"string": "Has Redeemer Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_redeemer_influence"]}}}
{"ref": "Has Room: Antechamber", "better": 0, "matchers": [{"string": "Antechamber"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_antechamber"]}, "option": true}}
{"ref": "Has Room: Apex of Ascension (Tier 3)", "better": 0, "matchers": [{"string": "Apex of Ascension (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_3"]}, "option": true}}
{"ref": "Has Room: Apex of Atzoatl", "better": 0, "matchers": [{"string": "Apex of Atzoatl"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_apex"]}, "option": true}}
{"ref": "Has Room: Arena of Valour (Tier 2)", "better": 0, "matchers": [{"string": "Arena of Valour (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_2"]}, "option": true}}
{"ref": "Has Room: Armourer's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Armourer's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_1"]}, "option": true}}
{"ref": "Has Room: Armoury (Tier 2)", "better": 0, "matchers": [{"string": "Armoury (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_2"]}, "option": true}}
{"ref": "Has Room: Atlas of Worlds (Tier 3)", "better": 0, "matchers": [{"string": "Atlas of Worlds (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_3"]}, "option": true}}
{"ref": "Has Room: Automaton Lab (Tier 2)", "better": 0, "matchers": [{"string": "Automaton Lab (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_2"]}, "option": true}}
{"ref": "Has Room: Banquet Hall", "better": 0, "matchers": [{"string": "Banquet Hall"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_banquet_hall"]}, "option": true}}
{"ref": "Has Room: Barracks (Tier 2)", "better": 0, "matchers": [{"string": "Barracks (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_2"]}, "option": true}}
{"ref": "Has Room: Breach Containment Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Breach Containment Chamber (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_2"]}, "option": true}}
{"ref": "Has Room: Catalyst of Corruption (Tier 2)", "better": 0, "matchers": [{"string": "Catalyst of Corruption (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_2"]}, "option": true}}
{"ref": "Has Room: Cellar", "better": 0, "matchers": [{"string": "Cellar"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cellar"]}, "option": true}}
{"ref": "Has Room: Chamber of Iron (Tier 3)", "better": 0, "matchers": [{"string": "Chamber of Iron (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_3"]}, "option": true}}
{"ref": "Has Room: Chasm", "better": 0, "matchers": [{"string": "Chasm"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chasm_room"]}, "option": true}}
{"ref": "Has Room: Cloister", "better": 0, "matchers": [{"string": "Cloister"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cloister"]}, "option": true}}
{"ref": "Has Room: Conduit of Lightning (Tier 3)", "better": 0, "matchers": [{"string": "Conduit of Lightning (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_3"]}, "option": true}}
{"ref": "Has Room: Corruption Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Corruption Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_1"]}, "option": true}}
{"ref": "Has Room: Court of Sealed Death (Tier 3)", "better": 0, "matchers": [{"string": "Court of Sealed Death (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_3"]}, "option": true}}
{"ref": "Has Room: Crucible of Flame (Tier 3)", "better": 0, "matchers": [{"string": "Crucible of Flame (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_3"]}, "option": true}}
{"ref": "Has Room: Cultivar Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Cultivar Chamber (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_2"]}, "option": true}}
{"ref": "Has Room: Defense Research Lab (Tier 3)", "better": 0, "matchers": [{"string": "Defense Research Lab (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_3"]}, "option": true}}
{"ref": "Has Room: Demolition Lab (Tier 2)", "better": 0, "matchers": [{"string": "Demolition Lab (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_2"]}, "option": true}}
{"ref": "Has Room: Department of Thaumaturgy (Tier 2)", "better": 0, "matchers": [{"string": "Department of Thaumaturgy (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_2"]}, "option": true}}
{"ref": "Has Room: Doryani's Institute (Tier 3)", "better": 0, "matchers": [{"string": "Doryani's Institute (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_3"]}, "option": true}}
{"ref": "Has Room: Engineering Department (Tier 2)", "better": 0, "matchers": [{"string": "Engineering Department (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_2"]}, "option": true}}
{"ref": "Has Room: Explosives Room (Tier 1)", "better": 0, "matchers": [{"string": "Explosives Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_1"]}, "option": true}}
{"ref": "Has Room: Factory (Tier 3)", "better": 0, "matchers": [{"string": "Factory (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_3"]}, "option": true}}
{"ref": "Has Room: Flame Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Flame Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_1"]}, "option": true}}
{"ref": "Has Room: Gemcutter's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Gemcutter's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_1"]}, "option": true}}
{"ref": "Has Room: Glittering Halls (Tier 3)", "better": 0, "matchers": [{"string": "Glittering Halls (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_3"]}, "option": true}}
{"ref": "Has Room: Guardhouse (Tier 1)", "better": 0, "matchers": [{"string": "Guardhouse (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_1"]}, "option": true}}
{"ref": "Has Room: Hall of Champions (Tier 3)", "better": 0, "matchers": [{"string": "Hall of Champions (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_3"]}, "option": true}}
{"ref": "Has Room: Hall of Heroes (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Heroes (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_2"]}, "option": true}}
{"ref": "Has Room: Hall of Legends (Tier 3)", "better": 0, "matchers": [{"string": "Hall of Legends (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_3"]}, "option": true}}
{"ref": "Has Room: Hall of Locks (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Locks (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_2"]}, "option": true}}
{"ref": "Has Room: Hall of Lords (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Lords (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_2"]}, "option": true}}
{"ref": "Has Room: Hall of Mettle (Tier 1)", "better": 0, "matchers": [{"string": "Hall of Mettle (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_1"]}, "option": true}}
{"ref": "Has Room: Hall of Offerings (Tier 2)", "better": 0, "matchers": [{"string": "Hall of Offerings (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_2"]}, "option": true}}
{"ref": "Has Room: Hall of War (Tier 3)", "better": 0, "matchers": [{"string": "Hall of War (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_3"]}, "option": true}}
{"ref": "Has Room: Halls", "better": 0, "matchers": [{"string": "Halls"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_halls"]}, "option": true}}
{"ref": "Has Room: Hatchery (Tier 1)", "better": 0, "matchers": [{"string": "Hatchery (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_1"]}, "option": true}}
{"ref": "Has Room: House of the Others (Tier 3)", "better": 0, "matchers": [{"string": "House of the Others (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_3"]}, "option": true}}
{"ref": "Has Room: Hurricane Engine (Tier 2)", "better": 0, "matchers": [{"string": "Hurricane Engine (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_2"]}, "option": true}}
{"ref": "Has Room: Hybridisation Chamber (Tier 3)", "better": 0, "matchers": [{"string": "Hybridisation Chamber (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_3"]}, "option": true}}
{"ref": "Has Room: Jeweller's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Jeweller's Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_1"]}, "option": true}}
{"ref": "Has Room: Jewellery Forge (Tier 2)", "better": 0, "matchers": [{"string": "Jewellery Forge (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_2"]}, "option": true}}
{"ref": "Has Room: Lightning Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Lightning Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_1"]}, "option": true}}
{"ref": "Has Room: Locus of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Locus of Corruption (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_3"]}, "option": true}}
{"ref": "Has Room: Museum of Artefacts (Tier 3)", "better": 0, "matchers": [{"string": "Museum of Artefacts (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_3"]}, "option": true}}
{"ref": "Has Room: Office of Cartography (Tier 2)", "better": 0, "matchers": [{"string": "Office of Cartography (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Forge (Tier 2)", "better": 0, "matchers": [{"string": "Omnitect Forge (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Reactor Plant (Tier 2)", "better": 0, "matchers": [{"string": "Omnitect Reactor Plant (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_2"]}, "option": true}}
{"ref": "Has Room: Passageways", "better": 0, "matchers": [{"string": "Passageways"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_passageways"]}, "option": true}}
{"ref": "Has Room: Pits", "better": 0, "matchers": [{"string": "Pits"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_the_pits"]}, "option": true}}
{"ref": "Has Room: Poison Garden (Tier 1)", "better": 0, "matchers": [{"string": "Poison Garden (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_1"]}, "option": true}}
{"ref": "Has Room: Pools of Restoration (Tier 1)", "better": 0, "matchers": [{"string": "Pools of Restoration (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_1"]}, "option": true}}
{"ref": "Has Room: Royal Meeting Room (Tier 1)", "better": 0, "matchers": [{"string": "Royal Meeting Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_1"]}, "option": true}}
{"ref": "Has Room: Sacrificial Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Sacrificial Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_1"]}, "option": true}}
{"ref": "Has Room: Sadist's Den (Tier 3)", "better": 0, "matchers": [{"string": "Sadist's Den (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Immortality (Tier 3)", "better": 0, "matchers": [{"string": "Sanctum of Immortality (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Unity (Tier 2)", "better": 0, "matchers": [{"string": "Sanctum of Unity (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_2"]}, "option": true}}
{"ref": "Has Room: Sanctum of Vitality (Tier 2)", "better": 0, "matchers": [{"string": "Sanctum of Vitality (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_2"]}, "option": true}}
{"ref": "Has Room: Shrine of Empowerment (Tier 1)", "better": 0, "matchers": [{"string": "Shrine of Empowerment (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_1"]}, "option": true}}
{"ref": "Has Room: Shrine of Unmaking (Tier 3)", "better": 0, "matchers": [{"string": "Shrine of Unmaking (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_3"]}, "option": true}}
{"ref": "Has Room: Sparring Room (Tier 1)", "better": 0, "matchers": [{"string": "Sparring Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_1"]}, "option": true}}
{"ref": "Has Room: Splinter Research Lab (Tier 1)", "better": 0, "matchers": [{"string": "Splinter Research Lab (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_1"]}, "option": true}}
{"ref": "Has Room: Storage Room (Tier 1)", "better": 0, "matchers": [{"string": "Storage Room (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_1"]}, "option": true}}
{"ref": "Has Room: Storm of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Storm of Corruption (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_3"]}, "option": true}}
{"ref": "Has Room: Strongbox Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Strongbox Chamber (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_1"]}, "option": true}}
{"ref": "Has Room: Surveyor's Study (Tier 1)", "better": 0, "matchers": [{"string": "Surveyor's Study (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_1"]}, "option": true}}
{"ref": "Has Room: Tempest Generator (Tier 1)", "better": 0, "matchers": [{"string": "Tempest Generator (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_1"]}, "option": true}}
{"ref": "Has Room: Temple Defense Workshop (Tier 2)", "better": 0, "matchers": [{"string": "Temple Defense Workshop (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_2"]}, "option": true}}
{"ref": "Has Room: Temple Nexus (Tier 3)", "better": 0, "matchers": [{"string": "Temple Nexus (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_3"]}, "option": true}}
{"ref": "Has Room: Throne of Atziri (Tier 3)", "better": 0, "matchers": [{"string": "Throne of Atziri (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_3"]}, "option": true}}
{"ref": "Has Room: Tombs", "better": 0, "matchers": [{"string": "Tombs"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tombs"]}, "option": true}}
{"ref": "Has Room: Torment Cells (Tier 1)", "better": 0, "matchers": [{"string": "Torment Cells (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_1"]}, "option": true}}
{"ref": "Has Room: Torture Cages (Tier 2)", "better": 0, "matchers": [{"string": "Torture Cages (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_2"]}, "option": true}}
{"ref": "Has Room: Toxic Grove (Tier 3)", "better": 0, "matchers": [{"string": "Toxic Grove (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_3"]}, "option": true}}
{"ref": "Has Room: Trap Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Trap Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_1"]}, "option": true}}
{"ref": "Has Room: Treasury (Tier 2)", "better": 0, "matchers": [{"string": "Treasury (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_2"]}, "option": true}}
{"ref": "Has Room: Tunnels", "better": 0, "matchers": [{"string": "Tunnels"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tunnels"]}, "option": true}}
{"ref": "Has Room: Vault (Tier 1)", "better": 0, "matchers": [{"string": "Vault (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_1"]}, "option": true}}
{"ref": "Has Room: Warehouses (Tier 2)", "better": 0, "matchers": [{"string": "Warehouses (Tier 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_2"]}, "option": true}}
{"ref": "Has Room: Wealth of the Vaal (Tier 3)", "better": 0, "matchers": [{"string": "Wealth of the Vaal (Tier 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_3"]}, "option": true}}
{"ref": "Has Room: Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Workshop (Tier 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_1"]}, "option": true}}
{"ref": "Has Shaper Influence", "better": 1, "matchers": [{"string": "Has Shaper Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_shaper_influence"]}}}
{"ref": "Has Warlord Influence", "better": 1, "matchers": [{"string": "Has Warlord Influence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_warlord_influence"]}}}
{"ref": "Mirrored Tablet has # Islands", "better": 1, "matchers": [{"string": "Mirrored Tablet has # Islands "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_lake_number_of_islands"]}}}
{"ref": "More Currency: #%", "better": 1, "matchers": [{"string": "More Currency: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_currency_drops"]}}}
{"ref": "More Divination Cards: #%", "better": 1, "matchers": [{"string": "More Divination Cards: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_card_drops"]}}}
{"ref": "More Maps: #%", "better": 1, "matchers": [{"string": "More Maps: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_map_drops"]}}}
{"ref": "More Scarabs: #%", "better": 1, "matchers": [{"string": "More Scarabs: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_scarab_drops"]}}}
{"ref": "Quality (Attack Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Attack Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attack_quality"]}}}
{"ref": "Quality (Attribute Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Attribute Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attribute_quality"]}}}
{"ref": "Quality (Caster Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Caster Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_caster_quality"]}}}
{"ref": "Quality (Critical Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Critical Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_critical_quality"]}}}
{"ref": "Quality (Currency): #%", "better": 1, "matchers": [{"string": "Quality (Currency): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_currency"]}}}
{"ref": "Quality (Defence Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Defence Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_defense_quality"]}}}
{"ref": "Quality (Divination Cards): #%", "better": 1, "matchers": [{"string": "Quality (Divination Cards): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_cards"]}}}
{"ref": "Quality (Elemental Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Elemental Damage Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_elemental_quality"]}}}
{"ref": "Quality (Life and Mana Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Life and Mana Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resource_quality"]}}}
{"ref": "Quality (Pack Size): #%", "better": 1, "matchers": [{"string": "Quality (Pack Size): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_pack_size"]}}}
{"ref": "Quality (Physical and Chaos Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Physical and Chaos Damage Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_physical_chaos_quality"]}}}
{"ref": "Quality (Rarity): #%", "better": 1, "matchers": [{"string": "Quality (Rarity): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_rarity"]}}}
{"ref": "Quality (Resistance Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Resistance Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resistance_quality"]}}}
{"ref": "Quality (Scarabs): #%", "better": 1, "matchers": [{"string": "Quality (Scarabs): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_scarabs"]}}}
{"ref": "Quality (Speed Modifiers): #%", "better": 1, "matchers": [{"string": "Quality (Speed Modifiers): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_speed_quality"]}}}
{"ref": "Reflection of Abyss (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Abyss (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38892"]}}}
{"ref": "Reflection of Ambush (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Ambush (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_48307"]}}}
{"ref": "Reflection of Angling (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Angling (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40794"]}}}
{"ref": "Reflection of Azurite (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Azurite (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40031"]}}}
{"ref": "Reflection of Bestiary (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Bestiary (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55569"]}}}
{"ref": "Reflection of Breach (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Breach (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62572"]}}}
{"ref": "Reflection of Brutality (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Brutality (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29096"]}}}
{"ref": "Reflection of Camaraderie (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Camaraderie (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35395"]}}}
{"ref": "Reflection of Catalysis (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Catalysis (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57850"]}}}
{"ref": "Reflection of Chaos (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Chaos (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50834"]}}}
{"ref": "Reflection of Conflict (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Conflict (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_1931"]}}}
{"ref": "Reflection of Darkness (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Darkness (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34457"]}}}
{"ref": "Reflection of Delirium (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Delirium (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_22138"]}}}
{"ref": "Reflection of Delve (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Delve (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18737"]}}}
{"ref": "Reflection of Demonfire (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Demonfire (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_28500"]}}}
{"ref": "Reflection of Domination (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Domination (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_63412"]}}}
{"ref": "Reflection of Entrapment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Entrapment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_44399"]}}}
{"ref": "Reflection of Essence (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Essence (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49862"]}}}
{"ref": "Reflection of Experimentation (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Experimentation (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55676"]}}}
{"ref": "Reflection of Flame (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Flame (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_42468"]}}}
{"ref": "Reflection of Fractured Dimensions (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Fractured Dimensions (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49488"]}}}
{"ref": "Reflection of Frost (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Frost (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38110"]}}}
{"ref": "Reflection of Guilt (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Guilt (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25480"]}}}
{"ref": "Reflection of Imprisonment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Imprisonment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_10363"]}}}
{"ref": "Reflection of Kalandra (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Kalandra (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_36591"]}}}
{"ref": "Reflection of Legion (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Legion (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_403"]}}}
{"ref": "Reflection of Metamorph (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Metamorph (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_3699"]}}}
{"ref": "Reflection of Occultism (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Occultism (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24451"]}}}
{"ref": "Reflection of Paradise (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Paradise (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50846"]}}}
{"ref": "Reflection of Perverted Faith (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Perverted Faith (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27678"]}}}
{"ref": "Reflection of Phaaryl (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Phaaryl (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_7674"]}}}
{"ref": "Reflection of Possession (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Possession (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25049"]}}}
{"ref": "Reflection of Power (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Power (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35950"]}}}
{"ref": "Reflection of Scourge (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Scourge (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62360"]}}}
{"ref": "Reflection of Stasis (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Stasis (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_32968"]}}}
{"ref": "Reflection of Sulphite (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Sulphite (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_45086"]}}}
{"ref": "Reflection of the Black Scythe (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Black Scythe (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_9662"]}}}
{"ref": "Reflection of the Breachlord (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Breachlord (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62935"]}}}
{"ref": "Reflection of the Broken Circle (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Broken Circle (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_43128"]}}}
{"ref": "Reflection of the Chalice (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Chalice (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_64561"]}}}
{"ref": "Reflection of the Chasm (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Chasm (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57101"]}}}
{"ref": "Reflection of the Dream (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Dream (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27117"]}}}
{"ref": "Reflection of the Harbingers (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Harbingers (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_37203"]}}}
{"ref": "Reflection of the Hunter (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Hunter (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18816"]}}}
{"ref": "Reflection of the Monolith (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Monolith (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34796"]}}}
{"ref": "Reflection of the Nightmare (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Nightmare (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24232"]}}}
{"ref": "Reflection of the Storm (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Storm (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_2745"]}}}
{"ref": "Reflection of the Sun (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Sun (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60034"]}}}
{"ref": "Reflection of the Trove (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Trove (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_46772"]}}}
{"ref": "Reflection of the Wilderness (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of the Wilderness (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29224"]}}}
{"ref": "Reflection of Thralldom (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Thralldom (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_26813"]}}}
{"ref": "Reflection of Torment (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Torment (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_53950"]}}}
{"ref": "Reflection of Tyranny (Difficulty #)", "better": 1, "matchers": [{"string": "Reflection of Tyranny (Difficulty #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60981"]}}}

View File

@@ -0,0 +1,32 @@
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% increased Burning Damage"}, {"string": "#% reduced Burning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% increased Cold Damage"}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% increased Elemental Damage"}, {"string": "Has #% increased Elemental Damage"}, {"string": "#% reduced Elemental Damage", "negate": true}, {"string": "Has #% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Elemental Damage with Attack Skills"}, {"string": "#% reduced Elemental Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% increased Fire Damage"}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Damage"}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% increased Mana Regeneration Rate"}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% increased Movement Speed"}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% increased Spell Damage"}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Life"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Mana"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}

View File

@@ -0,0 +1,292 @@
{"ref": "# Crafted Modifiers", "better": 1, "matchers": [{"string": "# 제작을 통한 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_mods"]}}}
{"ref": "# Crafted Prefix Modifiers", "better": 1, "matchers": [{"string": "# 제작을 통한 접두어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_prefix_mods"]}}}
{"ref": "# Crafted Suffix Modifiers", "better": 1, "matchers": [{"string": "# 제작을 통한 접미어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_suffix_mods"]}}}
{"ref": "# Empty Modifiers", "better": 1, "matchers": [{"string": "# 빈 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_affix_mods"]}}}
{"ref": "# Empty Prefix Modifiers", "better": 1, "matchers": [{"string": "# 빈 접두어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_prefix_mods"]}}}
{"ref": "# Empty Suffix Modifiers", "better": 1, "matchers": [{"string": "# 빈 접미어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_suffix_mods"]}}}
{"ref": "# Enchant Modifiers", "better": 1, "matchers": [{"string": "# 인챈트 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_enchant_mods"]}}}
{"ref": "# Fractured Modifiers", "better": 1, "matchers": [{"string": "# 분열된 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_fractured_mods"]}}}
{"ref": "# Implicit Modifiers", "better": 1, "matchers": [{"string": "# 고정 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_implicit_mods"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "초당 생명력 재생 #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "# Modifiers", "better": 1, "matchers": [{"string": "# 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_affix_mods"]}}}
{"ref": "# Notable Passive Skills", "better": 1, "matchers": [{"string": "# 주요 패시브 스킬 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_notable_passive_skills"]}}}
{"ref": "# Prefix Modifiers", "better": 1, "matchers": [{"string": "# 접두어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_prefix_mods"]}}}
{"ref": "# Suffix Modifiers", "better": 1, "matchers": [{"string": "# 접미어 속성 부여 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_suffix_mods"]}}}
{"ref": "# total Elemental Resistances", "better": 1, "matchers": [{"string": "총 원소 저항력 # "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_elemental_resistances"]}}}
{"ref": "# total Resistances", "better": 1, "matchers": [{"string": "총 저항 # "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_resistances"]}}}
{"ref": "#% Base Defence Percentile", "better": 1, "matchers": [{"string": "#% 기본 방어 백분위수 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_base_defence_percentile"]}}}
{"ref": "#% chance for dropped Maps to convert to Atlas Memories", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 아틀라스 기억으로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_memory_line"]}}}
{"ref": "#% chance for dropped Maps to convert to Conqueror Maps", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 정복자 지도로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_conqueror_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Elder Maps", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 엘더 지도로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_elder_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Maven Invitations", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 메이븐의 초대로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_maven_invitation"]}}}
{"ref": "#% chance for dropped Maps to convert to Scarabs", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 갑충석으로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_scarab"]}}}
{"ref": "#% chance for dropped Maps to convert to Shaper Maps", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 쉐이퍼 지도로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_shaper_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Unique Maps", "better": 1, "matchers": [{"string": "떨어진 지도가 #%의 확률로 고유 지도로 변환 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_unique_map"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "화상 피해 #% 증가"}, {"string": "화상 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "냉기 피해 #% 증가"}, {"string": "냉기 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Damage with Attack Skills", "better": 1, "matchers": [{"string": "공격 스킬의 냉기 피해 #% 증가"}, {"string": "공격 스킬의 냉기 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage_with_attack_skills"], "explicit": ["explicit.stat_860668586"], "implicit": ["implicit.stat_860668586"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "냉기 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "원소 피해 #% 증가"}, {"string": "원소 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "공격 스킬의 원소 피해 #% 증가"}, {"string": "공격 스킬의 원소 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "화염 피해 #% 증가"}, {"string": "화염 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Damage with Attack Skills", "better": 1, "matchers": [{"string": "공격 스킬의 화염 피해 #% 증가"}, {"string": "공격 스킬의 화염 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage_with_attack_skills"], "implicit": ["implicit.stat_2468413380"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "화염 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "번개 피해 #% 증가"}, {"string": "번개 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Damage with Attack Skills", "better": 1, "matchers": [{"string": "공격 스킬의 번개 피해 #% 증가"}, {"string": "공격 스킬의 번개 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage_with_attack_skills"], "explicit": ["explicit.stat_4208907162"], "implicit": ["implicit.stat_4208907162"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "번개 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "마나 재생 속도 #% 증가"}, {"string": "마나 재생 속도 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "이동 속도 #% 증가"}, {"string": "이동 속도 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Rarity of Items found", "better": 1, "matchers": [{"string": "발견하는 아이템 희귀도 #% 증가"}, {"string": "발견하는 아이템 희귀도 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_rarity"], "explicit": ["explicit.stat_3917489142"], "implicit": ["implicit.stat_3917489142"], "fractured": ["fractured.stat_3917489142"], "scourge": ["scourge.stat_3917489142"], "crafted": ["crafted.stat_3917489142"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "주문 피해 #% 증가"}, {"string": "주문 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Life Regenerated per Second", "better": 1, "matchers": [{"string": "초당 생명력 재생의 #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_percent_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "물리 공격 피해의 #%를 생명력으로 흡수"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "물리 공격 피해의 #%를 마나로 흡수"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased maximum Energy Shield", "better": 1, "matchers": [{"string": "에너지 보호막 최대치 총 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_energy_shield"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "물리 피해 총 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "에너지 보호막 최대치 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "총 최대 생명력 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "총 최대 마나 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "모든 능력치 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "민첩 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "지능 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Level of Socketed Aura Gems", "better": 1, "matchers": [{"string": "장착한 오라 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_aura_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Bow Gems", "better": 1, "matchers": [{"string": "장착한 활 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_bow_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Chaos Gems", "better": 1, "matchers": [{"string": "장착한 카오스 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_chaos_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Cold Gems", "better": 1, "matchers": [{"string": "장착한 냉기 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_cold_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Curse Gems", "better": 1, "matchers": [{"string": "장착한 저주 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_curse_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Dexterity Gems", "better": 1, "matchers": [{"string": "장착한 민첩 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_dexterity_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Elemental Gems", "better": 1, "matchers": [{"string": "장착한 원소 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_elemental_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Fire Gems", "better": 1, "matchers": [{"string": "장착한 화염 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_fire_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Gems", "better": 1, "matchers": [{"string": "장착된 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Golem Gems", "better": 1, "matchers": [{"string": "장착한 골렘 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_golem_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Intelligence Gems", "better": 1, "matchers": [{"string": "장착한 지능 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_intelligence_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Lightning Gems", "better": 1, "matchers": [{"string": "장착한 번개 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_lightning_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Melee Gems", "better": 1, "matchers": [{"string": "장착한 근접 공격 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_melee_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Minion Gems", "better": 1, "matchers": [{"string": "장착한 소환수 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_minion_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Movement Gems", "better": 1, "matchers": [{"string": "장착한 이동 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_movement_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Projectile Gems", "better": 1, "matchers": [{"string": "장착한 투사체 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_projectile_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Skill Gems", "better": 1, "matchers": [{"string": "장착한 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_skill_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Spell Gems", "better": 1, "matchers": [{"string": "장착한 주문 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_spell_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Strength Gems", "better": 1, "matchers": [{"string": "장착한 힘 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_strength_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Support Gems", "better": 1, "matchers": [{"string": "장착한 보조 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_support_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Vaal Gems", "better": 1, "matchers": [{"string": "장착한 바알 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_vaal_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Warcry Gems", "better": 1, "matchers": [{"string": "장착한 함성 스킬 젬 레벨 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_warcry_gem_levels"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "힘 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "일반 치명타 확률 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "일반 치명타 피해 배율 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "총 공격 속도 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "총 시전 속도 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Critical Strike Chance for Spells", "better": 1, "matchers": [{"string": "총 주문 치명타 확률 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_critical_strike_chance_for_spells"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "원소 저항력 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total Resistance", "better": 1, "matchers": [{"string": "총 저항 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_resistance"]}}}
{"ref": "+#% total to all Elemental Resistances", "better": 1, "matchers": [{"string": "모든 원소 저항력 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_elemental_resistances"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "카오스 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "냉기 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "화염 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "번개 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "Adds # to # Chaos Damage", "better": 1, "matchers": [{"string": "카오스 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage"], "explicit": ["explicit.stat_2223678961", "explicit.stat_3531280422"], "implicit": ["implicit.stat_2223678961", "implicit.stat_3531280422"], "fractured": ["fractured.stat_2223678961"], "enchant": ["enchant.stat_2223678961"], "scourge": ["scourge.stat_2223678961"]}}}
{"ref": "Adds # to # Chaos Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 카오스 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_attacks"], "explicit": ["explicit.stat_674553446"], "implicit": ["implicit.stat_674553446"], "fractured": ["fractured.stat_674553446"], "crafted": ["crafted.stat_674553446"]}}}
{"ref": "Adds # to # Chaos Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 카오스 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_spells"], "explicit": ["explicit.stat_2300399854"], "implicit": ["implicit.stat_2300399854"], "fractured": ["fractured.stat_2300399854"]}}}
{"ref": "Adds # to # Cold Damage", "better": 1, "matchers": [{"string": "냉기 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage"], "explicit": ["explicit.stat_1037193709", "explicit.stat_2387423236"], "implicit": ["implicit.stat_1037193709", "implicit.stat_2387423236"], "fractured": ["fractured.stat_1037193709", "fractured.stat_2387423236"], "enchant": ["enchant.stat_1037193709"], "scourge": ["scourge.stat_1037193709"], "crafted": ["crafted.stat_1037193709", "crafted.stat_2387423236"]}}}
{"ref": "Adds # to # Cold Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 냉기 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_attacks"], "explicit": ["explicit.stat_4067062424"], "implicit": ["implicit.stat_4067062424"], "fractured": ["fractured.stat_4067062424"], "crafted": ["crafted.stat_4067062424"]}}}
{"ref": "Adds # to # Cold Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 냉기 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_spells"], "explicit": ["explicit.stat_2469416729"], "implicit": ["implicit.stat_2469416729"], "fractured": ["fractured.stat_2469416729"], "scourge": ["scourge.stat_2469416729"], "crafted": ["crafted.stat_2469416729"]}}}
{"ref": "Adds # to # Damage", "better": 1, "matchers": [{"string": "# 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage"]}}}
{"ref": "Adds # to # Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 # 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_attacks"]}}}
{"ref": "Adds # to # Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 # 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_spells"]}}}
{"ref": "Adds # to # Elemental Damage", "better": 1, "matchers": [{"string": "# 원소 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage"]}}}
{"ref": "Adds # to # Elemental Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 # 원소 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_attacks"]}}}
{"ref": "Adds # to # Elemental Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 # 원소 피해에 # 추가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_spells"]}}}
{"ref": "Adds # to # Fire Damage", "better": 1, "matchers": [{"string": "화염 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage"], "explicit": ["explicit.stat_321077055", "explicit.stat_709508406"], "implicit": ["implicit.stat_321077055", "implicit.stat_709508406"], "fractured": ["fractured.stat_321077055", "fractured.stat_709508406"], "enchant": ["enchant.stat_709508406"], "scourge": ["scourge.stat_709508406"], "crafted": ["crafted.stat_321077055", "crafted.stat_709508406"]}}}
{"ref": "Adds # to # Fire Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 화염 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_attacks"], "explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"], "fractured": ["fractured.stat_1573130764"], "crafted": ["crafted.stat_1573130764"]}}}
{"ref": "Adds # to # Fire Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 화염 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_spells"], "explicit": ["explicit.stat_1133016593"], "implicit": ["implicit.stat_1133016593"], "fractured": ["fractured.stat_1133016593"], "scourge": ["scourge.stat_1133016593"], "crafted": ["crafted.stat_1133016593"]}}}
{"ref": "Adds # to # Lightning Damage", "better": 1, "matchers": [{"string": "번개 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage"], "explicit": ["explicit.stat_1334060246", "explicit.stat_3336890334"], "implicit": ["implicit.stat_1334060246", "implicit.stat_3336890334"], "fractured": ["fractured.stat_1334060246", "fractured.stat_3336890334"], "enchant": ["enchant.stat_3336890334"], "scourge": ["scourge.stat_3336890334"], "crafted": ["crafted.stat_1334060246", "crafted.stat_3336890334"]}}}
{"ref": "Adds # to # Lightning Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 번개 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_attacks"], "explicit": ["explicit.stat_1754445556"], "implicit": ["implicit.stat_1754445556"], "fractured": ["fractured.stat_1754445556"], "crafted": ["crafted.stat_1754445556"]}}}
{"ref": "Adds # to # Lightning Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 번개 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_spells"], "explicit": ["explicit.stat_2831165374"], "implicit": ["implicit.stat_2831165374"], "fractured": ["fractured.stat_2831165374"], "scourge": ["scourge.stat_2831165374"], "crafted": ["crafted.stat_2831165374"]}}}
{"ref": "Adds # to # Physical Damage", "better": 1, "matchers": [{"string": "물리 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage"], "explicit": ["explicit.stat_1940865751", "explicit.stat_960081730"], "implicit": ["implicit.stat_1940865751"], "fractured": ["fractured.stat_1940865751", "fractured.stat_960081730"], "scourge": ["scourge.stat_1940865751"], "crafted": ["crafted.stat_1940865751"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "matchers": [{"string": "공격 시 물리 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_attacks"], "explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"], "fractured": ["fractured.stat_3032590688"], "crafted": ["crafted.stat_3032590688"]}}}
{"ref": "Adds # to # Physical Damage to Spells", "better": 1, "matchers": [{"string": "주문 시전 시 물리 피해 #~# 추가"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_spells"], "explicit": ["explicit.stat_2435536961"], "implicit": ["implicit.stat_2435536961"], "fractured": ["fractured.stat_2435536961"], "scourge": ["scourge.stat_2435536961"]}}}
{"ref": "Has # Influences", "better": 1, "matchers": [{"string": "# 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_influence_count"]}}}
{"ref": "Has Crusader Influence", "better": 1, "matchers": [{"string": "십자군 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_crusader_influence"]}}}
{"ref": "Has Elder Influence", "better": 1, "matchers": [{"string": "엘더 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_elder_influence"]}}}
{"ref": "Has Hunter Influence", "better": 1, "matchers": [{"string": "사냥꾼 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_hunter_influence"]}}}
{"ref": "Has Logbook Area: Battleground Graves", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 전장 무덤 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_battleground_graves"]}}}
{"ref": "Has Logbook Area: Bluffs", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 절벽 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_bluffs"]}}}
{"ref": "Has Logbook Area: Cemetery", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 공동묘지 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_cemetery"]}}}
{"ref": "Has Logbook Area: Desert Ruins", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 사막 폐허 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_desert_ruins"]}}}
{"ref": "Has Logbook Area: Dried Riverbed", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 말라붙은 강바닥 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_dried_riverbed"]}}}
{"ref": "Has Logbook Area: Forest Ruins", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 숲 폐허 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_forest_ruins"]}}}
{"ref": "Has Logbook Area: Karui Wargraves", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 카루이 전쟁 무덤 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_karui_wargraves"]}}}
{"ref": "Has Logbook Area: Mountainside", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 산비탈 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_mountainside"]}}}
{"ref": "Has Logbook Area: Rotting Temple", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 썩어가는 사원 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_rotting_temple"]}}}
{"ref": "Has Logbook Area: Sarn Slums", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 사안 빈민가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_sarn_slums"]}}}
{"ref": "Has Logbook Area: Scrublands", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 관목지 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_scrublands"]}}}
{"ref": "Has Logbook Area: Shipwreck Reef", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 난파선 암초 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_shipwreck_reef"]}}}
{"ref": "Has Logbook Area: Utzaal Outskirts", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 웃자알 외곽 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_utzaal_outskirts"]}}}
{"ref": "Has Logbook Area: Vaal Temple", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 바알 사원 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_vaal_temple"]}}}
{"ref": "Has Logbook Area: Volcanic Island", "better": 1, "matchers": [{"string": "다음 일지 지역 보유: 화산섬 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_volcano"]}}}
{"ref": "Has Logbook Faction: Black Scythe Mercenaries", "better": 0, "matchers": [{"string": "검은 낫 용병단"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_mercenaries"]}}}
{"ref": "Has Logbook Faction: Druids of the Broken Circle", "better": 0, "matchers": [{"string": "끊어진 원의 드루이드"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_druids"]}}}
{"ref": "Has Logbook Faction: Knights of the Sun", "better": 0, "matchers": [{"string": "태양의 기사단"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_knights"]}}}
{"ref": "Has Logbook Faction: Order of the Chalice", "better": 0, "matchers": [{"string": "성배단"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_order"]}}}
{"ref": "Has Redeemer Influence", "better": 1, "matchers": [{"string": "대속자 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_redeemer_influence"]}}}
{"ref": "Has Room: Antechamber", "better": 0, "matchers": [{"string": "대기실"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_antechamber"]}, "option": true}}
{"ref": "Has Room: Apex of Ascension (Tier 3)", "better": 0, "matchers": [{"string": "승천의 정점 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_3"]}, "option": true}}
{"ref": "Has Room: Apex of Atzoatl", "better": 0, "matchers": [{"string": "앗조아틀의 정점"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_apex"]}, "option": true}}
{"ref": "Has Room: Arena of Valour (Tier 2)", "better": 0, "matchers": [{"string": "용맹의 투기장 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_2"]}, "option": true}}
{"ref": "Has Room: Armourer's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "방어구 장인의 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_1"]}, "option": true}}
{"ref": "Has Room: Armoury (Tier 2)", "better": 0, "matchers": [{"string": "갑주 창고 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_2"]}, "option": true}}
{"ref": "Has Room: Atlas of Worlds (Tier 3)", "better": 0, "matchers": [{"string": "아틀라스의 세계 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_3"]}, "option": true}}
{"ref": "Has Room: Automaton Lab (Tier 2)", "better": 0, "matchers": [{"string": "오토마톤 제조실 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_2"]}, "option": true}}
{"ref": "Has Room: Banquet Hall", "better": 0, "matchers": [{"string": "연회장"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_banquet_hall"]}, "option": true}}
{"ref": "Has Room: Barracks (Tier 2)", "better": 0, "matchers": [{"string": "주둔지 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_2"]}, "option": true}}
{"ref": "Has Room: Breach Containment Chamber (Tier 2)", "better": 0, "matchers": [{"string": "균열 봉쇄 시설 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_2"]}, "option": true}}
{"ref": "Has Room: Catalyst of Corruption (Tier 2)", "better": 0, "matchers": [{"string": "타락의 기폭제 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_2"]}, "option": true}}
{"ref": "Has Room: Cellar", "better": 0, "matchers": [{"string": "저장실"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cellar"]}, "option": true}}
{"ref": "Has Room: Chamber of Iron (Tier 3)", "better": 0, "matchers": [{"string": "방어구의 방 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_3"]}, "option": true}}
{"ref": "Has Room: Chasm", "better": 0, "matchers": [{"string": "절벽길"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chasm_room"]}, "option": true}}
{"ref": "Has Room: Cloister", "better": 0, "matchers": [{"string": "회랑"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cloister"]}, "option": true}}
{"ref": "Has Room: Conduit of Lightning (Tier 3)", "better": 0, "matchers": [{"string": "번개의 도관 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_3"]}, "option": true}}
{"ref": "Has Room: Corruption Chamber (Tier 1)", "better": 0, "matchers": [{"string": "타락의 방 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_1"]}, "option": true}}
{"ref": "Has Room: Court of Sealed Death (Tier 3)", "better": 0, "matchers": [{"string": "봉인된 죽음의 법정 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_3"]}, "option": true}}
{"ref": "Has Room: Crucible of Flame (Tier 3)", "better": 0, "matchers": [{"string": "화염의 용광로 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_3"]}, "option": true}}
{"ref": "Has Room: Cultivar Chamber (Tier 2)", "better": 0, "matchers": [{"string": "컬티바의 방 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_2"]}, "option": true}}
{"ref": "Has Room: Defense Research Lab (Tier 3)", "better": 0, "matchers": [{"string": "방어물 연구소 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_3"]}, "option": true}}
{"ref": "Has Room: Demolition Lab (Tier 2)", "better": 0, "matchers": [{"string": "폭탄 제조실 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_2"]}, "option": true}}
{"ref": "Has Room: Department of Thaumaturgy (Tier 2)", "better": 0, "matchers": [{"string": "마법부 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_2"]}, "option": true}}
{"ref": "Has Room: Doryani's Institute (Tier 3)", "better": 0, "matchers": [{"string": "도리아니의 학회 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_3"]}, "option": true}}
{"ref": "Has Room: Engineering Department (Tier 2)", "better": 0, "matchers": [{"string": "공학부 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_2"]}, "option": true}}
{"ref": "Has Room: Explosives Room (Tier 1)", "better": 0, "matchers": [{"string": "폭발물 저장실 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_1"]}, "option": true}}
{"ref": "Has Room: Factory (Tier 3)", "better": 0, "matchers": [{"string": "공장 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_3"]}, "option": true}}
{"ref": "Has Room: Flame Workshop (Tier 1)", "better": 0, "matchers": [{"string": "화염 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_1"]}, "option": true}}
{"ref": "Has Room: Gemcutter's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "세공사의 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_1"]}, "option": true}}
{"ref": "Has Room: Glittering Halls (Tier 3)", "better": 0, "matchers": [{"string": "번쩍이는 복도 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_3"]}, "option": true}}
{"ref": "Has Room: Guardhouse (Tier 1)", "better": 0, "matchers": [{"string": "위병소 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_1"]}, "option": true}}
{"ref": "Has Room: Hall of Champions (Tier 3)", "better": 0, "matchers": [{"string": "용사의 전당 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_3"]}, "option": true}}
{"ref": "Has Room: Hall of Heroes (Tier 2)", "better": 0, "matchers": [{"string": "영웅의 전당 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_2"]}, "option": true}}
{"ref": "Has Room: Hall of Legends (Tier 3)", "better": 0, "matchers": [{"string": "전설의 전당 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_3"]}, "option": true}}
{"ref": "Has Room: Hall of Locks (Tier 2)", "better": 0, "matchers": [{"string": "자물쇠의 전당 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_2"]}, "option": true}}
{"ref": "Has Room: Hall of Lords (Tier 2)", "better": 0, "matchers": [{"string": "군주의 전당 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_2"]}, "option": true}}
{"ref": "Has Room: Hall of Mettle (Tier 1)", "better": 0, "matchers": [{"string": "패기의 전당 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_1"]}, "option": true}}
{"ref": "Has Room: Hall of Offerings (Tier 2)", "better": 0, "matchers": [{"string": "공물의 전당 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_2"]}, "option": true}}
{"ref": "Has Room: Hall of War (Tier 3)", "better": 0, "matchers": [{"string": "전쟁의 전당 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_3"]}, "option": true}}
{"ref": "Has Room: Halls", "better": 0, "matchers": [{"string": "복도"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_halls"]}, "option": true}}
{"ref": "Has Room: Hatchery (Tier 1)", "better": 0, "matchers": [{"string": "부화장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_1"]}, "option": true}}
{"ref": "Has Room: House of the Others (Tier 3)", "better": 0, "matchers": [{"string": "다른 존재의 보금자리 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_3"]}, "option": true}}
{"ref": "Has Room: Hurricane Engine (Tier 2)", "better": 0, "matchers": [{"string": "폭풍 장치 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_2"]}, "option": true}}
{"ref": "Has Room: Hybridisation Chamber (Tier 3)", "better": 0, "matchers": [{"string": "잡종화의 방 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_3"]}, "option": true}}
{"ref": "Has Room: Jeweller's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "보석 상인의 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_1"]}, "option": true}}
{"ref": "Has Room: Jewellery Forge (Tier 2)", "better": 0, "matchers": [{"string": "장신구 제련소 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_2"]}, "option": true}}
{"ref": "Has Room: Lightning Workshop (Tier 1)", "better": 0, "matchers": [{"string": "번개 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_1"]}, "option": true}}
{"ref": "Has Room: Locus of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "타락의 현장 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_3"]}, "option": true}}
{"ref": "Has Room: Museum of Artefacts (Tier 3)", "better": 0, "matchers": [{"string": "유물 박물관 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_3"]}, "option": true}}
{"ref": "Has Room: Office of Cartography (Tier 2)", "better": 0, "matchers": [{"string": "지도 제작소 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Forge (Tier 2)", "better": 0, "matchers": [{"string": "종합체 제련소 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Reactor Plant (Tier 2)", "better": 0, "matchers": [{"string": "종합체 원전 시설 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_2"]}, "option": true}}
{"ref": "Has Room: Passageways", "better": 0, "matchers": [{"string": "통로"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_passageways"]}, "option": true}}
{"ref": "Has Room: Pits", "better": 0, "matchers": [{"string": "구덩이"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_the_pits"]}, "option": true}}
{"ref": "Has Room: Poison Garden (Tier 1)", "better": 0, "matchers": [{"string": "독초 정원 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_1"]}, "option": true}}
{"ref": "Has Room: Pools of Restoration (Tier 1)", "better": 0, "matchers": [{"string": "회복의 웅덩이 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_1"]}, "option": true}}
{"ref": "Has Room: Royal Meeting Room (Tier 1)", "better": 0, "matchers": [{"string": "왕실 회의실 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_1"]}, "option": true}}
{"ref": "Has Room: Sacrificial Chamber (Tier 1)", "better": 0, "matchers": [{"string": "희생의 방 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_1"]}, "option": true}}
{"ref": "Has Room: Sadist's Den (Tier 3)", "better": 0, "matchers": [{"string": "가학자의 굴 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Immortality (Tier 3)", "better": 0, "matchers": [{"string": "불멸의 지성소 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Unity (Tier 2)", "better": 0, "matchers": [{"string": "단결의 지성소 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_2"]}, "option": true}}
{"ref": "Has Room: Sanctum of Vitality (Tier 2)", "better": 0, "matchers": [{"string": "활력의 지성소 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_2"]}, "option": true}}
{"ref": "Has Room: Shrine of Empowerment (Tier 1)", "better": 0, "matchers": [{"string": "강화의 성소 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_1"]}, "option": true}}
{"ref": "Has Room: Shrine of Unmaking (Tier 3)", "better": 0, "matchers": [{"string": "파괴의 성소 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_3"]}, "option": true}}
{"ref": "Has Room: Sparring Room (Tier 1)", "better": 0, "matchers": [{"string": "격투장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_1"]}, "option": true}}
{"ref": "Has Room: Splinter Research Lab (Tier 1)", "better": 0, "matchers": [{"string": "파편 연구소 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_1"]}, "option": true}}
{"ref": "Has Room: Storage Room (Tier 1)", "better": 0, "matchers": [{"string": "저장고 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_1"]}, "option": true}}
{"ref": "Has Room: Storm of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "타락의 태풍 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_3"]}, "option": true}}
{"ref": "Has Room: Strongbox Chamber (Tier 1)", "better": 0, "matchers": [{"string": "금고의 방 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_1"]}, "option": true}}
{"ref": "Has Room: Surveyor's Study (Tier 1)", "better": 0, "matchers": [{"string": "측량사의 조사 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_1"]}, "option": true}}
{"ref": "Has Room: Tempest Generator (Tier 1)", "better": 0, "matchers": [{"string": "폭풍 제조기 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_1"]}, "option": true}}
{"ref": "Has Room: Temple Defense Workshop (Tier 2)", "better": 0, "matchers": [{"string": "사원 방어물 작업장 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_2"]}, "option": true}}
{"ref": "Has Room: Temple Nexus (Tier 3)", "better": 0, "matchers": [{"string": "사원의 연결부 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_3"]}, "option": true}}
{"ref": "Has Room: Throne of Atziri (Tier 3)", "better": 0, "matchers": [{"string": "앗지리의 왕좌 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_3"]}, "option": true}}
{"ref": "Has Room: Tombs", "better": 0, "matchers": [{"string": "무덤"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tombs"]}, "option": true}}
{"ref": "Has Room: Torment Cells (Tier 1)", "better": 0, "matchers": [{"string": "고문용 감방 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_1"]}, "option": true}}
{"ref": "Has Room: Torture Cages (Tier 2)", "better": 0, "matchers": [{"string": "고문용 창살 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_2"]}, "option": true}}
{"ref": "Has Room: Toxic Grove (Tier 3)", "better": 0, "matchers": [{"string": "독성 수목원 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_3"]}, "option": true}}
{"ref": "Has Room: Trap Workshop (Tier 1)", "better": 0, "matchers": [{"string": "덫 작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_1"]}, "option": true}}
{"ref": "Has Room: Treasury (Tier 2)", "better": 0, "matchers": [{"string": "보물 창고 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_2"]}, "option": true}}
{"ref": "Has Room: Tunnels", "better": 0, "matchers": [{"string": "터널"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tunnels"]}, "option": true}}
{"ref": "Has Room: Vault (Tier 1)", "better": 0, "matchers": [{"string": "금고실 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_1"]}, "option": true}}
{"ref": "Has Room: Warehouses (Tier 2)", "better": 0, "matchers": [{"string": "창고 (2등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_2"]}, "option": true}}
{"ref": "Has Room: Wealth of the Vaal (Tier 3)", "better": 0, "matchers": [{"string": "바알의 재물 (3등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_3"]}, "option": true}}
{"ref": "Has Room: Workshop (Tier 1)", "better": 0, "matchers": [{"string": "작업장 (1등급)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_1"]}, "option": true}}
{"ref": "Has Shaper Influence", "better": 1, "matchers": [{"string": "쉐이퍼 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_shaper_influence"]}}}
{"ref": "Has Warlord Influence", "better": 1, "matchers": [{"string": "전쟁군주 영향력이 부여되어 있습니다 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_warlord_influence"]}}}
{"ref": "Mirrored Tablet has # Islands", "better": 1, "matchers": [{"string": "복제 서판이 섬 #개 보유 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_lake_number_of_islands"]}}}
{"ref": "More Currency: #%", "better": 1, "matchers": [{"string": "화폐 더 많음: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_currency_drops"]}}}
{"ref": "More Divination Cards: #%", "better": 1, "matchers": [{"string": "점술 카드 더 많음: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_card_drops"]}}}
{"ref": "More Maps: #%", "better": 1, "matchers": [{"string": "지도 더 많음: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_map_drops"]}}}
{"ref": "More Scarabs: #%", "better": 1, "matchers": [{"string": "갑충석 더 많음: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_scarab_drops"]}}}
{"ref": "Quality (Attack Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (공격 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attack_quality"]}}}
{"ref": "Quality (Attribute Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (능력치 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attribute_quality"]}}}
{"ref": "Quality (Caster Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (시전 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_caster_quality"]}}}
{"ref": "Quality (Critical Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (치명타 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_critical_quality"]}}}
{"ref": "Quality (Currency): #%", "better": 1, "matchers": [{"string": "퀄리티 (화폐): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_currency"]}}}
{"ref": "Quality (Defence Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (방어 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_defense_quality"]}}}
{"ref": "Quality (Divination Cards): #%", "better": 1, "matchers": [{"string": "퀄리티 (점술 카드): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_cards"]}}}
{"ref": "Quality (Elemental Damage Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (원소 피해 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_elemental_quality"]}}}
{"ref": "Quality (Life and Mana Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (생명력과 마나 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resource_quality"]}}}
{"ref": "Quality (Pack Size): #%", "better": 1, "matchers": [{"string": "퀄리티 (무리 규모): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_pack_size"]}}}
{"ref": "Quality (Physical and Chaos Damage Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (물리 및 카오스 피해 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_physical_chaos_quality"]}}}
{"ref": "Quality (Rarity): #%", "better": 1, "matchers": [{"string": "퀄리티 (희귀도): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_rarity"]}}}
{"ref": "Quality (Resistance Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (저항 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resistance_quality"]}}}
{"ref": "Quality (Scarabs): #%", "better": 1, "matchers": [{"string": "퀄리티 (갑충석): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_scarabs"]}}}
{"ref": "Quality (Speed Modifiers): #%", "better": 1, "matchers": [{"string": "퀄리티 (속도 속성 부여): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_speed_quality"]}}}
{"ref": "Reflection of Abyss (Difficulty #)", "better": 1, "matchers": [{"string": "심연의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38892"]}}}
{"ref": "Reflection of Ambush (Difficulty #)", "better": 1, "matchers": [{"string": "매복의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_48307"]}}}
{"ref": "Reflection of Angling (Difficulty #)", "better": 1, "matchers": [{"string": "강태공의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40794"]}}}
{"ref": "Reflection of Azurite (Difficulty #)", "better": 1, "matchers": [{"string": "남동석의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40031"]}}}
{"ref": "Reflection of Bestiary (Difficulty #)", "better": 1, "matchers": [{"string": "야수 도감의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55569"]}}}
{"ref": "Reflection of Breach (Difficulty #)", "better": 1, "matchers": [{"string": "균열의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62572"]}}}
{"ref": "Reflection of Brutality (Difficulty #)", "better": 1, "matchers": [{"string": "잔인성의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29096"]}}}
{"ref": "Reflection of Camaraderie (Difficulty #)", "better": 1, "matchers": [{"string": "전우애의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35395"]}}}
{"ref": "Reflection of Catalysis (Difficulty #)", "better": 1, "matchers": [{"string": "촉매의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57850"]}}}
{"ref": "Reflection of Chaos (Difficulty #)", "better": 1, "matchers": [{"string": "혼돈의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50834"]}}}
{"ref": "Reflection of Conflict (Difficulty #)", "better": 1, "matchers": [{"string": "갈등의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_1931"]}}}
{"ref": "Reflection of Darkness (Difficulty #)", "better": 1, "matchers": [{"string": "어둠의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34457"]}}}
{"ref": "Reflection of Delirium (Difficulty #)", "better": 1, "matchers": [{"string": "환영의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_22138"]}}}
{"ref": "Reflection of Delve (Difficulty #)", "better": 1, "matchers": [{"string": "탐광의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18737"]}}}
{"ref": "Reflection of Demonfire (Difficulty #)", "better": 1, "matchers": [{"string": "악마불의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_28500"]}}}
{"ref": "Reflection of Domination (Difficulty #)", "better": 1, "matchers": [{"string": "지배의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_63412"]}}}
{"ref": "Reflection of Entrapment (Difficulty #)", "better": 1, "matchers": [{"string": "속박의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_44399"]}}}
{"ref": "Reflection of Essence (Difficulty #)", "better": 1, "matchers": [{"string": "에센스의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49862"]}}}
{"ref": "Reflection of Experimentation (Difficulty #)", "better": 1, "matchers": [{"string": "실험의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55676"]}}}
{"ref": "Reflection of Flame (Difficulty #)", "better": 1, "matchers": [{"string": "화염의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_42468"]}}}
{"ref": "Reflection of Fractured Dimensions (Difficulty #)", "better": 1, "matchers": [{"string": "분열된 차원의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49488"]}}}
{"ref": "Reflection of Frost (Difficulty #)", "better": 1, "matchers": [{"string": "서리의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38110"]}}}
{"ref": "Reflection of Guilt (Difficulty #)", "better": 1, "matchers": [{"string": "죄책감의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25480"]}}}
{"ref": "Reflection of Imprisonment (Difficulty #)", "better": 1, "matchers": [{"string": "갇힘의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_10363"]}}}
{"ref": "Reflection of Kalandra (Difficulty #)", "better": 1, "matchers": [{"string": "칼란드라의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_36591"]}}}
{"ref": "Reflection of Legion (Difficulty #)", "better": 1, "matchers": [{"string": "군단의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_403"]}}}
{"ref": "Reflection of Metamorph (Difficulty #)", "better": 1, "matchers": [{"string": "변형의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_3699"]}}}
{"ref": "Reflection of Occultism (Difficulty #)", "better": 1, "matchers": [{"string": "비술의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24451"]}}}
{"ref": "Reflection of Paradise (Difficulty #)", "better": 1, "matchers": [{"string": "낙원의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50846"]}}}
{"ref": "Reflection of Perverted Faith (Difficulty #)", "better": 1, "matchers": [{"string": "엇나간 믿음의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27678"]}}}
{"ref": "Reflection of Phaaryl (Difficulty #)", "better": 1, "matchers": [{"string": "파아릴의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_7674"]}}}
{"ref": "Reflection of Possession (Difficulty #)", "better": 1, "matchers": [{"string": "빙의의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25049"]}}}
{"ref": "Reflection of Power (Difficulty #)", "better": 1, "matchers": [{"string": "힘의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35950"]}}}
{"ref": "Reflection of Scourge (Difficulty #)", "better": 1, "matchers": [{"string": "스컬지의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62360"]}}}
{"ref": "Reflection of Stasis (Difficulty #)", "better": 1, "matchers": [{"string": "정체의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_32968"]}}}
{"ref": "Reflection of Sulphite (Difficulty #)", "better": 1, "matchers": [{"string": "아황산염의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_45086"]}}}
{"ref": "Reflection of the Black Scythe (Difficulty #)", "better": 1, "matchers": [{"string": "검은 낫의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_9662"]}}}
{"ref": "Reflection of the Breachlord (Difficulty #)", "better": 1, "matchers": [{"string": "균열 군주의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62935"]}}}
{"ref": "Reflection of the Broken Circle (Difficulty #)", "better": 1, "matchers": [{"string": "끊어진 원의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_43128"]}}}
{"ref": "Reflection of the Chalice (Difficulty #)", "better": 1, "matchers": [{"string": "성배의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_64561"]}}}
{"ref": "Reflection of the Chasm (Difficulty #)", "better": 1, "matchers": [{"string": "절벽길의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57101"]}}}
{"ref": "Reflection of the Dream (Difficulty #)", "better": 1, "matchers": [{"string": "꿈의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27117"]}}}
{"ref": "Reflection of the Harbingers (Difficulty #)", "better": 1, "matchers": [{"string": "선구자의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_37203"]}}}
{"ref": "Reflection of the Hunter (Difficulty #)", "better": 1, "matchers": [{"string": "사냥꾼의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18816"]}}}
{"ref": "Reflection of the Monolith (Difficulty #)", "better": 1, "matchers": [{"string": "기둥의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34796"]}}}
{"ref": "Reflection of the Nightmare (Difficulty #)", "better": 1, "matchers": [{"string": "악몽의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24232"]}}}
{"ref": "Reflection of the Storm (Difficulty #)", "better": 1, "matchers": [{"string": "태풍의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_2745"]}}}
{"ref": "Reflection of the Sun (Difficulty #)", "better": 1, "matchers": [{"string": "태양의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60034"]}}}
{"ref": "Reflection of the Trove (Difficulty #)", "better": 1, "matchers": [{"string": "발견물의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_46772"]}}}
{"ref": "Reflection of the Wilderness (Difficulty #)", "better": 1, "matchers": [{"string": "황야의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29224"]}}}
{"ref": "Reflection of Thralldom (Difficulty #)", "better": 1, "matchers": [{"string": "예속의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_26813"]}}}
{"ref": "Reflection of Torment (Difficulty #)", "better": 1, "matchers": [{"string": "고통의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_53950"]}}}
{"ref": "Reflection of Tyranny (Difficulty #)", "better": 1, "matchers": [{"string": "폭정의 투영 (난이도 #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60981"]}}}

View File

@@ -0,0 +1,32 @@
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "초당 생명력 재생 #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "화상 피해 #% 증가"}, {"string": "화상 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "냉기 피해 #% 증가"}, {"string": "냉기 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "냉기 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "원소 피해 #% 증가"}, {"string": "원소 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "공격 스킬의 원소 피해 #% 증가"}, {"string": "공격 스킬의 원소 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "화염 피해 #% 증가"}, {"string": "화염 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "화염 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "번개 피해 #% 증가"}, {"string": "번개 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "번개 주문 피해 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "마나 재생 속도 #% 증가"}, {"string": "마나 재생 속도 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "이동 속도 #% 증가"}, {"string": "이동 속도 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "주문 피해 #% 증가"}, {"string": "주문 피해 #% 감소", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "물리 공격 피해의 #%를 생명력으로 흡수"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "물리 공격 피해의 #%를 마나로 흡수"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "물리 피해 총 #% 증가 "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "에너지 보호막 최대치 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "총 최대 생명력 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "총 최대 마나 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "모든 능력치 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "민첩 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "지능 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "힘 총 +# "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "일반 치명타 확률 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "일반 치명타 피해 배율 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "총 공격 속도 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "총 시전 속도 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "원소 저항력 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "카오스 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "냉기 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "화염 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "번개 저항 총 +#% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}

View File

@@ -0,0 +1,54 @@
import json
import os
def get_script_dir():
"""Returns the directory where the script is located."""
return os.path.dirname(os.path.realpath(__file__))
# List of localization codes
localizations = ["en", "ru", "ko", "cmn-Hant"]
key_to_find = "trade.ids.pseudo" # The specific key path to check for
def has_nested_key(obj, key_path):
keys = key_path.split(".")
for key in keys:
if isinstance(obj, dict) and key in obj:
obj = obj[key]
else:
return False
return True
def process_file(input_file_path, output_file_path):
result_list = []
# Use 'utf-8' encoding when opening the input file
with open(input_file_path, "r", encoding="utf-8") as input_file:
for line in input_file:
try:
json_object = json.loads(line)
if has_nested_key(json_object, key_to_find):
result_list.append(json_object)
except json.JSONDecodeError as e:
print(f"Error parsing JSON: {e}")
with open(output_file_path, "w", encoding="utf-8") as output_file:
for item in result_list:
output_file.write(json.dumps(item, ensure_ascii=False) + "\n")
print(
f"Processing complete for {input_file_path}. Check {output_file_path} for results."
)
if __name__ == "__main__":
for loc in localizations:
input_file_path = f"{get_script_dir()}/../../data/{loc}/stats.ndjson.old" # Path to the input file
output_file_path = (
f"{get_script_dir()}/{loc}/all-pseudo.ndjson" # Path to the output file
)
process_file(input_file_path, output_file_path)

View File

@@ -0,0 +1,32 @@
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% increased Movement Speed"}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% increased Elemental Damage"}, {"string": "Has #% increased Elemental Damage"}, {"string": "#% reduced Elemental Damage", "negate": true}, {"string": "Has #% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Damage"}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% increased Cold Damage"}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% increased Fire Damage"}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% increased Spell Damage"}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% increased Elemental Damage with Attack Skills"}, {"string": "#% reduced Elemental Damage with Attack Skills", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% increased Burning Damage"}, {"string": "#% reduced Burning Damage", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Life"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% of Physical Attack Damage Leeched as Mana"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% increased Mana Regeneration Rate"}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}

View File

@@ -0,0 +1,292 @@
{"ref": "# Crafted Modifiers", "better": 1, "matchers": [{"string": "# ремесленных свойств "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_mods"]}}}
{"ref": "# Crafted Prefix Modifiers", "better": 1, "matchers": [{"string": "# ремесленных свойств-префиксов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_prefix_mods"]}}}
{"ref": "# Crafted Suffix Modifiers", "better": 1, "matchers": [{"string": "# ремесленных свойств-суффиксов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_crafted_suffix_mods"]}}}
{"ref": "# Empty Modifiers", "better": 1, "matchers": [{"string": "# Пустые свойства "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_affix_mods"]}}}
{"ref": "# Empty Prefix Modifiers", "better": 1, "matchers": [{"string": "# Пустые свойства-префиксы "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_prefix_mods"]}}}
{"ref": "# Empty Suffix Modifiers", "better": 1, "matchers": [{"string": "# Пустые свойства-суффиксы "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_empty_suffix_mods"]}}}
{"ref": "# Enchant Modifiers", "better": 1, "matchers": [{"string": "# зачарованных свойств "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_enchant_mods"]}}}
{"ref": "# Fractured Modifiers", "better": 1, "matchers": [{"string": "# Расколотые свойства "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_fractured_mods"]}}}
{"ref": "# Implicit Modifiers", "better": 1, "matchers": [{"string": "# собственных свойств "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_implicit_mods"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "Регенерация # здоровья в секунду "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "# Modifiers", "better": 1, "matchers": [{"string": "# Свойств "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_affix_mods"]}}}
{"ref": "# Notable Passive Skills", "better": 1, "matchers": [{"string": "# Значимое пассивное умение "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_notable_passive_skills"]}}}
{"ref": "# Prefix Modifiers", "better": 1, "matchers": [{"string": "# Свойств-префиксов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_prefix_mods"]}}}
{"ref": "# Suffix Modifiers", "better": 1, "matchers": [{"string": "# Свойств-суффиксов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_number_of_suffix_mods"]}}}
{"ref": "# total Elemental Resistances", "better": 1, "matchers": [{"string": "всего # сопротивления стихиям "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_elemental_resistances"]}}}
{"ref": "# total Resistances", "better": 1, "matchers": [{"string": "всего # сопротивления "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_count_resistances"]}}}
{"ref": "#% Base Defence Percentile", "better": 1, "matchers": [{"string": "#% процента базовой защиты "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_base_defence_percentile"]}}}
{"ref": "#% chance for dropped Maps to convert to Atlas Memories", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в воспоминания Атласа "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_memory_line"]}}}
{"ref": "#% chance for dropped Maps to convert to Conqueror Maps", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в карты Завоевателей "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_conqueror_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Elder Maps", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в карты Древнего "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_elder_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Maven Invitations", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в приглашения Мейвен "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_maven_invitation"]}}}
{"ref": "#% chance for dropped Maps to convert to Scarabs", "better": 1, "matchers": [{"string": "#% шанс выпадения карт в виде скарабеев "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_scarab"]}}}
{"ref": "#% chance for dropped Maps to convert to Shaper Maps", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в карты Создателя "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_shaper_map"]}}}
{"ref": "#% chance for dropped Maps to convert to Unique Maps", "better": 1, "matchers": [{"string": "#% шанс преобразования выпавших карт в уникальные карты "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_conversion_unique_map"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от горения"}, {"string": "#% уменьшение урона от горения", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от холода"}, {"string": "#% уменьшение урона от холода", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% увеличение урона от холода от умений атак"}, {"string": "#% уменьшение урона от холода от умений атак", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage_with_attack_skills"], "explicit": ["explicit.stat_860668586"], "implicit": ["implicit.stat_860668586"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от холода чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от стихий"}, {"string": "#% уменьшение урона от стихий", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% увеличение урона от стихий от умений атак"}, {"string": "#% уменьшение урона от стихий от умений атак", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от огня"}, {"string": "#% уменьшение урона от огня", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% увеличение урона от огня от умений атак"}, {"string": "#% уменьшение урона от огня от умений атак", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage_with_attack_skills"], "implicit": ["implicit.stat_2468413380"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от огня чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от молнии"}, {"string": "#% уменьшение урона от молнии", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% увеличение урона от молнии от умений атак"}, {"string": "#% уменьшение урона от молнии от умений атак", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage_with_attack_skills"], "explicit": ["explicit.stat_4208907162"], "implicit": ["implicit.stat_4208907162"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от молнии чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% повышение скорости регенерации маны"}, {"string": "#% снижение скорости регенерации маны", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% повышение скорости передвижения"}, {"string": "#% снижение скорости передвижения", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Rarity of Items found", "better": 1, "matchers": [{"string": "#% повышение редкости найденных предметов"}, {"string": "#% снижение редкости найденных предметов", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_rarity"], "explicit": ["explicit.stat_3917489142"], "implicit": ["implicit.stat_3917489142"], "fractured": ["fractured.stat_3917489142"], "scourge": ["scourge.stat_3917489142"], "crafted": ["crafted.stat_3917489142"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от чар"}, {"string": "#% уменьшение урона от чар", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Life Regenerated per Second", "better": 1, "matchers": [{"string": "Регенерация #% здоровья в секунду "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_percent_life_regen"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% физического урона от атак похищается в виде здоровья"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% физического урона от атак похищается в виде маны"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased maximum Energy Shield", "better": 1, "matchers": [{"string": "Всего #% повышения энергетического щита "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_energy_shield"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "Всего +#% к увеличению физического урона "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "Всего +# к максимуму энергетического щита "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "Всего +# к максимуму здоровья "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "Всего +# к максимуму маны "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "Всего +# ко всем характеристикам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "Всего +# к ловкости "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "Всего +# к интеллекту "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Level of Socketed Aura Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней аур "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_aura_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Bow Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней луков "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_bow_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Chaos Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней хаоса "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_chaos_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Cold Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней холода "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_cold_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Curse Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней проклятий "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_curse_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Dexterity Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней ловкости "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_dexterity_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Elemental Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней стихий "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_elemental_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Fire Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней огня "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_fire_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Golem Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней големов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_golem_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Intelligence Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней интеллекта "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_intelligence_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Lightning Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней молнии "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_lightning_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Melee Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней ближнего боя "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_melee_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Minion Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней приспешников "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_minion_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Movement Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней передвижения "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_movement_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Projectile Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней снарядов "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_projectile_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Skill Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней умений "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_skill_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Spell Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней чар "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_spell_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Strength Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней силы "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_strength_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Support Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней поддержки "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_support_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Vaal Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней ваал "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_vaal_gem_levels"]}}}
{"ref": "+# total to Level of Socketed Warcry Gems", "better": 1, "matchers": [{"string": "Всего +# к уровню размещённых камней боевых кличей "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_additional_warcry_gem_levels"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "Всего +# к силе "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "Всего +#% к глобальному шансу критического удара "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "Всего +#% к множителю критического удара "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "Всего +#% к скорости атаки "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "Всего +#% к скорости сотворения чар "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Critical Strike Chance for Spells", "better": 1, "matchers": [{"string": "Всего +#% к шансу критического удара чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_critical_strike_chance_for_spells"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "Всего +#% сопротивления стихиям "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total Resistance", "better": 1, "matchers": [{"string": "Всего +#% сопротивления "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_resistance"]}}}
{"ref": "+#% total to all Elemental Resistances", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению всем стихиям "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_elemental_resistances"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению хаосу "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению холоду "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению огню "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению молнии "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "Adds # to # Chaos Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона хаосом"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage"], "explicit": ["explicit.stat_2223678961", "explicit.stat_3531280422"], "implicit": ["implicit.stat_2223678961", "implicit.stat_3531280422"], "fractured": ["fractured.stat_2223678961"], "enchant": ["enchant.stat_2223678961"], "scourge": ["scourge.stat_2223678961"]}}}
{"ref": "Adds # to # Chaos Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона хаосом к атакам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_attacks"], "explicit": ["explicit.stat_674553446"], "implicit": ["implicit.stat_674553446"], "fractured": ["fractured.stat_674553446"], "crafted": ["crafted.stat_674553446"]}}}
{"ref": "Adds # to # Chaos Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона хаосом к чарам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_chaos_damage_to_spells"], "explicit": ["explicit.stat_2300399854"], "implicit": ["implicit.stat_2300399854"], "fractured": ["fractured.stat_2300399854"]}}}
{"ref": "Adds # to # Cold Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от холода"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage"], "explicit": ["explicit.stat_1037193709", "explicit.stat_2387423236"], "implicit": ["implicit.stat_1037193709", "implicit.stat_2387423236"], "fractured": ["fractured.stat_1037193709", "fractured.stat_2387423236"], "enchant": ["enchant.stat_1037193709"], "scourge": ["scourge.stat_1037193709"], "crafted": ["crafted.stat_1037193709", "crafted.stat_2387423236"]}}}
{"ref": "Adds # to # Cold Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от холода к атакам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_attacks"], "explicit": ["explicit.stat_4067062424"], "implicit": ["implicit.stat_4067062424"], "fractured": ["fractured.stat_4067062424"], "crafted": ["crafted.stat_4067062424"]}}}
{"ref": "Adds # to # Cold Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от холода к чарам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_cold_damage_to_spells"], "explicit": ["explicit.stat_2469416729"], "implicit": ["implicit.stat_2469416729"], "fractured": ["fractured.stat_2469416729"], "scourge": ["scourge.stat_2469416729"], "crafted": ["crafted.stat_2469416729"]}}}
{"ref": "Adds # to # Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage"]}}}
{"ref": "Adds # to # Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона к атакам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_attacks"]}}}
{"ref": "Adds # to # Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона к чарам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_damage_to_spells"]}}}
{"ref": "Adds # to # Elemental Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от стихий "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage"]}}}
{"ref": "Adds # to # Elemental Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от стихий к атакам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_attacks"]}}}
{"ref": "Adds # to # Elemental Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от стихий к чарам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_elemental_damage_to_spells"]}}}
{"ref": "Adds # to # Fire Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от огня"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage"], "explicit": ["explicit.stat_321077055", "explicit.stat_709508406"], "implicit": ["implicit.stat_321077055", "implicit.stat_709508406"], "fractured": ["fractured.stat_321077055", "fractured.stat_709508406"], "enchant": ["enchant.stat_709508406"], "scourge": ["scourge.stat_709508406"], "crafted": ["crafted.stat_321077055", "crafted.stat_709508406"]}}}
{"ref": "Adds # to # Fire Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от огня к атакам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_attacks"], "explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"], "fractured": ["fractured.stat_1573130764"], "crafted": ["crafted.stat_1573130764"]}}}
{"ref": "Adds # to # Fire Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от огня к чарам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_fire_damage_to_spells"], "explicit": ["explicit.stat_1133016593"], "implicit": ["implicit.stat_1133016593"], "fractured": ["fractured.stat_1133016593"], "scourge": ["scourge.stat_1133016593"], "crafted": ["crafted.stat_1133016593"]}}}
{"ref": "Adds # to # Lightning Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от молнии"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage"], "explicit": ["explicit.stat_1334060246", "explicit.stat_3336890334"], "implicit": ["implicit.stat_1334060246", "implicit.stat_3336890334"], "fractured": ["fractured.stat_1334060246", "fractured.stat_3336890334"], "enchant": ["enchant.stat_3336890334"], "scourge": ["scourge.stat_3336890334"], "crafted": ["crafted.stat_1334060246", "crafted.stat_3336890334"]}}}
{"ref": "Adds # to # Lightning Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от молнии к атакам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_attacks"], "explicit": ["explicit.stat_1754445556"], "implicit": ["implicit.stat_1754445556"], "fractured": ["fractured.stat_1754445556"], "crafted": ["crafted.stat_1754445556"]}}}
{"ref": "Adds # to # Lightning Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # урона от молнии к чарам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_lightning_damage_to_spells"], "explicit": ["explicit.stat_2831165374"], "implicit": ["implicit.stat_2831165374"], "fractured": ["fractured.stat_2831165374"], "scourge": ["scourge.stat_2831165374"], "crafted": ["crafted.stat_2831165374"]}}}
{"ref": "Adds # to # Physical Damage", "better": 1, "matchers": [{"string": "Добавляет от # до # физического урона"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage"], "explicit": ["explicit.stat_1940865751", "explicit.stat_960081730"], "implicit": ["implicit.stat_1940865751"], "fractured": ["fractured.stat_1940865751", "fractured.stat_960081730"], "scourge": ["scourge.stat_1940865751"], "crafted": ["crafted.stat_1940865751"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "matchers": [{"string": "Добавляет от # до # физического урона к атакам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_attacks"], "explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"], "fractured": ["fractured.stat_3032590688"], "crafted": ["crafted.stat_3032590688"]}}}
{"ref": "Adds # to # Physical Damage to Spells", "better": 1, "matchers": [{"string": "Добавляет от # до # физического урона к чарам"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_adds_physical_damage_to_spells"], "explicit": ["explicit.stat_2435536961"], "implicit": ["implicit.stat_2435536961"], "fractured": ["fractured.stat_2435536961"], "scourge": ["scourge.stat_2435536961"]}}}
{"ref": "Has # Influences", "better": 1, "matchers": [{"string": "Имеет # влияний "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_influence_count"]}}}
{"ref": "Has Crusader Influence", "better": 1, "matchers": [{"string": "Имеет влияние Крестоносца "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_crusader_influence"]}}}
{"ref": "Has Elder Influence", "better": 1, "matchers": [{"string": "Имеет влияние Древнего "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_elder_influence"]}}}
{"ref": "Has Hunter Influence", "better": 1, "matchers": [{"string": "Имеет влияние Охотника "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_hunter_influence"]}}}
{"ref": "Has Logbook Area: Battleground Graves", "better": 1, "matchers": [{"string": "Содержит область журнала: Захоронение на поле боя "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_battleground_graves"]}}}
{"ref": "Has Logbook Area: Bluffs", "better": 1, "matchers": [{"string": "Содержит область журнала: Откосы "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_bluffs"]}}}
{"ref": "Has Logbook Area: Cemetery", "better": 1, "matchers": [{"string": "Содержит область журнала: Погост "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_cemetery"]}}}
{"ref": "Has Logbook Area: Desert Ruins", "better": 1, "matchers": [{"string": "Содержит область журнала: Пустынные руины "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_desert_ruins"]}}}
{"ref": "Has Logbook Area: Dried Riverbed", "better": 1, "matchers": [{"string": "Содержит область журнала: Высохшее русло "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_dried_riverbed"]}}}
{"ref": "Has Logbook Area: Forest Ruins", "better": 1, "matchers": [{"string": "Содержит область журнала: Развалины в лесу "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_forest_ruins"]}}}
{"ref": "Has Logbook Area: Karui Wargraves", "better": 1, "matchers": [{"string": "Содержит область журнала: Могилы воинов каруи "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_karui_wargraves"]}}}
{"ref": "Has Logbook Area: Mountainside", "better": 1, "matchers": [{"string": "Содержит область журнала: Горный склон "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_mountainside"]}}}
{"ref": "Has Logbook Area: Rotting Temple", "better": 1, "matchers": [{"string": "Содержит область журнала: Гниющий храм "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_rotting_temple"]}}}
{"ref": "Has Logbook Area: Sarn Slums", "better": 1, "matchers": [{"string": "Содержит область журнала: Трущобы Сарна "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_sarn_slums"]}}}
{"ref": "Has Logbook Area: Scrublands", "better": 1, "matchers": [{"string": "Содержит область журнала: Заросли кустарника "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_scrublands"]}}}
{"ref": "Has Logbook Area: Shipwreck Reef", "better": 1, "matchers": [{"string": "Содержит область журнала: Риф разбитых кораблей "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_shipwreck_reef"]}}}
{"ref": "Has Logbook Area: Utzaal Outskirts", "better": 1, "matchers": [{"string": "Содержит область журнала: Окраины Утцааля "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_utzaal_outskirts"]}}}
{"ref": "Has Logbook Area: Vaal Temple", "better": 1, "matchers": [{"string": "Содержит область журнала: Храм ваал "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_vaal_temple"]}}}
{"ref": "Has Logbook Area: Volcanic Island", "better": 1, "matchers": [{"string": "Содержит область журнала: Вулканический остров "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_area_volcano"]}}}
{"ref": "Has Logbook Faction: Black Scythe Mercenaries", "better": 0, "matchers": [{"string": "Наёмники Чёрной косы"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_mercenaries"]}}}
{"ref": "Has Logbook Faction: Druids of the Broken Circle", "better": 0, "matchers": [{"string": "Друиды Разомкнутого круга"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_druids"]}}}
{"ref": "Has Logbook Faction: Knights of the Sun", "better": 0, "matchers": [{"string": "Рыцари Солнца"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_knights"]}}}
{"ref": "Has Logbook Faction: Order of the Chalice", "better": 0, "matchers": [{"string": "Орден Чаши"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_logbook_faction_order"]}}}
{"ref": "Has Redeemer Influence", "better": 1, "matchers": [{"string": "Имеет влияние Избавительницы "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_redeemer_influence"]}}}
{"ref": "Has Room: Antechamber", "better": 0, "matchers": [{"string": "Прихожая"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_antechamber"]}, "option": true}}
{"ref": "Has Room: Apex of Ascension (Tier 3)", "better": 0, "matchers": [{"string": "Пик вознесения (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_3"]}, "option": true}}
{"ref": "Has Room: Apex of Atzoatl", "better": 0, "matchers": [{"string": "Вершина Ацоатля"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_apex"]}, "option": true}}
{"ref": "Has Room: Arena of Valour (Tier 2)", "better": 0, "matchers": [{"string": "Арена доблести (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_2"]}, "option": true}}
{"ref": "Has Room: Armourer's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская оружейника (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_1"]}, "option": true}}
{"ref": "Has Room: Armoury (Tier 2)", "better": 0, "matchers": [{"string": "Оружейная (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_2"]}, "option": true}}
{"ref": "Has Room: Atlas of Worlds (Tier 3)", "better": 0, "matchers": [{"string": "Атлас миров (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_3"]}, "option": true}}
{"ref": "Has Room: Automaton Lab (Tier 2)", "better": 0, "matchers": [{"string": "Лаборатория автоматов (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_2"]}, "option": true}}
{"ref": "Has Room: Banquet Hall", "better": 0, "matchers": [{"string": "Зал пиршеств"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_banquet_hall"]}, "option": true}}
{"ref": "Has Room: Barracks (Tier 2)", "better": 0, "matchers": [{"string": "Казармы (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_2"]}, "option": true}}
{"ref": "Has Room: Breach Containment Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Изолятор разломов (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_2"]}, "option": true}}
{"ref": "Has Room: Catalyst of Corruption (Tier 2)", "better": 0, "matchers": [{"string": "Ускоритель осквернения (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_2"]}, "option": true}}
{"ref": "Has Room: Cellar", "better": 0, "matchers": [{"string": "Подвал"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cellar"]}, "option": true}}
{"ref": "Has Room: Chamber of Iron (Tier 3)", "better": 0, "matchers": [{"string": "Железный зал (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_armour_room_3"]}, "option": true}}
{"ref": "Has Room: Chasm", "better": 0, "matchers": [{"string": "Расселина"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chasm_room"]}, "option": true}}
{"ref": "Has Room: Cloister", "better": 0, "matchers": [{"string": "Галерея"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cloister"]}, "option": true}}
{"ref": "Has Room: Conduit of Lightning (Tier 3)", "better": 0, "matchers": [{"string": "Проводник молний (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_3"]}, "option": true}}
{"ref": "Has Room: Corruption Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Зал осквернения (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_1"]}, "option": true}}
{"ref": "Has Room: Court of Sealed Death (Tier 3)", "better": 0, "matchers": [{"string": "Двор запечатанной смерти (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_3"]}, "option": true}}
{"ref": "Has Room: Crucible of Flame (Tier 3)", "better": 0, "matchers": [{"string": "Тигель пламени (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_3"]}, "option": true}}
{"ref": "Has Room: Cultivar Chamber (Tier 2)", "better": 0, "matchers": [{"string": "Зал культивации (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_2"]}, "option": true}}
{"ref": "Has Room: Defense Research Lab (Tier 3)", "better": 0, "matchers": [{"string": "Оборонная лаборатория (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_3"]}, "option": true}}
{"ref": "Has Room: Demolition Lab (Tier 2)", "better": 0, "matchers": [{"string": "Лаборатория сноса (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_2"]}, "option": true}}
{"ref": "Has Room: Department of Thaumaturgy (Tier 2)", "better": 0, "matchers": [{"string": "Отдел волшебства (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_2"]}, "option": true}}
{"ref": "Has Room: Doryani's Institute (Tier 3)", "better": 0, "matchers": [{"string": "Аудитория Дориани (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_3"]}, "option": true}}
{"ref": "Has Room: Engineering Department (Tier 2)", "better": 0, "matchers": [{"string": "Отдел механики (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_2"]}, "option": true}}
{"ref": "Has Room: Explosives Room (Tier 1)", "better": 0, "matchers": [{"string": "Комната взрывчатки (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_1"]}, "option": true}}
{"ref": "Has Room: Factory (Tier 3)", "better": 0, "matchers": [{"string": "Фабрика (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_3"]}, "option": true}}
{"ref": "Has Room: Flame Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская огней (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_1"]}, "option": true}}
{"ref": "Has Room: Gemcutter's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская камнереза (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_gem_room_1"]}, "option": true}}
{"ref": "Has Room: Glittering Halls (Tier 3)", "better": 0, "matchers": [{"string": "Сверкающие залы (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_3"]}, "option": true}}
{"ref": "Has Room: Guardhouse (Tier 1)", "better": 0, "matchers": [{"string": "Караульная (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_1"]}, "option": true}}
{"ref": "Has Room: Hall of Champions (Tier 3)", "better": 0, "matchers": [{"string": "Зал заступников (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_3"]}, "option": true}}
{"ref": "Has Room: Hall of Heroes (Tier 2)", "better": 0, "matchers": [{"string": "Зал героев (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_2"]}, "option": true}}
{"ref": "Has Room: Hall of Legends (Tier 3)", "better": 0, "matchers": [{"string": "Зал легенд (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_3"]}, "option": true}}
{"ref": "Has Room: Hall of Locks (Tier 2)", "better": 0, "matchers": [{"string": "Зал замков (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_2"]}, "option": true}}
{"ref": "Has Room: Hall of Lords (Tier 2)", "better": 0, "matchers": [{"string": "Покои владык (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_2"]}, "option": true}}
{"ref": "Has Room: Hall of Mettle (Tier 1)", "better": 0, "matchers": [{"string": "Зал храбрецов (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_legion_1"]}, "option": true}}
{"ref": "Has Room: Hall of Offerings (Tier 2)", "better": 0, "matchers": [{"string": "Зал подношений (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_2"]}, "option": true}}
{"ref": "Has Room: Hall of War (Tier 3)", "better": 0, "matchers": [{"string": "Зал войны (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breeding_room_3"]}, "option": true}}
{"ref": "Has Room: Halls", "better": 0, "matchers": [{"string": "Коридоры"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_halls"]}, "option": true}}
{"ref": "Has Room: Hatchery (Tier 1)", "better": 0, "matchers": [{"string": "Питомник (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_1"]}, "option": true}}
{"ref": "Has Room: House of the Others (Tier 3)", "better": 0, "matchers": [{"string": "Дом Иных (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_3"]}, "option": true}}
{"ref": "Has Room: Hurricane Engine (Tier 2)", "better": 0, "matchers": [{"string": "Механизм ураганов (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_2"]}, "option": true}}
{"ref": "Has Room: Hybridisation Chamber (Tier 3)", "better": 0, "matchers": [{"string": "Зал гибридизации (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_minions_3"]}, "option": true}}
{"ref": "Has Room: Jeweller's Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская ювелира (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_1"]}, "option": true}}
{"ref": "Has Room: Jewellery Forge (Tier 2)", "better": 0, "matchers": [{"string": "Горн ювелира (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trinket_room_2"]}, "option": true}}
{"ref": "Has Room: Lightning Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская гроз (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_1"]}, "option": true}}
{"ref": "Has Room: Locus of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Очаг осквернения (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_corruption_room_3"]}, "option": true}}
{"ref": "Has Room: Museum of Artefacts (Tier 3)", "better": 0, "matchers": [{"string": "Музей артефактов (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_3"]}, "option": true}}
{"ref": "Has Room: Office of Cartography (Tier 2)", "better": 0, "matchers": [{"string": "Кабинет картографии (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Forge (Tier 2)", "better": 0, "matchers": [{"string": "Горн Всезодчего (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_fire_2"]}, "option": true}}
{"ref": "Has Room: Omnitect Reactor Plant (Tier 2)", "better": 0, "matchers": [{"string": "Реактор Всезодчего (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_boss_lightning_2"]}, "option": true}}
{"ref": "Has Room: Passageways", "better": 0, "matchers": [{"string": "Переходы"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_passageways"]}, "option": true}}
{"ref": "Has Room: Pits", "better": 0, "matchers": [{"string": "Ямы"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_the_pits"]}, "option": true}}
{"ref": "Has Room: Poison Garden (Tier 1)", "better": 0, "matchers": [{"string": "Ядовитый сад (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_1"]}, "option": true}}
{"ref": "Has Room: Pools of Restoration (Tier 1)", "better": 0, "matchers": [{"string": "Купели восстановления (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_1"]}, "option": true}}
{"ref": "Has Room: Royal Meeting Room (Tier 1)", "better": 0, "matchers": [{"string": "Царский зал аудиенций (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_1"]}, "option": true}}
{"ref": "Has Room: Sacrificial Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Жертвенный зал (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_sacrifice_room_1"]}, "option": true}}
{"ref": "Has Room: Sadist's Den (Tier 3)", "better": 0, "matchers": [{"string": "Логово садиста (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Immortality (Tier 3)", "better": 0, "matchers": [{"string": "Святыня бессмертия (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_3"]}, "option": true}}
{"ref": "Has Room: Sanctum of Unity (Tier 2)", "better": 0, "matchers": [{"string": "Святилище единения (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_2"]}, "option": true}}
{"ref": "Has Room: Sanctum of Vitality (Tier 2)", "better": 0, "matchers": [{"string": "Святилище жизни (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_healing_room_2"]}, "option": true}}
{"ref": "Has Room: Shrine of Empowerment (Tier 1)", "better": 0, "matchers": [{"string": "Алтарь усиления (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_1"]}, "option": true}}
{"ref": "Has Room: Shrine of Unmaking (Tier 3)", "better": 0, "matchers": [{"string": "Обитель развоплощения (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_explosives_room_3"]}, "option": true}}
{"ref": "Has Room: Sparring Room (Tier 1)", "better": 0, "matchers": [{"string": "Тренировочная комната (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_weapon_room_1"]}, "option": true}}
{"ref": "Has Room: Splinter Research Lab (Tier 1)", "better": 0, "matchers": [{"string": "Лаборатория изучения осколков (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_breach_room_1"]}, "option": true}}
{"ref": "Has Room: Storage Room (Tier 1)", "better": 0, "matchers": [{"string": "Кладовая (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_1"]}, "option": true}}
{"ref": "Has Room: Storm of Corruption (Tier 3)", "better": 0, "matchers": [{"string": "Буря осквернения (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_3"]}, "option": true}}
{"ref": "Has Room: Strongbox Chamber (Tier 1)", "better": 0, "matchers": [{"string": "Запасник (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_strongbox_1"]}, "option": true}}
{"ref": "Has Room: Surveyor's Study (Tier 1)", "better": 0, "matchers": [{"string": "Кабинет топографа (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_cartography_room_1"]}, "option": true}}
{"ref": "Has Room: Tempest Generator (Tier 1)", "better": 0, "matchers": [{"string": "Генератор бурь (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_storm_room_1"]}, "option": true}}
{"ref": "Has Room: Temple Defense Workshop (Tier 2)", "better": 0, "matchers": [{"string": "Цех храмовой защиты (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_2"]}, "option": true}}
{"ref": "Has Room: Temple Nexus (Tier 3)", "better": 0, "matchers": [{"string": "Средоточие храма (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_empowering_room_3"]}, "option": true}}
{"ref": "Has Room: Throne of Atziri (Tier 3)", "better": 0, "matchers": [{"string": "Трон Атзири (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_queens_chambers_3"]}, "option": true}}
{"ref": "Has Room: Tombs", "better": 0, "matchers": [{"string": "Усыпальницы"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tombs"]}, "option": true}}
{"ref": "Has Room: Torment Cells (Tier 1)", "better": 0, "matchers": [{"string": "Клети мучений (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_1"]}, "option": true}}
{"ref": "Has Room: Torture Cages (Tier 2)", "better": 0, "matchers": [{"string": "Камеры пыток (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_torment_2"]}, "option": true}}
{"ref": "Has Room: Toxic Grove (Tier 3)", "better": 0, "matchers": [{"string": "Ядовитая роща (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_poison_room_3"]}, "option": true}}
{"ref": "Has Room: Trap Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская ловушек (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_trap_room_1"]}, "option": true}}
{"ref": "Has Room: Treasury (Tier 2)", "better": 0, "matchers": [{"string": "Сокровищница (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_2"]}, "option": true}}
{"ref": "Has Room: Tunnels", "better": 0, "matchers": [{"string": "Тоннели"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_tunnels"]}, "option": true}}
{"ref": "Has Room: Vault (Tier 1)", "better": 0, "matchers": [{"string": "Хранилище (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_1"]}, "option": true}}
{"ref": "Has Room: Warehouses (Tier 2)", "better": 0, "matchers": [{"string": "Склады (Уровень 2)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_chests_2"]}, "option": true}}
{"ref": "Has Room: Wealth of the Vaal (Tier 3)", "better": 0, "matchers": [{"string": "Казна ваал (Уровень 3)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_currency_vault_3"]}, "option": true}}
{"ref": "Has Room: Workshop (Tier 1)", "better": 0, "matchers": [{"string": "Мастерская (Уровень 1)"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_temple_workshop_1"]}, "option": true}}
{"ref": "Has Shaper Influence", "better": 1, "matchers": [{"string": "Имеет влияние Создателя "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_shaper_influence"]}}}
{"ref": "Has Warlord Influence", "better": 1, "matchers": [{"string": "Имеет влияние Вождя "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_has_warlord_influence"]}}}
{"ref": "Mirrored Tablet has # Islands", "better": 1, "matchers": [{"string": "Зеркальная табличка имеет # островков "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_lake_number_of_islands"]}}}
{"ref": "More Currency: #%", "better": 1, "matchers": [{"string": "Больше валюты: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_currency_drops"]}}}
{"ref": "More Divination Cards: #%", "better": 1, "matchers": [{"string": "Больше гадальных карт: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_card_drops"]}}}
{"ref": "More Maps: #%", "better": 1, "matchers": [{"string": "Больше карт: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_map_drops"]}}}
{"ref": "More Scarabs: #%", "better": 1, "matchers": [{"string": "Больше скарабеев: #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_more_scarab_drops"]}}}
{"ref": "Quality (Attack Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства атак): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attack_quality"]}}}
{"ref": "Quality (Attribute Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства характеристик): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_attribute_quality"]}}}
{"ref": "Quality (Caster Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства чар): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_caster_quality"]}}}
{"ref": "Quality (Critical Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства критического удара): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_critical_quality"]}}}
{"ref": "Quality (Currency): #%", "better": 1, "matchers": [{"string": "Качество (валюта): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_currency"]}}}
{"ref": "Quality (Defence Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства защиты): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_defense_quality"]}}}
{"ref": "Quality (Divination Cards): #%", "better": 1, "matchers": [{"string": "Качество (гадальные карты): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_cards"]}}}
{"ref": "Quality (Elemental Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства стихийного урона): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_elemental_quality"]}}}
{"ref": "Quality (Life and Mana Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства здоровья и маны): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resource_quality"]}}}
{"ref": "Quality (Pack Size): #%", "better": 1, "matchers": [{"string": "Качество (размер групп монстров): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_pack_size"]}}}
{"ref": "Quality (Physical and Chaos Damage Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства физического урона и урона хаосом): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_physical_chaos_quality"]}}}
{"ref": "Quality (Rarity): #%", "better": 1, "matchers": [{"string": "Качество (редкость): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_rarity"]}}}
{"ref": "Quality (Resistance Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства сопротивлений): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_resistance_quality"]}}}
{"ref": "Quality (Scarabs): #%", "better": 1, "matchers": [{"string": "Качество (скарабеи): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_map_quality_scarabs"]}}}
{"ref": "Quality (Speed Modifiers): #%", "better": 1, "matchers": [{"string": "Качество (свойства скорости): #% "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_jewellery_speed_quality"]}}}
{"ref": "Reflection of Abyss (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Бездны (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38892"]}}}
{"ref": "Reflection of Ambush (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Засады (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_48307"]}}}
{"ref": "Reflection of Angling (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Рыбалки (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40794"]}}}
{"ref": "Reflection of Azurite (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Лазурита (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_40031"]}}}
{"ref": "Reflection of Bestiary (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Бестиария (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55569"]}}}
{"ref": "Reflection of Breach (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Разлома (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62572"]}}}
{"ref": "Reflection of Brutality (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Жестокости (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29096"]}}}
{"ref": "Reflection of Camaraderie (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Братства (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35395"]}}}
{"ref": "Reflection of Catalysis (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Катализа (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57850"]}}}
{"ref": "Reflection of Chaos (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Хаоса (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50834"]}}}
{"ref": "Reflection of Conflict (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Конфликта (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_1931"]}}}
{"ref": "Reflection of Darkness (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Тьмы (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34457"]}}}
{"ref": "Reflection of Delirium (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Делириума (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_22138"]}}}
{"ref": "Reflection of Delve (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Спуска (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18737"]}}}
{"ref": "Reflection of Demonfire (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Демонического пламени (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_28500"]}}}
{"ref": "Reflection of Domination (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Господства (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_63412"]}}}
{"ref": "Reflection of Entrapment (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Ловушек (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_44399"]}}}
{"ref": "Reflection of Essence (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Сущности (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49862"]}}}
{"ref": "Reflection of Experimentation (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Экспериментов (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_55676"]}}}
{"ref": "Reflection of Flame (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Пламени (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_42468"]}}}
{"ref": "Reflection of Fractured Dimensions (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Расколотых измерений (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_49488"]}}}
{"ref": "Reflection of Frost (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Мороза (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_38110"]}}}
{"ref": "Reflection of Guilt (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Вины (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25480"]}}}
{"ref": "Reflection of Imprisonment (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Заточения (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_10363"]}}}
{"ref": "Reflection of Kalandra (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Каландры (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_36591"]}}}
{"ref": "Reflection of Legion (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Легиона (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_403"]}}}
{"ref": "Reflection of Metamorph (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Метаморфа (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_3699"]}}}
{"ref": "Reflection of Occultism (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Оккультизма (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24451"]}}}
{"ref": "Reflection of Paradise (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Рая (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_50846"]}}}
{"ref": "Reflection of Perverted Faith (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Извращённой судьбы (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27678"]}}}
{"ref": "Reflection of Phaaryl (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Фаарила (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_7674"]}}}
{"ref": "Reflection of Possession (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Одержимости (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_25049"]}}}
{"ref": "Reflection of Power (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Силы (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_35950"]}}}
{"ref": "Reflection of Scourge (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Нашествия (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62360"]}}}
{"ref": "Reflection of Stasis (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Стазиса (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_32968"]}}}
{"ref": "Reflection of Sulphite (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Сульфита (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_45086"]}}}
{"ref": "Reflection of the Black Scythe (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Чёрной косы (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_9662"]}}}
{"ref": "Reflection of the Breachlord (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Повелителя Разлома (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_62935"]}}}
{"ref": "Reflection of the Broken Circle (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Разомкнутого круга (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_43128"]}}}
{"ref": "Reflection of the Chalice (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Чаши (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_64561"]}}}
{"ref": "Reflection of the Chasm (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Пропасти (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_57101"]}}}
{"ref": "Reflection of the Dream (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Грёз (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_27117"]}}}
{"ref": "Reflection of the Harbingers (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Предвестников (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_37203"]}}}
{"ref": "Reflection of the Hunter (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Охотника (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_18816"]}}}
{"ref": "Reflection of the Monolith (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Монолита (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_34796"]}}}
{"ref": "Reflection of the Nightmare (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Кошмара (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_24232"]}}}
{"ref": "Reflection of the Storm (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Шторма (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_2745"]}}}
{"ref": "Reflection of the Sun (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Солнца (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60034"]}}}
{"ref": "Reflection of the Trove (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Сокровищ (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_46772"]}}}
{"ref": "Reflection of the Wilderness (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Дикого края (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_29224"]}}}
{"ref": "Reflection of Thralldom (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Рабства (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_26813"]}}}
{"ref": "Reflection of Torment (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Мучений (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_53950"]}}}
{"ref": "Reflection of Tyranny (Difficulty #)", "better": 1, "matchers": [{"string": "Отражение Тирании (Сложность #) "}], "trade": {"ids": {"pseudo": ["pseudo.lake_60981"]}}}

View File

@@ -0,0 +1,32 @@
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "Регенерация # здоровья в секунду "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Burning Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от горения"}, {"string": "#% уменьшение урона от горения", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_burning_damage"], "explicit": ["explicit.stat_1175385867"], "implicit": ["implicit.stat_1175385867"], "fractured": ["fractured.stat_1175385867"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от холода"}, {"string": "#% уменьшение урона от холода", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_damage"], "explicit": ["explicit.stat_3291658075"], "implicit": ["implicit.stat_3291658075"], "fractured": ["fractured.stat_3291658075"], "scourge": ["scourge.stat_3291658075"], "crafted": ["crafted.stat_3291658075"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от холода чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от стихий"}, {"string": "#% уменьшение урона от стихий", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage"], "explicit": ["explicit.stat_3141070085"], "implicit": ["implicit.stat_3141070085"], "fractured": ["fractured.stat_3141070085"], "enchant": ["enchant.stat_692420067"], "scourge": ["scourge.stat_3141070085"]}}}
{"ref": "#% increased Elemental Damage with Attack Skills", "better": 1, "matchers": [{"string": "#% увеличение урона от стихий от умений атак"}, {"string": "#% уменьшение урона от стихий от умений атак", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"], "explicit": ["explicit.stat_387439868"], "implicit": ["implicit.stat_387439868"], "fractured": ["fractured.stat_387439868"], "scourge": ["scourge.stat_387439868"], "crafted": ["crafted.stat_387439868"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от огня"}, {"string": "#% уменьшение урона от огня", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_damage"], "explicit": ["explicit.stat_3962278098"], "implicit": ["implicit.stat_3962278098"], "fractured": ["fractured.stat_3962278098"], "scourge": ["scourge.stat_3962278098"], "crafted": ["crafted.stat_3962278098"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от огня чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от молнии"}, {"string": "#% уменьшение урона от молнии", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_damage"], "explicit": ["explicit.stat_2231156303"], "implicit": ["implicit.stat_2231156303"], "fractured": ["fractured.stat_2231156303"], "scourge": ["scourge.stat_2231156303"], "crafted": ["crafted.stat_2231156303"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от молнии чарами "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "matchers": [{"string": "#% повышение скорости регенерации маны"}, {"string": "#% снижение скорости регенерации маны", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_mana_regen"], "explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "fractured": ["fractured.stat_789117908"], "scourge": ["scourge.stat_789117908"], "crafted": ["crafted.stat_789117908"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "matchers": [{"string": "#% повышение скорости передвижения"}, {"string": "#% снижение скорости передвижения", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_movement_speed"], "explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "fractured": ["fractured.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "scourge": ["scourge.stat_2250533757"], "crafted": ["crafted.stat_2250533757"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "matchers": [{"string": "#% увеличение урона от чар"}, {"string": "#% уменьшение урона от чар", "negate": true}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_spell_damage"], "explicit": ["explicit.stat_2974417149"], "implicit": ["implicit.stat_2974417149"], "fractured": ["fractured.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "scourge": ["scourge.stat_2974417149"], "crafted": ["crafted.stat_2974417149"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Life", "dp": true, "better": 1, "matchers": [{"string": "#% физического урона от атак похищается в виде здоровья"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_life"], "explicit": ["explicit.stat_3593843976", "explicit.stat_55876295"], "implicit": ["implicit.stat_3593843976", "implicit.stat_55876295"], "fractured": ["fractured.stat_3593843976", "fractured.stat_55876295"], "scourge": ["scourge.stat_3593843976"], "crafted": ["crafted.stat_3593843976", "crafted.stat_55876295"]}}}
{"ref": "#% of Physical Attack Damage Leeched as Mana", "dp": true, "better": 1, "matchers": [{"string": "#% физического урона от атак похищается в виде маны"}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_physical_attack_damage_leeched_as_mana"], "explicit": ["explicit.stat_3237948413", "explicit.stat_669069897"], "implicit": ["implicit.stat_3237948413", "implicit.stat_669069897"], "fractured": ["fractured.stat_3237948413", "fractured.stat_669069897"], "enchant": ["enchant.stat_669069897"], "scourge": ["scourge.stat_3237948413"], "crafted": ["crafted.stat_3237948413", "crafted.stat_669069897"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "Всего +#% к увеличению физического урона "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "Всего +# к максимуму энергетического щита "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "Всего +# к максимуму здоровья "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "Всего +# к максимуму маны "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "Всего +# ко всем характеристикам "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "Всего +# к ловкости "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "Всего +# к интеллекту "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "Всего +# к силе "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "Всего +#% к глобальному шансу критического удара "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "Всего +#% к множителю критического удара "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "Всего +#% к скорости атаки "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "Всего +#% к скорости сотворения чар "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "Всего +#% сопротивления стихиям "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению хаосу "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению холоду "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению огню "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "Всего +#% к сопротивлению молнии "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}

View File

@@ -1,32 +1,333 @@
{
"Add": "添加",
"Retry": "重試",
"Offline": "離線",
"Online": "在線",
"You": "",
"Browser": "瀏覧器",
"Search": "搜尋",
"min": "最小",
"max": " 最大",
"Restart required": "需要重啟",
"Save": "保存",
"Cancel": "取消",
"Enabled": "啟用",
"Disabled": "禁用",
"No": "否",
"Yes": "",
"Remove": "移除",
"implicit": "固定",
"explicit": "隨機",
"enchant": "附魔",
"crafted": "工藝",
"fractured": "破裂",
"scourge": "天災",
"Not recognized modifier": "無法使用此詞綴",
"Refresh": "刷新",
"please_wait": "請稍候\u2026",
"choose_file": "選擇文件",
"app_is_ready": "已準備就緒並在後台運行",
"reopen_settings": "按 {0} 以繼續編輯。",
"seconds": "",
"league": "聯盟",
"realm": "區域",
"realm_intl": "國際",
"app": {
"leagues_loading": "正在加載聯盟\u2026",
"leagues_failed": "加載聯盟失敗",
"leagues_failed_help": "確保該區域未進行維護。也嘗試點擊“瀏覽器”按鈕,可能需要在那裡完成 CAPTCHA 驗證。",
"leagues_failed_help_alt": "價格檢查一個物品,並遵循那裡錯誤描述中的指示。",
"thanks_3rd_party": "這個工具依賴於 {0} 和 {1},考慮支持它們",
"toggle_browser_hint": "按 {0} 在瀏覽器和遊戲間切換。",
"contact_me": "可在 PoE Discord 群組中聯繫我,",
"version": "版本 {0}",
"release_notes": "更新記錄",
"report_bug": "在 GitHub 上報告錯誤",
"quit": "退出"
},
"map.mods.heist": "劫盜",
"map.mods.outdated": "過時",
"Support development on": "支持開發"
}
"map.mods.uber": "T17",
"map.mods.outdated": "已過時",
"Support development on": "支持開發於\u00A0",
"Blighted": "枯疫",
"Blight-ravaged": "枯疫肆虐",
"Magic": "魔法",
"Shaper": "塑者",
"Elder": "尊師",
"Crusader": "聖戰使者",
"Hunter": "狩獵者",
"Redeemer": "救贖者",
"Warlord": "戰爭領主",
"Superior": "卓越",
"Anomalous": "異常",
"Divergent": "分歧",
"Phantasmal": "幻影",
"item": {
"prop_quality": "品質 {0}%",
"base_percentile": "基礎百分位:{0}%",
"armour": "護甲:{0}",
"evasion_rating": "閃避值:{0}",
"energy_shield": "能量護盾:{0}",
"block": "格擋率:{0}%",
"total_dps": "總 DPS{0}",
"physical_dps": "物理 DPS{0}",
"elemental_dps": "元素 DPS{0}",
"crit": "暴擊率:{0}%",
"aps": "攻擊次數:{0}",
"spirit": "精神:{0}",
"has_empty_modifier": "1 個空的或已製作的修改詞綴",
"has_empty_affix": "任何",
"has_empty_prefix": "前綴",
"has_empty_suffix": "後綴",
"item_level": "物品等級:{0}",
"stock": "庫存:{0}",
"map_tier": "地圖階級:{0}",
"area_level": "區域等級:{0}",
"heist_wings_revealed": "已揭示翼數:{0}",
"linked_sockets": "連接:{0}",
"white_sockets": "白: {0}",
"quality": "品質:{0}",
"gem_level": "等級:{0}",
"gem_sockets": "插槽:{0}",
"rune_sockets": "插槽:{0}",
"sentinel_charge": "充能:{0}",
"find_in_stash": "在儲藏中尋找",
"parse_error": "解析物品時發生錯誤",
"parse_error_help": "這可能是一個錯誤,你可以在 GitHub 上報告。",
"unknown": "未知物品",
"unknown_help": "如果這個物品是在本聯盟中推出的,可能會在下一次應用程序更新中被支持。",
"identification": "您正在嘗試價格檢查未鑑定的獨特物品,其基礎類型為“{0}”。是哪一個?",
"open_on_wiki": "在 Wiki 上開啟物品",
"open_on_poedb": "在 PoEDB 上開啟物品",
"info": "物品信息",
"corrupted": "已腐化",
"not_corrupted": "未腐化",
"mod_tier": "等級:{0}",
"mod_rank": "排名:{0}",
"mod_pseudo": "偽屬性",
"mod_implicit": "隱性屬性",
"mod_fractured": "裂隙",
"mod_explicit": "顯性屬性",
"mod_crafted": "已製作",
"mod_scourge": "災厄",
"unidentified": "未鉴定",
"veiled": "笼罩",
"foil_unique": "閃亮的獨特",
"mirrored": "已镜像",
"not_mirrored": "未镜像"
},
"item_category": {
"prop": "類別:{0}",
"map": "地圖",
"jewel_abyss": "深淵珠寶",
"accessory_amulet": "護符",
"accessory_belt": "腰帶",
"armour_chest": "身體護甲",
"armour_boots": "靴子",
"weapon_bow": "弓",
"weapon_claw": "爪",
"weapon_dagger": "匕首",
"weapon_rod": "釣魚竿",
"flask": "瓶子",
"armour_gloves": "手套",
"armour_helmet": "頭盔",
"jewel": "珠寶",
"weapon_oneaxe": "單手斧",
"weapon_onemace": "單手錘",
"weapon_onesword": "單手劍",
"armour_quiver": "箭袋",
"accessory_ring": "戒指",
"weapon_runedagger": "符紋匕首",
"weapon_sceptre": "權杖",
"armour_shield": "盾牌",
"weapon_staff": "法杖",
"weapon_twoaxe": "雙手斧",
"weapon_twomace": "雙手錘",
"weapon_twosword": "雙手劍",
"weapon_wand": "魔杖",
"weapon_warstaff": "戰斗法杖",
"jewel_cluster": "星团珠寶",
"heistmission_blueprint": "劫盜藍圖",
"heistmission_contract": "劫盜契約",
"heistequipment_heisttool": "劫盜工具",
"heistequipment_heistreward": "劫盜飾品",
"heistequipment_heistweapon": "劫盜武器",
"heistequipment_heistutility": "劫盜斗篷",
"accessory_trinket": "飾品",
"sanctum_relic": "聖殿遺物",
"tincture": "色澤",
"azmeri_charm": "阿茲麥麗符咒"
},
"filters": {
"selected_some": "已選擇:{0}/{1},屬性",
"selected_none": "忽略屬性",
"hidden_toggle": "隱藏",
"collapse": "折疊",
"mods_toggle": "修改詞綴",
"empty": "未找到相關屬性",
"tier": "等級 {0}",
"preset_pseudo": "偽屬性",
"preset_base_item": "基礎物品",
"hide_const_roll": "數值不是可變的",
"hide_ele_dps": "元素傷害不是主要的 DPS 來源",
"hide_phys_dps": "物理傷害不是主要的 DPS 來源",
"hide_ele_res": "根據精確的元素抗性過濾不合理地提高價格",
"hide_crafted_chaos": "沒有顯性詞綴的製作混沌抗性不存在價值",
"hide_anointment": "買家可能會更改神佑",
"hide_for_crafting": "僅在作為基礎物品價格檢查時選擇",
"hide_empty_mod": "僅在物品有 6 個詞綴(其中 1 個已製作)或有 5 個詞綴時選擇",
"tag_implicit": "隱性",
"tag_fractured": "裂隙",
"tag_crafted": "已製作",
"tag_scourge": "災厄",
"tag_enchant": "附魔",
"tag_variant": "變體",
"tag_corrupted": "腐化",
"tag_synthesised": "合成",
"tag_eldritch": "異界",
"tag_pseudo": "偽屬性",
"tag_explicit": "顯性",
"tag_explicit_shaper": "塑者",
"tag_explicit_elder": "尊師",
"tag_explicit_crusader": "聖戰使者",
"tag_explicit_hunter": "狩獵者",
"tag_explicit_redeemer": "救贖者",
"tag_explicit_warlord": "戰爭領主",
"tag_explicit_delve": "采掘",
"tag_explicit_veiled": "笼罩",
"tag_explicit_incursion": "侵入"
},
"online_filter": {
"offline_toggle": "離線 & 在線",
"in_league_toggle": "在聯盟中",
"listed_any_time": "上架時間:不限",
"listed_1day": "1 天前",
"listed_3days": "3 天前",
"listed_1week": "1 週前",
"listed_2weeks": "2 週前",
"listed_1month": "1 個月前",
"listed_2months": "2 個月前",
"currency_any": "任意貨幣",
"currency_only_chaos": "混沌石",
"currency_only_div": "神聖石",
"currency_chaos_div": "兩者皆可"
},
"widget": {
"title": "小工具標題",
"hide": "隱藏",
"edit": "編輯",
"move": "移動",
"delete": "刪除"
},
"updates": {
"maybe_outdated": "您的版本可能已過時",
"latest": "您擁有最新版本",
"error": "檢查更新時發生錯誤",
"checking": "正在檢查更新",
"downloading": "正在下載\u2026",
"available": "更新可用:{0}",
"never_checked": "上次檢查:從未",
"last_checked": "上次檢查:{0}",
"check_now": "立即檢查",
"install_now": "立即安裝",
"downloads_page": "開啟下載頁面",
"installed_on_exit": "將在退出時自動安裝",
"download_manually": "您可以從 GitHub 下載",
"download_disabled": "您禁用了自動更新下載"
},
"widget_menu": {
"add": "添加小工具\u2026",
"always_show": "顯示活躍小工具的按鈕",
"price_check": "價格檢查 (Ctrl + V)"
},
"stopwatch": {
"name": "秒錶",
"paused": "已暫停",
"toggle_key": "開始和暫停",
"reset_key": "重置"
},
"stash_search": {
"enable_keys": "按鍵",
"name": "儲藏搜尋",
"search_text": "搜尋文字或正則表達式",
"friendly_name": "友好名稱"
},
"image_strip": {
"name": "圖像條"
},
"item_search": {
"name": "物品搜尋",
"input": "按名稱搜尋\u2026",
"reset": "重置物品",
"heist_target": "劫盜目標:",
"target_gem": "技能寶石",
"target_replica": "複製品",
"too_many": "找到的物品過多,請更精確地輸入名稱。",
"not_found": "未找到物品。",
"ocr_gems_key": "執行技能寶石的 OCR"
},
"map_check": {
"name": "地圖檢查",
"has_outdated": "某些屬性的措辭已更改。檢查並在設置中更新危險地圖詞綴。(此消息將在移除所有過期屬性後隱藏)",
"no_mods": "物品沒有詞綴。",
"profile": "配置文件",
"search_selected": "僅搜索選中的",
"search_stat_col": "屬性(找到:{0}",
"new_mods_icon": "顯示新詞綴圖標"
},
"trade_result": {
"error": "交易網站請求失敗",
"matched": "匹配:{0}",
"trade": "交易",
"price": "價格",
"bulk": "大宗",
"stock": "庫存",
"fulfill": "完成",
"listed": "上架",
"seller": "賣家",
"item_level": "物品等級",
"gem_level": "等級",
"quality": "品質",
"base_item": "基礎物品",
"graph_7d": "最近 7 天",
"getting_price": "獲取價格 {0}",
"getting_price_from": "來自 poe.ninja \u2026",
"you_have": "您有",
"stack": "堆疊"
},
"settings": {
"title": "設置 - 流亡交易所 2",
"language": "語言",
"private_league": "或私密聯盟",
"account_name": "賬戶名稱",
"last_char_name": "最後角色名稱",
"chat_cmd_add": "添加命令",
"chat_cmd_send": "按下 Enter",
"no_key": "未設置",
"clear_hotkey": "可按 Backspace 清除快捷鍵",
"overlay": "覆蓋層",
"stash_scroll": "儲藏捲動",
"delve_grid": "探索圖表格網",
"window_title": "PoE 窗口標題",
"thank_you": "應用程序開發感謝:",
"hotkeys": "熱鍵",
"chat": "聊天",
"general": "一般",
"debug": "調試",
"about": "關於",
"font_size": "字體大小",
"overlay_bg": "當覆蓋層可點擊時的背景",
"overlay_bg_none": "透明",
"overlay_bg_focus_game": "點擊背景聚焦遊戲",
"overlay_always_close": "總是完整關閉覆蓋層而不是隱藏",
"poe_log_file": "PoE 日誌文件",
"poe_cfg_file": "PoE 配置文件",
"restore_clipboard": "恢復剪貼板",
"show_overlay_ready": "當覆蓋層檢測到 PoE 窗口時顯示通知",
"debug_hotkeys": "記錄所有按鍵"
},
"price_check": {
"name": "價格檢查",
"hotkey": "自動隱藏模式",
"hotkey_locked": "開啟無需自動隱藏",
"enable_browser": "啟用內置瀏覽器",
"builtin_browser_warning": "我知道未來的版本可能會包含惡意代碼,可能會竊取我的 POESESSID。",
"highlight_hint": "即使此設置關閉,您的物品也會被突出顯示",
"show_seller": "顯示賣家",
"fill_rolls": "填充屬性值",
"fill_roll_exact": "精確值",
"cursor_pos": "顯示記憶的光標位置",
"extra_delay": "額外時間以防止虛假限制",
"warn_expensive": "以下設置是在增加網站負載和便捷價格檢查/更準確搜索之間的折衷。",
"accurate_collapsed": "在折疊的列表中顯示指示",
"auto_search": "按下時自動搜尋",
"select_stock": "始終選擇“庫存”過濾器",
"show_prediction": "顯示價格預測",
"remember_currency": "記住買方貨幣過濾器"
},
"poe2_new": {
"beta_warning": "這是 POE2 的測試版,某些功能可能無法正常運作。",
"beta_warning2": "如發現任何問題請回報。",
"pseudo_note": "交易網站不支援偽屬性",
"pseudo_note2": "物品可能會顯示比實際更高的價值",
"parse_error": "由於某些原因,此物品的屬性無法解析。",
"parse_error2": "可能包含尚未支援的詞綴。",
"parse_error3": "(可能是來自 POE1 的新詞綴或修改後的措辭)",
"bulk_exchange": "尚未實現大量交易匯率功能"
}
}

View File

@@ -101,5 +101,6 @@ export default {
CHAT_GUILD: /^&(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_WHISPER_TO: /^@向 (?<char_name>.+?): (?<body>.+)$/,
CHAT_WHISPER_FROM: /^@來自 (?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_WEBTRADE_GEM: /^等級 (?<gem_lvl>\d+) (?<gem_qual>\d+)% (?<gem_name>.+)$/
CHAT_WEBTRADE_GEM: /^等級 (?<gem_lvl>\d+) (?<gem_qual>\d+)% (?<gem_name>.+)$/,
REQUIREMENTS: ''
}

View File

@@ -319,5 +319,15 @@
"select_stock": "Always select \"Stock\" filter",
"show_prediction": "Show price prediction",
"remember_currency": "Remember the Buyout Currency filter"
},
"poe2_new": {
"beta_warning": "This is in BETA for POE2, things will not work always as expected.",
"beta_warning2": "Please report any issues.",
"pseudo_note": "Pseudo mods not supported by trade site",
"pseudo_note2": "Items may appear to be more valuable than they actually are",
"parse_error": "For some reason this item's stats did not parse.",
"parse_error2": "It likely has a mod that is not supported yet.",
"parse_error3": "(Potentially new or changed wording from poe1)",
"bulk_exchange": "Bulk exchange rates are not implemented yet"
}
}

View File

@@ -3007,6 +3007,7 @@
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Emerald"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Ruby"}}
{"name": "Grand Spectrum", "refName": "Grand Spectrum", "namespace": "UNIQUE", "unique": {"base": "Sapphire"}}
{"name": "Heroic Tragedy", "refName": "Heroic Tragedy", "namespace": "UNIQUE", "unique": {"base": "Timeless Jewel"}}
{"name": "Prism of Belief", "refName": "Prism of Belief", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "The Adorned", "refName": "The Adorned", "namespace": "UNIQUE", "unique": {"base": "Diamond"}}
{"name": "Brain Rattler", "refName": "Brain Rattler", "namespace": "UNIQUE", "unique": {"base": "Studded Greatclub"}}
@@ -3021,6 +3022,11 @@
{"name": "Guiding Palm", "refName": "Guiding Palm", "namespace": "UNIQUE", "unique": {"base": "Shrine Sceptre"}}
{"name": "Hoghunt", "refName": "Hoghunt", "namespace": "UNIQUE", "unique": {"base": "Felled Greatclub"}}
{"name": "Hrimnor's Hymn", "refName": "Hrimnor's Hymn", "namespace": "UNIQUE", "unique": {"base": "Oak Greathammer"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "War Spear"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Vampiric Blade"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Charred Shortsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Corroded Longsword"}}
{"name": "INCOMPLETE", "refName": "INCOMPLETE", "namespace": "UNIQUE", "unique": {"base": "Rippled Greatsword"}}
{"name": "Lifesprig", "refName": "Lifesprig", "namespace": "UNIQUE", "unique": {"base": "Attuned Wand"}}
{"name": "Matsya", "refName": "Matsya", "namespace": "UNIQUE", "unique": {"base": "Crescent Quarterstaff"}}
{"name": "Mist Whisper", "refName": "Mist Whisper", "namespace": "UNIQUE", "unique": {"base": "Makeshift Crossbow"}}

View File

@@ -1,3 +1,33 @@
{"ref": "+# total maximum Spirit", "better": 1, "id": "base_maximum_spirit", "matchers": [{"string": "# to maximum Spirit", "negate": false}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_spirit"]}}}
{"ref": "# Life Regenerated per Second", "better": 1, "matchers": [{"string": "# Life Regenerated per Second "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life_regen"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "id": "cold_damage_+%", "matchers": [{"string": "#% increased Cold Damage", "negate": false}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3291658075"], "pseudo": ["pseudo.pseudo_increased_cold_damage"]}}}
{"ref": "#% increased Cold Spell Damage", "better": 1, "matchers": [{"string": "#% increased Cold Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_cold_spell_damage"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "id": "elemental_damage_+%", "matchers": [{"string": "#% increased Elemental Damage", "negate": false}, {"string": "#% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3141070085"], "pseudo": ["pseudo.pseudo_increased_elemental_damage"]}}}
{"ref": "#% increased Elemental Damage with Attacks", "better": 1, "id": "elemental_damage_with_attack_skills_+%", "matchers": [{"string": "#% increased Elemental Damage with Attacks", "negate": false}, {"string": "#% reduced Elemental Damage with Attacks", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_387439868"], "enchant": ["enchant.stat_387439868"], "rune": ["rune.stat_387439868"], "pseudo": ["pseudo.pseudo_increased_elemental_damage_with_attack_skills"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "id": "fire_damage_+%", "matchers": [{"string": "#% increased Fire Damage", "negate": false}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3962278098"], "pseudo": ["pseudo.pseudo_increased_fire_damage"]}}}
{"ref": "#% increased Fire Spell Damage", "better": 1, "matchers": [{"string": "#% increased Fire Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_fire_spell_damage"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "id": "lightning_damage_+%", "matchers": [{"string": "#% increased Lightning Damage", "negate": false}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2231156303"], "pseudo": ["pseudo.pseudo_increased_lightning_damage"]}}}
{"ref": "#% increased Lightning Spell Damage", "better": 1, "matchers": [{"string": "#% increased Lightning Spell Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_lightning_spell_damage"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "id": "mana_regeneration_rate_+%", "matchers": [{"string": "#% increased Mana Regeneration Rate", "negate": false}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "enchant": ["enchant.stat_789117908"], "rune": ["rune.stat_789117908"], "pseudo": ["pseudo.pseudo_increased_mana_regen"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "id": "base_movement_velocity_+%", "matchers": [{"string": "#% increased Movement Speed", "negate": false}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "sanctum": ["sanctum.stat_1416455556"], "pseudo": ["pseudo.pseudo_increased_movement_speed"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "id": "spell_damage_+%", "matchers": [{"string": "#% increased Spell Damage", "negate": false}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2974417149"], "enchant": ["enchant.stat_2974417149"], "pseudo": ["pseudo.pseudo_increased_spell_damage"]}}}
{"ref": "#% total increased Physical Damage", "better": 1, "matchers": [{"string": "#% total increased Physical Damage "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_increased_physical_damage"]}}}
{"ref": "+# total maximum Energy Shield", "better": 1, "matchers": [{"string": "+# total maximum Energy Shield "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_energy_shield"]}}}
{"ref": "+# total maximum Life", "better": 1, "matchers": [{"string": "+# total maximum Life "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_life"]}}}
{"ref": "+# total maximum Mana", "better": 1, "matchers": [{"string": "+# total maximum Mana "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_mana"]}}}
{"ref": "+# total to all Attributes", "better": 1, "matchers": [{"string": "+# total to all Attributes "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_all_attributes"]}}}
{"ref": "+# total to Dexterity", "better": 1, "matchers": [{"string": "+# total to Dexterity "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_dexterity"]}}}
{"ref": "+# total to Intelligence", "better": 1, "matchers": [{"string": "+# total to Intelligence "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_intelligence"]}}}
{"ref": "+# total to Strength", "better": 1, "matchers": [{"string": "+# total to Strength "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_strength"]}}}
{"ref": "+#% Global Critical Strike Chance", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Chance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_chance"]}}}
{"ref": "+#% Global Critical Strike Multiplier", "better": 1, "matchers": [{"string": "+#% Global Critical Strike Multiplier "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_global_critical_strike_multiplier"]}}}
{"ref": "+#% total Attack Speed", "better": 1, "matchers": [{"string": "+#% total Attack Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_attack_speed"]}}}
{"ref": "+#% total Cast Speed", "better": 1, "matchers": [{"string": "+#% total Cast Speed "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cast_speed"]}}}
{"ref": "+#% total Elemental Resistance", "better": 1, "matchers": [{"string": "+#% total Elemental Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_elemental_resistance"]}}}
{"ref": "+#% total to Chaos Resistance", "better": 1, "matchers": [{"string": "+#% total to Chaos Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_chaos_resistance"]}}}
{"ref": "+#% total to Cold Resistance", "better": 1, "matchers": [{"string": "+#% total to Cold Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_cold_resistance"]}}}
{"ref": "+#% total to Fire Resistance", "better": 1, "matchers": [{"string": "+#% total to Fire Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_fire_resistance"]}}}
{"ref": "+#% total to Lightning Resistance", "better": 1, "matchers": [{"string": "+#% total to Lightning Resistance "}], "trade": {"ids": {"pseudo": ["pseudo.pseudo_total_lightning_resistance"]}}}
{"ref": "+# to Strength", "better": 1, "id": "additional_strength", "matchers": [{"string": "# to Strength", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_4080418644"], "implicit": ["implicit.stat_4080418644"], "enchant": ["enchant.stat_4080418644"]}}}
{"ref": "+# to Dexterity", "better": 1, "id": "additional_dexterity", "matchers": [{"string": "# to Dexterity", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3261801346"], "implicit": ["implicit.stat_3261801346"], "enchant": ["enchant.stat_3261801346"]}}}
{"ref": "+# to Intelligence", "better": 1, "id": "additional_intelligence", "matchers": [{"string": "# to Intelligence", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_328541901"], "implicit": ["implicit.stat_328541901"], "enchant": ["enchant.stat_328541901"]}}}
@@ -29,7 +59,6 @@
{"ref": "#% increased Evasion and Energy Shield", "better": 1, "id": "local_evasion_and_energy_shield_+%", "matchers": [{"string": "#% increased Evasion and Energy Shield", "negate": false}, {"string": "#% reduced Evasion and Energy Shield", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1999113824"], "enchant": ["enchant.stat_1999113824"]}}}
{"ref": "#% increased Attribute Requirements", "better": 1, "id": "local_attribute_requirements_+%", "matchers": [{"string": "#% increased Attribute Requirements", "negate": false}, {"string": "#% reduced Attribute Requirements", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3639275092"], "enchant": ["enchant.stat_3639275092"]}}}
{"ref": "+# to Stun Threshold", "better": 1, "id": "stun_threshold_+", "matchers": [{"string": "# to Stun Threshold", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_915769802"], "rune": ["rune.stat_915769802"]}}}
{"ref": "#% increased Movement Speed", "better": 1, "id": "base_movement_velocity_+%", "matchers": [{"string": "#% increased Movement Speed", "negate": false}, {"string": "#% reduced Movement Speed", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2250533757"], "implicit": ["implicit.stat_2250533757"], "enchant": ["enchant.stat_2250533757"], "sanctum": ["sanctum.stat_1416455556"]}}}
{"ref": "# to # Physical Thorns damage", "better": 1, "id": "thorns_minimum_base_physical_damage", "matchers": [{"string": "# to # Physical Thorns damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2881298780"]}}}
{"ref": "Adds # to # Physical Damage to Attacks", "better": 1, "id": "attack_minimum_added_physical_damage", "matchers": [{"string": "Adds # to # Physical Damage to Attacks", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3032590688"], "implicit": ["implicit.stat_3032590688"]}}}
{"ref": "Adds # to # Fire damage to Attacks", "better": 1, "id": "attack_minimum_added_fire_damage", "matchers": [{"string": "Adds # to # Fire damage to Attacks", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1573130764"], "implicit": ["implicit.stat_1573130764"]}}}
@@ -45,10 +74,6 @@
{"ref": "Allies in your Presence deal # to # additional Attack Lightning Damage", "better": 1, "id": "allies_in_presence_attack_minimum_added_lightning_damage", "matchers": [{"string": "Allies in your Presence deal # to # additional Attack Lightning Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2854751904"]}}}
{"ref": "No Physical Damage", "better": 1, "id": "local_physical_damage_+%", "matchers": [{"string": "No Physical Damage", "negate": false}], "trade": {"ids": null}}
{"ref": "Allies in your Presence deal #% increased Damage", "better": 1, "id": "allies_in_presence_damage_+%", "matchers": [{"string": "Allies in your Presence deal #% increased Damage", "negate": false}, {"string": "Allies in your Presence deal #% reduced Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1798257884"], "enchant": ["enchant.stat_1798257884"]}}}
{"ref": "#% increased Spell Damage", "better": 1, "id": "spell_damage_+%", "matchers": [{"string": "#% increased Spell Damage", "negate": false}, {"string": "#% reduced Spell Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2974417149"], "enchant": ["enchant.stat_2974417149"]}}}
{"ref": "#% increased Fire Damage", "better": 1, "id": "fire_damage_+%", "matchers": [{"string": "#% increased Fire Damage", "negate": false}, {"string": "#% reduced Fire Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3962278098"]}}}
{"ref": "#% increased Cold Damage", "better": 1, "id": "cold_damage_+%", "matchers": [{"string": "#% increased Cold Damage", "negate": false}, {"string": "#% reduced Cold Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3291658075"]}}}
{"ref": "#% increased Lightning Damage", "better": 1, "id": "lightning_damage_+%", "matchers": [{"string": "#% increased Lightning Damage", "negate": false}, {"string": "#% reduced Lightning Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2231156303"]}}}
{"ref": "#% increased Chaos Damage", "better": 1, "id": "chaos_damage_+%", "matchers": [{"string": "#% increased Chaos Damage", "negate": false}, {"string": "#% reduced Chaos Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_736967255"]}}}
{"ref": "#% increased Spell Physical Damage", "better": 1, "id": "spell_physical_damage_+%", "matchers": [{"string": "#% increased Spell Physical Damage", "negate": false}, {"string": "#% reduced Spell Physical Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2768835289"]}}}
{"ref": "#% increased Trap Damage", "better": 1, "id": "trap_damage_+%", "matchers": [{"string": "#% increased Trap Damage", "negate": false}, {"string": "#% reduced Trap Damage", "negate": true}], "trade": {"ids": null}}
@@ -64,7 +89,6 @@
{"ref": "+# to Level of all Projectile Skills", "better": 1, "id": "projectile_skill_gem_level_+", "matchers": [{"string": "# to Level of all Projectile Skills", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1202301673"]}}}
{"ref": "# Life Regeneration per second", "better": 1, "id": "base_life_regeneration_rate_per_minute", "matchers": [{"string": "# Life Regeneration per second", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3325883026"], "implicit": ["implicit.stat_3325883026"]}}}
{"ref": "Allies in your Presence Regenerate # Life per second", "better": 1, "id": "allies_in_presence_life_regeneration_rate_per_minute", "matchers": [{"string": "Allies in your Presence Regenerate # Life per second", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_4010677958"]}}}
{"ref": "#% increased Mana Regeneration Rate", "better": 1, "id": "mana_regeneration_rate_+%", "matchers": [{"string": "#% increased Mana Regeneration Rate", "negate": false}, {"string": "#% reduced Mana Regeneration Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_789117908"], "implicit": ["implicit.stat_789117908"], "enchant": ["enchant.stat_789117908"], "rune": ["rune.stat_789117908"]}}}
{"ref": "Leech #% of Physical Attack Damage as Life", "better": 1, "id": "base_life_leech_from_physical_attack_damage_permyriad", "matchers": [{"string": "Leech #% of Physical Attack Damage as Life", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2557965901"], "enchant": ["enchant.stat_2557965901"]}}}
{"ref": "Leeches #% of Physical Damage as Life", "better": 1, "id": "local_life_leech_from_physical_damage_permyriad", "matchers": [{"string": "Leeches #% of Physical Damage as Life", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_55876295"], "rune": ["rune.stat_55876295"]}}}
{"ref": "Leech #% of Physical Attack Damage as Mana", "better": 1, "id": "base_mana_leech_from_physical_attack_damage_permyriad", "matchers": [{"string": "Leech #% of Physical Attack Damage as Mana", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_707457662"], "enchant": ["enchant.stat_707457662"]}}}
@@ -114,7 +138,7 @@
{"ref": "+#% to all Maximum Elemental Resistances", "better": 1, "id": "additional_maximum_all_elemental_resistances_%", "matchers": [{"string": "#% to all Maximum Elemental Resistances", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1978899297"], "implicit": ["implicit.stat_1978899297"], "enchant": ["enchant.stat_1978899297"]}}}
{"ref": "#% increased Energy Shield Recharge Rate", "better": 1, "id": "energy_shield_recharge_rate_+%", "matchers": [{"string": "#% increased Energy Shield Recharge Rate", "negate": false}, {"string": "#% reduced Energy Shield Recharge Rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_2339757871"]}}}
{"ref": "#% chance to Pierce an Enemy", "better": 1, "id": "base_chance_to_pierce_%", "matchers": [{"string": "#% chance to Pierce an Enemy", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2321178454"], "implicit": ["implicit.stat_2321178454"], "enchant": ["enchant.stat_2321178454"]}}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}], "trade": {"ids": null}}
{"ref": "Bow Attacks fire an additional Arrow", "better": 1, "id": "number_of_additional_arrows", "matchers": [{"string": "Bow Attacks fire an additional Arrow", "negate": false}, {"string": "Bow Attacks fire # additional Arrows", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3885405204"], "implicit": ["implicit.stat_3885405204"], "enchant": ["enchant.stat_3885405204"]}}}
{"ref": "Loads an additional bolt", "better": 1, "id": "base_number_of_crossbow_bolts", "matchers": [{"string": "Loads an additional bolt", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_1039380318"], "implicit": ["implicit.stat_1039380318"], "enchant": ["enchant.stat_1039380318"]}}}
{"ref": "#% increased Flask Life Recovery rate", "better": 1, "id": "flask_life_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Life Recovery rate", "negate": false}, {"string": "#% reduced Flask Life Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_51994685"]}}}
{"ref": "#% increased Flask Mana Recovery rate", "better": 1, "id": "flask_mana_recovery_rate_+%", "matchers": [{"string": "#% increased Flask Mana Recovery rate", "negate": false}, {"string": "#% reduced Flask Mana Recovery rate", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1412217137"]}}}
@@ -132,7 +156,6 @@
{"ref": "#% of Damage taken Recouped as Mana", "better": 1, "id": "damage_taken_goes_to_mana_%", "matchers": [{"string": "#% of Damage taken Recouped as Mana", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_472520716"], "enchant": ["enchant.stat_472520716"]}}}
{"ref": "#% increased Stun Duration", "better": 1, "id": "local_base_stun_duration_+%", "matchers": [{"string": "#% increased Stun Duration", "negate": false}, {"string": "#% reduced Stun Duration", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_748522257"]}}}
{"ref": "Causes #% increased Stun Buildup", "better": 1, "id": "local_hit_damage_stun_multiplier_+%", "matchers": [{"string": "Causes #% increased Stun Buildup", "negate": false}, {"string": "Causes #% reduced Stun Buildup", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_791928121"], "implicit": ["implicit.stat_791928121"], "enchant": ["enchant.stat_791928121"], "rune": ["rune.stat_791928121"]}}}
{"ref": "#% increased Elemental Damage with Attacks", "better": 1, "id": "elemental_damage_with_attack_skills_+%", "matchers": [{"string": "#% increased Elemental Damage with Attacks", "negate": false}, {"string": "#% reduced Elemental Damage with Attacks", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_387439868"], "enchant": ["enchant.stat_387439868"], "rune": ["rune.stat_387439868"]}}}
{"ref": "Gain #% of Damage as Extra Fire Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_fire", "matchers": [{"string": "Gain #% of Damage as Extra Fire Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3015669065"]}}}
{"ref": "Gain #% of Damage as Extra Cold Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_cold", "matchers": [{"string": "Gain #% of Damage as Extra Cold Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_2505884597"]}}}
{"ref": "Gain #% of Damage as Extra Lightning Damage", "better": 1, "id": "non_skill_base_all_damage_%_to_gain_as_lightning", "matchers": [{"string": "Gain #% of Damage as Extra Lightning Damage", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_3278136794"]}}}
@@ -197,7 +220,7 @@
{"ref": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "better": 1, "id": "local_explode_on_kill_with_crit_%_physical_damage_to_deal", "matchers": [{"string": "Causes Enemies to Explode on Critical kill, for #% of their Life as Physical Damage", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_1541903247"]}}}
{"ref": "Crushes Enemies on Hit", "better": 1, "id": "local_crush_on_hit", "matchers": [{"string": "Crushes Enemies on Hit", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Maim on Hit", "better": 1, "id": "local_maim_on_hit_%", "matchers": [{"string": "#% chance to Maim on Hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2763429652"]}}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": null}}
{"ref": "#% increased Projectile Speed when thrown", "better": 1, "id": "local_projectile_speed_+%", "matchers": [{"string": "#% increased Projectile Speed when thrown", "negate": false}], "trade": {"ids": {"implicit": ["implicit.stat_535217483"]}}}
{"ref": "Uses both hand slots", "better": 1, "id": "local_weapon_uses_both_hands", "matchers": [{"string": "Uses both hand slots", "negate": false}], "trade": {"ids": null}}
{"ref": "#% chance to Blind Enemies on hit", "better": 1, "id": "local_chance_to_blind_on_hit_%", "matchers": [{"string": "#% chance to Blind Enemies on hit", "negate": false}], "trade": {"ids": {"enchant": ["enchant.stat_2301191210"]}}}
{"ref": "#% chance to Poison on Hit", "better": 1, "id": "local_poison_on_hit_%", "matchers": [{"string": "#% chance to Poison on Hit", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_795138349"], "enchant": ["enchant.stat_3885634897"], "rune": ["rune.stat_3885634897"]}}}
@@ -254,7 +277,6 @@
{"ref": "#% increased Daze Buildup", "better": 1, "id": "daze_build_up_+%", "matchers": [{"string": "#% increased Daze Buildup", "negate": false}, {"string": "#% reduced Daze Buildup", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1949833742"]}}}
{"ref": "Debuffs on you expire #% faster", "better": 1, "id": "debuff_time_passed_+%", "matchers": [{"string": "Debuffs on you expire #% faster", "negate": false}, {"string": "Debuffs on you expire #% slower", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1238227257"]}}}
{"ref": "#% increased Duration of Ignite, Shock and Chill on Enemies", "better": 1, "id": "ignite_shock_chill_duration_+%", "matchers": [{"string": "#% increased Duration of Ignite, Shock and Chill on Enemies", "negate": false}, {"string": "#% reduced Duration of Ignite, Shock and Chill on Enemies", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1062710370"]}}}
{"ref": "#% increased Elemental Damage", "better": 1, "id": "elemental_damage_+%", "matchers": [{"string": "#% increased Elemental Damage", "negate": false}, {"string": "#% reduced Elemental Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_3141070085"]}}}
{"ref": "Empowered Attacks deal #% increased Damage", "better": 1, "id": "empowered_attack_damage_+%", "matchers": [{"string": "Empowered Attacks deal #% increased Damage", "negate": false}, {"string": "Empowered Attacks deal #% reduced Damage", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_1569101201"]}}}
{"ref": "Meta Skills gain #% increased Energy", "better": 1, "id": "energy_generated_+%", "matchers": [{"string": "Meta Skills gain #% increased Energy", "negate": false}, {"string": "Meta Skills gain #% reduced Energy", "negate": true}], "trade": {"ids": {"explicit": ["explicit.stat_4236566306"], "enchant": ["enchant.stat_4236566306"]}}}
{"ref": "Damaging Ailments deal damage #% faster", "better": 1, "id": "damaging_ailments_deal_damage_+%_faster", "matchers": [{"string": "Damaging Ailments deal damage #% faster", "negate": false}], "trade": {"ids": {"explicit": ["explicit.stat_538241406"]}}}

View File

@@ -0,0 +1,760 @@
{
"pseudo.pseudo_total_elemental_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_fire_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_cold_resistance": {
"filters": [
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
}
]
},
"pseudo.pseudo_total_lightning_resistance": {
"filters": [
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
}
]
},
"pseudo.pseudo_total_chaos_resistance": {
"filters": [
{
"id": "explicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
}
]
},
"pseudo.pseudo_total_all_attributes": {
"filters": [
{
"id": "explicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_dexterity": {
"filters": [
{
"id": "explicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_strength": {
"filters": [
{
"id": "explicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_intelligence": {
"filters": [
{
"id": "explicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_life": {
"filters": [
{
"id": "explicit.stat_3299347043",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3299347043",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_3299347043",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_mana": {
"filters": [
{
"id": "explicit.stat_1050105434",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1050105434",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1050105434",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo_total_energy_shield": {
"filters": [
{
"id": "explicit.stat_4052037485",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3489782002",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3489782002",
"value": {
"weight": 1
},
"disabled": false
}
]
},
"pseudo.pseudo_total_attack_speed": {
"filters": [
{
"id": "explicit.stat_210067635",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_681332047",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_681332047",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_210067635",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_cast_speed": {
"filters": [
{
"id": "explicit.stat_2891184298",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2891184298",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_movement_speed": {
"filters": [
{
"id": "explicit.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "enchant.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_physical_damage": {
"filters": [
{
"id": "explicit.stat_1509134228",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1509134228",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_elemental_damage": {
"filters": [
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"disabled": false
},
"pseudo.pseudo_increased_fire_damage": {
"filters": [
{
"id": "explicit.stat_3962278098",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_cold_damage": {
"filters": [
{
"id": "explicit.stat_3291658075",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_lightning_damage": {
"filters": [
{
"id": "explicit.stat_2231156303",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_spell_damage": {
"filters": [
{
"id": "explicit.stat_2974417149",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_fire_spell_damage": {
"filters": [],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_cold_spell_damage": {
"filters": [],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_lightning_spell_damage": {
"filters": [],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_mana_regen": {
"filters": [
{
"id": "explicit.stat_789117908",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_789117908",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_789117908",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight"
}
}

View File

@@ -0,0 +1,620 @@
{
"pseudo.pseudo_total_elemental_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_fire_resistance": {
"filters": [
{
"id": "explicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3372524247",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_cold_resistance": {
"filters": [
{
"id": "explicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4220027924",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_lightning_resistance": {
"filters": [
{
"id": "explicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1671376347",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_chaos_resistance": {
"filters": [
{
"id": "explicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2923486259",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_all_attributes": {
"filters": [
{
"id": "explicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_dexterity": {
"filters": [
{
"id": "explicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3261801346",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_strength": {
"filters": [
{
"id": "explicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_4080418644",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_intelligence": {
"filters": [
{
"id": "explicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_328541901",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_life": {
"filters": [
{
"id": "explicit.stat_3299347043",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3299347043",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_mana": {
"filters": [
{
"id": "explicit.stat_1050105434",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_1050105434",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo_total_energy_shield": {
"filters": [
{
"id": "explicit.stat_4052037485",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3489782002",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3489782002",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_attack_speed": {
"filters": [
{
"id": "explicit.stat_210067635",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_681332047",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_681332047",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_cast_speed": {
"filters": [
{
"id": "explicit.stat_2891184298",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2891184298",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_movement_speed": {
"filters": [
{
"id": "explicit.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "enchant.stat_2250533757",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_physical_damage": {
"filters": [
{
"id": "explicit.stat_1509134228",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "rune.stat_1509134228",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_elemental_damage": {
"filters": [
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_fire_damage": {
"filters": [
{
"id": "explicit.stat_3962278098",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_cold_damage": {
"filters": [
{
"id": "explicit.stat_3291658075",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_lightning_damage": {
"filters": [
{
"id": "explicit.stat_2231156303",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "explicit.stat_3141070085",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_increased_mana_regen": {
"filters": [
{
"id": "explicit.stat_789117908",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_789117908",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
},
"pseudo.pseudo_total_spirit": {
"filters": [
{
"id": "explicit.stat_3981240776",
"value": {
"weight": 1
},
"disabled": false
},
{
"id": "implicit.stat_3981240776",
"value": {
"weight": 1
},
"disabled": false
}
],
"type": "weight",
"value": {
"min": 0
}
}
}

View File

@@ -2,6 +2,7 @@ import fnv1a from "@sindresorhus/fnv1a";
import type {
BaseType,
DropEntry,
PseudoIdToTradeRequest,
Stat,
StatMatcher,
TranslationDict,
@@ -13,6 +14,7 @@ export let ITEM_DROP: DropEntry[];
export let CLIENT_STRINGS: TranslationDict;
export let CLIENT_STRINGS_REF: TranslationDict;
export let APP_PATRONS: Array<{ from: string; months: number; style: number }>;
export let PSEUDO_ID_TO_TRADE_REQUEST: PseudoIdToTradeRequest;
export let ITEM_BY_TRANSLATED = (
ns: BaseType["namespace"],
@@ -239,6 +241,10 @@ export async function init(lang: string) {
await fetch(`${import.meta.env.BASE_URL}data/patrons.json`)
).json();
PSEUDO_ID_TO_TRADE_REQUEST = await (
await fetch(`${import.meta.env.BASE_URL}data/pseudo-pseudo.json`)
).json();
await loadForLang(lang);
let failed = false;
@@ -252,8 +258,11 @@ export async function init(lang: string) {
}
}
if (failed) {
throw new Error(
`Cannot find stat${missing.length > 1 ? "s" : ""}: ${missing.join("\n")}`,
// throw new Error(
// `Cannot find stat${missing.length > 1 ? "s" : ""}: ${missing.join("\n")}`,
// );
console.log(
"Cannot find stat" + (missing.length > 1 ? "s" : "") + missing.join("\n"),
);
}
DELAYED_STAT_VALIDATION.clear();

View File

@@ -30,6 +30,7 @@ export interface Stat {
[type: string]: string[];
};
};
// isFakePseudo?: true;
}
export interface DropEntry {
@@ -185,3 +186,23 @@ export interface TranslationDict {
CHAT_WHISPER_FROM: RegExp;
CHAT_WEBTRADE_GEM: RegExp;
}
export interface Filter {
id: string;
value: {
weight: number;
};
disabled: boolean;
}
export interface PseudoIdToTradeRequest {
[id: string]: {
filters: Filter[];
type: "weight";
value: {
min?: number;
max?: number;
};
disabled?: boolean;
};
}

View File

@@ -0,0 +1,323 @@
{
"please_wait": "Please wait\u2026",
"choose_file": "Choose File",
"app_is_ready": "Is ready and running in background",
"reopen_settings": "Press {0} to continue editing.",
"seconds": "seconds",
"league": "League",
"realm": "Realm",
"realm_intl": "International",
"app": {
"leagues_loading": "Loading leagues\u2026",
"leagues_failed": "Failed to load leagues",
"leagues_failed_help": "Make sure the realm is not under maintenance. Also try clicking on the \"Browser\" button, you may need to complete a CAPTCHA there.",
"leagues_failed_help_alt": "Price check an Item, and follow the instructions in the error description there.",
"thanks_3rd_party": "This tool relies on {0} and {1}, consider supporting them as well",
"toggle_browser_hint": "Press {0} to switch between browser and game.",
"contact_me": "Contact me on one of the PoE Discords,",
"version": "Version {0}",
"release_notes": "Release notes",
"report_bug": "Report a bug on GitHub",
"quit": "Quit"
},
"map.mods.heist": "heist",
"map.mods.uber": "T17",
"map.mods.outdated": "outdated",
"Support development on": "Support development\u00A0on",
"Blighted": "Blighted",
"Blight-ravaged": "Blight-ravaged",
"Magic": "Magic",
"Shaper": "Shaper",
"Elder": "Elder",
"Crusader": "Crusader",
"Hunter": "Hunter",
"Redeemer": "Redeemer",
"Warlord": "Warlord",
"Superior": "Superior",
"Anomalous": "Anomalous",
"Divergent": "Divergent",
"Phantasmal": "Phantasmal",
"item": {
"prop_quality": "Q {0}%",
"base_percentile": "Base Percentile: {0}%",
"armour": "Armour: {0}",
"evasion_rating": "Evasion Rating: {0}",
"energy_shield": "Energy Shield: {0}",
"block": "Block: {0}%",
"total_dps": "Total DPS: {0}",
"physical_dps": "Physical DPS: {0}",
"elemental_dps": "Elemental DPS: {0}",
"crit": "Critical Strike Chance: {0}%",
"aps": "Attacks per Second: {0}",
"spirit": "Spirit: {0}",
"has_empty_modifier": "1 Empty or Crafted Modifier",
"has_empty_affix": "Any",
"has_empty_prefix": "Prefix",
"has_empty_suffix": "Suffix",
"item_level": "Item Level: {0}",
"stock": "Stock: {0}",
"map_tier": "Map Tier: {0}",
"area_level": "Area Level: {0}",
"heist_wings_revealed": "Wings Revealed: {0}",
"linked_sockets": "Links: {0}",
"white_sockets": "White: {0}",
"quality": "Quality: {0}",
"gem_level": "Level: {0}",
"gem_sockets": "Sockets: {0}",
"rune_sockets": "Sockets: {0}",
"sentinel_charge": "Charge: {0}",
"find_in_stash": "Find in Stash",
"parse_error": "An error occurred while parsing the item",
"parse_error_help": "This is probably a bug and you can report it on GitHub.",
"unknown": "Unknown Item",
"unknown_help": "If this Item was introduced in this League, it will likely be supported in the next app update.",
"identification": "You are trying to price check unidentified Unique item with base type \"{0}\". Which one?",
"open_on_wiki": "Open item on wiki",
"open_on_poedb": "Open item on PoEDB",
"info": "Item info",
"corrupted": "Corrupted",
"not_corrupted": "Not Corrupted",
"mod_tier": "Tier: {0}",
"mod_rank": "Rank: {0}",
"mod_pseudo": "Pseudo",
"mod_implicit": "Implicit",
"mod_fractured": "Fractured",
"mod_explicit": "Explicit",
"mod_crafted": "Crafted",
"mod_scourge": "Scourge",
"unidentified": "Unidentified",
"veiled": "Veiled",
"foil_unique": "Foil Unique",
"mirrored": "Mirrored",
"not_mirrored": "Not Mirrored"
},
"item_category": {
"prop": "Category: {0}",
"map": "Map",
"jewel_abyss": "Abyss Jewel",
"accessory_amulet": "Amulet",
"accessory_belt": "Belt",
"armour_chest": "Body Armour",
"armour_boots": "Boots",
"weapon_bow": "Bow",
"weapon_claw": "Claw",
"weapon_dagger": "Dagger",
"weapon_rod": "Fishing Rod",
"flask": "Flask",
"armour_gloves": "Gloves",
"armour_helmet": "Helmet",
"jewel": "Jewel",
"weapon_oneaxe": "One-Handed Axe",
"weapon_onemace": "One-Handed Mace",
"weapon_onesword": "One-Handed Sword",
"armour_quiver": "Quiver",
"accessory_ring": "Ring",
"weapon_runedagger": "Rune Dagger",
"weapon_sceptre": "Sceptre",
"armour_shield": "Shield",
"weapon_staff": "Staff",
"weapon_twoaxe": "Two-Handed Axe",
"weapon_twomace": "Two-Handed Mace",
"weapon_twosword": "Two-Handed Sword",
"weapon_wand": "Wand",
"weapon_warstaff": "Warstaff",
"jewel_cluster": "Cluster Jewel",
"heistmission_blueprint": "Heist Blueprint",
"heistmission_contract": "Heist Contract",
"heistequipment_heisttool": "Heist Tool",
"heistequipment_heistreward": "Heist Brooch",
"heistequipment_heistweapon": "Heist Gear",
"heistequipment_heistutility": "Heist Cloak",
"accessory_trinket": "Trinket",
"sanctum_relic": "Sanctum Relic",
"tincture": "Tincture",
"azmeri_charm": "Charm"
},
"filters": {
"selected_some": "{0} of {1}, stats",
"selected_none": "Stats ignored",
"hidden_toggle": "Hidden",
"collapse": "Collapse",
"mods_toggle": "Mods",
"empty": "No relevant stats were found",
"tier": "Tier {0}",
"preset_pseudo": "Pseudo",
"preset_base_item": "Base item",
"hide_const_roll": "Roll is not variable",
"hide_ele_dps": "Elemental damage is not the main source of DPS",
"hide_phys_dps": "Physical damage is not the main source of DPS",
"hide_ele_res": "Filtering by exact Elemental Resistance unreasonably increases the price",
"hide_crafted_chaos": "Crafted Chaos Resistance without Explicit mod has no value",
"hide_anointment": "Buyer will likely change anointment",
"hide_for_crafting": "Select only if price-checking as base item for crafting",
"hide_empty_mod": "Select only if item has 6 modifiers (1 of which is crafted) or if it has 5 modifiers",
"tag_implicit": "implicit",
"tag_fractured": "fractured",
"tag_crafted": "crafted",
"tag_scourge": "scourge",
"tag_enchant": "enchant",
"tag_variant": "variant",
"tag_corrupted": "corrupted",
"tag_synthesised": "synthesised",
"tag_eldritch": "eldritch",
"tag_pseudo": "pseudo",
"tag_explicit": "explicit",
"tag_explicit_shaper": "Shaper",
"tag_explicit_elder": "Elder",
"tag_explicit_crusader": "Crusader",
"tag_explicit_hunter": "Hunter",
"tag_explicit_redeemer": "Redeemer",
"tag_explicit_warlord": "Warlord",
"tag_explicit_delve": "Delve",
"tag_explicit_veiled": "Veiled",
"tag_explicit_incursion": "Incursion"
},
"online_filter": {
"offline_toggle": "Offline & Online",
"in_league_toggle": "In League",
"listed_any_time": "Listed: Any Time",
"listed_1day": "1 Day Ago",
"listed_3days": "3 Days Ago",
"listed_1week": "1 Week Ago",
"listed_2weeks": "2 Weeks Ago",
"listed_1month": "1 Month Ago",
"listed_2months": "2 Months Ago",
"currency_any": "Any Currency",
"currency_only_chaos": "Chaos Orb",
"currency_only_div": "Divine Orb",
"currency_chaos_div": "Both Orbs"
},
"widget": {
"title": "widget title",
"hide": "hide",
"edit": "edit",
"move": "move",
"delete": "delete"
},
"updates": {
"maybe_outdated": "You may have an outdated version",
"latest": "You have the latest version",
"error": "Error while checking for updates",
"checking": "Checking for updates",
"downloading": "Downloading\u2026",
"available": "Update available: {0}",
"never_checked": "Last checked: never",
"last_checked": "Last checked: {0}",
"check_now": "Check now",
"install_now": "Install now",
"downloads_page": "Open the Downloads page",
"installed_on_exit": "It will be installed automatically on exit",
"download_manually": "You can download it from GitHub",
"download_disabled": "You have disabled automatic updates download"
},
"widget_menu": {
"add": "add widget\u2026",
"always_show": "Show button for active widgets",
"price_check": "Price check (Ctrl + V)"
},
"stopwatch": {
"name": "Stopwatch",
"paused": "paused",
"toggle_key": "Start and Pause",
"reset_key": "Reset"
},
"stash_search": {
"enable_keys": "Keys",
"name": "Stash search",
"search_text": "search text or regex",
"friendly_name": "friendly name"
},
"image_strip": {
"name": "Image strip"
},
"item_search": {
"name": "Item search",
"input": "Search by name\u2026",
"reset": "Reset items",
"heist_target": "Heist target:",
"target_gem": "Skill Gem",
"target_replica": "Replicas",
"too_many": "Too many items found, enter the name more precisely.",
"not_found": "No items found.",
"ocr_gems_key": "Perform an OCR for a Skill Gem"
},
"map_check": {
"name": "Map check",
"has_outdated": "Wording of some stats has been changed. Check and update dangerous map mods in the settings. (This message will be hidden as soon as you remove all outdated stats)",
"no_mods": "Item has no modifiers.",
"profile": "Profile",
"search_selected": "Only selected",
"search_stat_col": "Stat (found: {0})",
"new_mods_icon": "Show icon for new mods"
},
"trade_result": {
"error": "Trade site request failed",
"matched": "Matched: {0}",
"trade": "Trade",
"price": "Price",
"bulk": "bulk",
"stock": "Stock",
"fulfill": "Fulfill",
"listed": "Listed",
"seller": "Seller",
"item_level": "iLvl",
"gem_level": "Level",
"quality": "Quality",
"base_item": "Base item",
"graph_7d": "Last 7 days",
"getting_price": "Getting price {0}",
"getting_price_from": "from poe.ninja \u2026",
"you_have": "You have",
"stack": "Stack"
},
"settings": {
"title": "Settings - Exiled Exchange 2",
"language": "Language",
"private_league": "or Private League",
"account_name": "Account name",
"last_char_name": "Last character name",
"chat_cmd_add": "Add command",
"chat_cmd_send": "press Enter",
"no_key": "Not Set",
"clear_hotkey": "You can clear hotkey by pressing Backspace",
"overlay": "Overlay",
"stash_scroll": "Stash tab scrolling",
"delve_grid": "Grid for Delve Chart",
"window_title": "PoE window title",
"thank_you": "App development continues thanks to:",
"hotkeys": "Hotkeys",
"chat": "Chat",
"general": "General",
"debug": "Debug",
"about": "About",
"font_size": "Font size",
"overlay_bg": "Background when the Overlay is clickable",
"overlay_bg_none": "Transparent",
"overlay_bg_focus_game": "Clicking on the background focuses the game",
"overlay_always_close": "Always fully close the overlay instead of hiding it",
"poe_log_file": "PoE log file",
"poe_cfg_file": "PoE config file",
"restore_clipboard": "Restore clipboard",
"show_overlay_ready": "Show a notification when the Overlay detects a PoE window",
"debug_hotkeys": "Record all key presses"
},
"price_check": {
"name": "Price check",
"hotkey": "Auto-hide Mode",
"hotkey_locked": "Open without auto-hide",
"enable_browser": "Enable builtin browser",
"builtin_browser_warning": "I am aware that future releases can potentially contain malicious code that can steal my POESESSID.",
"highlight_hint": "Your items will be highlighted even if this setting is off",
"show_seller": "Show seller",
"fill_rolls": "Fill stat values",
"fill_roll_exact": "Exact value",
"cursor_pos": "Show memorized cursor position",
"extra_delay": "Extra time to prevent spurious Rate limiting",
"warn_expensive": "Settings below are a compromise between increasing load on PoE website and convenient price checking / more accurate search.",
"accurate_collapsed": "Show indication on collapsed listings",
"auto_search": "Perform an auto search, when pressing",
"select_stock": "Always select \"Stock\" filter",
"show_prediction": "Show price prediction",
"remember_currency": "Remember the Buyout Currency filter"
}
}

View File

@@ -0,0 +1,106 @@
// @ts-check
/** @type{import('../../../src/assets/data/interfaces').TranslationDict} */
export default {
RARITY_NORMAL: 'Normal',
RARITY_MAGIC: 'Magic',
RARITY_RARE: 'Rare',
RARITY_UNIQUE: 'Unique',
RARITY_GEM: 'Gem',
RARITY_CURRENCY: 'Currency',
RARITY_DIVCARD: 'Divination Card',
RARITY_QUEST: 'Quest',
MAP_TIER: 'Map Tier: ',
RARITY: 'Rarity: ',
ITEM_CLASS: 'Item Class: ',
ITEM_LEVEL: 'Item Level: ',
CORPSE_LEVEL: 'Corpse Level: ',
TALISMAN_TIER: 'Talisman Tier: ',
GEM_LEVEL: 'Level: ',
STACK_SIZE: 'Stack Size: ',
SOCKETS: 'Sockets: ',
QUALITY: 'Quality: ',
PHYSICAL_DAMAGE: 'Physical Damage: ',
ELEMENTAL_DAMAGE: 'Elemental Damage: ',
CRIT_CHANCE: 'Critical Strike Chance: ',
ATTACK_SPEED: 'Attacks per Second: ',
ARMOUR: 'Armour: ',
EVASION: 'Evasion Rating: ',
ENERGY_SHIELD: 'Energy Shield: ',
BLOCK_CHANCE: 'Chance to Block: ',
CORRUPTED: 'Corrupted',
UNIDENTIFIED: 'Unidentified',
ITEM_SUPERIOR: /^Superior (.*)$/,
MAP_BLIGHTED: /^Blighted (.*)$/,
MAP_BLIGHT_RAVAGED: /^Blight-ravaged (.*)$/,
INFLUENCE_SHAPER: 'Shaper Item',
INFLUENCE_ELDER: 'Elder Item',
INFLUENCE_CRUSADER: 'Crusader Item',
INFLUENCE_HUNTER: 'Hunter Item',
INFLUENCE_REDEEMER: 'Redeemer Item',
INFLUENCE_WARLORD: 'Warlord Item',
SECTION_SYNTHESISED: 'Synthesised Item',
ITEM_SYNTHESISED: /^Synthesised (.*)$/,
VEILED_PREFIX: 'Veiled Prefix',
VEILED_SUFFIX: 'Veiled Suffix',
FLASK_CHARGES: /^Currently has \d+ Charges$/,
METAMORPH_HELP: "Combine this with four other different samples in Tane's Laboratory.",
BEAST_HELP: 'Right-click to add this to your bestiary.',
VOIDSTONE_HELP: 'Socket this into your Atlas to increase the Tier of all Maps.',
METAMORPH_BRAIN: /^.* Brain$/,
METAMORPH_EYE: /^.* Eye$/,
METAMORPH_LUNG: /^.* Lung$/,
METAMORPH_HEART: /^.* Heart$/,
METAMORPH_LIVER: /^.* Liver$/,
CANNOT_USE_ITEM: 'You cannot use this item. Its stats will be ignored',
QUALITY_ANOMALOUS: /^Anomalous (.*)$/,
QUALITY_DIVERGENT: /^Divergent (.*)$/,
QUALITY_PHANTASMAL: /^Phantasmal (.*)$/,
AREA_LEVEL: 'Area Level: ',
HEIST_WINGS_REVEALED: 'Wings Revealed: ',
HEIST_TARGET: 'Heist Target: ',
HEIST_BLUEPRINT_ENCHANTS: 'Enchanted Armaments',
HEIST_BLUEPRINT_TRINKETS: 'Thieves\' Trinkets or Currency',
HEIST_BLUEPRINT_GEMS: 'Unusual Gems',
HEIST_BLUEPRINT_REPLICAS: 'Replicas or Experimented Items',
MIRRORED: 'Mirrored',
MODIFIER_LINE: /^(?<type>[^"]+)(?:\s+"(?<name>[^"]+)")?(?:\s+\(Tier: (?<tier>\d+)\))?(?:\s+\(Rank: (?<rank>\d+)\))?$/,
PREFIX_MODIFIER: 'Prefix Modifier',
SUFFIX_MODIFIER: 'Suffix Modifier',
CRAFTED_PREFIX: 'Master Crafted Prefix Modifier',
CRAFTED_SUFFIX: 'Master Crafted Suffix Modifier',
UNSCALABLE_VALUE: ' — Unscalable Value',
CORRUPTED_IMPLICIT: 'Corruption Implicit Modifier',
MODIFIER_INCREASED: /^(.+?)% Increased$/,
INCURSION_OPEN: 'Open Rooms:',
INCURSION_OBSTRUCTED: 'Obstructed Rooms:',
EATER_IMPLICIT: /^Eater of Worlds Implicit Modifier \((?<rank>.+)\)$/,
EXARCH_IMPLICIT: /^Searing Exarch Implicit Modifier \((?<rank>.+)\)$/,
ELDRITCH_MOD_R1: 'Lesser',
ELDRITCH_MOD_R2: 'Greater',
ELDRITCH_MOD_R3: 'Grand',
ELDRITCH_MOD_R4: 'Exceptional',
ELDRITCH_MOD_R5: 'Exquisite',
ELDRITCH_MOD_R6: 'Perfect',
SENTINEL_CHARGE: 'Charge: ',
SHAPER_MODS: ['of Shaping', "The Shaper's"],
ELDER_MODS: ['of the Elder', "The Elder's"],
CRUSADER_MODS: ["Crusader's", 'of the Crusade'],
HUNTER_MODS: ["Hunter's", 'of the Hunt'],
REDEEMER_MODS: ['of Redemption', "Redeemer's"],
WARLORD_MODS: ["Warlord's", 'of the Conquest'],
DELVE_MODS: ['Subterranean', 'of the Underground'],
VEILED_MODS: ['Chosen', 'of the Order'],
INCURSION_MODS: ["Guatelitzi's", "Xopec's", "Topotante's", "Tacati's", "Matatl's", 'of Matatl', "Citaqualotl's", 'of Citaqualotl', 'of Tacati', 'of Guatelitzi', 'of Puhuarte'],
FOIL_UNIQUE: 'Foil Unique',
UNMODIFIABLE: 'Unmodifiable',
// ---
CHAT_SYSTEM: /^: (?<body>.+)$/,
CHAT_TRADE: /^\$(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_GLOBAL: /^#(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_PARTY: /^%(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_GUILD: /^&(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_WHISPER_TO: /^@To (?<char_name>.+?): (?<body>.+)$/,
CHAT_WHISPER_FROM: /^@From (?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
CHAT_WEBTRADE_GEM: /^level (?<gem_lvl>\d+) (?<gem_qual>\d+)% (?<gem_name>.+)$/,
REQUIREMENTS: 'Requirements'
}

View File

@@ -0,0 +1,187 @@
import type { ItemCategory } from "@/parser";
export interface StatMatcher {
string: string;
advanced?: string;
negate?: true;
value?: number;
oils?: string; // Amulet anointment
}
export enum StatBetter {
NegativeRoll = -1,
PositiveRoll = 1,
NotComparable = 0,
}
export interface Stat {
ref: string;
dp?: true;
matchers: StatMatcher[];
better: StatBetter;
fromAreaMods?: true;
fromUberAreaMods?: true;
fromHeistAreaMods?: true;
anointments?: Array<{ roll: number; oils: string }>; // Ring anointments
trade: {
inverted?: true;
option?: true;
ids: {
[type: string]: string[];
};
};
}
export interface DropEntry {
query: string[];
items: string[];
}
export interface BaseType {
name: string;
refName: string;
namespace: "DIVINATION_CARD" | "CAPTURED_BEAST" | "UNIQUE" | "ITEM" | "GEM";
icon: string;
w?: number;
h?: number;
tradeTag?: string;
tradeDisc?: string;
disc?: {
propAR?: true;
propEV?: true;
propES?: true;
hasImplicit?: { ref: Stat["ref"] };
hasExplicit?: { ref: Stat["ref"] };
sectionText?: string;
mapTier?: "W" | "Y" | "R";
};
// extra info
craftable?: {
category: ItemCategory;
corrupted?: true;
uniqueOnly?: true;
};
unique?: {
base: BaseType["refName"];
fixedStats?: Array<Stat["ref"]>;
};
map?: {
screenshot?: string;
};
gem?: {
vaal?: true;
awakened?: true;
transfigured?: true;
normalVariant?: BaseType["refName"];
};
armour?: {
ar?: [min: number, max: number];
ev?: [min: number, max: number];
es?: [min: number, max: number];
};
}
export interface TranslationDict {
RARITY_NORMAL: string;
RARITY_MAGIC: string;
RARITY_RARE: string;
RARITY_UNIQUE: string;
RARITY_GEM: string;
RARITY_CURRENCY: string;
RARITY_DIVCARD: string;
RARITY_QUEST: string;
MAP_TIER: string;
RARITY: string;
ITEM_CLASS: string;
ITEM_LEVEL: string;
CORPSE_LEVEL: string;
TALISMAN_TIER: string;
GEM_LEVEL: string;
STACK_SIZE: string;
SOCKETS: string;
QUALITY: string;
PHYSICAL_DAMAGE: string;
ELEMENTAL_DAMAGE: string;
CRIT_CHANCE: string;
ATTACK_SPEED: string;
ARMOUR: string;
EVASION: string;
ENERGY_SHIELD: string;
BLOCK_CHANCE: string;
CORRUPTED: string;
UNIDENTIFIED: string;
ITEM_SUPERIOR: RegExp;
MAP_BLIGHTED: RegExp;
MAP_BLIGHT_RAVAGED: RegExp;
INFLUENCE_SHAPER: string;
INFLUENCE_ELDER: string;
INFLUENCE_CRUSADER: string;
INFLUENCE_HUNTER: string;
INFLUENCE_REDEEMER: string;
INFLUENCE_WARLORD: string;
SECTION_SYNTHESISED: string;
ITEM_SYNTHESISED: RegExp;
VEILED_PREFIX: string;
VEILED_SUFFIX: string;
FLASK_CHARGES: RegExp;
METAMORPH_HELP: string;
BEAST_HELP: string;
VOIDSTONE_HELP: string;
METAMORPH_BRAIN: RegExp;
METAMORPH_EYE: RegExp;
METAMORPH_LUNG: RegExp;
METAMORPH_HEART: RegExp;
METAMORPH_LIVER: RegExp;
CANNOT_USE_ITEM: string;
QUALITY_ANOMALOUS: RegExp;
QUALITY_DIVERGENT: RegExp;
QUALITY_PHANTASMAL: RegExp;
AREA_LEVEL: string;
HEIST_WINGS_REVEALED: string;
HEIST_TARGET: string;
HEIST_BLUEPRINT_ENCHANTS: string;
HEIST_BLUEPRINT_TRINKETS: string;
HEIST_BLUEPRINT_GEMS: string;
HEIST_BLUEPRINT_REPLICAS: string;
MIRRORED: string;
MODIFIER_LINE: RegExp;
PREFIX_MODIFIER: string;
SUFFIX_MODIFIER: string;
CRAFTED_PREFIX: string;
CRAFTED_SUFFIX: string;
UNSCALABLE_VALUE: string;
CORRUPTED_IMPLICIT: string;
MODIFIER_INCREASED: RegExp;
INCURSION_OPEN: string;
INCURSION_OBSTRUCTED: string;
EATER_IMPLICIT: RegExp;
EXARCH_IMPLICIT: RegExp;
ELDRITCH_MOD_R1: string;
ELDRITCH_MOD_R2: string;
ELDRITCH_MOD_R3: string;
ELDRITCH_MOD_R4: string;
ELDRITCH_MOD_R5: string;
ELDRITCH_MOD_R6: string;
SENTINEL_CHARGE: string;
SHAPER_MODS: string[];
ELDER_MODS: string[];
CRUSADER_MODS: string[];
HUNTER_MODS: string[];
REDEEMER_MODS: string[];
WARLORD_MODS: string[];
DELVE_MODS: string[];
VEILED_MODS: string[];
INCURSION_MODS: string[];
FOIL_UNIQUE: string;
UNMODIFIABLE: string;
REQUIREMENTS: string;
// ---
CHAT_SYSTEM: RegExp;
CHAT_TRADE: RegExp;
CHAT_GLOBAL: RegExp;
CHAT_PARTY: RegExp;
CHAT_GUILD: RegExp;
CHAT_WHISPER_TO: RegExp;
CHAT_WHISPER_FROM: RegExp;
CHAT_WEBTRADE_GEM: RegExp;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,191 @@
[
{"from": "A. Førde", "months": 3, "style": 1},
{"from": "A. Koenig", "months": 1, "style": 1},
{"from": "A. Logos", "months": 20, "style": 2},
{"from": "A. Miller", "months": 11, "style": 1},
{"from": "A. Nakarada", "months": 7, "style": 2},
{"from": "A. Robinson", "months": 7, "style": 3},
{"from": "A. West", "months": 27, "style": 3},
{"from": "A. Zastre", "months": 5, "style": 1},
{"from": "AbedNego", "months": 6, "style": 1},
{"from": "aikodz", "months": 3, "style": 1},
{"from": "Andrew S", "months": 1, "style": 1},
{"from": "angrymouse", "months": 6, "style": 1},
{"from": "aNitMotD", "months": 2, "style": 3},
{"from": "applejacked", "months": 20, "style": 2},
{"from": "Arte Lope", "months": 17, "style": 2},
{"from": "Askanor", "months": 1, "style": 1},
{"from": "Athena", "months": 10, "style": 3},
{"from": "AZ", "months": 3, "style": 1},
{"from": "B. Maszlag", "months": 16, "style": 2},
{"from": "B. Stone", "months": 1, "style": 1},
{"from": "B3ginner", "months": 1, "style": 1},
{"from": "Baang", "months": 35, "style": 5},
{"from": "bashcoder", "months": 4, "style": 1},
{"from": "BearsInTheSky", "months": 1, "style": 1},
{"from": "Bjoern B.", "months": 4, "style": 1},
{"from": "Brotango", "months": 3, "style": 1},
{"from": "Budget Boudica", "months": 23, "style": 3},
{"from": "C. Niemeier", "months": 10, "style": 2},
{"from": "C. Szilagy", "months": 15, "style": 2},
{"from": "C.M. Tolman", "months": 4, "style": 2},
{"from": "Calyx", "months": 36, "style": 5},
{"from": "camenre", "months": 2, "style": 1},
{"from": "Chee", "months": 2, "style": 1},
{"from": "clopnaz", "months": 3, "style": 1},
{"from": "Cod Smack", "months": 28, "style": 3},
{"from": "Coolulder", "months": 42, "style": 5},
{"from": "Cry0nicS", "months": 1, "style": 1},
{"from": "cuinhellcat", "months": 2, "style": 1},
{"from": "CysDg", "months": 1, "style": 1},
{"from": "D. Bryan", "months": 2, "style": 1},
{"from": "D. Ivanov", "months": 16, "style": 4},
{"from": "D. Paulino", "months": 30, "style": 5},
{"from": "D. Ward", "months": 8, "style": 2},
{"from": "d0mEsPLiTa", "months": 12, "style": 3},
{"from": "Dadaless", "months": 4, "style": 1},
{"from": "Dante M.", "months": 27, "style": 4},
{"from": "Darkscion", "months": 1, "style": 1},
{"from": "deeray", "months": 38, "style": 3},
{"from": "delasteve", "months": 1, "style": 2},
{"from": "digininja", "months": 39, "style": 3},
{"from": "dreamweaverkara", "months": 4, "style": 2},
{"from": "DTauro", "months": 6, "style": 1},
{"from": "Dvoth", "months": 3, "style": 1},
{"from": "E. Giegerich", "months": 2, "style": 1},
{"from": "E. Manhattan", "months": 12, "style": 2},
{"from": "E. Troyak", "months": 4, "style": 3},
{"from": "Ellendar", "months": 45, "style": 5},
{"from": "EllieJelly", "months": 38, "style": 4},
{"from": "facemask12", "months": 4, "style": 2},
{"from": "FARIS2", "months": 4, "style": 2},
{"from": "frsm", "months": 37, "style": 3},
{"from": "gamingrobot", "months": 9, "style": 2},
{"from": "Gdubz", "months": 4, "style": 3},
{"from": "GRIMGeek", "months": 37, "style": 3},
{"from": "Grotok", "months": 19, "style": 3},
{"from": "gurthymyco", "months": 1, "style": 1},
{"from": "haliun", "months": 7, "style": 3},
{"from": "Harometras", "months": 3, "style": 1},
{"from": "Heikki", "months": 34, "style": 3},
{"from": "Holonaut", "months": 7, "style": 2},
{"from": "HOOSIER", "months": 21, "style": 2},
{"from": "Horstusius", "months": 8, "style": 2},
{"from": "hyronimus84", "months": 1, "style": 1},
{"from": "imaapty", "months": 4, "style": 2},
{"from": "iqdrive", "months": 2, "style": 1},
{"from": "J. Harmer", "months": 10, "style": 2},
{"from": "J. Krzeminski", "months": 14, "style": 2},
{"from": "J. Madill", "months": 19, "style": 2},
{"from": "J. Müller", "months": 26, "style": 3},
{"from": "J. Pollard", "months": 4, "style": 1},
{"from": "J. Porter", "months": 35, "style": 3},
{"from": "J. Rapp", "months": 23, "style": 3},
{"from": "J. Reed", "months": 6, "style": 2},
{"from": "J. Stratmann", "months": 43, "style": 3},
{"from": "J. Wiegand", "months": 10, "style": 3},
{"from": "jerbear_pnw", "months": 14, "style": 4},
{"from": "Jordan", "months": 1, "style": 1},
{"from": "JoyFired", "months": 7, "style": 1},
{"from": "JP Bagdonas", "months": 8, "style": 3},
{"from": "Jr Honorio", "months": 5, "style": 2},
{"from": "K_fudge", "months": 1, "style": 2},
{"from": "K. Hafenscher", "months": 26, "style": 4},
{"from": "K. Hardy", "months": 4, "style": 4},
{"from": "K. Kaptur", "months": 8, "style": 1},
{"from": "K. Mohin", "months": 1, "style": 1},
{"from": "KhaozNZ", "months": 5, "style": 1},
{"from": "khay", "months": 20, "style": 2},
{"from": "Kloozy", "months": 6, "style": 1},
{"from": "kmalex4", "months": 33, "style": 3},
{"from": "kruderf", "months": 1, "style": 1},
{"from": "L. Chien", "months": 12, "style": 3},
{"from": "L. Kelly", "months": 8, "style": 2},
{"from": "L. MacNeil", "months": 32, "style": 5},
{"from": "L. Sampaio Dias", "months": 2, "style": 1},
{"from": "lecruz01", "months": 2, "style": 1},
{"from": "Lendoria", "months": 22, "style": 4},
{"from": "livejamie", "months": 26, "style": 2},
{"from": "lord_lengl", "months": 2, "style": 1},
{"from": "Lordius", "months": 1, "style": 1},
{"from": "louislo", "months": 6, "style": 1},
{"from": "Ludion R", "months": 3, "style": 1},
{"from": "M. Aldous", "months": 30, "style": 3},
{"from": "M. Kimble", "months": 34, "style": 4},
{"from": "M. Lopez", "months": 10, "style": 3},
{"from": "martin1*5", "months": 12, "style": 3},
{"from": "Max10969", "months": 16, "style": 3},
{"from": "Melu", "months": 1, "style": 1},
{"from": "Mike", "months": 6, "style": 2},
{"from": "MiksLynx", "months": 14, "style": 2},
{"from": "Mindfire", "months": 2, "style": 1},
{"from": "mmastrocinque", "months": 11, "style": 2},
{"from": "Mr. Ozarka", "months": 10, "style": 2},
{"from": "N. Baldwin", "months": 23, "style": 4},
{"from": "N. Juretic", "months": 15, "style": 4},
{"from": "N. Pawlawski", "months": 3, "style": 1},
{"from": "N. Sabin", "months": 1, "style": 1},
{"from": "Nakoma", "months": 2, "style": 1},
{"from": "ninni", "months": 12, "style": 2},
{"from": "nipser", "months": 3, "style": 1},
{"from": "P. Pandian", "months": 8, "style": 3},
{"from": "P. Roeper", "months": 26, "style": 3},
{"from": "Pieman807", "months": 12, "style": 3},
{"from": "Praestrom", "months": 2, "style": 1},
{"from": "Quezion", "months": 29, "style": 4},
{"from": "R. Chow", "months": 40, "style": 3},
{"from": "R. Fidel", "months": 14, "style": 4},
{"from": "R. Klippert", "months": 26, "style": 3},
{"from": "R. Meliksetyan", "months": 1, "style": 1},
{"from": "R. Myers", "months": 1, "style": 1},
{"from": "Rafnak", "months": 3, "style": 1},
{"from": "roxzin", "months": 4, "style": 1},
{"from": "Rutschi", "months": 4, "style": 2},
{"from": "rw", "months": 31, "style": 4},
{"from": "Ryndaar", "months": 2, "style": 1},
{"from": "S. Barton", "months": 20, "style": 3},
{"from": "S. Bejan", "months": 16, "style": 2},
{"from": "S. Goozey", "months": 25, "style": 2},
{"from": "S. Jones", "months": 8, "style": 2},
{"from": "Sanii", "months": 35, "style": 5},
{"from": "SasQ", "months": 1, "style": 1},
{"from": "Secret Wizard", "months": 6, "style": 2},
{"from": "Seppi", "months": 1, "style": 1},
{"from": "sergeantglasc", "months": 1, "style": 1},
{"from": "smartmusic", "months": 2, "style": 1},
{"from": "smifli", "months": 3, "style": 2},
{"from": "sn0cr4sh", "months": 31, "style": 4},
{"from": "snape3619", "months": 3, "style": 1},
{"from": "Solaarian", "months": 15, "style": 2},
{"from": "Splat", "months": 7, "style": 1},
{"from": "stark4machines", "months": 13, "style": 2},
{"from": "Steve O.", "months": 6, "style": 1},
{"from": "StrangerKill", "months": 29, "style": 3},
{"from": "Sy", "months": 23, "style": 2},
{"from": "sycofly", "months": 14, "style": 2},
{"from": "symphony", "months": 20, "style": 2},
{"from": "T. Boone", "months": 3, "style": 1},
{"from": "T. Pluta", "months": 16, "style": 3},
{"from": "T. Rayne", "months": 3, "style": 1},
{"from": "T. Trav", "months": 15, "style": 4},
{"from": "Tactical96", "months": 2, "style": 1},
{"from": "TH", "months": 11, "style": 1},
{"from": "ThatGuyWasTaken", "months": 38, "style": 5},
{"from": "TheDriveHome", "months": 31, "style": 4},
{"from": "tony", "months": 1, "style": 1},
{"from": "Traceur", "months": 11, "style": 3},
{"from": "turmalin", "months": 4, "style": 2},
{"from": "V. Chernenko", "months": 2, "style": 1},
{"from": "Vandi", "months": 30, "style": 3},
{"from": "vervalsen", "months": 1, "style": 1},
{"from": "vii", "months": 13, "style": 4},
{"from": "Vindexus", "months": 6, "style": 2},
{"from": "vivi", "months": 3, "style": 1},
{"from": "Vulinux", "months": 4, "style": 1},
{"from": "W. Milas", "months": 42, "style": 4},
{"from": "Washclof", "months": 4, "style": 1},
{"from": "Wiggles", "months": 21, "style": 4},
{"from": "Zach H", "months": 11, "style": 5},
{"from": "Zigra", "months": 4, "style": 2},
{"from": "zlajo", "months": 8, "style": 1}
]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,253 @@
import fnv1a from "@sindresorhus/fnv1a";
import type {
BaseType,
DropEntry,
Stat,
StatMatcher,
TranslationDict,
} from "./interfaces";
import path from "path";
import fs from "fs";
export * from "./interfaces";
export let ITEM_DROP: DropEntry[];
export let CLIENT_STRINGS: TranslationDict;
export let CLIENT_STRINGS_REF: TranslationDict;
export let APP_PATRONS: Array<{ from: string; months: number; style: number }>;
export let ITEM_BY_TRANSLATED = (
ns: BaseType["namespace"],
name: string,
): BaseType[] | undefined => undefined;
export let ITEM_BY_REF = (
ns: BaseType["namespace"],
name: string,
): BaseType[] | undefined => undefined;
export let ITEMS_ITERATOR = function* (
includes: string,
andIncludes?: string[],
): Generator<BaseType> {};
export let ALTQ_GEM_NAMES = function* (): Generator<string> {};
export let REPLICA_UNIQUE_NAMES = function* (): Generator<string> {};
export let STAT_BY_MATCH_STR = (
name: string,
): { matcher: StatMatcher; stat: Stat } | undefined => undefined;
export let STAT_BY_REF = (name: string): Stat | undefined => undefined;
export let STATS_ITERATOR = function* (
includes: string,
andIncludes?: string[],
): Generator<Stat> {};
function dataBinarySearch(
data: Uint32Array,
value: number,
rowOffset: number,
rowSize: number,
) {
let left = 0;
let right = data.length / rowSize - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
const midValue = data[mid * rowSize + rowOffset];
if (midValue < value) {
left = mid + 1;
} else if (midValue > value) {
right = mid - 1;
} else {
return mid;
}
}
return -1;
}
function ndjsonFindLines<T>(ndjson: string) {
// it's preferable that passed `searchString` has good entropy
return function* (
searchString: string,
andIncludes: string[] = [],
): Generator<T> {
let start = 0;
while (start !== ndjson.length) {
const matchPos = ndjson.indexOf(searchString, start);
if (matchPos === -1) break;
// works for first line too (-1 + 1 = 0)
start = ndjson.lastIndexOf("\n", matchPos) + 1;
const end = ndjson.indexOf("\n", matchPos);
const jsonLine = ndjson.slice(start, end);
if (andIncludes.every((str) => jsonLine.includes(str))) {
yield JSON.parse(jsonLine) as T;
}
start = end + 1;
}
};
}
function itemNamesFromLines(items: Generator<BaseType>) {
let cached = "";
return function* (): Generator<string> {
if (!cached.length) {
for (const item of items) {
cached += item.name + "\n";
}
}
let start = 0;
while (start !== cached.length) {
const end = cached.indexOf("\n", start);
yield cached.slice(start, end);
start = end + 1;
}
};
}
async function loadItems(language: string) {
const ndjson = fs.readFileSync(
path.resolve(__dirname, `./items.ndjson`),
"utf-8",
);
const INDEX_WIDTH = 2;
const indexNames = new Uint32Array(
fs.readFileSync(path.resolve(__dirname, `./items-name.index.bin`)).buffer,
);
const indexRefNames = new Uint32Array(
fs.readFileSync(path.resolve(__dirname, `./items-ref.index.bin`)).buffer,
);
function commonFind(index: Uint32Array, prop: "name" | "refName") {
return function (
ns: BaseType["namespace"],
name: string,
): BaseType[] | undefined {
let start = dataBinarySearch(
index,
Number(fnv1a(`${ns}::${name}`, { size: 32 })),
0,
INDEX_WIDTH,
);
if (start === -1) return undefined;
start = index[start * INDEX_WIDTH + 1];
const out: BaseType[] = [];
while (start !== ndjson.length) {
const end = ndjson.indexOf("\n", start);
const record = JSON.parse(ndjson.slice(start, end)) as BaseType;
if (record.namespace === ns && record[prop] === name) {
out.push(record);
if (!record.disc && !record.unique) break;
} else {
break;
}
start = end + 1;
}
return out;
};
}
ITEM_BY_TRANSLATED = commonFind(indexNames, "name");
ITEM_BY_REF = commonFind(indexRefNames, "refName");
ITEMS_ITERATOR = ndjsonFindLines<BaseType>(ndjson);
ALTQ_GEM_NAMES = itemNamesFromLines(
ITEMS_ITERATOR('altQuality":["Anomalous'),
);
REPLICA_UNIQUE_NAMES = itemNamesFromLines(
ITEMS_ITERATOR('refName":"Replica'),
);
}
async function loadStats(language: string) {
const ndjson = fs.readFileSync(
path.resolve(__dirname, `./stats.ndjson`),
"utf-8",
);
const INDEX_WIDTH = 2;
const indexRef = new Uint32Array(
fs.readFileSync(path.resolve(__dirname, `./stats-ref.index.bin`)).buffer,
);
const indexMatcher = new Uint32Array(
fs.readFileSync(
path.resolve(__dirname, `./stats-matcher.index.bin`),
).buffer,
);
STAT_BY_REF = function (ref: string) {
let start = dataBinarySearch(
indexRef,
Number(fnv1a(ref, { size: 32 })),
0,
INDEX_WIDTH,
);
if (start === -1) return undefined;
start = indexRef[start * INDEX_WIDTH + 1];
const end = ndjson.indexOf("\n", start);
return JSON.parse(ndjson.slice(start, end));
};
STAT_BY_MATCH_STR = function (matchStr: string) {
let start = dataBinarySearch(
indexMatcher,
Number(fnv1a(matchStr, { size: 32 })),
0,
INDEX_WIDTH,
);
if (start === -1) return undefined;
start = indexMatcher[start * INDEX_WIDTH + 1];
const end = ndjson.indexOf("\n", start);
const stat = JSON.parse(ndjson.slice(start, end)) as Stat;
const matcher = stat.matchers.find(
(m) => m.string === matchStr || m.advanced === matchStr,
);
if (!matcher) {
// console.log('fnv1a32 collision')
return undefined;
}
return { stat, matcher };
};
STATS_ITERATOR = ndjsonFindLines<Stat>(ndjson);
}
// assertion, to avoid regressions in stats.ndjson
const DELAYED_STAT_VALIDATION = new Set<string>();
export function stat(text: string) {
DELAYED_STAT_VALIDATION.add(text);
return text;
}
export async function init(lang: string) {
CLIENT_STRINGS_REF = (await import("./client_strings.js")).default;
ITEM_DROP = JSON.parse(
fs.readFileSync(path.resolve(__dirname, `./item-drop.json`), "utf-8"),
) as DropEntry[];
APP_PATRONS = JSON.parse(
fs.readFileSync(path.resolve(__dirname, `./patrons.json`), "utf-8"),
) as Array<{ from: string; months: number; style: number }>;
await loadForLang(lang);
let failed = false;
const missing = [];
for (const text of DELAYED_STAT_VALIDATION) {
if (STAT_BY_REF(text) == null) {
// throw new Error(`Cannot find stat: ${text}`);
missing.push(text);
failed = true;
}
}
if (failed) {
throw new Error(
`Cannot find stat${missing.length > 1 ? "s" : ""}: ${missing.join("\n")}`,
);
}
DELAYED_STAT_VALIDATION.clear();
}
export async function loadForLang(lang: string) {
CLIENT_STRINGS = (await import("./client_strings.js")).default;
await loadItems(lang);
await loadStats(lang);
}

View File

@@ -92,6 +92,7 @@ export function statSourcesTotal(
);
}
// Does actual translation?
export function translateStatWithRoll(
calc: StatCalculated,
roll: StatRoll | undefined,

View File

@@ -2,14 +2,27 @@
<div
class="bg-orange-400 text-gray-900 text-center text-sm font-bold text-shadow-lg"
>
This is in BETA for POE2, things will not work always as expected.
{{ info.str1 }}
<br />
Please report any issues.
{{ info.str2 }}
</div>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { useI18n } from "vue-i18n";
export default defineComponent({});
export default defineComponent({
setup() {
const { t } = useI18n();
const info = {
str1: t("poe2_new.beta_warning"),
str2: t("poe2_new.beta_warning2"),
};
return {
info,
};
},
});
</script>

View File

@@ -223,7 +223,6 @@ export default defineComponent({
wm.show(props.config.wmId);
checkPosition.value = e.position;
advancedCheck.value = e.focusOverlay;
item.value = (
e.item ? ok(e.item as ParsedItem) : parseClipboard(e.clipboard)
)

View File

@@ -119,9 +119,9 @@
class="mb-4 text-center bg-teal-800 rounded-xl"
:class="presets.length > 1 ? 'mt-1' : 'mt-4'"
>
Pseudo mods not supported by trade site
{{ t("poe2_new.pseudo_note") }}
<br />
Items may appear to be more valuable than they actually are
{{ t("poe2_new.pseudo_note2") }}
</div>
<!-- Handled parse error -->
<div
@@ -129,9 +129,11 @@
class="mb-4 text-center bg-purple-800 rounded-xl"
:class="presets.length > 1 ? 'mt-1' : 'mt-4'"
>
For some reason this item's stats did not parse. <br />
It likely has a mod that is not supported yet. <br />(Potentially new or
changed wording from poe1)
{{ t("poe2_new.parse_error") }}
<br />
{{ t("poe2_new.parse_error2") }}
<br />
{{ t("poe2_new.parse_error3") }}
</div>
<!-- Warning that bulk exchange does not work -->
<div
@@ -139,7 +141,7 @@
class="mb-4 text-center bg-teal-900 rounded-xl"
:class="presets.length > 1 ? 'mt-1' : 'mt-4'"
>
Bulk exchange rates are not implemented yet
{{ t("poe2_new.bulk_exchange") }}
</div>
<div

View File

@@ -1,5 +1,10 @@
// import { stat, STAT_BY_REF } from "@/assets/data";
import { STAT_BY_REF } from "@/assets/data";
import {
// populatePseudoRules,
// pseudoRules,
stat,
STAT_BY_REF,
} from "@/assets/data";
// import { STAT_BY_REF } from "@/assets/data";
import { ModifierType, StatCalculated, StatSource } from "@/parser/modifiers";
import {
calculatedStatToFilter,
@@ -7,55 +12,55 @@ import {
} from "../create-stat-filters";
import type { StatFilter } from "../interfaces";
// const RESISTANCES_INFO = [
// {
// ref: stat("+#% to All Resistances"),
// elements: ["fire", "cold", "lightning"],
// chaos: true,
// },
// {
// ref: stat("+#% to all Elemental Resistances"),
// elements: ["fire", "cold", "lightning"],
// },
// { ref: stat("+#% to Fire Resistance"), elements: ["fire"] },
// { ref: stat("+#% to Cold Resistance"), elements: ["cold"] },
// { ref: stat("+#% to Lightning Resistance"), elements: ["lightning"] },
// {
// ref: stat("+#% to Fire and Lightning Resistances"),
// elements: ["fire", "lightning"],
// },
// { ref: stat("+#% to Fire and Cold Resistances"), elements: ["fire", "cold"] },
// {
// ref: stat("+#% to Cold and Lightning Resistances"),
// elements: ["cold", "lightning"],
// },
// { ref: stat("+#% to Chaos Resistance"), elements: [], chaos: true },
// {
// ref: stat("+#% to Fire and Chaos Resistances"),
// elements: ["fire"],
// chaos: true,
// },
// {
// ref: stat("+#% to Cold and Chaos Resistances"),
// elements: ["cold"],
// chaos: true,
// },
// {
// ref: stat("+#% to Lightning and Chaos Resistances"),
// elements: ["lightning"],
// chaos: true,
// },
// ];
const RESISTANCES_INFO = [
// {
// ref: stat("+#% to All Resistances"),
// elements: ["fire", "cold", "lightning"],
// chaos: true,
// },
{
ref: stat("+#% to all Elemental Resistances"),
elements: ["fire", "cold", "lightning"],
},
{ ref: stat("+#% to Fire Resistance"), elements: ["fire"] },
{ ref: stat("+#% to Cold Resistance"), elements: ["cold"] },
{ ref: stat("+#% to Lightning Resistance"), elements: ["lightning"] },
// {
// ref: stat("+#% to Fire and Lightning Resistances"),
// elements: ["fire", "lightning"],
// },
// { ref: stat("+#% to Fire and Cold Resistances"), elements: ["fire", "cold"] },
// {
// ref: stat("+#% to Cold and Lightning Resistances"),
// elements: ["cold", "lightning"],
// },
{ ref: stat("+#% to Chaos Resistance"), elements: [""], chaos: true },
// {
// ref: stat("+#% to Fire and Chaos Resistances"),
// elements: ["fire"],
// chaos: true,
// },
// {
// ref: stat("+#% to Cold and Chaos Resistances"),
// elements: ["cold"],
// chaos: true,
// },
// {
// ref: stat("+#% to Lightning and Chaos Resistances"),
// elements: ["lightning"],
// chaos: true,
// },
];
// const ATTRIBUTES_INFO = [
// { ref: stat("+# to all Attributes"), attributes: ["str", "dex", "int"] },
// { ref: stat("+# to Strength"), attributes: ["str"] },
// { ref: stat("+# to Dexterity"), attributes: ["dex"] },
// { ref: stat("+# to Intelligence"), attributes: ["int"] },
// { ref: stat("+# to Strength and Intelligence"), attributes: ["str", "int"] },
// { ref: stat("+# to Strength and Dexterity"), attributes: ["str", "dex"] },
// { ref: stat("+# to Dexterity and Intelligence"), attributes: ["dex", "int"] },
// ];
const ATTRIBUTES_INFO = [
{ ref: stat("+# to all Attributes"), attributes: ["str", "dex", "int"] },
{ ref: stat("+# to Strength"), attributes: ["str"] },
{ ref: stat("+# to Dexterity"), attributes: ["dex"] },
{ ref: stat("+# to Intelligence"), attributes: ["int"] },
{ ref: stat("+# to Strength and Intelligence"), attributes: ["str", "int"] },
{ ref: stat("+# to Strength and Dexterity"), attributes: ["str", "dex"] },
{ ref: stat("+# to Dexterity and Intelligence"), attributes: ["dex", "int"] },
];
interface PseudoRule {
group?: string;
@@ -71,130 +76,134 @@ interface PseudoRule {
}
const PSEUDO_RULES: PseudoRule[] = [
// {
// pseudo: stat("+#% total Elemental Resistance"),
// disabled: false,
// stats: RESISTANCES_INFO.filter((info) => info.elements.length).map(
// (info) => ({ ref: info.ref, multiplier: info.elements.length }),
// ),
// },
// {
// pseudo: stat("+#% total to Fire Resistance"),
// group: "to_x_ele_res",
// stats: RESISTANCES_INFO.filter((info) =>
// info.elements.includes("fire"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+#% total to Cold Resistance"),
// group: "to_x_ele_res",
// stats: RESISTANCES_INFO.filter((info) =>
// info.elements.includes("cold"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+#% total to Lightning Resistance"),
// group: "to_x_ele_res",
// stats: RESISTANCES_INFO.filter((info) =>
// info.elements.includes("lightning"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+#% total to Chaos Resistance"),
// stats: RESISTANCES_INFO.filter((info) => info.chaos === true).map(
// (info) => ({ ref: info.ref }),
// ),
// mutate(filter) {
// if (
// filter.sources.length === 1 &&
// filter.sources[0].modifier.info.type === ModifierType.Crafted
// ) {
// filter.hidden = "filters.hide_crafted_chaos";
// } else {
// filter.disabled = false;
// }
// },
// },
// {
// pseudo: stat("+# total to all Attributes"),
// group: "to_all_attrs",
// stats: [
// { ref: stat("+# to all Attributes") },
// // NOTE: not including other sources from `ATTRIBUTES_INFO`
// ],
// },
// {
// pseudo: stat("+# total to Strength"),
// group: "to_x_attr",
// stats: ATTRIBUTES_INFO.filter((info) =>
// info.attributes.includes("str"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+# total to Dexterity"),
// group: "to_x_attr",
// stats: ATTRIBUTES_INFO.filter((info) =>
// info.attributes.includes("dex"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+# total to Intelligence"),
// group: "to_x_attr",
// stats: ATTRIBUTES_INFO.filter((info) =>
// info.attributes.includes("int"),
// ).map((info) => ({ ref: info.ref })),
// },
// {
// pseudo: stat("+# total maximum Life"),
// disabled: false,
// stats: [
// { ref: stat("+# to maximum Life"), required: true },
// ...ATTRIBUTES_INFO.filter((info) => info.attributes.includes("str")).map(
// (info) => ({ ref: info.ref, multiplier: 5 / 10 }),
// ),
// ],
// },
// {
// pseudo: stat("+# total maximum Mana"),
// stats: [
// { ref: stat("+# to maximum Mana"), required: true },
// ...ATTRIBUTES_INFO.filter((info) => info.attributes.includes("int")).map(
// (info) => ({ ref: info.ref, multiplier: 5 / 10 }),
// ),
// ],
// },
{
pseudo: stat("+#% total Elemental Resistance"),
disabled: false,
stats: RESISTANCES_INFO.filter((info) => info.elements.length).map(
(info) => ({ ref: info.ref, multiplier: info.elements.length }),
),
},
{
pseudo: stat("+#% total to Fire Resistance"),
group: "to_x_ele_res",
stats: RESISTANCES_INFO.filter((info) =>
info.elements.includes("fire"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+#% total to Cold Resistance"),
group: "to_x_ele_res",
stats: RESISTANCES_INFO.filter((info) =>
info.elements.includes("cold"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+#% total to Lightning Resistance"),
group: "to_x_ele_res",
stats: RESISTANCES_INFO.filter((info) =>
info.elements.includes("lightning"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+#% total to Chaos Resistance"),
stats: RESISTANCES_INFO.filter((info) => info.chaos === true).map(
(info) => ({ ref: info.ref }),
),
mutate(filter) {
if (
filter.sources.length === 1 &&
filter.sources[0].modifier.info.type === ModifierType.Crafted
) {
filter.hidden = "filters.hide_crafted_chaos";
} else {
filter.disabled = false;
}
},
},
{
pseudo: stat("+# total to all Attributes"),
group: "to_all_attrs",
stats: [
{ ref: stat("+# to all Attributes") },
// NOTE: not including other sources from `ATTRIBUTES_INFO`
],
},
{
pseudo: stat("+# total to Strength"),
group: "to_x_attr",
stats: ATTRIBUTES_INFO.filter((info) =>
info.attributes.includes("str"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+# total to Dexterity"),
group: "to_x_attr",
stats: ATTRIBUTES_INFO.filter((info) =>
info.attributes.includes("dex"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+# total to Intelligence"),
group: "to_x_attr",
stats: ATTRIBUTES_INFO.filter((info) =>
info.attributes.includes("int"),
).map((info) => ({ ref: info.ref })),
},
{
pseudo: stat("+# total maximum Life"),
disabled: false,
stats: [
{ ref: stat("+# to maximum Life"), required: true },
...ATTRIBUTES_INFO.filter((info) => info.attributes.includes("str")).map(
(info) => ({ ref: info.ref, multiplier: 5 / 10 }),
),
],
},
{
pseudo: stat("+# total maximum Mana"),
stats: [
{ ref: stat("+# to maximum Mana"), required: true },
...ATTRIBUTES_INFO.filter((info) => info.attributes.includes("int")).map(
(info) => ({ ref: info.ref, multiplier: 5 / 10 }),
),
],
},
{
pseudo: stat("+# total maximum Spirit"),
stats: [{ ref: stat("+# to Spirit") }],
},
// {
// pseudo: stat("#% total increased maximum Energy Shield"),
// stats: [{ ref: stat("#% increased maximum Energy Shield") }],
// },
// {
// pseudo: stat("+# total maximum Energy Shield"),
// stats: [
// { ref: stat("+# to maximum Energy Shield") }, // global
// ],
// },
// {
// pseudo: stat("+#% total Attack Speed"),
// stats: [
// { ref: stat("#% increased Attack Speed") }, // global
// // { ref: stat('#% increased Attack and Cast Speed') }
// ],
// },
// {
// pseudo: stat("+#% total Cast Speed"),
// stats: [
// { ref: stat("#% increased Cast Speed") },
// // { ref: stat('#% increased Attack and Cast Speed') }
// ],
// },
// {
// pseudo: stat("#% increased Movement Speed"),
// stats: [{ ref: stat("#% increased Movement Speed") }],
// },
// {
// pseudo: stat("#% total increased Physical Damage"),
// stats: [{ ref: stat("#% increased Global Physical Damage") }],
// },
{
pseudo: stat("+# total maximum Energy Shield"),
stats: [
{ ref: stat("+# to maximum Energy Shield") }, // global
],
},
{
pseudo: stat("+#% total Attack Speed"),
stats: [
{ ref: stat("#% increased Attack Speed") }, // global
// { ref: stat('#% increased Attack and Cast Speed') }
],
},
{
pseudo: stat("+#% total Cast Speed"),
stats: [
{ ref: stat("#% increased Cast Speed") },
// { ref: stat('#% increased Attack and Cast Speed') }
],
},
{
pseudo: stat("#% increased Movement Speed"),
stats: [{ ref: stat("#% increased Movement Speed") }],
},
{
pseudo: stat("#% total increased Physical Damage"),
stats: [{ ref: stat("#% increased Global Physical Damage") }],
},
// {
// pseudo: stat("+#% Global Critical Strike Chance"),
// group: "global_crit_chance",
@@ -215,65 +224,65 @@ const PSEUDO_RULES: PseudoRule[] = [
// pseudo: stat("+#% Global Critical Strike Multiplier"),
// stats: [{ ref: stat("+#% to Global Critical Strike Multiplier") }],
// },
// {
// pseudo: stat("#% increased Elemental Damage"),
// group: "incr_ele_dmg",
// stats: [{ ref: stat("#% increased Elemental Damage") }],
// },
// {
// pseudo: stat("#% increased Lightning Damage"),
// replaces: "incr_ele_dmg",
// stats: [
// { ref: stat("#% increased Lightning Damage"), required: true },
// { ref: stat("#% increased Elemental Damage") },
// ],
// },
// {
// pseudo: stat("#% increased Cold Damage"),
// replaces: "incr_ele_dmg",
// stats: [
// { ref: stat("#% increased Cold Damage"), required: true },
// { ref: stat("#% increased Elemental Damage") },
// ],
// },
// {
// pseudo: stat("#% increased Fire Damage"),
// group: "incr_fire_dmg",
// replaces: "incr_ele_dmg",
// stats: [
// { ref: stat("#% increased Fire Damage"), required: true },
// { ref: stat("#% increased Elemental Damage") },
// ],
// },
// {
// pseudo: stat("#% increased Spell Damage"),
// group: "incr_spell_dmg",
// stats: [{ ref: stat("#% increased Spell Damage") }],
// },
// {
// pseudo: stat("#% increased Lightning Spell Damage"),
// replaces: "incr_spell_dmg",
// stats: [
// { ref: stat("#% increased Lightning Spell Damage"), required: true },
// { ref: stat("#% increased Spell Damage") },
// ],
// },
// {
// pseudo: stat("#% increased Cold Spell Damage"),
// replaces: "incr_spell_dmg",
// stats: [
// { ref: stat("#% increased Cold Spell Damage"), required: true },
// { ref: stat("#% increased Spell Damage") },
// ],
// },
// {
// pseudo: stat("#% increased Fire Spell Damage"),
// replaces: "incr_spell_dmg",
// stats: [
// { ref: stat("#% increased Fire Spell Damage"), required: true },
// { ref: stat("#% increased Spell Damage") },
// ],
// },
{
pseudo: stat("#% increased Elemental Damage"),
group: "incr_ele_dmg",
stats: [{ ref: stat("#% increased Elemental Damage") }],
},
{
pseudo: stat("#% increased Lightning Damage"),
replaces: "incr_ele_dmg",
stats: [
{ ref: stat("#% increased Lightning Damage"), required: true },
{ ref: stat("#% increased Elemental Damage") },
],
},
{
pseudo: stat("#% increased Cold Damage"),
replaces: "incr_ele_dmg",
stats: [
{ ref: stat("#% increased Cold Damage"), required: true },
{ ref: stat("#% increased Elemental Damage") },
],
},
{
pseudo: stat("#% increased Fire Damage"),
group: "incr_fire_dmg",
replaces: "incr_ele_dmg",
stats: [
{ ref: stat("#% increased Fire Damage"), required: true },
{ ref: stat("#% increased Elemental Damage") },
],
},
{
pseudo: stat("#% increased Spell Damage"),
group: "incr_spell_dmg",
stats: [{ ref: stat("#% increased Spell Damage") }],
},
{
pseudo: stat("#% increased Lightning Spell Damage"),
replaces: "incr_spell_dmg",
stats: [
{ ref: stat("#% increased Lightning Spell Damage"), required: true },
{ ref: stat("#% increased Spell Damage") },
],
},
{
pseudo: stat("#% increased Cold Spell Damage"),
replaces: "incr_spell_dmg",
stats: [
{ ref: stat("#% increased Cold Spell Damage"), required: true },
{ ref: stat("#% increased Spell Damage") },
],
},
{
pseudo: stat("#% increased Fire Spell Damage"),
replaces: "incr_spell_dmg",
stats: [
{ ref: stat("#% increased Fire Spell Damage"), required: true },
{ ref: stat("#% increased Spell Damage") },
],
},
// {
// pseudo: stat("#% increased Elemental Damage with Attack Skills"),
// replaces: "incr_ele_dmg",
@@ -310,10 +319,10 @@ const PSEUDO_RULES: PseudoRule[] = [
// pseudo: stat("#% of Physical Attack Damage Leeched as Mana"),
// stats: [{ ref: stat("#% of Physical Attack Damage Leeched as Mana") }],
// },
// {
// pseudo: stat("#% increased Mana Regeneration Rate"),
// stats: [{ ref: stat("#% increased Mana Regeneration Rate") }],
// },
{
pseudo: stat("#% increased Mana Regeneration Rate"),
stats: [{ ref: stat("#% increased Mana Regeneration Rate") }],
},
];
export function filterPseudo(ctx: FiltersCreationContext) {

View File

@@ -28,7 +28,6 @@ export function apiToSatisfySearch(
stats: StatFilter[],
filters: ItemFilters,
): "trade" | "bulk" {
console.log("item", item, "filter", filters, "stats", stats);
if (stats.some((s) => !s.disabled)) {
return "trade";
}

View File

@@ -16,7 +16,7 @@ import {
RATE_LIMIT_RULES,
preventQueueCreation,
} from "./common";
import { STAT_BY_REF } from "@/assets/data";
import { PSEUDO_ID_TO_TRADE_REQUEST, STAT_BY_REF } from "@/assets/data";
import { RateLimiter } from "./RateLimiter";
import { ModifierType } from "@/parser/modifiers";
import { Cache } from "./Cache";
@@ -105,7 +105,7 @@ interface TradeRequest {
name?: string | { discriminator: string; option: string };
type?: string | { discriminator: string; option: string };
stats: Array<{
type: "and" | "if" | "count" | "not";
type: "and" | "if" | "count" | "not" | "weight";
value?: FilterRange;
filters: Array<{
id: string;
@@ -113,6 +113,7 @@ interface TradeRequest {
min?: number;
max?: number;
option?: number | string;
weight?: number;
};
disabled?: boolean;
}>;
@@ -299,6 +300,7 @@ export function createTradeRequest(
);
}
// Search by category not base type?
const activeSearch =
filters.searchRelaxed && !filters.searchRelaxed.disabled
? filters.searchRelaxed
@@ -427,6 +429,7 @@ export function createTradeRequest(
// BREAK ==============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
// Meta internal stuff, crafting as empty and setting dps/pdps/edps
for (const stat of stats) {
if (stat.tradeId[0] === "item.has_empty_modifier") {
const TARGET_ID = {
@@ -663,7 +666,9 @@ export function createTradeRequest(
const qAnd = query.stats[0];
for (const stat of stats) {
if (stat.tradeId.length === 1) {
if (stat.tradeId[0].startsWith("pseudo.")) {
query.stats.push(pseudoPseudoToQuery(stat.tradeId[0], stat));
} else if (stat.tradeId.length === 1) {
qAnd.filters.push(tradeIdToQuery(stat.tradeId[0], stat));
} else {
query.stats.push({
@@ -699,7 +704,7 @@ export async function requestTradeResultList(
{
method: "POST",
headers: {
"Accept": "application/json",
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify(body),
@@ -844,3 +849,10 @@ function nameToQuery(name: string, filters: ItemFilters) {
};
}
}
function pseudoPseudoToQuery(id: string, stat: StatFilter) {
const filter = PSEUDO_ID_TO_TRADE_REQUEST[id];
filter["value"] = { ...getMinMax(stat.roll) };
filter["disabled"] = stat.disabled;
return filter;
}

View File

@@ -12,12 +12,32 @@
"useDefineForClassFields": true,
"sourceMap": true,
"paths": {
"@/*": ["./src/*"],
"@ipc/*": ["../ipc/*"]
"@/*": [
"./src/*"
],
"@ipc/*": [
"../ipc/*"
]
},
"types": ["vite/client"],
"lib": ["esnext", "dom", "dom.iterable"]
"types": [
"vite/client",
"vitest/importMeta"
],
"lib": [
"esnext",
"dom",
"dom.iterable"
]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"references": [{ "path": "./tsconfig.node.json" }]
}
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue"
],
"references": [
{
"path": "./tsconfig.node.json"
}
]
}

18
renderer/vitest.config.ts Normal file
View File

@@ -0,0 +1,18 @@
import { defineConfig } from "vitest/config";
import tsconfigPaths from "vite-tsconfig-paths";
export default defineConfig({
plugins: [tsconfigPaths()],
test: {
includeSource: ["src/**/*.{js,ts}"],
globals: true,
},
define: {
"import.meta.vitest": "undefined",
},
resolve: {
alias: {
"@/assets/data/en": "./src/parser/en",
},
},
});