updated item sets, added weapons

This commit is contained in:
Frederik Palmø 2022-03-28 15:49:04 +02:00
parent e915935cc8
commit 5ecc78faed
19 changed files with 38718 additions and 1640 deletions

View File

@ -11,7 +11,7 @@
<title>Erdtree - Class Optimizer</title>
<meta name="description" content="">
<script src="/script/optimizer.js"></script>
<script src="/script/class.js"></script>
</head>
<body onload="init();">

View File

@ -1,12 +0,0 @@
[
{
"id": "alberichs-set",
"name": "Alberich's Set",
"pieces": [
"alberichs-pointed-hat",
"alberichs-robe",
"alberichs-bracers",
"alberichs-trousers"
]
}
]

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +1,62 @@
[
{
"id": "vagabond",
"name": "Vagabond",
"level": 9,
"stats": [15, 10, 11, 14, 13, 9, 9, 7]
{
"wretch": {
"id": "wretch",
"name": "Wretch",
"level": 1,
"stats": [10, 10, 10, 10, 10, 10, 10, 10]
},
{
"warrior": {
"id": "warrior",
"name": "Warrior",
"level": 8,
"stats": [11, 12, 11, 10, 16, 10, 8, 9]
},
{
"id": "hero",
"name": "Hero",
"level": 7,
"stats": [14, 9, 12, 16, 9, 7, 8, 11]
"vagabond": {
"id": "vagabond",
"name": "Vagabond",
"level": 9,
"stats": [15, 10, 11, 14, 13, 9, 9, 7]
},
{
"id": "bandit",
"name": "Bandit",
"level": 5,
"stats": [10, 11, 10, 9, 13, 9, 8, 14]
"samurai": {
"id": "samurai",
"name": "Samurai",
"level": 10,
"stats": [10, 13, 10, 12, 12, 9, 14, 9]
},
{
"id": "astrologer",
"name": "Astrologer",
"level": 6,
"stats": [9, 15, 9, 8, 12, 16, 7, 9]
},
{
"prophet": {
"id": "prophet",
"name": "Prophet",
"level": 7,
"stats": [10, 14, 8, 11, 10, 7, 16, 10]
},
{
"id": "samurai",
"name": "Samurai",
"level": 9,
"stats": [12, 11, 13, 12, 15, 9, 8, 8]
},
{
"prisoner": {
"id": "prisoner",
"name": "Prisoner",
"level": 9,
"stats": [11, 12, 11, 11, 14, 14, 6, 9]
"stats": [12, 11, 13, 12, 15, 9, 8, 8]
},
{
"hero": {
"id": "hero",
"name": "Hero",
"level": 7,
"stats": [14, 9, 12, 16, 9, 7, 8, 11]
},
"confessor": {
"id": "confessor",
"name": "Confessor",
"level": 10,
"stats": [10, 13, 10, 12, 12, 9, 14, 9]
"level": 9,
"stats": [11, 12, 11, 11, 14, 14, 6, 9]
},
{
"id": "wretch",
"name": "Wretch",
"level": 1,
"stats": [10, 10, 10, 10, 10, 10, 10, 10]
"bandit": {
"id": "bandit",
"name": "Bandit",
"level": 5,
"stats": [10, 11, 10, 9, 13, 9, 8, 14]
},
"astrologer": {
"id": "astrologer",
"name": "Astrologer",
"level": 6,
"stats": [9, 15, 9, 8, 12, 16, 7, 9]
}
]
}

410
src/data/damage.json Normal file
View File

@ -0,0 +1,410 @@
{
"0": {
"id": "0",
"softcaps": [
[1, 18, 60, 80, 150],
[1, 18, 60, 80, 150],
[1, 18, 60, 80, 150],
[1, 18, 60, 80, 150],
[1, 18, 60, 80, 150]
],
"growth": [
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"1": {
"id": "1",
"softcaps": [
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150]
],
"growth": [
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"2": {
"id": "2",
"softcaps": [
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150]
],
"growth": [
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"3": {
"id": "3",
"softcaps": [
[1, 20, 30, 50, 99],
[1, 20, 30, 50, 99],
[1, 20, 30, 50, 99],
[1, 20, 30, 50, 99],
[1, 20, 30, 50, 99]
],
"growth": [
[0, 30, 62, 82, 100],
[0, 30, 62, 82, 100],
[0, 30, 62, 82, 100],
[0, 30, 62, 82, 100],
[0, 30, 62, 82, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"4": {
"id": "4",
"softcaps": [
[1, 20, 50, 80, 99],
[1, 20, 50, 80, 99],
[1, 20, 50, 80, 99],
[1, 20, 50, 80, 99],
[1, 20, 50, 80, 99]
],
"growth": [
[0, 40, 80, 95, 100],
[0, 40, 80, 95, 100],
[0, 40, 80, 95, 100],
[0, 40, 80, 95, 100],
[0, 40, 80, 95, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"5": {
"id": "5",
"softcaps": [
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99]
],
"growth": [
[0, 75, 225, 270, 300],
[0, 75, 225, 270, 300],
[0, 75, 225, 270, 300],
[0, 75, 225, 270, 300],
[0, 75, 225, 270, 300]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"6": {
"id": "6",
"softcaps": [
[1, 25, 45, 60, 99],
[1, 25, 45, 60, 99],
[1, 25, 45, 60, 99],
[1, 25, 45, 60, 99],
[1, 25, 45, 60, 99]
],
"growth": [
[0, 10, 75, 90, 100],
[0, 10, 75, 90, 100],
[0, 10, 75, 90, 100],
[0, 10, 75, 90, 100],
[0, 10, 75, 90, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"7": {
"id": "7",
"softcaps": [
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150],
[1, 20, 60, 80, 150]
],
"growth": [
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110],
[0, 35, 75, 90, 110]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"8": {
"id": "8",
"softcaps": [
[1, 16, 60, 80, 150],
[1, 16, 60, 80, 150],
[1, 16, 60, 80, 150],
[1, 16, 60, 80, 150],
[1, 16, 60, 80, 150]
],
"growth": [
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110],
[0, 25, 75, 90, 110]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"9": {
"id": "9",
"softcaps": [
[1, 20, 60, 80, 99],
[1, 20, 60, 80, 99],
[1, 20, 60, 80, 99],
[1, 20, 60, 80, 99],
[1, 20, 60, 80, 99]
],
"growth": [
[0, 20, 80, 95, 100],
[0, 20, 80, 95, 100],
[0, 20, 80, 95, 100],
[0, 20, 80, 95, 100],
[0, 20, 80, 95, 100]
],
"adjustments": [
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0],
[1.2, -1.2, 1.0, 1.0, 1.0]
]
},
"10": {
"id": "10",
"softcaps": [
[1, 15, 30, 50, 99],
[1, 15, 30, 50, 99],
[1, 15, 30, 50, 99],
[1, 15, 30, 50, 99],
[1, 15, 30, 50, 99]
],
"growth": [
[0, 10, 50, 60, 70],
[0, 10, 50, 60, 70],
[0, 10, 50, 60, 70],
[0, 10, 50, 60, 70],
[0, 10, 50, 60, 70]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"11": {
"id": "11",
"softcaps": [
[1, 25, 30, 80, 150],
[1, 25, 30, 80, 150],
[1, 25, 30, 80, 150],
[1, 25, 30, 80, 150],
[1, 25, 30, 80, 150]
],
"growth": [
[0, 0, 35, 90, 110],
[0, 0, 35, 90, 110],
[0, 0, 35, 90, 110],
[0, 0, 35, 90, 110],
[0, 0, 35, 90, 110]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"12": {
"id": "12",
"softcaps": [
[1, 15, 30, 45, 99],
[1, 15, 30, 45, 99],
[1, 15, 30, 45, 99],
[1, 15, 30, 45, 99],
[1, 15, 30, 45, 99]
],
"growth": [
[0, 10, 55, 75, 100],
[0, 10, 55, 75, 100],
[0, 10, 55, 75, 100],
[0, 10, 55, 75, 100],
[0, 10, 55, 75, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"13": {
"id": "13",
"softcaps": [
[1, 25, 30, 80, 99],
[1, 25, 30, 80, 99],
[1, 25, 30, 80, 99],
[1, 25, 30, 80, 99],
[1, 25, 30, 80, 99]
],
"growth": [
[0, 0, 35, 90, 100],
[0, 0, 35, 90, 100],
[0, 0, 35, 90, 100],
[0, 0, 35, 90, 100],
[0, 0, 35, 90, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"14": {
"id": "14",
"softcaps": [
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99],
[1, 20, 40, 80, 99]
],
"growth": [
[0, 40, 60, 85, 100],
[0, 40, 60, 85, 100],
[0, 40, 60, 85, 100],
[0, 40, 60, 85, 100],
[0, 40, 60, 85, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"15": {
"id": "15",
"softcaps": [
[1, 25, 60, 80, 99],
[1, 25, 60, 80, 99],
[1, 25, 60, 80, 99],
[1, 25, 60, 80, 99],
[1, 25, 60, 80, 99]
],
"growth": [
[0, 25, 65, 95, 100],
[0, 25, 65, 95, 100],
[0, 25, 65, 95, 100],
[0, 25, 65, 95, 100],
[0, 25, 65, 95, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
},
"16": {
"id": "16",
"softcaps": [
[1, 18, 60, 80, 99],
[1, 18, 60, 80, 99],
[1, 18, 60, 80, 99],
[1, 18, 60, 80, 99],
[1, 18, 60, 80, 99]
],
"growth": [
[0, 20, 75, 90, 100],
[0, 20, 75, 90, 100],
[0, 20, 75, 90, 100],
[0, 20, 75, 90, 100],
[0, 20, 75, 90, 100]
],
"adjustments": [
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0]
]
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

106
src/data/infusions.json Normal file
View File

@ -0,0 +1,106 @@
{
"standard": {
"id": "standard",
"name": "Standard",
"damage": [1.0, 1.0, 1.0, 1.0, 1.0],
"upgrade": [0.058, 0.058, 0.058, 0.058, 0.058],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.02, 0.02, 0.03243, 0.03243, 0.03243]
},
"heavy": {
"id": "heavy",
"name": "Heavy",
"damage": [0.95, 0.95, 0.95, 0.95, 0.95],
"upgrade": [0.056, 0.056, 0.056, 0.056, 0.056],
"scaling": [1.8, 0.0, 1.0, 1.0, 1.0],
"growth": [0.04128, 0.0, 0.03243, 0.03243, 0.03243]
},
"keen": {
"id": "keen",
"name": "Keen",
"damage": [0.95, 0.95, 0.95, 0.95, 0.95],
"upgrade": [0.056, 0.056, 0.056, 0.056, 0.056],
"scaling": [0.5, 1.8, 1.0, 1.0, 1.0],
"growth": [0.02815, 0.04128, 0.03243, 0.03243, 0.03243]
},
"quality": {
"id": "quality",
"name": "Quality",
"damage": [0.9, 0.9, 0.9, 0.9, 0.9],
"upgrade": [0.046, 0.046, 0.046, 0.046, 0.046],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.036, 0.036, 0.03243, 0.03243, 0.03243]
},
"fire": {
"id": "fire",
"name": "Fire",
"damage": [0.8, 0.8, 0.8, 0.8, 0.8],
"upgrade": [0.036, 0.036, 0.036, 0.036, 0.036],
"scaling": [1.3, 0.5, 1.0, 1.0, 1.0],
"growth": [0.03243, 0.02885, 0.03243, 0.03243, 0.03243]
},
"flame-art": {
"id": "flame-art",
"name": "Flame Art",
"damage": [0.85, 0.85, 0.85, 0.85, 0.85],
"upgrade": [0.044, 0.044, 0.044, 0.044, 0.044],
"scaling": [0.8, 0.8, 1.0, 1.0, 1.0],
"growth": [0.04128, 0.04128, 0.04354, 0.05371, 0.03243]
},
"lightning": {
"id": "lightning",
"name": "Lightning",
"damage": [0.8, 0.8, 0.8, 0.8, 0.8],
"upgrade": [0.036, 0.036, 0.036, 0.036, 0.036],
"scaling": [0.5, 1.3, 1.0, 1.0, 1.0],
"growth": [0.02885, 0.03243, 0.03243, 0.03243, 0.03243]
},
"sacred": {
"id": "sacred",
"name": "Sacred",
"damage": [0.75, 0.75, 0.75, 0.75, 0.75],
"upgrade": [0.048, 0.048, 0.048, 0.048, 0.048],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.03243, 0.03243, 0.03243, 0.05371, 0.03243]
},
"magic": {
"id": "magic",
"name": "Magic",
"damage": [0.75, 0.75, 0.75, 0.75, 0.75],
"upgrade": [0.048, 0.048, 0.048, 0.048, 0.048],
"scaling": [0.8, 0.8, 1.0, 1.0, 1.0],
"growth": [0.01829, 0.01829, 0.05485, 0.03243, 0.03243]
},
"cold": {
"id": "cold",
"name": "Cold",
"damage": [0.85, 0.85, 0.85, 0.85, 0.85],
"upgrade": [0.038, 0.038, 0.038, 0.038, 0.038],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.036, 0.036, 0.04128, 0.03243, 0.03243]
},
"poison": {
"id": "poison",
"name": "Poison",
"damage": [0.85, 0.85, 0.85, 0.85, 0.85],
"upgrade": [0.052, 0.052, 0.052, 0.052, 0.052],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.03472, 0.03472, 0.03472, 0.03472, 0.01715]
},
"blood": {
"id": "blood",
"name": "Blood",
"damage": [0.85, 0.85, 0.85, 0.85, 0.85],
"upgrade": [0.052, 0.052, 0.052, 0.052, 0.052],
"scaling": [1.0, 1.0, 1.0, 1.0, 1.0],
"growth": [0.03472, 0.03472, 0.03472, 0.03472, 0.01715]
},
"occult": {
"id": "occult",
"name": "Occult",
"damage": [0.9, 0.9, 0.9, 0.9, 0.9],
"upgrade": [0.054, 0.054, 0.054, 0.054, 0.054],
"scaling": [0.8, 0.8, 0.8, 0.8, 1.0],
"growth": [0.02715, 0.02715, 0.02715, 0.02715, 0.03243]
}
}

View File

@ -1,29 +1,29 @@
[
{
{
"no-leggings": {
"id": "no-leggings",
"name": "No Item",
"defenses": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"resistances": [0.0, 0.0, 0.0, 0.0],
"name": "None",
"defenses": [0, 0, 0, 0, 0, 0, 0, 0],
"resistances": [0, 0, 0, 0],
"poise": 0,
"weight": 0
},
{
"alberichs-trousers": {
"id": "alberichs-trousers",
"name": "Alberich's Trousers",
"defenses": [3, 2.3, 3, 3, 7.3, 6.8, 7.2, 7.3],
"defenses": [3.0, 2.3, 3.0, 3.0, 7.3, 6.8, 7.2, 7.3],
"resistances": [26, 14, 41, 44],
"poise": 1,
"weight": 2.5
},
{
"all-knowing-greaves": {
"id": "all-knowing-greaves",
"name": "All-Knowing Greaves",
"defenses": [7.4, 6.8, 7.7, 6.8, 7.1, 5.4, 5.8, 5.4],
"defenses": [7.4, 6.8, 7.7, 6.8, 7.1, 5.4, 5.8, 5.0],
"resistances": [17, 29, 13, 13],
"poise": 10,
"weight": 6.6
},
{
"aristocrat-boots": {
"id": "aristocrat-boots",
"name": "Aristocrat Boots",
"defenses": [4.3, 4.8, 4.3, 4.3, 3.6, 3.8, 4.3, 3.6],
@ -31,7 +31,7 @@
"poise": 1,
"weight": 2.9
},
{
"astrologer-trousers": {
"id": "astrologer-trousers",
"name": "Astrologer Trousers",
"defenses": [3.8, 3.4, 3.4, 3.4, 7.7, 7.4, 7.6, 7.4],
@ -39,15 +39,15 @@
"poise": 3,
"weight": 3.9
},
{
"bandit-boots": {
"id": "bandit-boots",
"name": "Bandit Boots",
"defenses": [4, 4.5, 5, 5.4, 5.4, 5.4, 5.8, 5],
"defenses": [4.0, 4.5, 5.0, 5.0, 5.4, 5.4, 5.8, 5.0],
"resistances": [34, 20, 35, 35],
"poise": 2,
"weight": 4.4
},
{
"banished-knight-greaves": {
"id": "banished-knight-greaves",
"name": "Banished Knight Greaves",
"defenses": [10.8, 8.6, 11.1, 10.1, 7.7, 7.7, 7.4, 7.6],
@ -55,15 +55,15 @@
"poise": 17,
"weight": 10.8
},
{
"battlemage-legwraps": {
"id": "battlemage-legwraps",
"name": "Battlemage Legwraps",
"defenses": [3, 3.4, 2.3, 3, 7.4, 6.8, 7.1, 7.2],
"defenses": [3.0, 3.4, 2.3, 3.0, 7.4, 6.8, 7.1, 7.2],
"resistances": [26, 14, 39, 44],
"poise": 1,
"weight": 2.5
},
{
"beast-champion-greaves": {
"id": "beast-champion-greaves",
"name": "Beast Champion Greaves",
"defenses": [10.1, 9.4, 10.8, 10.6, 7.4, 7.9, 7.3, 7.7],
@ -71,15 +71,15 @@
"poise": 17,
"weight": 10.8
},
{
"black-knife-greaves": {
"id": "black-knife-greaves",
"name": "Black Knife Greaves",
"defenses": [6.5, 6.2, 7.1, 7.1, 5, 5.4, 3.8, 6.5],
"defenses": [6.5, 6.2, 7.1, 7.1, 5.0, 5.4, 3.8, 6.5],
"resistances": [17, 29, 14, 14],
"poise": 8,
"weight": 5.7
},
{
"blackflame-monk-greaves": {
"id": "blackflame-monk-greaves",
"name": "Blackflame Monk Greaves",
"defenses": [7.7, 6.5, 8.4, 7.4, 5.8, 7.4, 4.5, 5.8],
@ -87,7 +87,7 @@
"poise": 11,
"weight": 7.3
},
{
"blaidds-greaves": {
"id": "blaidds-greaves",
"name": "Blaidd's Greaves",
"defenses": [8.4, 7.3, 8.4, 8.8, 6.5, 7.3, 6.2, 6.8],
@ -95,31 +95,31 @@
"poise": 14,
"weight": 8.5
},
{
"bloodhound-knight-greaves": {
"id": "bloodhound-knight-greaves",
"name": "Bloodhound Knight Greaves",
"defenses": [7.1, 6.5, 8, 7.7, 5.4, 5.8, 4, 5.8],
"defenses": [7.1, 6.5, 8.0, 7.7, 5.4, 5.8, 4.0, 5.8],
"resistances": [20, 31, 14, 14],
"poise": 8,
"weight": 6.6
},
{
"blue-silver-mail-skirt": {
"id": "blue-silver-mail-skirt",
"name": "Blue Silver Mail Skirt",
"defenses": [6.8, 5, 7.1, 6.2, 5.8, 5.4, 4, 4],
"defenses": [6.8, 5.0, 7.1, 6.2, 5.8, 5.4, 4.0, 4.0],
"resistances": [15, 35, 7, 7],
"poise": 7,
"weight": 5.5
},
{
"briar-greaves": {
"id": "briar-greaves",
"name": "Briar Greaves",
"defenses": [7.4, 6.5, 7.7, 7.2, 6.2, 7.1, 7.1, 6.2],
"defenses": [7.4, 6.5, 7.7, 7.1, 6.2, 7.1, 5.0, 6.2],
"resistances": [22, 44, 15, 15],
"poise": 9,
"weight": 7.3
},
{
"bull-goat-greaves": {
"id": "bull-goat-greaves",
"name": "Bull-Goat Greaves",
"defenses": [11.9, 11.8, 10.6, 10.6, 7.6, 7.7, 8.5, 7.3],
@ -127,7 +127,7 @@
"poise": 28,
"weight": 16.4
},
{
"carian-knight-greaves": {
"id": "carian-knight-greaves",
"name": "Carian Knight Greaves",
"defenses": [6.8, 6.2, 7.1, 6.8, 7.1, 6.8, 5.4, 6.8],
@ -135,23 +135,23 @@
"poise": 7,
"weight": 6.6
},
{
"chain-leggings": {
"id": "chain-leggings",
"name": "Chain Leggings",
"defenses": [6.8, 5, 7.4, 6.8, 4, 6.2, 3.4, 4.5],
"defenses": [6.8, 5.0, 7.4, 6.8, 4.0, 6.2, 3.4, 4.5],
"resistances": [16, 26, 7, 11],
"poise": 7,
"weight": 5.5
},
{
"champion-gaiters": {
"id": "champion-gaiters",
"name": "Champion Gaiters",
"defenses": [3.8, 5, 4, 4.5, 4.5, 5.4, 5.8, 5.4],
"defenses": [3.8, 5.0, 4.0, 4.5, 4.5, 5.4, 5.8, 5.4],
"resistances": [31, 20, 26, 24],
"poise": 3,
"weight": 3.9
},
{
"cleanrot-greaves": {
"id": "cleanrot-greaves",
"name": "Cleanrot Greaves",
"defenses": [8.4, 7.6, 9.2, 10.1, 7.2, 7.3, 6.5, 7.7],
@ -159,55 +159,55 @@
"poise": 13,
"weight": 9.3
},
{
"cloth-trousers": {
"id": "cloth-trousers",
"name": "Cloth Trousers",
"defenses": [3, 2.3, 1.5, 2.3, 7.3, 7.1, 6.8, 7.1],
"defenses": [3.0, 2.3, 1.5, 2.3, 7.3, 7.1, 6.8, 7.1],
"resistances": [26, 14, 37, 37],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"commoners-shoes": {
"id": "commoners-shoes",
"name": "Commoner's Shoes",
"defenses": [1.5, 3, 3, 2.3, 7.1, 6.5, 6.8, 7.1],
"defenses": [1.5, 3.0, 3.0, 2.3, 7.1, 6.5, 6.8, 7.1],
"resistances": [22, 14, 39, 41],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"confessor-boots": {
"id": "confessor-boots",
"name": "Confessor Boots",
"defenses": [4.5, 5.8, 4.5, 5, 6.2, 6.2, 6.8, 5.4],
"defenses": [4.5, 5.8, 4.5, 5.0, 6.2, 6.2, 6.8, 5.4],
"resistances": [37, 29, 29, 31],
"poise": 3,
"weight": 4.8
},
{
"consorts-trousers": {
"id": "consorts-trousers",
"name": "Consort's Trousers",
"defenses": [3, 2.3, 2.3, 3, 7.4, 7.1, 7.1, 7.3],
"defenses": [3.0, 2.3, 2.3, 3.0, 7.4, 7.1, 7.1, 7.3],
"resistances": [29, 15, 41, 39],
"poise": 1,
"weight": 2.5
},
{
"crucible-greaves": {
"id": "crucible-greaves",
"name": "Crucible Greaves",
"defenses": [10.1, 8, 9.6, 9.6, 7.4, 7.3, 6.5, 7.7],
"defenses": [10.1, 8.0, 9.6, 9.6, 7.4, 7.3, 6.5, 7.7],
"resistances": [31, 44, 22, 22],
"poise": 16,
"weight": 9.6
},
{
"cuckoo-knight-greaves": {
"id": "cuckoo-knight-greaves",
"name": "Cuckoo Knight Greaves",
"defenses": [3.3, 3.6, 2.8, 3.3, 3.1, 2.9, 2.1, 2.5],
"resistances": [11, 19, 8, 8],
"poise": 4,
"weight": 3.9
"defenses": [7.7, 6.5, 8.4, 7.7, 7.1, 6.8, 5.0, 5.8],
"resistances": [20, 35, 15, 15],
"poise": 11,
"weight": 7.3
},
{
"depraved-perfumer-trousers": {
"id": "depraved-perfumer-trousers",
"name": "Depraved Perfumer Trousers",
"defenses": [3.9, 3.9, 3.7, 3.3, 7.8, 7.5, 7.3, 7.5],
@ -215,47 +215,47 @@
"poise": 2,
"weight": 4.3
},
{
"drake-knight-greaves": {
"id": "drake-knight-greaves",
"name": "Drake Knight Greaves",
"defenses": [6.5, 5.4, 6.8, 6.5, 5.8, 6.5, 5, 5.8],
"defenses": [6.5, 5.4, 6.8, 6.5, 5.8, 6.5, 5.0, 5.8],
"resistances": [16, 29, 13, 13],
"poise": 8,
"weight": 5.7
},
{
"duelist-greaves": {
"id": "duelist-greaves",
"name": "Duelist Greaves",
"defenses": [8, 7.1, 8, 7.4, 5.8, 6.8, 5.4, 6.2],
"defenses": [8.0, 7.1, 8.0, 7.4, 5.8, 6.8, 5.4, 6.2],
"resistances": [29, 31, 15, 15],
"poise": 11,
"weight": 7.3
},
{
"eccentrics-breeches": {
"id": "eccentrics-breeches",
"name": "Eccentric's Breeches",
"defenses": [6.5, 4.5, 6.2, 6.5, 4.5, 5, 3, 4],
"defenses": [6.5, 4.5, 6.2, 6.5, 4.5, 5.0, 3.0, 4.0],
"resistances": [15, 31, 7, 7],
"poise": 6,
"weight": 5.1
},
{
"elden-lord-greaves": {
"id": "elden-lord-greaves",
"name": "Elden Lord Greaves",
"defenses": [6.5, 5.8, 6.2, 6.8, 4.5, 6.2, 3.8, 4],
"defenses": [6.5, 5.8, 6.2, 6.8, 4.5, 6.2, 3.8, 4.0],
"resistances": [16, 31, 7, 11],
"poise": 7,
"weight": 5.5
},
{
"errant-sorcerer-boots": {
"id": "errant-sorcerer-boots",
"name": "Errant Sorcerer Boots",
"defenses": [3, 3, 3.8, 3, 7.6, 7.3, 7.2, 7.6],
"defenses": [3.0, 3.0, 3.8, 3.0, 7.6, 7.3, 7.2, 7.6],
"resistances": [24, 15, 47, 51],
"poise": 1,
"weight": 3.1
},
{
"exile-greaves": {
"id": "exile-greaves",
"name": "Exile Greaves",
"defenses": [7.1, 5.4, 7.4, 7.1, 4.5, 6.2, 3.8, 5.4],
@ -263,15 +263,15 @@
"poise": 8,
"weight": 5.7
},
{
"finger-maiden-shoes": {
"id": "finger-maiden-shoes",
"name": "Finger Maiden Shoes",
"defenses": [3, 2.3, 2.3, 1.5, 7.6, 7.2, 7.3, 7.6],
"defenses": [3.0, 2.3, 2.3, 1.5, 7.6, 7.2, 7.3, 7.6],
"resistances": [24, 13, 39, 39],
"poise": 1,
"weight": 2.5
},
{
"fingerprint-greaves": {
"id": "fingerprint-greaves",
"name": "Fingerprint Greaves",
"defenses": [7.7, 6.8, 6.8, 6.8, 5.4, 7.2, 3.8, 5.4],
@ -279,15 +279,15 @@
"poise": 11,
"weight": 6.6
},
{
"fire-monk-greaves": {
"id": "fire-monk-greaves",
"name": "Fire Monk Greaves",
"defenses": [8, 7.1, 7.7, 7.1, 6.2, 7.6, 5.4, 5.4],
"defenses": [8.0, 7.1, 7.7, 7.1, 6.2, 7.6, 5.4, 5.4],
"resistances": [20, 34, 15, 15],
"poise": 10,
"weight": 7.3
},
{
"fire-prelate-greaves": {
"id": "fire-prelate-greaves",
"name": "Fire Prelate Greaves",
"defenses": [11.1, 9.8, 10.6, 10.6, 7.7, 11.5, 7.4, 7.6],
@ -295,7 +295,7 @@
"poise": 24,
"weight": 15.3
},
{
"foot-soldier-greaves": {
"id": "foot-soldier-greaves",
"name": "Foot Soldier Greaves",
"defenses": [5.4, 5.8, 5.4, 5.4, 6.2, 6.5, 6.8, 6.2],
@ -303,31 +303,31 @@
"poise": 4,
"weight": 5.1
},
{
"fur-leggings": {
"id": "fur-leggings",
"name": "Fur Leggings",
"defenses": [3.4, 3.8, 3.4, 3.4, 3.8, 4, 5, 4],
"defenses": [3.4, 3.8, 3.4, 3.4, 3.8, 4.0, 5.0, 4.0],
"resistances": [39, 26, 34, 24],
"poise": 1,
"weight": 3.1
},
{
"gelmir-knight-greaves": {
"id": "gelmir-knight-greaves",
"name": "Gelmir Knight Greaves",
"defenses": [7.7, 6.5, 8, 7.7, 6.2, 7.1, 5.8, 6.2],
"defenses": [7.7, 6.5, 8.0, 7.7, 6.2, 7.1, 5.8, 6.2],
"resistances": [22, 34, 15, 14],
"poise": 11,
"weight": 7.3
},
{
"godrick-knight-greaves": {
"id": "godrick-knight-greaves",
"name": "Godrick Knight Greaves",
"defenses": [7.7, 6.8, 8, 7.4, 6.2, 6.8, 5.4, 6.2],
"defenses": [7.7, 6.8, 8.0, 7.4, 6.2, 6.8, 5.4, 6.2],
"resistances": [22, 35, 15, 15],
"poise": 11,
"weight": 7.3
},
{
"godrick-soldier-greaves": {
"id": "godrick-soldier-greaves",
"name": "Godrick Soldier Greaves",
"defenses": [7.4, 6.5, 7.4, 7.1, 5.8, 6.2, 4.5, 5.4],
@ -335,31 +335,30 @@
"poise": 10,
"weight": 6.6
},
{
"godskin-apostle-trousers": {
"id": "godskin-apostle-trousers",
"name": "Godskin Apostle Trousers",
"defenses": [3.4, 3, 3, 1.5, 7.2, 6.8, 7.1, 7.9],
"resistances": [26, 13, 41, 39],
"defenses": [2.3, 4.5, 3.0, 2.3, 7.2, 6.5, 6.8, 7.7],
"resistances": [24, 14, 39, 41],
"poise": 1,
"weight": 2.5
},
{
"id": "godskin-noble-trousers",
"godskin-noble-trousers": {
"name": "Godskin Noble Trousers",
"defenses": [2.3, 4.5, 3, 2.3, 7.2, 6.5, 6.8, 7.7],
"resistances": [24, 14, 39, 41],
"poise": 1,
"weight": 2.5
},
{
"gold-waistwrap": {
"id": "gold-waistwrap",
"name": "Gold Waistwrap",
"defenses": [4, 3.8, 3.8, 3, 7.6, 7.4, 7.6, 8.1],
"defenses": [4.0, 3.8, 3.8, 3.0, 7.6, 7.4, 7.6, 8.1],
"resistances": [35, 15, 56, 56],
"poise": 3,
"weight": 4.4
},
{
"guardian-greaves": {
"id": "guardian-greaves",
"name": "Guardian Greaves",
"defenses": [6.2, 5.8, 5.8, 5.4, 6.8, 6.5, 6.8, 6.8],
@ -367,7 +366,7 @@
"poise": 3,
"weight": 5.5
},
{
"haligtree-greaves": {
"id": "haligtree-greaves",
"name": "Haligtree Greaves",
"defenses": [7.4, 6.8, 7.1, 7.4, 5.4, 5.8, 4.5, 5.8],
@ -375,7 +374,7 @@
"poise": 9,
"weight": 6.6
},
{
"haligtree-knight-greaves": {
"id": "haligtree-knight-greaves",
"name": "Haligtree Knight Greaves",
"defenses": [7.7, 7.1, 7.7, 7.7, 5.8, 6.5, 5.4, 6.5],
@ -383,55 +382,55 @@
"poise": 10,
"weight": 7.3
},
{
"hoslows-greaves": {
"id": "hoslows-greaves",
"name": "Hoslow's Greaves",
"defenses": [8, 6.8, 7.7, 7.1, 6.2, 6.8, 5.8, 5.8],
"defenses": [8.0, 6.8, 7.7, 7.1, 6.2, 6.8, 5.8, 5.8],
"resistances": [24, 37, 15, 15],
"poise": 10,
"weight": 7.3
},
{
"kaiden-trousers": {
"id": "kaiden-trousers",
"name": "Kaiden Trousers",
"defenses": [6.5, 4.6, 6.5, 6.5, 4, 4.5, 3.8, 4],
"defenses": [6.5, 4.5, 6.5, 6.5, 4.0, 4.5, 3.8, 4.0],
"resistances": [15, 26, 7, 7],
"poise": 7,
"weight": 5.1
},
{
"knight-greaves": {
"id": "knight-greaves",
"name": "Knight Greaves",
"defenses": [7.1, 6.8, 7.7, 7.7, 6.2, 6.2, 5.4, 5],
"defenses": [7.1, 6.8, 7.7, 7.7, 6.2, 6.2, 5.4, 5.0],
"resistances": [17, 31, 11, 11],
"poise": 11,
"weight": 6.6
},
{
"land-of-reeds-greaves": {
"id": "land-of-reeds-greaves",
"name": "Land of Reeds Greaves",
"defenses": [5, 5.4, 6.8, 5.4, 5.8, 6.5, 6.8, 6.2],
"defenses": [5.0, 5.4, 6.8, 5.4, 5.8, 6.5, 6.8, 6.2],
"resistances": [37, 31, 31, 34],
"poise": 4,
"weight": 5.1
},
{
"leather-boots": {
"id": "leather-boots",
"name": "Leather Boots",
"defenses": [4.5, 5.4, 4.5, 5, 5.4, 5.4, 5.8, 5.8],
"defenses": [4.5, 5.4, 4.5, 5.0, 5.4, 5.4, 5.8, 5.8],
"resistances": [37, 22, 26, 31],
"poise": 1,
"weight": 4.4
},
{
"leather-trousers": {
"id": "leather-trousers",
"name": "Leather Trousers",
"defenses": [6.5, 5.4, 6.8, 6.8, 5, 5.4, 3.4, 4.5],
"defenses": [6.5, 5.4, 6.8, 6.8, 5.0, 5.4, 3.4, 4.5],
"resistances": [16, 29, 11, 7],
"poise": 8,
"weight": 5.5
},
{
"leyndell-knight-greaves": {
"id": "leyndell-knight-greaves",
"name": "Leyndell Knight Greaves",
"defenses": [7.7, 7.1, 7.7, 7.7, 5.8, 6.5, 5.8, 6.2],
@ -439,15 +438,15 @@
"poise": 11,
"weight": 7.3
},
{
"leyndell-soldier-greaves": {
"id": "leyndell-soldier-greaves",
"name": "Leyndell Soldier Greaves",
"defenses": [7.4, 6.8, 7.1, 7.4, 5.4, 5.8, 5, 5.4],
"defenses": [7.4, 6.8, 7.1, 7.4, 5.4, 5.8, 5.0, 5.4],
"resistances": [20, 34, 14, 14],
"poise": 10,
"weight": 6.6
},
{
"lionels-greaves": {
"id": "lionels-greaves",
"name": "Lionel's Greaves",
"defenses": [10.1, 9.4, 11.1, 11.4, 7.7, 8.5, 7.4, 7.7],
@ -455,7 +454,7 @@
"poise": 22,
"weight": 13.1
},
{
"malenias-greaves": {
"id": "malenias-greaves",
"name": "Malenia's Greaves",
"defenses": [7.1, 5.4, 7.4, 6.5, 4.5, 5.4, 3.8, 6.2],
@ -463,7 +462,7 @@
"poise": 8,
"weight": 5.7
},
{
"malformed-dragon-greaves": {
"id": "malformed-dragon-greaves",
"name": "Malformed Dragon Greaves",
"defenses": [9.6, 8.6, 10.1, 9.6, 7.4, 7.4, 7.9, 7.4],
@ -471,23 +470,23 @@
"poise": 16,
"weight": 9.9
},
{
"malikeths-greaves": {
"id": "malikeths-greaves",
"name": "Maliketh's Greaves",
"defenses": [7.7, 6.8, 8, 7.7, 6.2, 6.5, 5.4, 7.3],
"defenses": [7.7, 6.8, 8.0, 7.7, 6.2, 6.5, 5.4, 7.3],
"resistances": [22, 35, 15, 31],
"poise": 11,
"weight": 7.9
},
{
"mausoleum-greaves": {
"id": "mausoleum-greaves",
"name": "Mausoleum Greaves",
"defenses": [7.4, 6.2, 7.7, 7.1, 5.8, 5.8, 5, 5.8],
"defenses": [7.4, 6.2, 7.7, 7.1, 5.8, 5.8, 5.0, 5.8],
"resistances": [20, 31, 14, 13],
"poise": 11,
"weight": 6.6
},
{
"mausoleum-knight-greaves": {
"id": "mausoleum-knight-greaves",
"name": "Mausoleum Knight Greaves",
"defenses": [7.7, 6.5, 8.4, 7.4, 6.2, 6.5, 5.8, 6.5],
@ -495,23 +494,23 @@
"poise": 12,
"weight": 7.3
},
{
"mushroom-legs": {
"id": "mushroom-legs",
"name": "Mushroom Legs",
"defenses": [3.4, 4, 1.5, 3, 7.6, 3, 7.4, 7.4],
"defenses": [3.4, 4.0, 1.5, 3.0, 7.6, 3.0, 7.3, 7.4],
"resistances": [63, 15, 56, 47],
"poise": 1,
"weight": 3.1
},
{
"nights-cavalry-greaves": {
"id": "nights-cavalry-greaves",
"name": "Night's Cavalry Greaves",
"defenses": [8, 7.3, 8, 7.7, 6.2, 7.2, 6.2, 7.2],
"defenses": [8.0, 7.3, 8.0, 7.7, 6.2, 7.2, 6.2, 7.2],
"resistances": [24, 35, 15, 15],
"poise": 12,
"weight": 7.9
},
{
"nobles-trousers": {
"id": "nobles-trousers",
"name": "Noble's Trousers",
"defenses": [3.4, 3.8, 3.4, 3.8, 7.6, 7.7, 7.4, 7.6],
@ -519,31 +518,31 @@
"poise": 1,
"weight": 3.9
},
{
"nomadic-merchants-trousers": {
"id": "nomadic-merchants-trousers",
"name": "Nomadic Merchant's Trousers",
"defenses": [4.5, 5, 4, 3.8, 5.4, 5.4, 5.4, 5],
"defenses": [4.5, 5.0, 4.0, 3.8, 5.4, 5.4, 5.4, 5.0],
"resistances": [35, 20, 44, 29],
"poise": 2,
"weight": 4.4
},
{
"nox-monk-greaves": {
"id": "nox-monk-greaves",
"name": "Nox Monk Greaves",
"defenses": [5.4, 5.8, 5.4, 5, 7.1, 6.8, 6.8, 5.8],
"defenses": [5.4, 5.8, 5.4, 5.0, 7.1, 6.8, 6.8, 5.8],
"resistances": [39, 26, 31, 31],
"poise": 4,
"weight": 5.1
},
{
"old-aristocrat-shoes": {
"id": "old-aristocrat-shoes",
"name": "Old Aristocrat Shoes",
"defenses": [3.4, 3.4, 3, 3.4, 4.5, 5, 4.5, 3.4],
"defenses": [3.4, 3.4, 3.0, 3.4, 4.5, 5.0, 4.5, 3.4],
"resistances": [22, 15, 17, 20],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"old-sorcerers-legwraps": {
"id": "old-sorcerers-legwraps",
"name": "Old Sorcerer's Legwraps",
"defenses": [3.4, 1.5, 3.4, 1.5, 8.1, 6.8, 7.2, 7.3],
@ -551,7 +550,7 @@
"poise": 1,
"weight": 2.5
},
{
"omen-greaves": {
"id": "omen-greaves",
"name": "Omen Greaves",
"defenses": [10.6, 8.6, 10.8, 10.8, 7.4, 8.3, 8.5, 7.9],
@ -559,31 +558,31 @@
"poise": 24,
"weight": 14.3
},
{
"omenkiller-boots": {
"id": "omenkiller-boots",
"name": "Omenkiller Boots",
"defenses": [5, 4.5, 4, 4, 4, 5.4, 6.5, 5.8],
"defenses": [5.0, 4.5, 4.0, 4.0, 5.0, 5.4, 6.5, 5.8],
"resistances": [41, 17, 29, 29],
"poise": 4,
"weight": 4.4
},
{
"page-trousers": {
"id": "page-trousers",
"name": "Page Trousers",
"defenses": [3.4, 3, 2.3, 2.3, 7.2, 7.1, 7.3, 7.3],
"defenses": [3.4, 3.0, 2.3, 2.3, 7.2, 7.1, 7.3, 7.3],
"resistances": [24, 13, 44, 44],
"poise": 1,
"weight": 2.5
},
{
"perfumer-sarong": {
"id": "perfumer-sarong",
"name": "Perfumer Sarong",
"defenses": [2.3, 3.4, 3, 2.3, 7.3, 6.8, 7.1, 7.3],
"defenses": [2.3, 3.4, 3.0, 2.3, 7.3, 6.8, 7.1, 7.3],
"resistances": [37, 11, 39, 41],
"poise": 1,
"weight": 2.5
},
{
"preceptors-trousers": {
"id": "preceptors-trousers",
"name": "Preceptor's Trousers",
"defenses": [3.4, 3.8, 3.4, 3.4, 8.3, 7.6, 7.3, 7.3],
@ -591,31 +590,31 @@
"poise": 2,
"weight": 3.9
},
{
"prisoner-trousers": {
"id": "prisoner-trousers",
"name": "Prisoner Trousers",
"defenses": [2.3, 3, 3, 2.3, 6.8, 6.5, 6.5, 7.2],
"defenses": [2.3, 3.0, 3.0, 2.3, 6.8, 6.5, 6.5, 7.2],
"resistances": [26, 14, 39, 39],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"prophet-trousers": {
"id": "prophet-trousers",
"name": "Prophet Trousers",
"defenses": [3, 3.4, 3.4, 3, 7.6, 7.3, 7.2, 7.6],
"defenses": [3.0, 3.4, 3.4, 3.0, 7.6, 7.3, 7.2, 7.6],
"resistances": [26, 14, 47, 51],
"poise": 1,
"weight": 3.1
},
{
"queens-leggings": {
"id": "queens-leggings",
"name": "Queen's Leggings",
"defenses": [2.3, 1.5, 1.5, 0.3, 7.6, 6.8, 7.1, 7.3],
"resistances": [22, 14, 37, 41],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"radahn-soldier-greaves": {
"id": "radahn-soldier-greaves",
"name": "Radahn Soldier Greaves",
"defenses": [7.7, 6.2, 7.1, 6.8, 5.8, 6.5, 4.5, 5.4],
@ -623,7 +622,7 @@
"poise": 10,
"weight": 6.6
},
{
"radahns-greaves": {
"id": "radahns-greaves",
"name": "Radahn's Greaves",
"defenses": [10.8, 8.6, 10.6, 10.1, 7.7, 8.1, 7.2, 7.7],
@ -631,23 +630,23 @@
"poise": 17,
"weight": 10.8
},
{
"raging-wolf-greaves": {
"id": "raging-wolf-greaves",
"name": "Raging Wolf Greaves",
"defenses": [7.7, 6.8, 7.7, 7.4, 5.8, 6.5, 4, 5.4],
"resistances": [20, 35, 11, 11],
"defenses": [7.5, 6.6, 7.5, 7.2, 5.6, 6.3, 3.8, 5.2],
"resistances": [19, 34, 11, 11],
"poise": 9,
"weight": 6.6
"weight": 6.3
},
{
"raya-lucarian-greaves": {
"id": "raya-lucarian-greaves",
"name": "Raya Lucarian Greaves",
"defenses": [7.4, 6.2, 7.7, 7.4, 6.2, 6.2, 4, 5],
"defenses": [7.4, 6.2, 7.7, 7.4, 6.2, 6.2, 4.0, 5.0],
"resistances": [20, 34, 14, 14],
"poise": 10,
"weight": 6.6
},
{
"redmane-knight-greaves": {
"id": "redmane-knight-greaves",
"name": "Redmane Knight Greaves",
"defenses": [7.7, 6.5, 7.7, 7.1, 6.2, 7.3, 5.4, 6.2],
@ -655,7 +654,7 @@
"poise": 11,
"weight": 7.3
},
{
"ronins-greaves": {
"id": "ronins-greaves",
"name": "Ronin's Greaves",
"defenses": [6.2, 6.2, 6.5, 6.2, 6.8, 7.1, 7.3, 6.8],
@ -663,15 +662,7 @@
"poise": 5,
"weight": 5.7
},
{
"id": "rotten-duelist-greaves",
"name": "Rotten Duelist Greaves",
"defenses": [7.4, 6.2, 7.7, 7.1, 6.2, 6.5, 5.8, 6.2],
"resistances": [35, 35, 15, 15],
"poise": 10,
"weight": 7.3
},
{
"royal-knight-greaves": {
"id": "royal-knight-greaves",
"name": "Royal Knight Greaves",
"defenses": [9.2, 8.3, 10.1, 9.6, 8.1, 7.6, 7.1, 7.4],
@ -679,95 +670,95 @@
"poise": 14,
"weight": 9.6
},
{
"royal-remains-greaves": {
"id": "royal-remains-greaves",
"name": "Royal Remains Greaves",
"defenses": [6.8, 6.5, 7.4, 6.8, 5.4, 5.8, 4.5, 5],
"defenses": [6.8, 6.5, 7.4, 6.8, 5.4, 5.8, 4.5, 5.0],
"resistances": [22, 35, 15, 7],
"poise": 9,
"weight": 6.6
},
{
"sage-trousers": {
"id": "sage-trousers",
"name": "Sage Trousers",
"defenses": [3.4, 3, 3, 1.5, 7.6, 7.1, 7.3, 7.6],
"defenses": [3.4, 3.0, 3.0, 1.5, 7.6, 7.1, 7.3, 7.6],
"resistances": [22, 13, 39, 41],
"poise": 1,
"weight": 2.5
},
{
"sanguine-noble-waistcloth": {
"id": "sanguine-noble-waistcloth",
"name": "Sanguine Noble Waistcloth",
"defenses": [3, 2.3, 2.3, 2.3, 7.4, 6.5, 7.3, 7.6],
"defenses": [3.0, 2.3, 2.3, 2.3, 7.4, 6.5, 7.3, 7.6],
"resistances": [29, 11, 44, 41],
"poise": 1,
"weight": 2.5
},
{
"scaled-greaves": {
"id": "scaled-greaves",
"name": "Scaled Greaves",
"defenses": [9.6, 8.3, 10.1, 9.6, 7.6, 7.9, 7.3, 7.6],
"defenses": [9.2, 8.0, 9.6, 9.2, 7.7, 8.1, 7.4, 7.7],
"resistances": [35, 51, 24, 24],
"poise": 16,
"weight": 16
"weight": 9.9
},
{
"shaman-leggings": {
"id": "shaman-leggings",
"name": "Shaman Leggings",
"defenses": [3, 3.4, 3, 4.5, 4.5, 4, 4.5, 3.8],
"defenses": [3.0, 3.4, 3.0, 4.5, 4.5, 4.0, 4.5, 3.8],
"resistances": [39, 26, 34, 22],
"poise": 1,
"weight": 3.1
},
{
"snow-witch-skirt": {
"id": "snow-witch-skirt",
"name": "Snow Witch Skirt",
"defenses": [3, 3.4, 3.4, 2.3, 7.4, 7.4, 7.3, 7.4],
"defenses": [3.0, 3.4, 3.4, 2.3, 7.4, 7.4, 7.3, 7.4],
"resistances": [24, 20, 44, 44],
"poise": 1,
"weight": 3.1
},
{
"sorcerer-leggings": {
"id": "sorcerer-leggings",
"name": "Sorcerer Leggings",
"defenses": [2.3, 3, 3, 0.3, 7.3, 7.1, 6.8, 7.2],
"defenses": [2.3, 3.0, 3.0, 0.3, 7.3, 7.1, 6.8, 7.2],
"resistances": [24, 7, 39, 37],
"poise": 1,
"weight": 2
"weight": 2.0
},
{
"spellblades-trousers": {
"id": "spellblades-trousers",
"name": "Spellblade's Trousers",
"defenses": [2.9, 2.2, 2.9, 2.9, 7.3, 6.7, 7, 7.3],
"defenses": [2.9, 2.2, 2.9, 2.9, 7.3, 6.7, 7.0, 7.3],
"resistances": [25, 13, 38, 41],
"poise": 1,
"weight": 2.6
},
{
"travelers-boots": {
"id": "travelers-boots",
"name": "Traveler's Boots",
"defenses": [3.8, 3.4, 3, 2.3, 7.7, 7.3, 7.4, 7.2],
"defenses": [3.8, 3.4, 3.0, 2.3, 7.7, 7.3, 7.4, 7.2],
"resistances": [24, 15, 47, 47],
"poise": 1,
"weight": 3.1
},
{
"travelers-slops": {
"id": "travelers-slops",
"name": "Traveler's Slops",
"defenses": [3, 3, 2.3, 1.5, 7.3, 7.3, 7.1, 7.3],
"defenses": [3.0, 3.0, 2.3, 1.5, 7.3, 7.3, 7.1, 7.3],
"resistances": [34, 13, 41, 39],
"poise": 1,
"weight": 2.5
},
{
"traveling-maiden-boots": {
"id": "traveling-maiden-boots",
"name": "Traveling Maiden Boots",
"defenses": [3, 3.4, 3.4, 2.3, 7.6, 7.3, 7.4, 7.6],
"defenses": [3.1, 3.5, 3.5, 2.4, 7.7, 7.4, 7.5, 7.7],
"resistances": [29, 15, 47, 51],
"poise": 1,
"weight": 3.1
"weight": 2.9
},
{
"tree-sentinel-greaves": {
"id": "tree-sentinel-greaves",
"name": "Tree Sentinel Greaves",
"defenses": [10.8, 8.6, 10.8, 10.1, 7.4, 9.9, 7.2, 8.1],
@ -775,23 +766,23 @@
"poise": 17,
"weight": 11.7
},
{
"twinned-greaves": {
"id": "twinned-greaves",
"name": "Twinned Greaves",
"defenses": [7.7, 7.1, 8.4, 6.8, 6.5, 6.5, 5, 5.8],
"defenses": [7.7, 7.1, 8.4, 6.8, 6.5, 6.5, 5.0, 5.8],
"resistances": [20, 34, 13, 34],
"poise": 10,
"weight": 7.3
},
{
"vagabond-knight-greaves": {
"id": "vagabond-knight-greaves",
"name": "Vagabond Knight Greaves",
"defenses": [7.4, 5.8, 6.8, 6.5, 5, 5.8, 4.5, 4.5],
"defenses": [7.4, 5.8, 6.8, 6.5, 5.0, 5.8, 4.5, 4.5],
"resistances": [20, 34, 13, 13],
"poise": 8,
"weight": 5.7
},
{
"veterans-greaves": {
"id": "veterans-greaves",
"name": "Veteran's Greaves",
"defenses": [10.8, 9.8, 10.8, 10.1, 7.7, 8.1, 7.3, 7.6],
@ -799,15 +790,15 @@
"poise": 22,
"weight": 11.7
},
{
"vulgar-militia-greaves": {
"id": "vulgar-militia-greaves",
"name": "Vulgar Militia Greaves",
"defenses": [5.4, 6.2, 5.8, 5, 6.2, 6.2, 6.5, 6.2],
"defenses": [5.4, 6.2, 5.8, 5.0, 6.2, 6.2, 6.5, 6.2],
"resistances": [44, 24, 34, 34],
"poise": 4,
"weight": 5.1
},
{
"war-surgeon-trousers": {
"id": "war-surgeon-trousers",
"name": "War Surgeon Trousers",
"defenses": [3.9, 4.4, 4.9, 3.9, 5.3, 5.7, 6.1, 5.7],
@ -815,7 +806,7 @@
"poise": 3,
"weight": 4.2
},
{
"warrior-greaves": {
"id": "warrior-greaves",
"name": "Warrior Greaves",
"defenses": [5.4, 5.4, 4.5, 4.5, 5.8, 6.2, 6.8, 5.4],
@ -823,20 +814,20 @@
"poise": 4,
"weight": 4.8
},
{
"white-reed-greaves": {
"id": "white-reed-greaves",
"name": "White Reed Greaves",
"defenses": [5.4, 5.4, 6.5, 5, 6.2, 6.2, 6.8, 5.8],
"defenses": [5.4, 5.8, 6.5, 5.0, 6.2, 6.2, 6.8, 5.8],
"resistances": [41, 26, 34, 31],
"poise": 4,
"weight": 5.1
},
{
"zamor-legwraps": {
"id": "zamor-legwraps",
"name": "Zamor Legwraps",
"defenses": [6.5, 5, 6.8, 5.8, 4.5, 4.5, 3, 4],
"defenses": [6.5, 5.0, 6.8, 5.8, 4.5, 4.5, 3.0, 4.0],
"resistances": [11, 37, 0, 7],
"poise": 7,
"weight": 5.1
}
]
}

View File

@ -1,48 +1,608 @@
[
{
{
"no-talisman": { "id": "no-talismans", "name": "None" },
"crimson-amber-medallion": {
"id": "crimson-amber-medallion",
"name": "Crimson Amber Medallion",
"weight": "0.3",
"multipliers": [1.06, 1.0, 1.0, 1.0]
},
"crimson-amber-medallion-+1": {
"id": "crimson-amber-medallion-+1",
"name": "Crimson Amber Medallion +1",
"weight": "0.3",
"multipliers": [1.07, 1.0, 1.0, 1.0]
},
"crimson-amber-medallion-+2": {
"id": "crimson-amber-medallion-+2",
"name": "Crimson Amber Medallion +2",
"weight": "0.3",
"multipliers": [1.08, 1.0, 1.0, 1.0]
},
"cerulean-amber-medallion": {
"id": "cerulean-amber-medallion",
"name": "Cerulean Amber Medallion",
"weight": "0.3",
"multipliers": [1.0, 1.07, 1.0, 1.0]
},
"cerulean-amber-medallion-+1": {
"id": "cerulean-amber-medallion-+1",
"name": "Cerulean Amber Medallion +1",
"weight": "0.3",
"multipliers": [1.0, 1.09, 1.0, 1.0]
},
"cerulean-amber-medallion-+2": {
"id": "cerulean-amber-medallion-+2",
"name": "Cerulean Amber Medallion +2",
"weight": "0.3",
"multipliers": [1.0, 1.11, 1.0, 1.0]
},
"viridian-amber-medallion": {
"id": "viridian-amber-medallion",
"name": "Viridian Amber Medallion",
"weight": "0.3",
"multipliers": [1.0, 1.0, 1.11, 1.0]
},
"viridian-amber-medallion-+1": {
"id": "viridian-amber-medallion-+1",
"name": "Viridian Amber Medallion +1",
"weight": "0.3",
"multipliers": [1.0, 1.0, 1.13, 1.0]
},
"viridian-amber-medallion-+2": {
"id": "viridian-amber-medallion-+2",
"name": "Viridian Amber Medallion +2",
"weight": "0.3",
"multipliers": [1.0, 1.0, 1.15, 1.0]
},
"arsenal-charm": {
"id": "arsenal-charm",
"name": "Arsenal Charm",
"weight": "1.5",
"multipliers": [1.0, 1.0, 1.0, 1.15]
},
"arsenal-charm-+1": {
"id": "arsenal-charm-+1",
"name": "Arsenal Charm +1",
"weight": "1.5",
"multipliers": [1.0, 1.0, 1.0, 1.17]
},
"great-jars-arsenal": {
"id": "great-jars-arsenal",
"name": "Great-Jar's Arsenal",
"weight": "1.5",
"multipliers": [1.0, 1.0, 1.0, 1.19]
},
"erdtrees-favor": {
"id": "erdtrees-favor",
"name": "Erdtree's Favor",
"weight": "1.5",
"multipliers": [1.03, 1.0, 1.07, 1.05]
},
"erdtrees-favor-+1": {
"id": "erdtrees-favor-+1",
"name": "Erdtree's Favor +1",
"weight": "1.5",
"multipliers": [1.035, 1.0, 1.085, 1.065]
},
"erdtrees-favor-+2": {
"id": "erdtrees-favor-+2",
"name": "Erdtree's Favor +2",
"weight": "1.5",
"multipliers": [1.04, 1.0, 1.1, 1.08]
},
"radagons-scarseal": {
"id": "radagons-scarseal",
"name": "Radagon's Scarseal",
"weight": "0.8",
"stats": [3, 0, 3, 3, 3, 0, 0, 0]
},
"radagons-soreseal": {
"id": "radagons-soreseal",
"name": "Radagon's Soreseal",
"weight": 0.8,
"weight": "0.8",
"stats": [5, 0, 5, 5, 5, 0, 0, 0]
},
{
"id": "marikas-soreseal",
"name": "Marika's Soreseal",
"weight": 0.8,
"stats": [0, 5, 0, 0, 0, 5, 5, 5]
},
{
"id": "prosthesis-wearer-heirloom",
"name": "Prosthesis-Wearer Heirloom",
"weight": 0.8,
"stats": [0, 0, 0, 0, 5, 0, 0, 0]
},
{
"id": "stargazer-heirloom",
"name": "Stargazer Heirloom",
"weight": 0.8,
"stats": [0, 0, 0, 0, 0, 5, 0, 0]
},
{
"starscourge-heirloom": {
"id": "starscourge-heirloom",
"name": "Starscourge Heirloom",
"weight": 0.8,
"weight": "0.8",
"stats": [0, 0, 0, 5, 0, 0, 0, 0]
},
{
"id": "two-fingers-heirloom",
"name": "Two Fingers Heirloom",
"weight": 0.8,
"stats": [0, 0, 0, 0, 0, 0, 5, 0]
},
{
"id": "millicents-prosthesis",
"name": "Millicent's Prosthesis",
"weight": 0.8,
"prosthesis-wearer-heirloom": {
"id": "prosthesis-wearer-heirloom",
"name": "Prosthesis-Wearer Heirloom",
"weight": "0.8",
"stats": [0, 0, 0, 0, 5, 0, 0, 0]
},
{
"stargazer-heirloom": {
"id": "stargazer-heirloom",
"name": "Stargazer Heirloom",
"weight": "0.6",
"stats": [0, 0, 0, 0, 0, 5, 0, 0]
},
"two-fingers-heirloom": {
"id": "two-fingers-heirloom",
"name": "Two Fingers Heirloom",
"weight": "0.6",
"stats": [0, 0, 0, 0, 0, 0, 5, 0]
},
"silver-scarab": {
"id": "silver-scarab",
"name": "Silver Scarab",
"weight": "1.2"
},
"gold-scarab": {
"id": "gold-scarab",
"name": "Gold Scarab",
"weight": "1.2"
},
"moon-of-nokstella": {
"id": "moon-of-nokstella",
"name": "Moon of Nokstella",
"weight": "0.8"
},
"green-turtle-talisman": {
"id": "green-turtle-talisman",
"name": "Green Turtle Talisman",
"weight": "0.7"
},
"stalwart-horn-charm": {
"id": "stalwart-horn-charm",
"name": "Stalwart Horn Charm",
"weight": "0.6"
},
"stalwart-horn-charm-+1": {
"id": "stalwart-horn-charm-+1",
"name": "Stalwart Horn Charm +1",
"weight": "0.6"
},
"immunizing-horn-charm": {
"id": "immunizing-horn-charm",
"name": "Immunizing Horn Charm",
"weight": "0.6"
},
"immunizing-horn-charm-+1": {
"id": "immunizing-horn-charm-+1",
"name": "Immunizing Horn Charm +1",
"weight": "0.6"
},
"clarifying-horn-charm": {
"id": "clarifying-horn-charm",
"name": "Clarifying Horn Charm",
"weight": "0.6"
},
"clarifying-horn-charm-+1": {
"id": "clarifying-horn-charm-+1",
"name": "Clarifying Horn Charm +1",
"weight": "0.6"
},
"prince-of-deaths-pustule": {
"id": "prince-of-deaths-pustule",
"name": "Prince of Death's Pustule",
"weight": "0.6"
},
"prince-of-deaths-cyst": {
"id": "prince-of-deaths-cyst",
"name": "Prince of Death's Cyst",
"weight": "0.6"
},
"mottled-necklace": {
"id": "mottled-necklace",
"name": "Mottled Necklace",
"weight": "0.9"
},
"mottled-necklace-+1": {
"id": "mottled-necklace-+1",
"name": "Mottled Necklace +1",
"weight": "0.9"
},
"bull-goats-talisman": {
"id": "bull-goats-talisman",
"name": "Bull-Goat's Talisman",
"weight": "0.5"
},
"marikas-scarseal": {
"id": "marikas-scarseal",
"name": "Marika's Scarseal",
"weight": "0.8",
"stats": [0, 3, 0, 0, 0, 3, 3, 3]
},
"marikas-soreseal": {
"id": "marikas-soreseal",
"name": "Marika's Soreseal",
"weight": "0.8",
"stats": [0, 5, 0, 0, 0, 5, 5, 5]
},
"warrior-jar-shard": {
"id": "warrior-jar-shard",
"name": "Warrior Jar Shard",
"weight": "0.9"
},
"shard-of-alexander": {
"id": "shard-of-alexander",
"name": "Shard of Alexander",
"weight": "0.9"
},
"millicents-prosthesis": {
"id": "millicents-prosthesis",
"name": "Millicent's Prosthesis",
"weight": "1.6",
"stats": [0, 0, 0, 0, 5, 0, 0, 0]
},
"magic-scorpion-charm": {
"id": "magic-scorpion-charm",
"name": "Magic Scorpion Charm",
"weight": "0.8"
},
"lightning-scorpion-charm": {
"id": "lightning-scorpion-charm",
"name": "Lightning Scorpion Charm",
"weight": "0.8"
},
"fire-scorpion-charm": {
"id": "fire-scorpion-charm",
"name": "Fire Scorpion Charm",
"weight": "0.8"
},
"sacred-scorpion-charm": {
"id": "sacred-scorpion-charm",
"name": "Sacred Scorpion Charm",
"weight": "0.8"
},
"red-feathered-branchsword": {
"id": "red-feathered-branchsword",
"name": "Red-Feathered Branchsword",
"weight": "1.4"
},
"ritual-sword-talisman": {
"id": "ritual-sword-talisman",
"name": "Ritual Sword Talisman",
"weight": "0.9"
},
"spear-talisman": {
"id": "spear-talisman",
"name": "Spear Talisman",
"weight": "0.5"
},
"hammer-talisman": {
"id": "hammer-talisman",
"name": "Hammer Talisman",
"weight": "0.9"
},
"winged-sword-insignia": {
"id": "winged-sword-insignia",
"name": "Winged Sword Insignia",
"weight": "1.4"
},
"rotten-winged-sword-insignia": {
"id": "rotten-winged-sword-insignia",
"name": "Rotten Winged Sword Insignia",
"weight": "1.4"
},
"dagger-talisman": {
"id": "dagger-talisman",
"name": "Dagger Talisman",
"weight": "1.1"
},
"arrows-reach-talisman": {
"id": "arrows-reach-talisman",
"name": "Arrow's Reach Talisman",
"weight": 0.7
"weight": "0.7"
},
"blue-dancer-charm": {
"id": "blue-dancer-charm",
"name": "Blue Dancer Charm",
"weight": "0.9"
},
"twinblade-talisman": {
"id": "twinblade-talisman",
"name": "Twinblade Talisman",
"weight": "0.7"
},
"axe-talisman": {
"id": "axe-talisman",
"name": "Axe Talisman",
"weight": "0.8"
},
"lance-talisman": {
"id": "lance-talisman",
"name": "Lance Talisman",
"weight": "0.7"
},
"arrows-sting-talisman": {
"id": "arrows-sting-talisman",
"name": "Arrow's Sting Talisman",
"weight": "0.7"
},
"lord-of-bloods-exultation": {
"id": "lord-of-bloods-exultation",
"name": "Lord of Blood's Exultation",
"weight": "0.9"
},
"kindred-of-rots-exultation": {
"id": "kindred-of-rots-exultation",
"name": "Kindred of Rot's Exultation",
"weight": "0.9"
},
"claw-talisman": {
"id": "claw-talisman",
"name": "Claw Talisman",
"weight": "0.7"
},
"roar-medallion": {
"id": "roar-medallion",
"name": "Roar Medallion",
"weight": "0.7"
},
"curved-sword-talisman": {
"id": "curved-sword-talisman",
"name": "Curved Sword Talisman",
"weight": "0.7"
},
"companion-jar": {
"id": "companion-jar",
"name": "Companion Jar",
"weight": "0.6"
},
"perfumers-talisman": {
"id": "perfumers-talisman",
"name": "Perfumer's Talisman",
"weight": "0.6"
},
"graven-school-talisman": {
"id": "graven-school-talisman",
"name": "Graven-School Talisman",
"weight": "0.7"
},
"graven-mass-talisman": {
"id": "graven-mass-talisman",
"name": "Graven-Mass Talisman",
"weight": "1"
},
"faithfuls-canvas-talisman": {
"id": "faithfuls-canvas-talisman",
"name": "Faithful's Canvas Talisman",
"weight": "0.7"
},
"flocks-canvas-talisman": {
"id": "flocks-canvas-talisman",
"name": "Flock's Canvas Talisman",
"weight": "1"
},
"old-lords-talisman": {
"id": "old-lords-talisman",
"name": "Old Lord's Talisman",
"weight": "0.5"
},
"radagon-icon": {
"id": "radagon-icon",
"name": "Radagon Icon",
"weight": "0.7"
},
"primal-glintstone-blade": {
"id": "primal-glintstone-blade",
"name": "Primal Glintstone Blade",
"weight": "0.6",
"multipliers": [0.85, 1.0, 1.0, 1.0]
},
"godfrey-icon": {
"id": "godfrey-icon",
"name": "Godfrey Icon",
"weight": "0.8"
},
"dragoncrest-shield-talisman": {
"id": "dragoncrest-shield-talisman",
"name": "Dragoncrest Shield Talisman",
"weight": "0.8"
},
"dragoncrest-shield-talisman-+1": {
"id": "dragoncrest-shield-talisman-+1",
"name": "Dragoncrest Shield Talisman +1",
"weight": "0.8"
},
"dragoncrest-shield-talisman-+2": {
"id": "dragoncrest-shield-talisman-+2",
"name": "Dragoncrest Shield Talisman +2",
"weight": "0.8"
},
"dragoncrest-greatshield-talisman": {
"id": "dragoncrest-greatshield-talisman",
"name": "Dragoncrest Greatshield Talisman",
"weight": "0.8"
},
"spelldrake-talisman": {
"id": "spelldrake-talisman",
"name": "Spelldrake Talisman",
"weight": "0.6"
},
"spelldrake-talisman-+1": {
"id": "spelldrake-talisman-+1",
"name": "Spelldrake Talisman +1",
"weight": "0.6"
},
"spelldrake-talisman-+2": {
"id": "spelldrake-talisman-+2",
"name": "Spelldrake Talisman +2",
"weight": "0.6"
},
"flamedrake-talisman": {
"id": "flamedrake-talisman",
"name": "Flamedrake Talisman",
"weight": "0.6"
},
"flamedrake-talisman-+1": {
"id": "flamedrake-talisman-+1",
"name": "Flamedrake Talisman +1",
"weight": "0.6"
},
"flamedrake-talisman-+2": {
"id": "flamedrake-talisman-+2",
"name": "Flamedrake Talisman +2",
"weight": "0.6"
},
"boltdrake-talisman": {
"id": "boltdrake-talisman",
"name": "Boltdrake Talisman",
"weight": "0.6"
},
"boltdrake-talisman-+1": {
"id": "boltdrake-talisman-+1",
"name": "Boltdrake Talisman +1",
"weight": "0.6"
},
"boltdrake-talisman-+2": {
"id": "boltdrake-talisman-+2",
"name": "Boltdrake Talisman +2",
"weight": "0.6"
},
"haligdrake-talisman": {
"id": "haligdrake-talisman",
"name": "Haligdrake Talisman",
"weight": "0.6"
},
"haligdrake-talisman-+1": {
"id": "haligdrake-talisman-+1",
"name": "Haligdrake Talisman +1",
"weight": "0.6"
},
"haligdrake-talisman-+2": {
"id": "haligdrake-talisman-+2",
"name": "Haligdrake Talisman +2",
"weight": "0.6"
},
"pearldrake-talisman": {
"id": "pearldrake-talisman",
"name": "Pearldrake Talisman",
"weight": "0.9"
},
"pearldrake-talisman-+1": {
"id": "pearldrake-talisman-+1",
"name": "Pearldrake Talisman +1",
"weight": "0.9"
},
"pearldrake-talisman-+2": {
"id": "pearldrake-talisman-+2",
"name": "Pearldrake Talisman +2",
"weight": "0.9"
},
"crucible-scale-talisman": {
"id": "crucible-scale-talisman",
"name": "Crucible Scale Talisman",
"weight": "1.1"
},
"crucible-feather-talisman": {
"id": "crucible-feather-talisman",
"name": "Crucible Feather Talisman",
"weight": "0.8"
},
"blue-feathered-branchsword": {
"id": "blue-feathered-branchsword",
"name": "Blue-Feathered Branchsword",
"weight": "1.1"
},
"ritual-shield-talisman": {
"id": "ritual-shield-talisman",
"name": "Ritual Shield Talisman",
"weight": "0.9"
},
"greatshield-talisman": {
"id": "greatshield-talisman",
"name": "Greatshield Talisman",
"weight": "0.9"
},
"crucible-knot-talisman": {
"id": "crucible-knot-talisman",
"name": "Crucible Knot Talisman",
"weight": "0.5"
},
"crimson-seed-talisman": {
"id": "crimson-seed-talisman",
"name": "Crimson Seed Talisman",
"weight": "0.8"
},
"cerulean-seed-talisman": {
"id": "cerulean-seed-talisman",
"name": "Cerulean Seed Talisman",
"weight": "0.8"
},
"blessed-dew-talisman": {
"id": "blessed-dew-talisman",
"name": "Blessed Dew Talisman",
"weight": "0.6"
},
"takers-cameo": {
"id": "takers-cameo",
"name": "Taker's Cameo",
"weight": "1"
},
"godskin-swaddling-cloth": {
"id": "godskin-swaddling-cloth",
"name": "Godskin Swaddling Cloth",
"weight": "0.9"
},
"assassins-crimson-dagger": {
"id": "assassins-crimson-dagger",
"name": "Assassin's Crimson Dagger",
"weight": "0.8"
},
"assassins-cerulean-dagger": {
"id": "assassins-cerulean-dagger",
"name": "Assassin's Cerulean Dagger",
"weight": "0.8"
},
"crepuss-vial": {
"id": "crepuss-vial",
"name": "Crepus's Vial",
"weight": "0.7"
},
"concealing-veil": {
"id": "concealing-veil",
"name": "Concealing Veil",
"weight": "0.9"
},
"carian-filigreed-crest": {
"id": "carian-filigreed-crest",
"name": "Carian Filigreed Crest",
"weight": "0.8"
},
"longtail-cat-talisman": {
"id": "longtail-cat-talisman",
"name": "Longtail Cat Talisman",
"weight": "0.6"
},
"shabriris-woe": {
"id": "shabriris-woe",
"name": "Shabriri's Woe",
"weight": "0.6"
},
"daedicars-woe": {
"id": "daedicars-woe",
"name": "Daedicar's Woe",
"weight": "0.8"
},
"sacrificial-twig": {
"id": "sacrificial-twig",
"name": "Sacrificial Twig",
"weight": "1"
},
"furled-fingers-trick-mirror": {
"id": "furled-fingers-trick-mirror",
"name": "Furled Finger's Trick-Mirror",
"weight": "0.7"
},
"hosts-trick-mirror": {
"id": "hosts-trick-mirror",
"name": "Host's Trick-Mirror",
"weight": "0.7"
},
"entwining-umbilical-cord": {
"id": "entwining-umbilical-cord",
"name": "Entwining Umbilical Cord",
"weight": "0.5"
},
"ancestral-spirits-horn": {
"id": "ancestral-spirits-horn",
"name": "Ancestral Spirit's Horn",
"weight": "1.2"
}
]
}

35856
src/data/weapons.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,7 @@
</article>
<article>
<a href="/optimizer.html">
<a href="/class.html">
<h3>Class Optimizer</h3>
<br>
<p>Find the optimal starting class for your build.</p>

View File

@ -31,78 +31,140 @@
<!-- equipment -->
<article>
<ul>
<li><b>Equipment</b></li>
<hr>
<li>
<b>Equipment</b>
<b>Weapons</b>
<a href="weapons.html">Optimize</a>
</li>
<li>
<div class="select">
<select id="left-hand-1" name="weapons" onchange="update()"></select>
<select id="left-hand-2" name="weapons" onchange="update()"></select>
<select id="left-hand-3" name="weapons" onchange="update()"></select>
</div>
<div class="select">
<select id="right-hand-1" name="weapons" onchange="update()"></select>
<select id="right-hand-2" name="weapons" onchange="update()"></select>
<select id="right-hand-3" name="weapons" onchange="update()"></select>
</div>
</li>
<hr>
<li><b>Weapons</b></li>
<li>
<b>Armor</b>
<a href="armor.html">Optimize</a>
</li>
<li class="select">
<select id="helmet" name="helmets" onchange="update()"></select>
<select id="chestpiece" name="chestpieces" onchange="update()"></select>
<select id="gauntlets" name="gauntlets" onchange="update()"></select>
<select id="leggings" name="leggings" onchange="update()"></select>
</li>
<hr>
<li><b>Armor</b></li>
<hr>
<li><b>Talismans</b></li>
<li class="select">
<select id="talisman-1" name="talismans" onchange="update()"></select>
<select id="talisman-2" name="talismans" onchange="update()"></select>
<select id="talisman-3" name="talismans" onchange="update()"></select>
<select id="talisman-4" name="talismans" onchange="update()"></select>
</li>
<hr>
<li><b>Spells</b></li>
<li>
<details>
<summary>Click to show slots</summary>
</details>
</li>
<hr>
<li>
<div></div>
<button onclick="reset('equipment')">Reset</button>
</li>
</ul>
</article>
<!-- stats -->
<article>
<ul>
<li><b>Statistics</b></li>
<li>
<b>Statistics</b>
<a href="optimizer.html">Optimize Class</a> <!-- TODO -->
</li>
<hr>
<li>
<label for="class"><b>Starting Class</b></label>
<select id="class" onchange="update()"></select>
<div>
<select id="class" onchange="update()">
<option id="wretch" selected>Wretch</option>
<option id="vagabond">Vagabond</option>
<option id="warrior">Warrior</option>
<option id="hero">Hero</option>
<option id="bandit">Bandit</option>
<option id="astrologer">Astrologer</option>
<option id="prophet">Prophet</option>
<option id="samurai">Samurai</option>
<option id="prisoner">Prisoner</option>
<option id="confessor">Confessor</option>
</select>
</div>
</li>
<li>
<label for="level"><b>Level</b></label>
<input type="text" id="level" class="stat" disabled>
<input type="number" id="level" class="stat" disabled>
</li>
<li><br></li>
<li>
<label for="vigor">Vigor</label>
<input type="text" id="vigor" class="stat" name="stat">
<input type="number" id="vigor" class="stat" name="stat">
</li>
<li>
<label for="mind">Mind</label>
<input type="text" id="mind" class="stat" name="stat">
<input type="number" id="mind" class="stat" name="stat">
</li>
<li>
<label for="endurance">Endurance</label>
<input type="text" id="endurance" class="stat" name="stat">
<input type="number" id="endurance" class="stat" name="stat">
</li>
<li>
<label for="strength">Strength</label>
<input type="text" id="strength" class="stat" name="stat">
<input type="number" id="strength" class="stat" name="stat">
</li>
<li>
<label for="dexterity">Dexterity</label>
<input type="text" id="dexterity" class="stat" name="stat">
<input type="number" id="dexterity" class="stat" name="stat">
</li>
<li>
<label for="intelligence">Intelligence</label>
<input type="text" id="intelligence" class="stat" name="stat">
<input type="number" id="intelligence" class="stat" name="stat">
</li>
<li>
<label for="faith">Faith</label>
<input type="text" id="faith" class="stat" name="stat">
<input type="number" id="faith" class="stat" name="stat">
</li>
<li>
<label for="arcane">Arcane</label>
<input type="text" id="arcane" class="stat" name="stat">
<input type="number" id="arcane" class="stat" name="stat">
</li>
<li>
<div></div>
<button onclick="reset('statistics')">Reset</button>
</li>
</ul>
</article>

View File

@ -1,13 +1,13 @@
const HELMETS = fetch("/data/armor/helmets.json")
const HELMETS = fetch("/data/helmets.json")
.then(response => response.json())
.catch(error => console.log(error));
const CHESTPIECES = fetch("/data/armor/chestpieces.json")
const CHESTPIECES = fetch("/data/chestpieces.json")
.then(response => response.json())
.catch(error => console.log(error));
const GAUNTLETS = fetch("/data/armor/gauntlets.json")
const GAUNTLETS = fetch("/data/gauntlets.json")
.then(response => response.json())
.catch(error => console.log(error));
const LEGGINGS = fetch("/data/armor/leggings.json")
const LEGGINGS = fetch("/data/leggings.json")
.then(response => response.json())
.catch(error => console.log(error));
@ -18,10 +18,10 @@ var leggings;
async function init() {
// populate filter selects
populateSelect("locked-option", "select-helmet", await HELMETS);
populateSelect("locked-option", "select-chestpiece", await CHESTPIECES);
populateSelect("locked-option", "select-gauntlets", await GAUNTLETS);
populateSelect("locked-option", "select-leggings", await LEGGINGS);
populateSelect("locked-option", "select-helmet", Object.values(await HELMETS));
populateSelect("locked-option", "select-chestpiece", Object.values(await CHESTPIECES));
populateSelect("locked-option", "select-gauntlets", Object.values(await GAUNTLETS));
populateSelect("locked-option", "select-leggings", Object.values(await LEGGINGS));
update(true);
}
@ -31,7 +31,7 @@ async function update() {
Array.from(document.getElementsByClassName("sort-result")).forEach(elem => elem.parentNode.removeChild(elem));
// clamp equip load values to reasonable values
[...document.getElementsByName("equip-load")].forEach(el => el.value = Math.max(el.value, 0.0));
// [...document.getElementsByName("equip-load")].forEach(el => el.value = Math.max(el.value, 0.0));
// update budget
let budget = equipLoadBudget();
@ -42,20 +42,20 @@ async function update() {
let lockedItems = await Promise.all([HELMETS, CHESTPIECES, GAUNTLETS, LEGGINGS])
.then(allItems => {
return [...document.getElementsByName("locked-items")]
.map(select => select.selectedIndex)
.map((itemIndex, i) => allItems[i][itemIndex])
.map((select, i) => Object.values(allItems[i])[select.selectedIndex])
.filter(item => !item.id.startsWith("no-"));
});
// pre-sort and eliminate some equipment
helmets = eliminate(await HELMETS, sortBy, lockedItems);
chestpieces = eliminate(await CHESTPIECES, sortBy, lockedItems);
gauntlets = eliminate(await GAUNTLETS, sortBy, lockedItems);
leggings = eliminate(await LEGGINGS, sortBy, lockedItems);
helmets = eliminate(Object.values(await HELMETS), sortBy, lockedItems);
chestpieces = eliminate(Object.values(await CHESTPIECES), sortBy, lockedItems);
gauntlets = eliminate(Object.values(await GAUNTLETS), sortBy, lockedItems);
leggings = eliminate(Object.values(await LEGGINGS), sortBy, lockedItems);
let selection = permutations(budget, lockedItems);
// find best sets to display
let best = knapSack(selection, sortBy);
console.log("time: " + (t2 - t1));
// show best sets under budget
populateResults("sort-result", "sort-results", best);
@ -109,15 +109,15 @@ function knapSack(selection, sortBy) {
function fitness(item, sortBy) {
switch (sortBy) {
case "sort-average":
return item.average ??= item.defenses.reduce((total, n) => total + n, 0);
return item.average ??= (item.defenses.reduce((total, n) => total + n, 0) ?? 0);
case "sort-physical":
return item.physical ??= item.defenses.slice(0, 4).reduce((total, n) => total + n, 0);
return item.physical ??= (item.defenses.slice(0, 4).reduce((total, n) => total + n, 0) ?? 0);
case "sort-elemental":
return item.elemental ??= item.defenses.slice(4, 8).reduce((total, n) => total + n, 0);
return item.elemental ??= (item.defenses.slice(4, 8).reduce((total, n) => total + n, 0) ?? 0);
case "sort-resistances":
return item.resistances ??= item.resistances.reduce((total, n) => total + n, 0);
return item.resistances ??= (item.resistances.reduce((total, n) => total + n, 0) ?? 0);
case "sort-poise":
return item.poise;
return item.poise ?? 0;
}
}

View File

@ -4,7 +4,7 @@ const CLASSES = fetch("/data/classes.json")
const TALISMANS = fetch("/data/talismans.json")
.then(response => response.json())
.catch(error => console.log(error));
const HELMETS = fetch("/data/armor/helmets.json")
const HELMETS = fetch("/data/helmets.json")
.then(response => response.json())
.catch(error => console.log(error));
@ -22,7 +22,8 @@ const STAT_SHORT_NAMES = [
async function init() {
// populate helmet list
let helmets = await HELMETS;
helmets = helmets.filter(helmet => helmet.stats != null && helmet.stats != undefined);
helmets = Object.values(helmets).filter(helmet => helmet.stats != null && helmet.stats != undefined);
console.log(helmets)
let helmetTemplate = document.getElementById("helm");
let helmetList = document.getElementById("helmets");
@ -32,7 +33,7 @@ async function init() {
// populate talisman list
let talismans = await TALISMANS;
talismans = talismans.filter(talisman => talisman.stats != null && talisman.stats != undefined);
talismans = Object.values(talismans).filter(talisman => talisman.stats != null && talisman.stats != undefined);
let talismanTemplate = document.getElementById("talisman");
let talismanList = document.getElementById("talismans");
@ -53,7 +54,7 @@ async function update() {
)
// get added stats from items
let items = itemStats((await TALISMANS).concat(await HELMETS));
let items = itemStats(Object.values(await TALISMANS).concat(Object.values(await HELMETS)));
desired = desired.map((stat, i) => stat - items[i]);
@ -97,7 +98,7 @@ async function update() {
}
function sortClasses(classes, desiredStats) {
let deltas = classes.map(c => {
let deltas = Object.values(classes).map(c => {
c.total = c.level + statDelta(c.stats, desiredStats);
return c;
});

View File

@ -1,3 +1,22 @@
const HELMETS = fetch("/data/armor/helmets.json")
.then(response => response.json())
.catch(error => console.log(error));
const CHESTPIECES = fetch("/data/armor/chestpieces.json")
.then(response => response.json())
.catch(error => console.log(error));
const GAUNTLETS = fetch("/data/armor/gauntlets.json")
.then(response => response.json())
.catch(error => console.log(error));
const LEGGINGS = fetch("/data/armor/leggings.json")
.then(response => response.json())
.catch(error => console.log(error));
const WEAPONS = fetch("/data/weapons.json")
.then(response => response.json())
.catch(error => console.log(error));
const TALISMANS = fetch("/data/talismans.json")
.then(response => response.json())
.catch(error => console.log(error));
const CLASSES = fetch("/data/classes.json")
.then(response => response.json())
.catch(error => console.log(error));
@ -10,29 +29,66 @@ async function init() {
}
async function update() {
// get current starting class
// get current chosen starting class
let classSelect = document.getElementById("class");
let currentClass = (await CLASSES).find(c => c.id == classSelect.options[classSelect.selectedIndex].value);
let currentClass = await (CLASSES.then(classes => {
return classes.find(c => c.id == classSelect.options[classSelect.selectedIndex].id);
}));
let prevClass = { ...startingClass };
if (prevClass.id != currentClass) {
// update statistics
[...document.getElementsByName("stat")].forEach((stat, i) => {
stat.value = parseInt((stat.value || 0) == prevClass.stats[i] ? currentClass.stats[i] : stat.value);
});
document.getElementById("level").value = [...document.getElementsByName("stat")].reduce((total, stat) => total + parseInt(stat), 0) - 79;
}
// get virtual stats
let items = await itemStats();
console.log(items);
// update statistics screen
let prevClass = startingClass ?? currentClass;
[...document.getElementsByName("stat")].forEach((stat, i) => {
stat.value = ((stat.value == "" || (stat.value - parseInt(items[i])) == prevClass.stats[i]) ? currentClass.stats[i] + parseInt(items[i]) : parseInt(stat.value) + parseInt(items[i]));
});
document.getElementById("level").value = [...document.getElementsByName("stat")]
.reduce((total, stat) => total + parseInt(stat.value), 0) - 79;
startingClass = currentClass;
}
async function populate() {
let select = document.getElementById("class");
CLASSES.then(classes => {
classes.forEach(c => {
let option = new Option(c.name, c.id);
select.options.add(option);
function reset(area) {
switch (area) {
case "equipment":
let types = ["helmets", "chestpieces", "gauntlets", "leggings", "weapons", "talismans"];
types.forEach(ty => {
let selects = [...document.getElementsByName(ty)];
selects.forEach(select => {
select.selectedIndex = 0;
})
})
break;
case "statistics":
document.getElementById("class").selectedIndex = 0;
[...document.getElementsByName("stat")].forEach(stat => stat.value = 10);
break;
}
update();
}
async function itemStats() {
let helmet = document.getElementById("helmet");
let talismans = document.getElementsByName("talismans");
let ids = [helmet, ...talismans]
.map(elem => elem.options[elem.selectedIndex].value)
.filter(id => !id.startsWith("no-"));
let relevant = [await HELMETS, await TALISMANS].flat().filter(item => ids.includes(item.id));
return relevant.reduce((total, item) => total.map((stat, i) => stat += item.stats[i]), [0, 0, 0, 0, 0, 0, 0, 0]);
}
async function populate() {
Promise.all([HELMETS, CHESTPIECES, GAUNTLETS, LEGGINGS, WEAPONS, TALISMANS]).then(itemTypes => {
itemTypes.forEach((itemType, i) => {
let ty = ["helmets", "chestpieces", "gauntlets", "leggings", "weapons", "talismans"][i];
let selects = [...document.getElementsByName(ty)];
selects.forEach(select => {
itemType.forEach(item => {
select.options.add(new Option(item.name, item.id));
})
})
});
select.selectedIndex = 0;
startingClass = classes[0];
});
}

51
src/script/weapons.js Normal file
View File

@ -0,0 +1,51 @@
const fs = require("fs");
const sum = (a, b) => a + b;
let weapons = JSON.parse(fs.readFileSync("./output/weapons.json"));
let corrections = JSON.parse(fs.readFileSync("./output/damage.json"));
let infusions = JSON.parse(fs.readFileSync("./output/infusions.json"));
function damage(weaponId, infusionId, stats, upgradeLevel) {
let weapon = weapons.find(weapon => weapon.id = weapon);
let infusion = infusions.find(infusion => infusion.id = infusionId);
weapon = weapon.infusions[infusionId];
let bases = infusion.damage.map((amount, ty) => weapon.damage[ty] * (amount + infusion.upgrade[ty] * upgradeLevel));
let extras = bases.map((amount, ty) => {
let calc = corrections.find(c => c.id == weapon.corrections[ty]);
let correction = modifiers(calc, stats, weapon.masks[ty]);
console.log(correction);
let scalings = weapon.scaling.map(itemScaling => {
return (itemScaling * infusion.scaling[ty] + itemScaling * infusion.scaling[ty] * infusion.growth[ty] * upgradeLevel);
})
let extras = scalings.map((statScaling, j) => amount * statScaling * correction[j] / 100.0)
return extras.reduce(sum);
});
return Math.floor(bases.reduce(sum) + extras.reduce(sum));
}
function modifiers(calc, stats, masks) {
return stats.map((stat, ty) => {
let mask = masks[ty];
if (mask == 0) {
return 0.0;
}
let capIndex = calc.softcaps[ty].findIndex(cap => cap >= stat) - 1;
let cap = calc.softcaps[ty][capIndex];
let capDelta = (calc.softcaps[ty][capIndex + 1] || cap) - cap;
let growth = calc.growth[ty][capIndex];
let growthDelta = (calc.growth[ty][capIndex + 1] || growth) - growth;
let adjust = calc.adjustments[ty][capIndex];
if (Math.sign(adjust) != -1) {
return growth + growthDelta * ((stat - cap) / capDelta) ** adjust;
} else {
return growth + growthDelta * (1 - (1 - ((stat - cap) / capDelta)) ** Math.abs(adjust));
}
})
}

View File

@ -209,11 +209,9 @@ button {
.cards article {
text-align: center;
flex-grow: 1;
flex-basis: 25%;
min-width: 200px;
width: 32%;
border: 1px solid var(--outline);
border: 1px solid var(--font-color);
border-radius: 5px;
/* look */

0
src/weapons.html Normal file
View File