Update to 1.20 properly
This commit is contained in:
parent
f91439e9dd
commit
2ac4ac2fef
9 changed files with 65472 additions and 219823 deletions
284442
clean.json
284442
clean.json
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 one or more lines are too long
59
id_map.json
59
id_map.json
|
@ -3543,5 +3543,62 @@
|
|||
"Zjarr": 3541,
|
||||
"Zombified Branch": 3542,
|
||||
"default": 3543,
|
||||
"Zipper": 3544
|
||||
"Zipper": 3544,
|
||||
"Anxiolytic": 3545,
|
||||
"Panic Zealot": 3546,
|
||||
"Dissociation": 3547,
|
||||
"Adrenaline": 3548,
|
||||
"Agave": 3549,
|
||||
"Amanuensis": 3550,
|
||||
"Ataraxy": 3551,
|
||||
"Blossom Haze": 3552,
|
||||
"Chain Rule": 3553,
|
||||
"Clerical": 3554,
|
||||
"Cursed Jackboots": 3555,
|
||||
"Derecho": 3556,
|
||||
"Double Vision": 3557,
|
||||
"Entanglement": 3558,
|
||||
"Example": 3559,
|
||||
"Fluorescence": 3560,
|
||||
"Gert Relik": 3561,
|
||||
"Guillotine": 3562,
|
||||
"Infernal Impulse": 3563,
|
||||
"Inmate Outfit": 3564,
|
||||
"Luminiferous Aether": 3565,
|
||||
"Magnet Repulsor": 3566,
|
||||
"Matchbook": 3567,
|
||||
"Multitool": 3568,
|
||||
"First Steps": 3569,
|
||||
"Spiketop": 3570,
|
||||
"Waist Apron": 3571,
|
||||
"Ophiolite": 3572,
|
||||
"Ornithopter": 3573,
|
||||
"Outrage": 3574,
|
||||
"Panic Attack": 3575,
|
||||
"Pedometer": 3576,
|
||||
"Phantasmagoria": 3577,
|
||||
"Photon": 3578,
|
||||
"Pro Tempore": 3579,
|
||||
"Prosencephalon": 3580,
|
||||
"Homeorhesis": 3581,
|
||||
"Abrasion": 3582,
|
||||
"Eyes on All": 3583,
|
||||
"Metamorphosis": 3584,
|
||||
"Cacophony": 3585,
|
||||
"Recalcitrance": 3586,
|
||||
"Rhythm of the Seasons": 3587,
|
||||
"Dodge Core": 3588,
|
||||
"Harden Core": 3589,
|
||||
"Hustle Core": 3590,
|
||||
"Overload Core": 3591,
|
||||
"Synchro Core": 3592,
|
||||
"Cinfras Souvenir T-Shirt": 3593,
|
||||
"Speedyboy": 3594,
|
||||
"Saltest Spear": 3595,
|
||||
"Schist": 3596,
|
||||
"Scarlet Veil": 3597,
|
||||
"Spiritdancer": 3598,
|
||||
"Stratosphere": 3599,
|
||||
"The Jingling Jester": 3600,
|
||||
"Vacarme": 3601
|
||||
}
|
2
load.js
2
load.js
|
@ -1,4 +1,4 @@
|
|||
const DB_VERSION = 30;
|
||||
const DB_VERSION = 31;
|
||||
// @See https://github.com/mdn/learning-area/blob/master/javascript/apis/client-side-storage/indexeddb/video-store/index.js
|
||||
|
||||
let db;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
Version 0: http://localhost:8000/#0_0K30oY09X2SJ2SK2SL2SM2SN0QQ
|
||||
Version 1: http://localhost:8000/#1_0690px0CE0QR0050050K40BR0Qk00001004fI
|
||||
Version 2: http://localhost:8000/#2_2SG2SH2SI2SJ2SK0K22SM2SN05n000t210t0000000
|
||||
Version 3: https://localhost:8000/#3_0250px0uX0K50K20OK0OJ00A0Qe1z+m21001M1g0000100nZ6
|
||||
Version 3: https://localhost:8000/#3_0K60iv0CE0Qt0BK0BK0K40Jc0uG160V050o1L1g00001003C6
|
||||
|
|
199
transform_preserve.py
Normal file
199
transform_preserve.py
Normal file
|
@ -0,0 +1,199 @@
|
|||
"""
|
||||
|
||||
NOTE!!!!!!!
|
||||
|
||||
DEMON TIDE 1.20 IS HARD CODED!
|
||||
|
||||
AMBIVALENCE IS REMOVED!
|
||||
|
||||
"""
|
||||
|
||||
import json
|
||||
|
||||
with open("dump.json", "r") as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
with open("updated.json", "r") as oldfile:
|
||||
old_data = json.load(oldfile)
|
||||
|
||||
items = data["items"]
|
||||
old_items = old_data["items"]
|
||||
del data["request"]
|
||||
|
||||
# import os
|
||||
# sets = dict()
|
||||
# for filename in os.listdir('sets'):
|
||||
# if "json" not in filename:
|
||||
# continue
|
||||
# set_name = filename[1:].split(".")[0].replace("+", " ").replace("%27", "'")
|
||||
# with open("sets/"+filename) as set_info:
|
||||
# set_obj = json.load(set_info)
|
||||
# for item in set_obj["items"]:
|
||||
# item_set_map[item] = set_name
|
||||
# sets[set_name] = set_obj
|
||||
#
|
||||
# data["sets"] = sets
|
||||
data["sets"] = old_data["sets"]
|
||||
item_set_map = dict()
|
||||
for set_name, set_data in data["sets"].items():
|
||||
for item_name in set_data["items"]:
|
||||
item_set_map[item_name] = set_name
|
||||
|
||||
must_mappings = [
|
||||
"strength",
|
||||
"dexterity",
|
||||
"intelligence",
|
||||
"agility",
|
||||
"defense",
|
||||
"strengthPoints",
|
||||
"dexterityPoints",
|
||||
"intelligencePoints",
|
||||
"agilityPoints",
|
||||
"defensePoints",
|
||||
]
|
||||
|
||||
translate_mappings = {
|
||||
#"name": "name",
|
||||
#"displayName": "displayName",
|
||||
#"tier": "tier",
|
||||
#"set": "set",
|
||||
"sockets": "slots",
|
||||
#"type": "type",
|
||||
#"armorType": "armorType", (deleted)
|
||||
#"armorColor": "color", (deleted)
|
||||
#"addedLore": "lore", (deleted)
|
||||
#"material": "material", (deleted)
|
||||
"dropType": "drop",
|
||||
#"quest": "quest",
|
||||
"restrictions": "restrict",
|
||||
"damage": "nDam",
|
||||
"fireDamage": "fDam",
|
||||
"waterDamage": "wDam",
|
||||
"airDamage": "aDam",
|
||||
"thunderDamage": "tDam",
|
||||
"earthDamage": "eDam",
|
||||
"attackSpeed": "atkSpd",
|
||||
"health": "hp",
|
||||
"fireDefense": "fDef",
|
||||
"waterDefense": "wDef",
|
||||
"airDefense": "aDef",
|
||||
"thunderDefense": "tDef",
|
||||
"earthDefense": "eDef",
|
||||
"level": "lvl",
|
||||
"classRequirement": "classReq",
|
||||
"strength": "strReq",
|
||||
"dexterity": "dexReq",
|
||||
"intelligence": "intReq",
|
||||
"agility": "agiReq",
|
||||
"defense": "defReq",
|
||||
"healthRegen": "hprPct",
|
||||
"manaRegen": "mr",
|
||||
"spellDamage": "sdPct",
|
||||
"damageBonus": "mdPct",
|
||||
"lifeSteal": "ls",
|
||||
"manaSteal": "ms",
|
||||
"xpBonus": "xpb",
|
||||
"lootBonus": "lb",
|
||||
"reflection": "ref",
|
||||
"strengthPoints": "str",
|
||||
"dexterityPoints": "dex",
|
||||
"intelligencePoints": "int",
|
||||
"agilityPoints": "agi",
|
||||
"defensePoints": "def",
|
||||
#"thorns": "thorns",
|
||||
"exploding": "expd",
|
||||
"speed": "spd",
|
||||
"attackSpeedBonus": "atkTier",
|
||||
#"poison": "poison",
|
||||
"healthBonus": "hpBonus",
|
||||
"soulPoints": "spRegen",
|
||||
"emeraldStealing": "eSteal",
|
||||
"healthRegenRaw": "hprRaw",
|
||||
"spellDamageRaw": "sdRaw",
|
||||
"damageBonusRaw": "mdRaw",
|
||||
"bonusFireDamage": "fDamPct",
|
||||
"bonusWaterDamage": "wDamPct",
|
||||
"bonusAirDamage": "aDamPct",
|
||||
"bonusThunderDamage": "tDamPct",
|
||||
"bonusEarthDamage": "eDamPct",
|
||||
"bonusFireDefense": "fDefPct",
|
||||
"bonusWaterDefense": "wDefPct",
|
||||
"bonusAirDefense": "aDefPct",
|
||||
"bonusThunderDefense": "tDefPct",
|
||||
"bonusEarthDefense": "eDefPct",
|
||||
"accessoryType": "type",
|
||||
"identified": "fixID",
|
||||
#"skin": "skin",
|
||||
#"category": "category",
|
||||
|
||||
"spellCostPct1": "spPct1",
|
||||
"spellCostRaw1": "spRaw1",
|
||||
"spellCostPct2": "spPct2",
|
||||
"spellCostRaw2": "spRaw2",
|
||||
"spellCostPct3": "spPct3",
|
||||
"spellCostRaw3": "spRaw3",
|
||||
"spellCostPct4": "spPct4",
|
||||
"spellCostRaw4": "spRaw4",
|
||||
|
||||
"rainbowSpellDamageRaw": "rainbowRaw",
|
||||
#"sprint": "sprint",
|
||||
"sprintRegen": "sprintReg",
|
||||
"jumpHeight": "jh",
|
||||
"lootQuality": "lq",
|
||||
|
||||
"gatherXpBonus": "gXp",
|
||||
"gatherSpeed": "gSpd",
|
||||
}
|
||||
|
||||
delete_keys = [
|
||||
"addedLore",
|
||||
"skin",
|
||||
#"armorType",
|
||||
#"armorColor",
|
||||
#"material"
|
||||
]
|
||||
|
||||
id_map = {item["name"]: item["id"] for item in old_items}
|
||||
used_ids = set([v for k, v in id_map.items()])
|
||||
max_id = 0
|
||||
|
||||
known_item_names = set()
|
||||
|
||||
for item in items:
|
||||
for key in delete_keys:
|
||||
if key in item:
|
||||
del item[key]
|
||||
|
||||
for k in list(item.keys()):
|
||||
if item[k] == 0 and not k in must_mappings:
|
||||
del item[k]
|
||||
|
||||
for k, v in translate_mappings.items():
|
||||
if k in item:
|
||||
item[v] = item[k]
|
||||
del item[k]
|
||||
|
||||
if not (item["name"] in id_map):
|
||||
while max_id in used_ids:
|
||||
max_id += 1
|
||||
used_ids.add(max_id)
|
||||
id_map[item["name"]] = max_id
|
||||
print(f'New item: {item["name"]} (id: {max_id})')
|
||||
item["id"] = id_map[item["name"]]
|
||||
|
||||
known_item_names.add(item["name"])
|
||||
|
||||
item["type"] = item["type"].lower()
|
||||
if item["name"] in item_set_map:
|
||||
item["set"] = item_set_map[item["name"]]
|
||||
|
||||
for item in old_items:
|
||||
if "remapID" in item:
|
||||
items.append(item)
|
||||
elif item["name"] not in known_item_names:
|
||||
print(f'Unknown old item: {item["name"]}!!!')
|
||||
|
||||
with open("clean.json", "w") as outfile:
|
||||
json.dump(data, outfile, indent=2)
|
||||
with open("compress.json", "w") as outfile:
|
||||
json.dump(data, outfile)
|
576
updated.json
576
updated.json
|
@ -134668,73 +134668,33 @@
|
|||
"type": "chestplate",
|
||||
"set": null,
|
||||
"quest": "General's Orders",
|
||||
"poison": 0,
|
||||
"thorns": 0,
|
||||
"sprint": 0,
|
||||
"category": "armor",
|
||||
"slots": 3,
|
||||
"drop": "never",
|
||||
"restrict": "Untradable",
|
||||
"hp": 1900,
|
||||
"fDef": 55,
|
||||
"wDef": 55,
|
||||
"aDef": 55,
|
||||
"tDef": 55,
|
||||
"eDef": 55,
|
||||
"lvl": 80,
|
||||
"classReq": null,
|
||||
"fixID": false,
|
||||
"strReq": 0,
|
||||
"dexReq": 0,
|
||||
"intReq": 0,
|
||||
"agiReq": 0,
|
||||
"defReq": 0,
|
||||
"hprPct": 0,
|
||||
"mr": 0,
|
||||
"sdPct": 0,
|
||||
"mdPct": 0,
|
||||
"ls": 0,
|
||||
"ms": 0,
|
||||
"xpb": 15,
|
||||
"lb": 0,
|
||||
"ref": 0,
|
||||
"agiReq": 0,
|
||||
"category": "armor",
|
||||
"lvl": 80,
|
||||
"hp": 2150,
|
||||
"eDef": 55,
|
||||
"tDef": 55,
|
||||
"wDef": 55,
|
||||
"fDef": 55,
|
||||
"aDef": 55,
|
||||
"slots": 3,
|
||||
"str": -1,
|
||||
"dex": -1,
|
||||
"int": -1,
|
||||
"agi": -1,
|
||||
"def": -1,
|
||||
"expd": 0,
|
||||
"spd": 0,
|
||||
"atkTier": 0,
|
||||
"hpBonus": 0,
|
||||
"spRegen": 0,
|
||||
"eSteal": 0,
|
||||
"hprRaw": 0,
|
||||
"sdRaw": 0,
|
||||
"mdRaw": 0,
|
||||
"fDamPct": 5,
|
||||
"wDamPct": 5,
|
||||
"aDamPct": 5,
|
||||
"tDamPct": 5,
|
||||
"eDamPct": 5,
|
||||
"fDefPct": 0,
|
||||
"wDefPct": 0,
|
||||
"aDefPct": 0,
|
||||
"tDefPct": 0,
|
||||
"eDefPct": 0,
|
||||
"spPct1": 0,
|
||||
"spRaw1": 0,
|
||||
"spPct2": 0,
|
||||
"spRaw2": 0,
|
||||
"spPct3": 0,
|
||||
"spRaw3": 0,
|
||||
"spPct4": 0,
|
||||
"spRaw4": 0,
|
||||
"rainbowRaw": 0,
|
||||
"sprintReg": 0,
|
||||
"jh": 0,
|
||||
"lq": 0,
|
||||
"gXp": 0,
|
||||
"gSpd": 0,
|
||||
"agi": -1,
|
||||
"hprRaw": 100,
|
||||
"xpb": 15,
|
||||
"lb": 15,
|
||||
"spd": 15,
|
||||
"sdRaw": 150,
|
||||
"mdRaw": 200,
|
||||
"jh": 1,
|
||||
"id": 1869
|
||||
},
|
||||
{
|
||||
|
@ -240172,77 +240132,31 @@
|
|||
"id": 3328
|
||||
},
|
||||
{
|
||||
"name": "Tisaun's Honour",
|
||||
"tier": "Rare",
|
||||
"type": "ring",
|
||||
"name": "Tisaun's Honour",
|
||||
"displayName": "Tisaun's Honour",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
"poison": 0,
|
||||
"thorns": 8,
|
||||
"sprint": 0,
|
||||
"category": "accessory",
|
||||
"slots": 0,
|
||||
"drop": "lootchest",
|
||||
"hp": 0,
|
||||
"fDef": 20,
|
||||
"wDef": 0,
|
||||
"aDef": 0,
|
||||
"tDef": 0,
|
||||
"eDef": 15,
|
||||
"lvl": 88,
|
||||
"classReq": null,
|
||||
"fixID": false,
|
||||
"strReq": 35,
|
||||
"dexReq": 0,
|
||||
"intReq": 0,
|
||||
"agiReq": 0,
|
||||
"defReq": 35,
|
||||
"hprPct": 0,
|
||||
"mr": 0,
|
||||
"sdPct": 0,
|
||||
"mdPct": 8,
|
||||
"ls": 0,
|
||||
"ms": 0,
|
||||
"xpb": 0,
|
||||
"lb": 0,
|
||||
"ref": 8,
|
||||
"agiReq": 0,
|
||||
"category": "accessory",
|
||||
"lvl": 88,
|
||||
"eDef": 15,
|
||||
"fDef": 20,
|
||||
"str": 0,
|
||||
"dex": 0,
|
||||
"int": 0,
|
||||
"agi": 0,
|
||||
"def": 7,
|
||||
"expd": 0,
|
||||
"spd": -5,
|
||||
"atkTier": 0,
|
||||
"hpBonus": 0,
|
||||
"spRegen": 0,
|
||||
"eSteal": 0,
|
||||
"hprRaw": 0,
|
||||
"sdRaw": 0,
|
||||
"mdRaw": 0,
|
||||
"fDamPct": 0,
|
||||
"wDamPct": 0,
|
||||
"aDamPct": 0,
|
||||
"tDamPct": 0,
|
||||
"eDamPct": 0,
|
||||
"fDefPct": 0,
|
||||
"wDefPct": 0,
|
||||
"aDefPct": 0,
|
||||
"tDefPct": 0,
|
||||
"eDefPct": 0,
|
||||
"type": "ring",
|
||||
"spPct1": 0,
|
||||
"spRaw1": 0,
|
||||
"spPct2": 0,
|
||||
"spRaw2": 0,
|
||||
"spPct3": 0,
|
||||
"spRaw3": 0,
|
||||
"spPct4": 0,
|
||||
"spRaw4": 0,
|
||||
"rainbowRaw": 0,
|
||||
"sprintReg": 0,
|
||||
"jh": 0,
|
||||
"lq": 0,
|
||||
"gXp": 0,
|
||||
"gSpd": 0,
|
||||
"agi": 0,
|
||||
"thorns": 8,
|
||||
"ref": 8,
|
||||
"mdPct": 6,
|
||||
"id": 3329
|
||||
},
|
||||
{
|
||||
|
@ -255961,32 +255875,9 @@
|
|||
"remapID": 3020
|
||||
},
|
||||
{
|
||||
"tier": "Rare",
|
||||
"type": "ring",
|
||||
"name": "Tisaun's Honor",
|
||||
"displayName": "Tisaun's Honor",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
"classReq": null,
|
||||
"fixID": false,
|
||||
"strReq": 35,
|
||||
"dexReq": 0,
|
||||
"intReq": 0,
|
||||
"defReq": 35,
|
||||
"agiReq": 0,
|
||||
"category": "accessory",
|
||||
"lvl": 88,
|
||||
"eDef": 15,
|
||||
"fDef": 20,
|
||||
"str": 0,
|
||||
"dex": 0,
|
||||
"int": 0,
|
||||
"def": 7,
|
||||
"agi": 0,
|
||||
"thorns": 8,
|
||||
"ref": 8,
|
||||
"mdPct": 6,
|
||||
"id": 3579
|
||||
"id": 3579,
|
||||
"name": "3597",
|
||||
"remapID": 3329
|
||||
},
|
||||
{
|
||||
"id": 10122,
|
||||
|
@ -256804,7 +256695,7 @@
|
|||
{
|
||||
"tier": "Unique",
|
||||
"type": "helmet",
|
||||
"name": "Nychthemeron",
|
||||
"name": "Breakdown",
|
||||
"displayName": "Nychthemeron",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
|
@ -256972,7 +256863,7 @@
|
|||
{
|
||||
"tier": "Fabled",
|
||||
"type": "spear",
|
||||
"name": "Rhythm of Seasons",
|
||||
"name": "Rhythm of the Seasons",
|
||||
"displayName": "Rhythm of the Seasons",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
|
@ -257683,41 +257574,9 @@
|
|||
"remapID": 2065
|
||||
},
|
||||
{
|
||||
"tier": "Rare",
|
||||
"type": "chestplate",
|
||||
"name": "Changelings Chestplate",
|
||||
"displayName": "Changelings Chestplate",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
"classReq": null,
|
||||
"fixID": false,
|
||||
"strReq": 0,
|
||||
"dexReq": 0,
|
||||
"intReq": 0,
|
||||
"defReq": 0,
|
||||
"agiReq": 0,
|
||||
"category": "armor",
|
||||
"lvl": 80,
|
||||
"hp": 2150,
|
||||
"eDef": 55,
|
||||
"tDef": 55,
|
||||
"wDef": 55,
|
||||
"fDef": 55,
|
||||
"aDef": 55,
|
||||
"slots": 3,
|
||||
"str": -1,
|
||||
"dex": -1,
|
||||
"int": -1,
|
||||
"def": -1,
|
||||
"agi": -1,
|
||||
"hprRaw": 100,
|
||||
"xpb": 15,
|
||||
"lb": 15,
|
||||
"spd": 15,
|
||||
"sdRaw": 150,
|
||||
"mdRaw": 200,
|
||||
"jh": 1,
|
||||
"id": 3611
|
||||
"id": 3611,
|
||||
"name": "3611",
|
||||
"remapID": 1869
|
||||
},
|
||||
{
|
||||
"id": 10294,
|
||||
|
@ -258668,7 +258527,7 @@
|
|||
{
|
||||
"tier": "Legendary",
|
||||
"type": "leggings",
|
||||
"name": "Anixolytic",
|
||||
"name": "Anxiolytic",
|
||||
"displayName": "Anxiolytic",
|
||||
"set": null,
|
||||
"quest": null,
|
||||
|
@ -259124,6 +258983,57 @@
|
|||
}
|
||||
],
|
||||
"sets": {
|
||||
"Synch Core": {
|
||||
"items": [
|
||||
"Overload Core",
|
||||
"Synchro Core",
|
||||
"Dodge Core",
|
||||
"Harden Core",
|
||||
"Hustle Core"
|
||||
],
|
||||
"bonuses": [
|
||||
{},
|
||||
{
|
||||
"hprRaw": -20,
|
||||
"fDefPct": -8,
|
||||
"wDefPct": -8,
|
||||
"aDefPct": -8,
|
||||
"tDefPct": -8,
|
||||
"eDefPct": -8,
|
||||
"sprint": -8
|
||||
},
|
||||
{
|
||||
"hprRaw": 150,
|
||||
"fDefPct": -40,
|
||||
"wDefPct": -40,
|
||||
"aDefPct": -40,
|
||||
"tDefPct": -40,
|
||||
"eDefPct": -40,
|
||||
"sprint": -35,
|
||||
"ws": 16,
|
||||
"hpBonus": 1150,
|
||||
"sdPct": 14,
|
||||
"mdPct": 14,
|
||||
"jh": 1,
|
||||
"mr": -1,
|
||||
"ms": -1
|
||||
},
|
||||
{
|
||||
"hprRaw": 50,
|
||||
"fDefPct": 8,
|
||||
"wDefPct": 8,
|
||||
"aDefPct": 8,
|
||||
"tDefPct": 8,
|
||||
"eDefPct": 8,
|
||||
"sprint": 8,
|
||||
"ws": 8,
|
||||
"hpBonus": 666,
|
||||
"sdPct": 7,
|
||||
"mdPct": 7,
|
||||
"jh": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"Black": {
|
||||
"items": [
|
||||
"Black Cap",
|
||||
|
@ -259292,24 +259202,24 @@
|
|||
"bonuses": [
|
||||
{},
|
||||
{
|
||||
"str": 1,
|
||||
"dex": -1,
|
||||
"int": -1,
|
||||
"agi": 1,
|
||||
"def": 1,
|
||||
"spd": 2,
|
||||
"hprRaw": 60,
|
||||
"mdRaw": 60
|
||||
"str": 2,
|
||||
"dex": -2,
|
||||
"int": -2,
|
||||
"agi": 2,
|
||||
"def": 2,
|
||||
"spd": 5,
|
||||
"hprRaw": 55,
|
||||
"mdRaw": 135
|
||||
},
|
||||
{
|
||||
"str": 4,
|
||||
"dex": -4,
|
||||
"int": -4,
|
||||
"agi": 4,
|
||||
"def": 4,
|
||||
"spd": 8,
|
||||
"hprRaw": 180,
|
||||
"mdRaw": 180
|
||||
"str": 5,
|
||||
"dex": -5,
|
||||
"int": -5,
|
||||
"agi": 5,
|
||||
"def": 5,
|
||||
"spd": 10,
|
||||
"hprRaw": 210,
|
||||
"mdRaw": 270
|
||||
},
|
||||
{
|
||||
"str": 15,
|
||||
|
@ -259317,10 +259227,10 @@
|
|||
"int": -15,
|
||||
"agi": 15,
|
||||
"def": 15,
|
||||
"spd": 20,
|
||||
"spd": 25,
|
||||
"atkTier": 1,
|
||||
"hprRaw": 480,
|
||||
"mdRaw": 480
|
||||
"hprRaw": 525,
|
||||
"mdRaw": 540
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259336,7 +259246,7 @@
|
|||
{
|
||||
"mr": -1,
|
||||
"ms": 2,
|
||||
"sdRaw": 35,
|
||||
"sdRaw": 40,
|
||||
"wDamPct": 5,
|
||||
"tDamPct": 5,
|
||||
"eDamPct": -34
|
||||
|
@ -259344,7 +259254,7 @@
|
|||
{
|
||||
"mr": -2,
|
||||
"ms": 4,
|
||||
"sdRaw": 100,
|
||||
"sdRaw": 115,
|
||||
"wDamPct": 10,
|
||||
"tDamPct": 10,
|
||||
"eDamPct": -67
|
||||
|
@ -259352,10 +259262,11 @@
|
|||
{
|
||||
"mr": -3,
|
||||
"ms": 6,
|
||||
"sdRaw": 195,
|
||||
"wDamPct": 25,
|
||||
"tDamPct": 25,
|
||||
"eDamPct": -100
|
||||
"sdRaw": 230,
|
||||
"wDamPct": 32,
|
||||
"tDamPct": 32,
|
||||
"eDamPct": -100,
|
||||
"atkTier": -2
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259474,11 +259385,10 @@
|
|||
{},
|
||||
{
|
||||
"mr": 2,
|
||||
"xpb": 12,
|
||||
"str": 4,
|
||||
"hpBonus": 400,
|
||||
"sdRaw": 100,
|
||||
"mdRaw": 50
|
||||
"xpb": 40,
|
||||
"def": 25,
|
||||
"fDamPct": 20,
|
||||
"hprRaw": 180
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259516,32 +259426,33 @@
|
|||
],
|
||||
"bonuses": [
|
||||
{
|
||||
"xpb": -25,
|
||||
"lb": -25
|
||||
"xpb": 20,
|
||||
"lb": 20
|
||||
},
|
||||
{
|
||||
"xpb": -50,
|
||||
"lb": -50,
|
||||
"spd": -10,
|
||||
"hpBonus": 300,
|
||||
"sdRaw": -110,
|
||||
"mdRaw": 60
|
||||
},
|
||||
{
|
||||
"xpb": -75,
|
||||
"lb": -75,
|
||||
"xpb": 45,
|
||||
"lb": 45,
|
||||
"spd": 5,
|
||||
"hpBonus": -150,
|
||||
"sdRaw": 100,
|
||||
"mdRaw": -75
|
||||
"hpBonus": 240,
|
||||
"eSteal": 5
|
||||
},
|
||||
{
|
||||
"xpb": -100,
|
||||
"lb": -100,
|
||||
"spd": 5,
|
||||
"hpBonus": -150,
|
||||
"sdRaw": 100,
|
||||
"mdRaw": -75
|
||||
"xpb": 75,
|
||||
"lb": 75,
|
||||
"spd": 10,
|
||||
"hpBonus": 480,
|
||||
"eSteal": 15,
|
||||
"thorns": 12,
|
||||
"ref": 12
|
||||
},
|
||||
{
|
||||
"xpb": 120,
|
||||
"lb": 120,
|
||||
"spd": 25,
|
||||
"hpBonus": 720,
|
||||
"eSteal": 20,
|
||||
"thorns": 30,
|
||||
"ref": 30
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259591,18 +259502,18 @@
|
|||
"bonuses": [
|
||||
{},
|
||||
{
|
||||
"sdPct": -10,
|
||||
"sdPct": -12,
|
||||
"mdPct": 12,
|
||||
"sdRaw": -40,
|
||||
"mdRaw": 30
|
||||
"sdRaw": -50,
|
||||
"mdRaw": 60
|
||||
},
|
||||
{
|
||||
"sdPct": -35,
|
||||
"mdPct": 30,
|
||||
"dex": 15,
|
||||
"spd": 8,
|
||||
"sdRaw": -90,
|
||||
"mdRaw": 125
|
||||
"mdPct": 35,
|
||||
"dex": 30,
|
||||
"spd": 11,
|
||||
"sdRaw": -150,
|
||||
"mdRaw": 180
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259618,23 +259529,23 @@
|
|||
{
|
||||
"hprPct": -10,
|
||||
"mr": 1,
|
||||
"sdPct": 4,
|
||||
"sdPct": 6,
|
||||
"ref": 10,
|
||||
"thorns": 8
|
||||
},
|
||||
{
|
||||
"hprPct": -20,
|
||||
"mr": 2,
|
||||
"sdPct": 12,
|
||||
"ref": 30,
|
||||
"sdPct": 14,
|
||||
"ref": 35,
|
||||
"thorns": 24
|
||||
},
|
||||
{
|
||||
"hprPct": -35,
|
||||
"hprPct": -30,
|
||||
"mr": 4,
|
||||
"sdPct": 28,
|
||||
"ref": 70,
|
||||
"thorns": 55
|
||||
"sdPct": 30,
|
||||
"ref": 75,
|
||||
"thorns": 70
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -259831,10 +259742,12 @@
|
|||
{},
|
||||
{
|
||||
"mdPct": 11,
|
||||
"xpb": 10,
|
||||
"spd": 20,
|
||||
"xpb": 25,
|
||||
"spd": 17,
|
||||
"aDamPct": 15,
|
||||
"eDamPct": 15
|
||||
"eDamPct": 15,
|
||||
"sprint": 25,
|
||||
"sprintReg": 50
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260087,37 +260000,35 @@
|
|||
"bonuses": [
|
||||
{},
|
||||
{
|
||||
"xpb": 15,
|
||||
"lb": 15,
|
||||
"ref": 5,
|
||||
"spRegen": 15,
|
||||
"fDefPct": 10,
|
||||
"wDefPct": 10,
|
||||
"aDefPct": 10,
|
||||
"tDefPct": 10,
|
||||
"eDefPct": 10
|
||||
},
|
||||
{
|
||||
"xpb": 35,
|
||||
"lb": 35,
|
||||
"ref": 15,
|
||||
"spRegen": 35,
|
||||
"xpb": 25,
|
||||
"lb": 25,
|
||||
"fDefPct": 20,
|
||||
"wDefPct": 20,
|
||||
"aDefPct": 20,
|
||||
"tDefPct": 20,
|
||||
"eDefPct": 20
|
||||
"eDefPct": 20,
|
||||
"ms": 1
|
||||
},
|
||||
{
|
||||
"xpb": 50,
|
||||
"lb": 50,
|
||||
"ref": 30,
|
||||
"spRegen": 50,
|
||||
"fDefPct": 30,
|
||||
"wDefPct": 30,
|
||||
"aDefPct": 30,
|
||||
"tDefPct": 30,
|
||||
"eDefPct": 30
|
||||
"fDefPct": 50,
|
||||
"wDefPct": 50,
|
||||
"aDefPct": 50,
|
||||
"tDefPct": 50,
|
||||
"eDefPct": 50,
|
||||
"ms": 2
|
||||
},
|
||||
{
|
||||
"xpb": 75,
|
||||
"lb": 75,
|
||||
"fDefPct": 100,
|
||||
"wDefPct": 100,
|
||||
"aDefPct": 100,
|
||||
"tDefPct": 100,
|
||||
"eDefPct": 100,
|
||||
"sdPct": 40,
|
||||
"ms": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260132,30 +260043,30 @@
|
|||
{},
|
||||
{
|
||||
"mr": 1,
|
||||
"sdPct": -5,
|
||||
"mdPct": -10,
|
||||
"def": 5,
|
||||
"spRegen": 5,
|
||||
"wDamPct": 10,
|
||||
"aDamPct": 10
|
||||
"sdPct": -10,
|
||||
"mdPct": -15,
|
||||
"def": 7,
|
||||
"spRegen": 10,
|
||||
"wDamPct": 15,
|
||||
"aDamPct": 15
|
||||
},
|
||||
{
|
||||
"mr": 3,
|
||||
"sdPct": -10,
|
||||
"mdPct": -20,
|
||||
"def": 10,
|
||||
"spRegen": 10,
|
||||
"wDamPct": 20,
|
||||
"aDamPct": 20
|
||||
"sdPct": -20,
|
||||
"mdPct": -40,
|
||||
"def": 15,
|
||||
"spRegen": 25,
|
||||
"wDamPct": 40,
|
||||
"aDamPct": 40
|
||||
},
|
||||
{
|
||||
"mr": 5,
|
||||
"sdPct": -15,
|
||||
"mdPct": -35,
|
||||
"def": 30,
|
||||
"mr": 6,
|
||||
"sdPct": -40,
|
||||
"mdPct": -85,
|
||||
"def": 40,
|
||||
"spRegen": 100,
|
||||
"wDamPct": 35,
|
||||
"aDamPct": 35
|
||||
"wDamPct": 85,
|
||||
"aDamPct": 85
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260195,25 +260106,26 @@
|
|||
],
|
||||
"bonuses": [
|
||||
{
|
||||
"sdPct": -6,
|
||||
"mdPct": -6,
|
||||
"sdRaw": 15,
|
||||
"mdRaw": 10
|
||||
"sdPct": -5,
|
||||
"mdPct": -5,
|
||||
"sdRaw": 27,
|
||||
"mdRaw": 25
|
||||
},
|
||||
{
|
||||
"sdPct": -12,
|
||||
"mdPct": -12,
|
||||
"ls": 22,
|
||||
"sdPct": -13,
|
||||
"mdPct": -13,
|
||||
"ls": 30,
|
||||
"sdRaw": 55,
|
||||
"mdRaw": 45
|
||||
"mdRaw": 70
|
||||
},
|
||||
{
|
||||
"sdPct": -23,
|
||||
"mdPct": -23,
|
||||
"ls": 51,
|
||||
"sdPct": -33,
|
||||
"mdPct": -33,
|
||||
"ls": 90,
|
||||
"ms": 2,
|
||||
"sdRaw": 130,
|
||||
"mdRaw": 105
|
||||
"sdRaw": 160,
|
||||
"mdRaw": 105,
|
||||
"atkTier": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260228,16 +260140,16 @@
|
|||
{
|
||||
"int": 3,
|
||||
"def": 3,
|
||||
"hprRaw": 60
|
||||
"hprRaw": 90
|
||||
},
|
||||
{
|
||||
"mr": 4,
|
||||
"int": 15,
|
||||
"def": 15,
|
||||
"mr": 5,
|
||||
"int": 20,
|
||||
"def": 20,
|
||||
"hpBonus": 1500,
|
||||
"hprRaw": 270,
|
||||
"fDefPct": 60,
|
||||
"wDefPct": 60
|
||||
"hprRaw": 330,
|
||||
"fDefPct": 75,
|
||||
"wDefPct": 75
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260283,24 +260195,24 @@
|
|||
{
|
||||
"hprPct": 10,
|
||||
"lb": 8,
|
||||
"agi": 5,
|
||||
"def": 5,
|
||||
"spd": 6
|
||||
"agi": 3,
|
||||
"def": 3,
|
||||
"spd": 8
|
||||
},
|
||||
{
|
||||
"hprPct": 20,
|
||||
"lb": 16,
|
||||
"lb": 20,
|
||||
"agi": 7,
|
||||
"def": 7,
|
||||
"spd": 14
|
||||
"spd": 16
|
||||
},
|
||||
{
|
||||
"hprPct": 45,
|
||||
"lb": 32,
|
||||
"agi": 10,
|
||||
"def": 10,
|
||||
"spd": 20,
|
||||
"hprRaw": 45
|
||||
"lb": 35,
|
||||
"agi": 15,
|
||||
"def": 15,
|
||||
"spd": 25,
|
||||
"hprRaw": 50
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260359,18 +260271,18 @@
|
|||
"bonuses": [
|
||||
{},
|
||||
{
|
||||
"ls": 125,
|
||||
"ls": 180,
|
||||
"agi": 3,
|
||||
"def": 3
|
||||
},
|
||||
{
|
||||
"ls": 375,
|
||||
"ref": 70,
|
||||
"agi": 15,
|
||||
"def": 15,
|
||||
"thorns": 70,
|
||||
"fDefPct": 75,
|
||||
"aDefPct": 75
|
||||
"ls": 700,
|
||||
"ref": 80,
|
||||
"agi": 25,
|
||||
"def": 25,
|
||||
"thorns": 80,
|
||||
"fDefPct": 125,
|
||||
"aDefPct": 125
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -260466,8 +260378,8 @@
|
|||
{},
|
||||
{
|
||||
"mdPct": 14,
|
||||
"hpBonus": 30,
|
||||
"mdRaw": 20
|
||||
"hpBonus": 75,
|
||||
"mdRaw": 25
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
11
validate.py
Normal file
11
validate.py
Normal file
|
@ -0,0 +1,11 @@
|
|||
import json
|
||||
|
||||
with open("updated.json") as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
duplicate_map = dict()
|
||||
for item in data["items"]:
|
||||
if item["name"] in duplicate_map:
|
||||
print("DUPLICATE: " + str(item["id"]) + " <-> " + str(duplicate_map[item["name"]]["id"]))
|
||||
else:
|
||||
duplicate_map[item["name"]] = item
|
Loading…
Reference in a new issue