Merge branch 'dev' of https://github.com/hppeng-wynn/hppeng-wynn.github.io into dev
This commit is contained in:
commit
f91439e9dd
15 changed files with 4952 additions and 2382 deletions
|
@ -3,7 +3,7 @@ const url_tag = location.hash.slice(1);
|
||||||
console.log(url_base);
|
console.log(url_base);
|
||||||
console.log(url_tag);
|
console.log(url_tag);
|
||||||
|
|
||||||
const BUILD_VERSION = "6.9.10";
|
const BUILD_VERSION = "6.9.11";
|
||||||
|
|
||||||
function setTitle() {
|
function setTitle() {
|
||||||
let text;
|
let text;
|
||||||
|
|
116
craft.js
116
craft.js
|
@ -2,6 +2,33 @@ let armorTypes = [ "helmet", "chestplate", "leggings", "boots" ];
|
||||||
let accessoryTypes = [ "ring", "bracelet", "necklace" ];
|
let accessoryTypes = [ "ring", "bracelet", "necklace" ];
|
||||||
let weaponTypes = [ "wand", "spear", "bow", "dagger", "relik" ];
|
let weaponTypes = [ "wand", "spear", "bow", "dagger", "relik" ];
|
||||||
let consumableTypes = [ "potion", "scroll", "food"]
|
let consumableTypes = [ "potion", "scroll", "food"]
|
||||||
|
|
||||||
|
//constructs a craft from a hash 'CR-qwoefsabaoe' or 'qwoefsaboe'
|
||||||
|
function createCraft(hash) {
|
||||||
|
let name = hash;
|
||||||
|
if (name.slice(0,3) === "CR-") {
|
||||||
|
name = name.substring(3);
|
||||||
|
}
|
||||||
|
this.hash = name;
|
||||||
|
ingreds = [];
|
||||||
|
/*for (let i = 0; i < 6; i ++ ) {
|
||||||
|
ingreds.push( ingIDMap.get(Base64.toInt(name.substring(2*i,2*i+2))) );
|
||||||
|
}
|
||||||
|
let recipe = recipeIDMap.get(Base64.toInt(tag.substring(12,14)));
|
||||||
|
recipesName = recipe.split("-");
|
||||||
|
setValue("recipe-choice",recipesName[0]);
|
||||||
|
setValue("level-choice",recipesName[1]+"-"+recipesName[2]);
|
||||||
|
tierNum = Base64.toInt(tag.substring(14,15));
|
||||||
|
let mat_tiers = [];
|
||||||
|
mat_tiers.push(tierNum % 3 == 0 ? 3 : tierNum % 3);
|
||||||
|
mat_tiers.push(Math.floor((tierNum-0.5) / 3)+1); //Trying to prevent round-off error, don't yell at me
|
||||||
|
let atkSpd = Base64.toInt(tag.substring(15));
|
||||||
|
let atkSpds = ["SLOW,NORMAL,FAST"];
|
||||||
|
let attackSpeed atkSpds[atkSpd];
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Creates a crafted item object.
|
/* Creates a crafted item object.
|
||||||
*/
|
*/
|
||||||
class Craft{
|
class Craft{
|
||||||
|
@ -20,11 +47,11 @@ class Craft{
|
||||||
this.initCraftStats();
|
this.initCraftStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setHash(hash) {
|
setHash(hash) {
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
console.log(hash);
|
|
||||||
this.statMap.set("displayName", "CR-" + this.hash);
|
this.statMap.set("displayName", "CR-" + this.hash);
|
||||||
console.log(this.statMap.get("displayName"));
|
|
||||||
}
|
}
|
||||||
/* Get all stats for this build. Stores in this.statMap.
|
/* Get all stats for this build. Stores in this.statMap.
|
||||||
@pre The craft itself should be valid. No checking of validity of pieces is done here.
|
@pre The craft itself should be valid. No checking of validity of pieces is done here.
|
||||||
|
@ -107,12 +134,12 @@ class Craft{
|
||||||
|
|
||||||
*/
|
*/
|
||||||
let matmult = 1;
|
let matmult = 1;
|
||||||
let sorted = this.mat_tiers.slice().sort();
|
let sorted = this.mat_tiers.slice().sort(function(a, b){return a - b});
|
||||||
//TODO - MAT MULTIPLIERS ARE SUS FOR NON-MIXING TIERS.
|
//TODO - MAT MULTIPLIERS ARE SUS FOR NON-MIXING TIERS.
|
||||||
if( sorted[0] == 1 && sorted[1] == 1) {
|
if( sorted[0] == 1 && sorted[1] == 1) {
|
||||||
matmult = 1;
|
matmult = 1;
|
||||||
} else if( sorted[0] == 1 && sorted[1] == 2) {
|
} else if( sorted[0] == 1 && sorted[1] == 2) {
|
||||||
matmult = 1.10;
|
matmult = 1.09;
|
||||||
}else if( sorted[0] == 1 && sorted[1] == 3) {
|
}else if( sorted[0] == 1 && sorted[1] == 3) {
|
||||||
matmult = 1.15;
|
matmult = 1.15;
|
||||||
}else if( sorted[0] == 2 && sorted[1] == 2) {
|
}else if( sorted[0] == 2 && sorted[1] == 2) {
|
||||||
|
@ -145,57 +172,51 @@ class Craft{
|
||||||
} else if (this['atkSpd'] === "FAST") {
|
} else if (this['atkSpd'] === "FAST") {
|
||||||
ratio /= 2.5;
|
ratio /= 2.5;
|
||||||
}
|
}
|
||||||
low = Math.floor(low * matmult);
|
let nDamBaseLow = Math.floor(low * matmult);
|
||||||
high = Math.floor(high * matmult);
|
let nDamBaseHigh = Math.floor(high * matmult);
|
||||||
low = Math.floor(low * ratio);
|
nDamBaseLow = Math.floor(nDamBaseLow * ratio);
|
||||||
high = Math.floor(high * ratio);
|
nDamBaseHigh = Math.floor(nDamBaseHigh * ratio);
|
||||||
let low1 = Math.floor(low * 0.9);
|
let elemDamBaseLow = [0,0,0,0,0];
|
||||||
let low2 = Math.floor(low * 1.1);
|
let elemDamBaseHigh = [0,0,0,0,0];
|
||||||
let high1 = Math.floor(high * 0.9);
|
|
||||||
let high2 = Math.floor(high * 1.1);
|
|
||||||
|
|
||||||
statMap.set("nDamLow", low1 + "-" + low2); //jank
|
|
||||||
statMap.set("nDam", high1 + "-" + high2);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* APPLY POWDERS - MAY NOT BE CORRECT
|
* APPLY POWDERS - MAY NOT BE CORRECT
|
||||||
*/
|
*/
|
||||||
let mockItem = new Map();
|
let powders = [];
|
||||||
mockItem.set("type",statMap.get("type"));
|
|
||||||
mockItem.set("atkSpd",statMap.get("atkSpd"));
|
|
||||||
mockItem.set("nDam", high1 + "-" + high2);
|
|
||||||
for (const e of skp_elements) {
|
|
||||||
mockItem.set(e+"Dam","0-0");
|
|
||||||
}
|
|
||||||
mockItem.set("powders",[]);
|
|
||||||
for (let n in this.ingreds) {
|
for (let n in this.ingreds) {
|
||||||
let ingred = this.ingreds[n];
|
let ingred = this.ingreds[n];
|
||||||
if (ingred.get("isPowder")) {
|
if (ingred.get("isPowder")) {
|
||||||
mockItem.get("powders").push(ingred.get("pid"));
|
powders.push(ingred.get("pid"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let stats = new Map();
|
for (const p of powders) {
|
||||||
stats.set("atkSpd", mockItem.get("atkSpd"));
|
/* Powders as ingredients in crafted weapons are different than powders applied to non-crafted weapons. Thanks to nbcss for showing me the math.
|
||||||
stats.set("damageBonus", [0, 0, 0, 0, 0]);
|
*/
|
||||||
stats.set("damageRaw", [mockItem.get("nDam"), mockItem.get("eDam"), mockItem.get("tDam"), mockItem.get("wDam"), mockItem.get("fDam"), mockItem.get("aDam")]);
|
let powder = powderStats[p]; //use min, max, and convert
|
||||||
let damage_keys = [ "nDam", "eDam", "tDam", "wDam", "fDam", "aDam" ]; //affects base damage directly.
|
let element = Math.floor((p+0.01)/6); //[0,4], the +0.01 attempts to prevent division error
|
||||||
let results = calculateSpellDamage(stats, [100, 0, 0, 0, 0, 0], 0, 0, 0, mockItem, [0, 0, 0, 0, 0], 1, undefined);
|
let diffLow = Math.floor(nDamBaseLow * powder.convert/100);
|
||||||
let damages = results[2];
|
nDamBaseLow -= diffLow;
|
||||||
for (const i in damage_keys) {
|
elemDamBaseLow[element] += diffLow + Math.floor( (powder.min + powder.max) / 2 );
|
||||||
statMap.set(damage_keys[i], damages[i][0]+"-"+damages[i][1]);
|
let diffHigh = Math.floor(nDamBaseHigh * powder.convert/100);
|
||||||
}
|
nDamBaseHigh -= diffHigh;
|
||||||
//second go-through: for the low roll.
|
elemDamBaseHigh[element] += diffHigh + Math.floor( (powder.min + powder.max) / 2 );
|
||||||
mockItem.set("nDam", low1 + "-" + low2);
|
|
||||||
for (const e of skp_elements) {
|
|
||||||
mockItem.set(e+"Dam","0-0");
|
|
||||||
}
|
|
||||||
stats.set("damageRaw", [mockItem.get("nDam"), mockItem.get("eDam"), mockItem.get("tDam"), mockItem.get("wDam"), mockItem.get("fDam"), mockItem.get("aDam")]);
|
|
||||||
results = calculateSpellDamage(stats, [100, 0, 0, 0, 0, 0], 0, 0, 0, mockItem, [0, 0, 0, 0, 0], 1, undefined);
|
|
||||||
damages = results[2];
|
|
||||||
for (const i in damage_keys) {
|
|
||||||
statMap.set(damage_keys[i]+"Low", damages[i][0]+"-"+damages[i][1]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* I create a separate variable for each low damage range because we need one damage range to calculate damage with, and it's custom to use the maximum range of the range range.
|
||||||
|
*/
|
||||||
|
let low1 = Math.floor(nDamBaseLow * 0.9);
|
||||||
|
let low2 = Math.floor(nDamBaseLow * 1.1);
|
||||||
|
let high1 = Math.floor(nDamBaseHigh * 0.9);
|
||||||
|
let high2 = Math.floor(nDamBaseHigh * 1.1);
|
||||||
|
statMap.set("nDamLow", low1+"-"+low2);
|
||||||
|
statMap.set("nDam", high1+"-"+high2);
|
||||||
|
for (const e in skp_elements) {
|
||||||
|
low1 = Math.floor(elemDamBaseLow[e] * 0.9);
|
||||||
|
low2 = Math.floor(elemDamBaseLow[e] * 1.1);
|
||||||
|
high1 = Math.floor(elemDamBaseHigh[e] * 0.9);
|
||||||
|
high2 = Math.floor(elemDamBaseHigh[e] * 1.1);
|
||||||
|
statMap.set(skp_elements[e]+"DamLow", low1+"-"+low2);
|
||||||
|
statMap.set(skp_elements[e]+"Dam",high1+"-"+high2);
|
||||||
|
}
|
||||||
} else if (statMap.get("category") === "armor") {
|
} else if (statMap.get("category") === "armor") {
|
||||||
for (let n in this.ingreds) {
|
for (let n in this.ingreds) {
|
||||||
let ingred = this.ingreds[n];
|
let ingred = this.ingreds[n];
|
||||||
|
@ -206,6 +227,9 @@ class Craft{
|
||||||
statMap.set(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 4 )% 5] + "Def", (statMap.get(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 4 )% 5]+"Def") || 0) - powder["defMinus"]);
|
statMap.set(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 4 )% 5] + "Def", (statMap.get(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 4 )% 5]+"Def") || 0) - powder["defMinus"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
low = Math.floor(low * matmult);
|
||||||
|
high = Math.floor(high * matmult);
|
||||||
|
statMap.set("hp",low+"-"+high);
|
||||||
}
|
}
|
||||||
/* END SECTION */
|
/* END SECTION */
|
||||||
|
|
||||||
|
@ -290,7 +314,7 @@ class Craft{
|
||||||
for (const [key,value] of ingred.get("ids").get("minRolls")) {
|
for (const [key,value] of ingred.get("ids").get("minRolls")) {
|
||||||
if (value && value != 0) {
|
if (value && value != 0) {
|
||||||
let rolls = [value,ingred.get("ids").get("maxRolls").get(key)];
|
let rolls = [value,ingred.get("ids").get("maxRolls").get(key)];
|
||||||
rolls = rolls.map(x => Math.floor(x * eff_mult)).sort();
|
rolls = rolls.map(x => Math.floor(x * eff_mult)).sort(function(a, b){return a - b});
|
||||||
statMap.get("minRolls").set(key, (statMap.get("minRolls").get(key)) ? statMap.get("minRolls").get(key) + rolls[0] : rolls[0]);
|
statMap.get("minRolls").set(key, (statMap.get("minRolls").get(key)) ? statMap.get("minRolls").get(key) + rolls[0] : rolls[0]);
|
||||||
statMap.get("maxRolls").set(key, (statMap.get("maxRolls").get(key)) ? statMap.get("maxRolls").get(key) + rolls[1] : rolls[1]);
|
statMap.get("maxRolls").set(key, (statMap.get("maxRolls").get(key)) ? statMap.get("maxRolls").get(key) + rolls[1] : rolls[1]);
|
||||||
}
|
}
|
||||||
|
|
76
crafter.js
76
crafter.js
|
@ -9,7 +9,7 @@ console.log(url_tag);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const BUILD_VERSION = "6.9.9";
|
const BUILD_VERSION = "6.9.11";
|
||||||
/*
|
/*
|
||||||
* END testing section
|
* END testing section
|
||||||
*/
|
*/
|
||||||
|
@ -29,7 +29,7 @@ function setTitle() {
|
||||||
document.getElementById("header").textContent = "WynnCrafter version "+BUILD_VERSION+" (ingredient db version "+ING_DB_VERSION+")";
|
document.getElementById("header").textContent = "WynnCrafter version "+BUILD_VERSION+" (ingredient db version "+ING_DB_VERSION+")";
|
||||||
document.getElementById("header").classList.add("funnynumber");
|
document.getElementById("header").classList.add("funnynumber");
|
||||||
let disclaimer = document.createElement("p");
|
let disclaimer = document.createElement("p");
|
||||||
disclaimer.textContent = "THIS CRAFTER IS INCOMPLETE. The effect of material tiers on crated items is not 100% tested and accurate. If you know how the math behind it works, please contact ferricles on forums, discord, or ingame.";
|
disclaimer.textContent = "THIS CRAFTER IS NEARLY COMPLETE. The effect of material tiers on crafted items is not 100% tested and accurate. If you know how the math behind it works OR if you have a crafted item whose stats contradict this crafter, please contact ferricles on forums, discord, or ingame.";
|
||||||
document.getElementById("header").append(disclaimer);
|
document.getElementById("header").append(disclaimer);
|
||||||
}
|
}
|
||||||
setTitle();
|
setTitle();
|
||||||
|
@ -42,6 +42,7 @@ let recipeList = [];
|
||||||
|
|
||||||
let ingIDMap = new Map();
|
let ingIDMap = new Map();
|
||||||
let recipeIDMap = new Map();
|
let recipeIDMap = new Map();
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
//no ing
|
//no ing
|
||||||
let ing = Object();
|
let ing = Object();
|
||||||
|
@ -53,9 +54,10 @@ function init() {
|
||||||
ing.itemIDs = {"dura": 0, "strReq": 0, "dexReq": 0,"intReq": 0,"defReq": 0,"agiReq": 0,};
|
ing.itemIDs = {"dura": 0, "strReq": 0, "dexReq": 0,"intReq": 0,"defReq": 0,"agiReq": 0,};
|
||||||
ing.consumableIDs = {"dura": 0, "charges": 0};
|
ing.consumableIDs = {"dura": 0, "charges": 0};
|
||||||
ing.posMods = {"left": 0, "right": 0, "above": 0, "under": 0, "touching": 0, "notTouching": 0};
|
ing.posMods = {"left": 0, "right": 0, "above": 0, "under": 0, "touching": 0, "notTouching": 0};
|
||||||
|
ing.id = 4000;
|
||||||
ingMap.set(ing["name"], ing);
|
ingMap.set(ing["name"], ing);
|
||||||
ingList.push(ing["name"]);
|
ingList.push(ing["name"]);
|
||||||
ingIDMap.set(ingList.length-1, ing["name"]);
|
ingIDMap.set(ing["id"], ing["name"]);
|
||||||
let numerals = new Map([[1, "I"], [2, "II"], [3, "III"], [4, "IV"], [5, "V"], [6, "VI"]]);
|
let numerals = new Map([[1, "I"], [2, "II"], [3, "III"], [4, "IV"], [5, "V"], [6, "VI"]]);
|
||||||
for (let i = 0; i < 5; i ++) {
|
for (let i = 0; i < 5; i ++) {
|
||||||
for (const powderIng of powderIngreds) {
|
for (const powderIng of powderIngreds) {
|
||||||
|
@ -67,6 +69,7 @@ function init() {
|
||||||
ing.ids = {};
|
ing.ids = {};
|
||||||
ing.isPowder = true;
|
ing.isPowder = true;
|
||||||
ing.pid = 6*i + powderIngreds.indexOf(powderIng);
|
ing.pid = 6*i + powderIngreds.indexOf(powderIng);
|
||||||
|
ing.id = 4001 + ing.pid;
|
||||||
ing.itemIDs = {"dura": powderIng["durability"], "strReq": 0, "dexReq": 0,"intReq": 0,"defReq": 0,"agiReq": 0,};
|
ing.itemIDs = {"dura": powderIng["durability"], "strReq": 0, "dexReq": 0,"intReq": 0,"defReq": 0,"agiReq": 0,};
|
||||||
switch(i) {
|
switch(i) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -89,6 +92,7 @@ function init() {
|
||||||
ing.posMods = {"left": 0, "right": 0, "above": 0, "under": 0, "touching": 0, "notTouching": 0};
|
ing.posMods = {"left": 0, "right": 0, "above": 0, "under": 0, "touching": 0, "notTouching": 0};
|
||||||
ingMap.set(ing["name"],ing);
|
ingMap.set(ing["name"],ing);
|
||||||
ingList.push(ing["name"]);
|
ingList.push(ing["name"]);
|
||||||
|
ingIDMap.set(ing["id"], ing["name"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,10 +100,12 @@ function init() {
|
||||||
for (const ing of ings) {
|
for (const ing of ings) {
|
||||||
ingMap.set(ing["name"], ing);
|
ingMap.set(ing["name"], ing);
|
||||||
ingList.push(ing["name"]);
|
ingList.push(ing["name"]);
|
||||||
|
ingIDMap.set(ing["id"], ing["name"]);
|
||||||
}
|
}
|
||||||
for (const recipe of recipes) {
|
for (const recipe of recipes) {
|
||||||
recipeMap.set(recipe["id"], recipe);
|
recipeMap.set(recipe["name"], recipe);
|
||||||
recipeList.push(recipe["id"]);
|
recipeList.push(recipe["name"]);
|
||||||
|
recipeIDMap.set(recipe["id"],recipe["name"]);
|
||||||
}
|
}
|
||||||
console.log("all ingredients");
|
console.log("all ingredients");
|
||||||
console.log(ings);
|
console.log(ings);
|
||||||
|
@ -107,6 +113,8 @@ function init() {
|
||||||
console.log(recipes);
|
console.log(recipes);
|
||||||
console.log(ingList);
|
console.log(ingList);
|
||||||
console.log(recipeList);
|
console.log(recipeList);
|
||||||
|
console.log(ingIDMap);
|
||||||
|
console.log(recipeIDMap);
|
||||||
|
|
||||||
document.getElementById("recipe-choice").addEventListener("change", (event) => {
|
document.getElementById("recipe-choice").addEventListener("change", (event) => {
|
||||||
updateMaterials();
|
updateMaterials();
|
||||||
|
@ -117,6 +125,7 @@ function init() {
|
||||||
|
|
||||||
populateFields();
|
populateFields();
|
||||||
decodeCraft(url_tag);
|
decodeCraft(url_tag);
|
||||||
|
|
||||||
}
|
}
|
||||||
function updateMaterials() {
|
function updateMaterials() {
|
||||||
let recipeName = getValue("recipe-choice") ? getValue("recipe-choice") : "Potion";
|
let recipeName = getValue("recipe-choice") ? getValue("recipe-choice") : "Potion";
|
||||||
|
@ -229,13 +238,13 @@ function encodeCraft() {
|
||||||
if (player_craft) {
|
if (player_craft) {
|
||||||
let atkSpds = ["SLOW","NORMAL","FAST"];
|
let atkSpds = ["SLOW","NORMAL","FAST"];
|
||||||
let craft_string = "1_" +
|
let craft_string = "1_" +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[0].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[0].get("id"), 2) +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[1].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[1].get("id"), 2) +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[2].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[2].get("id"), 2) +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[3].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[3].get("id"), 2) +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[4].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[4].get("id"), 2) +
|
||||||
Base64.fromIntN(ingList.indexOf(player_craft.ingreds[5].get("name")), 2) +
|
Base64.fromIntN(player_craft.ingreds[5].get("id"), 2) +
|
||||||
Base64.fromIntN(recipeList.indexOf(player_craft.recipe.get("id")),2) +
|
Base64.fromIntN(player_craft.recipe.get("id"),2) +
|
||||||
Base64.fromIntN(player_craft.mat_tiers[0] + (player_craft.mat_tiers[1]-1)*3, 1) + //this maps tiers [a,b] to a+3b.
|
Base64.fromIntN(player_craft.mat_tiers[0] + (player_craft.mat_tiers[1]-1)*3, 1) + //this maps tiers [a,b] to a+3b.
|
||||||
Base64.fromIntN(atkSpds.indexOf(player_craft["atkSpd"]),1);
|
Base64.fromIntN(atkSpds.indexOf(player_craft["atkSpd"]),1);
|
||||||
return craft_string;
|
return craft_string;
|
||||||
|
@ -244,16 +253,17 @@ function encodeCraft() {
|
||||||
}
|
}
|
||||||
function decodeCraft(url_tag) {
|
function decodeCraft(url_tag) {
|
||||||
if (url_tag) {
|
if (url_tag) {
|
||||||
console.log(url_tag);
|
|
||||||
let info = url_tag.split("_");
|
let info = url_tag.split("_");
|
||||||
let version = info[0];
|
let version = info[0];
|
||||||
let tag = info[1];
|
let tag = info[1];
|
||||||
if (version === "1") {
|
if (version === "1") {
|
||||||
ingreds = [];
|
ingreds = [];
|
||||||
for (let i = 0; i < 6; i ++ ) {
|
for (let i = 0; i < 6; i ++ ) {
|
||||||
setValue("ing-choice-"+(i+1), ingList[Base64.toInt(tag.substring(2*i,2*i+2))]);
|
setValue("ing-choice-"+(i+1), ingIDMap.get(Base64.toInt(tag.substring(2*i,2*i+2))));
|
||||||
|
console.log(Base64.toInt(tag.substring(2*i,2*i+2)));
|
||||||
}
|
}
|
||||||
recipe = recipeList[Base64.toInt(tag.substring(12,14))];
|
recipe = recipeIDMap.get(Base64.toInt(tag.substring(12,14)));
|
||||||
|
console.log(Base64.toInt(tag.substring(12,14)));
|
||||||
recipesName = recipe.split("-");
|
recipesName = recipe.split("-");
|
||||||
setValue("recipe-choice",recipesName[0]);
|
setValue("recipe-choice",recipesName[0]);
|
||||||
setValue("level-choice",recipesName[1]+"-"+recipesName[2]);
|
setValue("level-choice",recipesName[1]+"-"+recipesName[2]);
|
||||||
|
@ -264,7 +274,6 @@ function decodeCraft(url_tag) {
|
||||||
toggleMaterial("mat-1-"+mat_tiers[0]);
|
toggleMaterial("mat-1-"+mat_tiers[0]);
|
||||||
toggleMaterial("mat-2-"+mat_tiers[1]);
|
toggleMaterial("mat-2-"+mat_tiers[1]);
|
||||||
atkSpd = Base64.toInt(tag.substring(15));
|
atkSpd = Base64.toInt(tag.substring(15));
|
||||||
console.log(atkSpd);
|
|
||||||
let atkSpdButtons = ["slow-atk-button", "normal-atk-button", "fast-atk-button"];
|
let atkSpdButtons = ["slow-atk-button", "normal-atk-button", "fast-atk-button"];
|
||||||
toggleAtkSpd(atkSpdButtons[atkSpd]);
|
toggleAtkSpd(atkSpdButtons[atkSpd]);
|
||||||
|
|
||||||
|
@ -323,11 +332,38 @@ function copyRecipe(){
|
||||||
function shareRecipe(){
|
function shareRecipe(){
|
||||||
if (player_craft) {
|
if (player_craft) {
|
||||||
let copyString = url_base+location.hash + "\n";
|
let copyString = url_base+location.hash + "\n";
|
||||||
let name = player_craft.recipe.get("id").split("-");
|
let name = player_craft.recipe.get("name").split("-");
|
||||||
copyString += " > " + name[0] + " " + "Lv. " + name[1] + "-" + name[2] + " (" + player_craft.mat_tiers[0] + "\u272B, " + player_craft.mat_tiers[1] + "\u272B)\n";
|
copyString += " > " + name[0] + " " + "Lv. " + name[1] + "-" + name[2] + " (" + player_craft.mat_tiers[0] + "\u272B, " + player_craft.mat_tiers[1] + "\u272B)\n";
|
||||||
copyString += " > [" + player_craft.ingreds[0].get("name") + " | " + player_craft.ingreds[1].get("name") + "\n";
|
let names = [
|
||||||
copyString += " > " + player_craft.ingreds[2].get("name") + " | " + player_craft.ingreds[3].get("name") + "\n";
|
player_craft.ingreds[0].get("name"),
|
||||||
copyString += " > " + player_craft.ingreds[4].get("name") + " | " + player_craft.ingreds[5].get("name") + "]";
|
player_craft.ingreds[1].get("name"),
|
||||||
|
player_craft.ingreds[2].get("name"),
|
||||||
|
player_craft.ingreds[3].get("name"),
|
||||||
|
player_craft.ingreds[4].get("name"),
|
||||||
|
player_craft.ingreds[5].get("name")
|
||||||
|
];
|
||||||
|
//fancy justify code that doesn't work properly b/c most font isn't monospaced
|
||||||
|
let buffer1 = Math.max(names[0].length,names[2].length,names[4].length);
|
||||||
|
let buffer2 = Math.max(names[1].length,names[3].length,names[5].length);
|
||||||
|
for (let i in names) {
|
||||||
|
let name = names[i];
|
||||||
|
let spaces;
|
||||||
|
if (i % 2 == 0) { //buffer 1
|
||||||
|
spaces = buffer1 - name.length;
|
||||||
|
} else { //buffer 2
|
||||||
|
spaces = buffer2 - name.length;
|
||||||
|
}
|
||||||
|
for (let j = 0; j < spaces; j ++) {
|
||||||
|
if (j % 2 == 0) {
|
||||||
|
names[i]+=" ";
|
||||||
|
} else {
|
||||||
|
names[i] = " "+names[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
copyString += " > [" + names[0] + " | " + names[1] + "\n";
|
||||||
|
copyString += " > " + names[2] + " | " + names[3] + "\n";
|
||||||
|
copyString += " > " + names[4] + " | " + names[5] + "]";
|
||||||
copyTextToClipboard(copyString);
|
copyTextToClipboard(copyString);
|
||||||
document.getElementById("share-button").textContent = "Copied!";
|
document.getElementById("share-button").textContent = "Copied!";
|
||||||
}
|
}
|
||||||
|
|
16
display.js
16
display.js
|
@ -86,7 +86,7 @@ function expandIngredient(ing) {
|
||||||
}
|
}
|
||||||
expandedIng.set(id, idMap);
|
expandedIng.set(id, idMap);
|
||||||
}
|
}
|
||||||
let normIds = ['lvl','name','tier','skills'];
|
let normIds = ['lvl','name','tier','skills','id'];
|
||||||
for (const id of normIds) {
|
for (const id of normIds) {
|
||||||
expandedIng.set(id, ing[id]);
|
expandedIng.set(id, ing[id]);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ function expandIngredient(ing) {
|
||||||
*/
|
*/
|
||||||
function expandRecipe(recipe) {
|
function expandRecipe(recipe) {
|
||||||
let expandedRecipe = new Map();
|
let expandedRecipe = new Map();
|
||||||
let normIDs = ["id", "skill", "type"];
|
let normIDs = ["name", "skill", "type","id"];
|
||||||
for (const id of normIDs) {
|
for (const id of normIDs) {
|
||||||
expandedRecipe.set(id,recipe[id]);
|
expandedRecipe.set(id,recipe[id]);
|
||||||
}
|
}
|
||||||
|
@ -577,11 +577,9 @@ function displayExpandedItem(item, parent_id){
|
||||||
if (item.get("tier") !== " ") {
|
if (item.get("tier") !== " ") {
|
||||||
p_elem.classList.add(item.get("tier"));
|
p_elem.classList.add(item.get("tier"));
|
||||||
}
|
}
|
||||||
if (["potion", "scroll", "food"].includes(item.get("type"))){
|
if(item.get("tier") === "Crafted") {
|
||||||
let b = document.createElement("b");
|
p_elem.classList.add("smalltitle");
|
||||||
b.textContent = "[" + item.get("charges") + "/" + item.get("charges") + "]";
|
p_elem.classList.remove("title");
|
||||||
b.classList.add("spaceleft");
|
|
||||||
p_elem.appendChild(b);
|
|
||||||
}
|
}
|
||||||
p_elem.append(document.createElement("br"));
|
p_elem.append(document.createElement("br"));
|
||||||
let img = document.createElement("img");
|
let img = document.createElement("img");
|
||||||
|
@ -773,6 +771,10 @@ function displayExpandedItem(item, parent_id){
|
||||||
dura = item.get("duration");
|
dura = item.get("duration");
|
||||||
dura_elem.textContent = "Duration: "
|
dura_elem.textContent = "Duration: "
|
||||||
suffix = " sec."
|
suffix = " sec."
|
||||||
|
let charges = document.createElement("b");
|
||||||
|
charges.textContent = "Charges: " + item.get("charges");
|
||||||
|
charges.classList.add("spaceleft");
|
||||||
|
active_elem.appendChild(charges);
|
||||||
}
|
}
|
||||||
dura_elem.textContent += dura[0]+"-"+dura[1] + suffix;
|
dura_elem.textContent += dura[0]+"-"+dura[1] + suffix;
|
||||||
active_elem.append(dura_elem);
|
active_elem.append(dura_elem);
|
||||||
|
|
|
@ -1004,8 +1004,11 @@
|
||||||
<script type="text/javascript" src="skillpoints.js"></script>
|
<script type="text/javascript" src="skillpoints.js"></script>
|
||||||
<script type="text/javascript" src="damage_calc.js"></script>
|
<script type="text/javascript" src="damage_calc.js"></script>
|
||||||
<script type="text/javascript" src="display.js"></script>
|
<script type="text/javascript" src="display.js"></script>
|
||||||
<script type="text/javascript" src="build.js"></script>
|
|
||||||
<script type="text/javascript" src="load.js"></script>
|
<script type="text/javascript" src="load.js"></script>
|
||||||
|
<!--script type="text/javascript" src="load_ing.js"></script>
|
||||||
|
<script type="text/javascript" src="craft.js"></script>
|
||||||
|
<script type="text/javascript" src="crafter.js"></script-->
|
||||||
|
<script type="text/javascript" src="build.js"></script>
|
||||||
<script type="text/javascript" src="builder.js"></script>
|
<script type="text/javascript" src="builder.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
683
ing_map.json
Normal file
683
ing_map.json
Normal file
|
@ -0,0 +1,683 @@
|
||||||
|
{
|
||||||
|
"Acid Magma": 0,
|
||||||
|
"Alnamar Meat": 1,
|
||||||
|
"Altered Ash": 2,
|
||||||
|
"Ancient Metal": 3,
|
||||||
|
"Apple": 4,
|
||||||
|
"Arcane Anomaly": 5,
|
||||||
|
"Bamboo": 6,
|
||||||
|
"Ball of Slime": 7,
|
||||||
|
"Bandit Rations": 8,
|
||||||
|
"Bat Ear": 9,
|
||||||
|
"Big Jawbreaker": 10,
|
||||||
|
"Black Steel": 11,
|
||||||
|
"Blaze Powder": 12,
|
||||||
|
"Blighted Skull": 13,
|
||||||
|
"Bloodweb": 14,
|
||||||
|
"Bone Meal": 15,
|
||||||
|
"Bone Ash": 16,
|
||||||
|
"Boar Meat": 17,
|
||||||
|
"Bright Petal": 18,
|
||||||
|
"Broken Antic Bead": 19,
|
||||||
|
"Broken Helmet": 20,
|
||||||
|
"Broken Pick": 21,
|
||||||
|
"Brown Mushroom": 22,
|
||||||
|
"Bug Parts": 23,
|
||||||
|
"Calcified Ligament": 24,
|
||||||
|
"Candy Button": 25,
|
||||||
|
"Charred Carapace": 26,
|
||||||
|
"Coastal Sand": 27,
|
||||||
|
"Cocoa Caps": 28,
|
||||||
|
"Conscription Letter": 29,
|
||||||
|
"Corbys Innards": 30,
|
||||||
|
"Corroded Chunk": 31,
|
||||||
|
"Corruption Shard": 32,
|
||||||
|
"Coyote Fang": 33,
|
||||||
|
"Crawler Eye": 34,
|
||||||
|
"Crawler Sludge": 35,
|
||||||
|
"Crawler Web": 36,
|
||||||
|
"Crumbly Rock": 37,
|
||||||
|
"Cracked Skin": 38,
|
||||||
|
"Cursed Venom Sac": 39,
|
||||||
|
"Dead Naval Shard": 40,
|
||||||
|
"Decaying Skin": 41,
|
||||||
|
"Decaying Arteries": 42,
|
||||||
|
"Demonic Ashes": 43,
|
||||||
|
"Depreciating Flesh": 44,
|
||||||
|
"Dragonling Scale": 45,
|
||||||
|
"Drained Bone": 46,
|
||||||
|
"Dry Bone": 47,
|
||||||
|
"Dry Seeds": 48,
|
||||||
|
"Egg": 49,
|
||||||
|
"Expelled Shrapnel": 50,
|
||||||
|
"Fairy Dust": 51,
|
||||||
|
"Firefly Dust": 52,
|
||||||
|
"Fish Scales": 53,
|
||||||
|
"Fluffy Fur": 54,
|
||||||
|
"Forest Web": 55,
|
||||||
|
"Fresh Bone": 56,
|
||||||
|
"Fresh Water": 57,
|
||||||
|
"Fungi Spores": 58,
|
||||||
|
"Ghostly Essence": 59,
|
||||||
|
"Gert Skin": 60,
|
||||||
|
"Ghostly Plume": 61,
|
||||||
|
"Ghostly Membrane": 62,
|
||||||
|
"Goblin Tooth": 63,
|
||||||
|
"Gold": 64,
|
||||||
|
"Gold Bar": 65,
|
||||||
|
"Gold Nugget": 66,
|
||||||
|
"Gold Tooth": 67,
|
||||||
|
"Gollier Iron": 68,
|
||||||
|
"Grey Cloud": 69,
|
||||||
|
"Hardened Magma": 70,
|
||||||
|
"Harpy Bone": 71,
|
||||||
|
"Holy Powder": 72,
|
||||||
|
"Hybrid Skin": 73,
|
||||||
|
"Ice Cream Sandwich": 74,
|
||||||
|
"Ice Sliver": 75,
|
||||||
|
"Icy Shard": 76,
|
||||||
|
"Illuminated Spirit": 77,
|
||||||
|
"Lava Blisters": 78,
|
||||||
|
"Leather": 79,
|
||||||
|
"Leafy Stalk": 80,
|
||||||
|
"Licorice Ropes": 81,
|
||||||
|
"Lizard Scale": 82,
|
||||||
|
"Lizard Tail": 83,
|
||||||
|
"Lunar Dust": 84,
|
||||||
|
"Luu Luu Vertebrae": 85,
|
||||||
|
"Magic Feather": 86,
|
||||||
|
"Magmatic Skin": 87,
|
||||||
|
"Manis Carapace": 88,
|
||||||
|
"Marsufosa Pelt": 89,
|
||||||
|
"Mashed Insect": 90,
|
||||||
|
"Mineral Cinder": 91,
|
||||||
|
"Melted Steel": 92,
|
||||||
|
"Metal Scraps": 93,
|
||||||
|
"Mixed Seeds": 94,
|
||||||
|
"Myconid Spores": 95,
|
||||||
|
"Naga Tail": 96,
|
||||||
|
"Oceanic Silt": 97,
|
||||||
|
"Ocelot Pelt": 98,
|
||||||
|
"Ocelot Tail": 99,
|
||||||
|
"Old Bone": 100,
|
||||||
|
"Ominous Pearl": 101,
|
||||||
|
"Optic Fiber": 102,
|
||||||
|
"Orc Eye": 103,
|
||||||
|
"Gritty Rocks": 104,
|
||||||
|
"Orc Skin": 105,
|
||||||
|
"Orc Teeth": 106,
|
||||||
|
"Overgrown Bones": 107,
|
||||||
|
"Perkish Potato": 108,
|
||||||
|
"Pigman Meat": 109,
|
||||||
|
"Pig's Remains": 110,
|
||||||
|
"Plucked Feather": 111,
|
||||||
|
"Poorly-Made Pouch": 112,
|
||||||
|
"Potato": 113,
|
||||||
|
"Grook Feather": 114,
|
||||||
|
"Prickly Grass": 115,
|
||||||
|
"Protective Fabric": 116,
|
||||||
|
"Pure Rain Stone": 117,
|
||||||
|
"Putrid Gunk": 118,
|
||||||
|
"Rancid Flesh": 119,
|
||||||
|
"Rat Hair": 120,
|
||||||
|
"Red Mushroom": 121,
|
||||||
|
"Reptile Scales": 122,
|
||||||
|
"Resilient Stone": 123,
|
||||||
|
"Robot Antenna": 124,
|
||||||
|
"River Clay": 125,
|
||||||
|
"Retinal Membrane": 126,
|
||||||
|
"Rose": 127,
|
||||||
|
"Rotten Bone": 128,
|
||||||
|
"Rotten Flesh": 129,
|
||||||
|
"Royal Bug\u2019s Blood": 130,
|
||||||
|
"Salt Water": 131,
|
||||||
|
"Sandy Bonemeal": 132,
|
||||||
|
"Seabird Feather": 133,
|
||||||
|
"Seagrass": 134,
|
||||||
|
"Severed Heart": 135,
|
||||||
|
"Severed Leg": 136,
|
||||||
|
"Sharp Claw": 137,
|
||||||
|
"Shattered Blade": 138,
|
||||||
|
"Shorting Wire": 139,
|
||||||
|
"Shredded Bone": 140,
|
||||||
|
"Silver Feather": 141,
|
||||||
|
"Skyraider Coin": 142,
|
||||||
|
"Shining Wool": 143,
|
||||||
|
"Sludge Parasite": 144,
|
||||||
|
"Snake Eye": 145,
|
||||||
|
"Snow Clump": 146,
|
||||||
|
"Snow Heart": 147,
|
||||||
|
"Soft Blue Wool": 148,
|
||||||
|
"Soft Red Wool": 149,
|
||||||
|
"Soft White Wool": 150,
|
||||||
|
"Soft Green Wool": 151,
|
||||||
|
"Soft Yellow Wool": 152,
|
||||||
|
"Soft Sand": 153,
|
||||||
|
"Soggy Stone": 154,
|
||||||
|
"Soul Essence": 155,
|
||||||
|
"Spider Leg": 156,
|
||||||
|
"Spellbound Ash": 157,
|
||||||
|
"Spider Eggs": 158,
|
||||||
|
"Spider Fang": 159,
|
||||||
|
"Squid Ink": 160,
|
||||||
|
"Stack of Coins": 161,
|
||||||
|
"Stolen Harvest": 162,
|
||||||
|
"Stolen Seeds": 163,
|
||||||
|
"Storm Horn": 164,
|
||||||
|
"Sugar Stick": 165,
|
||||||
|
"Tanned Flesh": 166,
|
||||||
|
"Tarnished Gold Foil": 167,
|
||||||
|
"Tendon Clump": 168,
|
||||||
|
"Terracotta Chunk": 169,
|
||||||
|
"Thick Mud": 170,
|
||||||
|
"Thick Vines": 171,
|
||||||
|
"Thin Quill": 172,
|
||||||
|
"Torn Skin": 173,
|
||||||
|
"Tough Skin": 174,
|
||||||
|
"Toxic Lumps": 175,
|
||||||
|
"Troll Hair": 176,
|
||||||
|
"Turtle Shell": 177,
|
||||||
|
"Unholy Spirit": 178,
|
||||||
|
"Unmeltable Ice": 179,
|
||||||
|
"Used Fireball": 180,
|
||||||
|
"Victim's Skull": 181,
|
||||||
|
"Viscous Slime": 182,
|
||||||
|
"Warped Skin": 183,
|
||||||
|
"Waterlogged Branch": 184,
|
||||||
|
"Werewolf Tail": 185,
|
||||||
|
"Wolf Fang": 186,
|
||||||
|
"Wood Shavings": 187,
|
||||||
|
"Wood Scrap": 188,
|
||||||
|
"Wood Snippet": 189,
|
||||||
|
"Wool": 190,
|
||||||
|
"Void Essence": 191,
|
||||||
|
"Worn Memorabilia": 192,
|
||||||
|
"Wybel Taffy": 193,
|
||||||
|
"Wybel Fluff": 194,
|
||||||
|
"Zhight Herbal Mix": 195,
|
||||||
|
"Zombie Eye": 196,
|
||||||
|
"Acidic Remains": 197,
|
||||||
|
"Active Fireball": 198,
|
||||||
|
"Adventurer's Diary": 199,
|
||||||
|
"Agullo Beak": 200,
|
||||||
|
"Alga": 201,
|
||||||
|
"Algae Mat": 202,
|
||||||
|
"Ashen Hide": 203,
|
||||||
|
"Beef Tongue": 204,
|
||||||
|
"Beak of the Nivlan Beauty": 205,
|
||||||
|
"Bloodstained Remains": 206,
|
||||||
|
"Broken Dagger": 207,
|
||||||
|
"Broken Steel Hook": 208,
|
||||||
|
"Broken Steel Blade": 209,
|
||||||
|
"Burning Soul": 210,
|
||||||
|
"Captain's Glass": 211,
|
||||||
|
"Carapace Fragment": 212,
|
||||||
|
"Cat Tail": 213,
|
||||||
|
"Cataratite": 214,
|
||||||
|
"Chain Loop": 215,
|
||||||
|
"Charred Bone": 216,
|
||||||
|
"Chitin Plate": 217,
|
||||||
|
"Chipped Quartz": 218,
|
||||||
|
"Coagulated Clot": 219,
|
||||||
|
"Condor Feather": 220,
|
||||||
|
"Corn Husk": 221,
|
||||||
|
"Congealed Slime": 222,
|
||||||
|
"Cortrich Eggs": 223,
|
||||||
|
"Cracked Geode": 224,
|
||||||
|
"Crystal Dust": 225,
|
||||||
|
"Crystallized Organ": 226,
|
||||||
|
"Cyclops Eye": 227,
|
||||||
|
"Dead Bee": 228,
|
||||||
|
"Demonic Blood": 229,
|
||||||
|
"Dense Void Hole Chunk": 230,
|
||||||
|
"Dragonling Egg": 231,
|
||||||
|
"Earthly Aura": 232,
|
||||||
|
"Durable Skin": 233,
|
||||||
|
"Elemental Crystal": 234,
|
||||||
|
"Empty Casings": 235,
|
||||||
|
"Energetic Aura": 236,
|
||||||
|
"Essence Of Dusk": 237,
|
||||||
|
"Fancy Pelt": 238,
|
||||||
|
"Fiery Aura": 239,
|
||||||
|
"Flugsvamp Cap": 240,
|
||||||
|
"Forgotten Axe": 241,
|
||||||
|
"Forgotten Pickaxe": 242,
|
||||||
|
"Foul Fluid": 243,
|
||||||
|
"Fragmentation": 244,
|
||||||
|
"Fuming Lava Rock": 245,
|
||||||
|
"Frostbitten Flesh": 246,
|
||||||
|
"Gloomy Orb": 247,
|
||||||
|
"Glowing Scales": 248,
|
||||||
|
"Green Foot": 249,
|
||||||
|
"Golden Coin": 250,
|
||||||
|
"Green Scale": 251,
|
||||||
|
"Gunpowder": 252,
|
||||||
|
"Hardened Mandible": 253,
|
||||||
|
"Hatchling Remnant": 254,
|
||||||
|
"Horse Mane": 255,
|
||||||
|
"Ibjub Fruit": 256,
|
||||||
|
"Hunter's Disguise": 257,
|
||||||
|
"Ice Fragment": 258,
|
||||||
|
"Iceberries": 259,
|
||||||
|
"Infused Gold": 260,
|
||||||
|
"Ivory Tusk": 261,
|
||||||
|
"Kaian Scroll": 262,
|
||||||
|
"Jolting Geode": 263,
|
||||||
|
"Karl Johan Cap": 264,
|
||||||
|
"Insanity Star": 265,
|
||||||
|
"Larbonic Sheddings": 266,
|
||||||
|
"Laryngeal Flesh": 267,
|
||||||
|
"Leg Eater Tooth": 268,
|
||||||
|
"Lively Apple": 269,
|
||||||
|
"Letvus Delight": 270,
|
||||||
|
"Lion Fang": 271,
|
||||||
|
"Lost Talisman": 272,
|
||||||
|
"Lotus Seedpod": 273,
|
||||||
|
"Luminescent Ink": 274,
|
||||||
|
"Lockpicking Kit": 275,
|
||||||
|
"Lunar Shard": 276,
|
||||||
|
"Luxic Plasma": 277,
|
||||||
|
"Marrow Dust": 278,
|
||||||
|
"Mixed Jewel Deposit": 279,
|
||||||
|
"Mooshroom Ear": 280,
|
||||||
|
"Muscle": 281,
|
||||||
|
"Munched Grass": 282,
|
||||||
|
"Nasty Residue": 283,
|
||||||
|
"Native Jadeite": 284,
|
||||||
|
"Nightmare Fuel": 285,
|
||||||
|
"Oceanic Sand": 286,
|
||||||
|
"Optic Lens": 287,
|
||||||
|
"Owl Feather": 288,
|
||||||
|
"Penguin Egg": 289,
|
||||||
|
"Pearlescent Jewel": 290,
|
||||||
|
"Phrumkin Seeds": 291,
|
||||||
|
"Pig's Skull": 292,
|
||||||
|
"Pillaged Fragment": 293,
|
||||||
|
"Pink Pelute": 294,
|
||||||
|
"Pink Wool": 295,
|
||||||
|
"Pirate Beard": 296,
|
||||||
|
"Piranha Jaw": 297,
|
||||||
|
"Poison Sac": 298,
|
||||||
|
"Poisonous Spider Eye": 299,
|
||||||
|
"Powdery Bone": 300,
|
||||||
|
"Primitive Delicacy": 301,
|
||||||
|
"Pristine Claw": 302,
|
||||||
|
"Putrid Spores": 303,
|
||||||
|
"Altitude Shard": 304,
|
||||||
|
"Bionic Fiber": 305,
|
||||||
|
"Flytrap Fangs": 306,
|
||||||
|
"Goblin Trinket": 307,
|
||||||
|
"Insulated Wiring": 308,
|
||||||
|
"Ivy Sprout": 309,
|
||||||
|
"Kaolin Clay": 310,
|
||||||
|
"Magicule Sample": 311,
|
||||||
|
"Nova Bloom": 312,
|
||||||
|
"Olmic Artifact": 313,
|
||||||
|
"Roasted Tissue": 314,
|
||||||
|
"Outdated Newspaper": 315,
|
||||||
|
"Red Shale": 316,
|
||||||
|
"Savannah Stone": 317,
|
||||||
|
"Serafite": 318,
|
||||||
|
"Spectral Spike": 319,
|
||||||
|
"Tropical Honeysuckle": 320,
|
||||||
|
"Tangy Nectar": 321,
|
||||||
|
"Ursine Claw": 322,
|
||||||
|
"Webbed Offshoot": 323,
|
||||||
|
"Waterfall Thyme": 324,
|
||||||
|
"Zombie Brain": 325,
|
||||||
|
"Recluse Venom Sac": 326,
|
||||||
|
"Regenerative Pins": 327,
|
||||||
|
"Red Mercury": 328,
|
||||||
|
"Rock-Hard Beak": 329,
|
||||||
|
"Rotten Teeth": 330,
|
||||||
|
"Rotten Log": 331,
|
||||||
|
"Rusty Axe Head": 332,
|
||||||
|
"Salt": 333,
|
||||||
|
"Scalding Sand": 334,
|
||||||
|
"Sea Salt": 335,
|
||||||
|
"Sentient Shadow": 336,
|
||||||
|
"Sharp Edge": 337,
|
||||||
|
"Shiny Pebble": 338,
|
||||||
|
"Shiny Mineral Deposit": 339,
|
||||||
|
"Sky Snail Shell": 340,
|
||||||
|
"Smooth Silt": 341,
|
||||||
|
"Snake Skin": 342,
|
||||||
|
"Snake Tooth": 343,
|
||||||
|
"Snake Scale": 344,
|
||||||
|
"Soapstone": 345,
|
||||||
|
"Spike Residue": 346,
|
||||||
|
"Spiked Capsule": 347,
|
||||||
|
"Squid Beak": 348,
|
||||||
|
"Stolen Goods": 349,
|
||||||
|
"Sticky Fern": 350,
|
||||||
|
"Strange Geode": 351,
|
||||||
|
"Stretched Rawhide": 352,
|
||||||
|
"Strong Flesh": 353,
|
||||||
|
"Stone Plating": 354,
|
||||||
|
"Sylphid Tears": 355,
|
||||||
|
"Tender Pork Fillet": 356,
|
||||||
|
"Terra Steel": 357,
|
||||||
|
"Tentacle": 358,
|
||||||
|
"Tough Bone": 359,
|
||||||
|
"Titanium Chunk": 360,
|
||||||
|
"Throbbing Avos Heart": 361,
|
||||||
|
"Torn Rawhide": 362,
|
||||||
|
"Truffle": 363,
|
||||||
|
"Toxic Spores": 364,
|
||||||
|
"Undead Heart": 365,
|
||||||
|
"Viral Tentacle": 366,
|
||||||
|
"Viking Stone": 367,
|
||||||
|
"Voidstone Sample": 368,
|
||||||
|
"Watery Aura": 369,
|
||||||
|
"Windy Aura": 370,
|
||||||
|
"Wooly Armour": 371,
|
||||||
|
"Worn Coin": 372,
|
||||||
|
"Wriggling Darkness": 373,
|
||||||
|
"Zhight Coral Piece": 374,
|
||||||
|
"Zhight Shiny Stone": 375,
|
||||||
|
"7-Yottabyte Storage Component": 376,
|
||||||
|
"Accursed Effigy": 377,
|
||||||
|
"Acidic Blood": 378,
|
||||||
|
"Acidic Solution": 379,
|
||||||
|
"Adaptive Tissue": 380,
|
||||||
|
"Aged Tome": 381,
|
||||||
|
"Ancient Currency": 382,
|
||||||
|
"Ancient Moss": 383,
|
||||||
|
"Ancient Panel": 384,
|
||||||
|
"Angelic Gem": 385,
|
||||||
|
"Antique Metal": 386,
|
||||||
|
"Beastial Viscera": 387,
|
||||||
|
"Black Sulphur": 388,
|
||||||
|
"Blazing Fireball": 389,
|
||||||
|
"Bloated Artery": 390,
|
||||||
|
"Bob's Tear": 391,
|
||||||
|
"Bottled Decay": 392,
|
||||||
|
"Burial Talisman": 393,
|
||||||
|
"Burnt Skull": 394,
|
||||||
|
"Calmed Thunder": 395,
|
||||||
|
"Cat Food": 396,
|
||||||
|
"Chaotic Embers": 397,
|
||||||
|
"Cherry Sapling": 398,
|
||||||
|
"Condensed Darkness": 399,
|
||||||
|
"Corrupted Ichor": 400,
|
||||||
|
"Crumbling Skull": 401,
|
||||||
|
"Crystalline Growth": 402,
|
||||||
|
"Curse Gland": 403,
|
||||||
|
"Cursed Ashes": 404,
|
||||||
|
"Cyclone Blue Leaves": 405,
|
||||||
|
"Dark Matter": 406,
|
||||||
|
"Dark Iris": 407,
|
||||||
|
"Defiled Luxroot": 408,
|
||||||
|
"Diseased Fluids": 409,
|
||||||
|
"Desert Fossil": 410,
|
||||||
|
"Dragon Aura": 411,
|
||||||
|
"Dried Kelp": 412,
|
||||||
|
"Dried Gill": 413,
|
||||||
|
"Earthly Pebble": 414,
|
||||||
|
"Elephant Toenail": 415,
|
||||||
|
"Enchanted Chain Link": 416,
|
||||||
|
"Engraved Tablet": 417,
|
||||||
|
"Enhanced Behaviour Microchip": 418,
|
||||||
|
"Enhanced Dynamics Microchip": 419,
|
||||||
|
"Enhanced Physics Microchip": 420,
|
||||||
|
"Enhanced Pathfinding Microchip": 421,
|
||||||
|
"Enhanced Potential Microchip": 422,
|
||||||
|
"Enhanced Post-Processing Microchip": 423,
|
||||||
|
"Enraged Soul": 424,
|
||||||
|
"Eternal Flame": 425,
|
||||||
|
"Fairy Powder": 426,
|
||||||
|
"Feather of Grace": 427,
|
||||||
|
"Fiberglass Frame": 428,
|
||||||
|
"Fighting Stick": 429,
|
||||||
|
"Flesh-forged Circuit": 430,
|
||||||
|
"Flameheart": 431,
|
||||||
|
"Fish Tail": 432,
|
||||||
|
"Flow of Fate": 433,
|
||||||
|
"Fresh Game": 434,
|
||||||
|
"Frozen Ghostly Essence": 435,
|
||||||
|
"Gelatinous Slime Chunk": 436,
|
||||||
|
"Generator Chip": 437,
|
||||||
|
"Glimmering Beak": 438,
|
||||||
|
"Glittering Silt": 439,
|
||||||
|
"Golden Avia Feather": 440,
|
||||||
|
"Gravitation Crystal": 441,
|
||||||
|
"Green Opal": 442,
|
||||||
|
"Gylia Essence": 443,
|
||||||
|
"Haleva Plant": 444,
|
||||||
|
"Harpy Wing": 445,
|
||||||
|
"Hellish Cinders": 446,
|
||||||
|
"Herbstzeitlose": 447,
|
||||||
|
"Hydrofluoric Acid": 448,
|
||||||
|
"Infected Mass": 449,
|
||||||
|
"Infernal Flesh": 450,
|
||||||
|
"Ironwood Chips": 451,
|
||||||
|
"Larvae Cluster": 452,
|
||||||
|
"Leopard Blood": 453,
|
||||||
|
"Lithoflesh": 454,
|
||||||
|
"Lucky Rabbit's Foot": 455,
|
||||||
|
"Lost Spirit": 456,
|
||||||
|
"Lucky Spider Egg": 457,
|
||||||
|
"Lunar Chunk": 458,
|
||||||
|
"Luxroot Cuttings": 459,
|
||||||
|
"Mangled Soul": 460,
|
||||||
|
"Maroferrous": 461,
|
||||||
|
"Maromagnetite": 462,
|
||||||
|
"Aged Medallion": 463,
|
||||||
|
"Mixed Mineral Deposit": 464,
|
||||||
|
"Mythical Hoof": 465,
|
||||||
|
"Naval Shard": 466,
|
||||||
|
"Nose Ring": 467,
|
||||||
|
"Nivlan Honeycomb": 468,
|
||||||
|
"Organic Explosive": 469,
|
||||||
|
"Old Explosives": 470,
|
||||||
|
"Paralyzing Spores": 471,
|
||||||
|
"Piercing Talons": 472,
|
||||||
|
"Pig's Blood": 473,
|
||||||
|
"Pink Pelulite": 474,
|
||||||
|
"Plutonium Waste": 475,
|
||||||
|
"Popped Pustule": 476,
|
||||||
|
"Portal Emanation": 477,
|
||||||
|
"Portal Rift": 478,
|
||||||
|
"Primeval Skin": 479,
|
||||||
|
"Prized Pelt": 480,
|
||||||
|
"Pure Quartz": 481,
|
||||||
|
"Purest Tear": 482,
|
||||||
|
"Pykrete": 483,
|
||||||
|
"Cleaned Saccharum": 484,
|
||||||
|
"Shattered Memory Shard": 485,
|
||||||
|
"Therck's Chain": 486,
|
||||||
|
"Weakening Catalyst": 487,
|
||||||
|
"Ashstained Basalt": 488,
|
||||||
|
"Astral Alloy": 489,
|
||||||
|
"Dernic Parasite": 490,
|
||||||
|
"Creepvine Cluster": 491,
|
||||||
|
"Digestible Fungi": 492,
|
||||||
|
"Defective Circuits": 493,
|
||||||
|
"Flashfrost": 494,
|
||||||
|
"Highland Basil": 495,
|
||||||
|
"Herbal Extract": 496,
|
||||||
|
"Illusory Idol": 497,
|
||||||
|
"Mellow Mango": 498,
|
||||||
|
"Mysterious Mist": 499,
|
||||||
|
"Premium Hay Bale": 500,
|
||||||
|
"Pokey Cactus": 501,
|
||||||
|
"Radiant Seeds": 502,
|
||||||
|
"Quartz Cluster": 503,
|
||||||
|
"Ruins Shard": 504,
|
||||||
|
"Shadow of Ruin": 505,
|
||||||
|
"Soul Amalgamate": 506,
|
||||||
|
"Sharpening Stone": 507,
|
||||||
|
"Spreading Fireweed": 508,
|
||||||
|
"Void Particulates": 509,
|
||||||
|
"Rabbit Carcass": 510,
|
||||||
|
"Razor-Sharp Tooth": 511,
|
||||||
|
"Rare Potato": 512,
|
||||||
|
"Relic of the Past": 513,
|
||||||
|
"Reinforced Leather": 514,
|
||||||
|
"Residual Spirit": 515,
|
||||||
|
"Rigid Fin": 516,
|
||||||
|
"Retinal Barbs": 517,
|
||||||
|
"Rotting Bone": 518,
|
||||||
|
"Router's Shield": 519,
|
||||||
|
"Scarab Husk": 520,
|
||||||
|
"Scarred Leather": 521,
|
||||||
|
"Scopaesthesia": 522,
|
||||||
|
"Seabird Egg": 523,
|
||||||
|
"Serpent Tongue": 524,
|
||||||
|
"Sealed Blaze": 525,
|
||||||
|
"Sentient Water": 526,
|
||||||
|
"Shimmering Jewel": 527,
|
||||||
|
"Shrieker's Head": 528,
|
||||||
|
"Silver Bullet": 529,
|
||||||
|
"Shinesting Scorpion Tail": 530,
|
||||||
|
"Sky Flux": 531,
|
||||||
|
"Slimy Skin": 532,
|
||||||
|
"Soft Silk": 533,
|
||||||
|
"Smokebomb": 534,
|
||||||
|
"Soulbound Cinders": 535,
|
||||||
|
"Sought-After Ore": 536,
|
||||||
|
"Split Essence": 537,
|
||||||
|
"Squid Brain": 538,
|
||||||
|
"Sticky Mudball": 539,
|
||||||
|
"Stonewalker Core": 540,
|
||||||
|
"Succulent Crab Meat": 541,
|
||||||
|
"Swooper Wing": 542,
|
||||||
|
"Tenebrous Plasma": 543,
|
||||||
|
"Thorned Tusk": 544,
|
||||||
|
"Toxxulous Ripper\u2019s Legs": 545,
|
||||||
|
"Twisted Organ": 546,
|
||||||
|
"Vile Stone": 547,
|
||||||
|
"Vortex Expulsion": 548,
|
||||||
|
"Wendigo Bone": 549,
|
||||||
|
"Wind Ornament": 550,
|
||||||
|
"Volatile Light": 551,
|
||||||
|
"World Illuminator": 552,
|
||||||
|
"Wriggling Wooden Arm": 553,
|
||||||
|
"Yeti Fur": 554,
|
||||||
|
"Zhight Weird Magic Rock": 555,
|
||||||
|
"Adamastor's Faceplate": 556,
|
||||||
|
"Ancient Coins": 557,
|
||||||
|
"Ancient Heart": 558,
|
||||||
|
"Aqua Vitae": 559,
|
||||||
|
"Aquatic Beauty": 560,
|
||||||
|
"Archaic Medallion": 561,
|
||||||
|
"Azure Blossom": 562,
|
||||||
|
"Aspect of the Void": 563,
|
||||||
|
"Bat Heart": 564,
|
||||||
|
"Black Hole": 565,
|
||||||
|
"Blighted Brain": 566,
|
||||||
|
"Blessed Heart": 567,
|
||||||
|
"Blood of the Nivlan Beauty": 568,
|
||||||
|
"Borange Fluff": 569,
|
||||||
|
"Bottled Fairy": 570,
|
||||||
|
"Braveheart": 571,
|
||||||
|
"Chromatic Bloom": 572,
|
||||||
|
"Coalescence": 573,
|
||||||
|
"Coagulated Soulmass": 574,
|
||||||
|
"Coastal Shell": 575,
|
||||||
|
"Colossus' Shard": 576,
|
||||||
|
"Contorted Stone": 577,
|
||||||
|
"Corrupted Fragment": 578,
|
||||||
|
"Corrupted Beef": 579,
|
||||||
|
"Cursed Wings": 580,
|
||||||
|
"Death Whistle Leaf": 581,
|
||||||
|
"Decaying Heart": 582,
|
||||||
|
"Deep Ice Core": 583,
|
||||||
|
"Defishious": 584,
|
||||||
|
"Defender's Stone": 585,
|
||||||
|
"Depth's Gem": 586,
|
||||||
|
"Dominant Force": 587,
|
||||||
|
"Doom Stone": 588,
|
||||||
|
"Draconic Bone Marrow": 589,
|
||||||
|
"Electroplasm": 590,
|
||||||
|
"Elephelk Trunk": 591,
|
||||||
|
"Engored Oculus": 592,
|
||||||
|
"Eye of The Beast": 593,
|
||||||
|
"Farcor's Trust": 594,
|
||||||
|
"Fiery Essence": 595,
|
||||||
|
"Festering Face": 596,
|
||||||
|
"Foul Fairy Dust": 597,
|
||||||
|
"Galvanic Stone": 598,
|
||||||
|
"Glacial Anomaly": 599,
|
||||||
|
"Gilded Bark": 600,
|
||||||
|
"Glow Bulb Seeds": 601,
|
||||||
|
"Glimmering Coin": 602,
|
||||||
|
"Gunkfueled Core": 603,
|
||||||
|
"Haros' Broken Badge": 604,
|
||||||
|
"Incremental Mapping Module": 605,
|
||||||
|
"Iridescent Elytra": 606,
|
||||||
|
"Kerasot Sporehead": 607,
|
||||||
|
"Large Titanium Chunk": 608,
|
||||||
|
"Large Lapis": 609,
|
||||||
|
"Lashing Hellfire": 610,
|
||||||
|
"Limestone Core": 611,
|
||||||
|
"Linear Accelerator": 612,
|
||||||
|
"Lion Heart": 613,
|
||||||
|
"Lunar Charm": 614,
|
||||||
|
"Luxurious Silk": 615,
|
||||||
|
"Mahogany Heartwood": 616,
|
||||||
|
"Major's Badge": 617,
|
||||||
|
"Mega Fern": 618,
|
||||||
|
"More-Pearlescent Jewel": 619,
|
||||||
|
"Naval Stone": 620,
|
||||||
|
"Nivlan Honey": 621,
|
||||||
|
"Obelisk Core": 622,
|
||||||
|
"Ocea Steel": 623,
|
||||||
|
"Overheated Processor": 624,
|
||||||
|
"Panda King\u2019s Crown": 625,
|
||||||
|
"Panda King's Crown": 626,
|
||||||
|
"Parasitic Abscission": 627,
|
||||||
|
"Pegasus Feather": 628,
|
||||||
|
"Plane of Nonexistence": 629,
|
||||||
|
"Piquant Pork Fillet": 630,
|
||||||
|
"Plasteel Plating": 631,
|
||||||
|
"Pride of the Heights": 632,
|
||||||
|
"Primordial Soul": 633,
|
||||||
|
"Familiar Essence": 634,
|
||||||
|
"Old Treasure\u058e": 635,
|
||||||
|
"Vibrant Augment": 636,
|
||||||
|
"Autonomous Core": 637,
|
||||||
|
"Canyon Parsley": 638,
|
||||||
|
"Royal Cake Slice": 639,
|
||||||
|
"Etheric Fern": 640,
|
||||||
|
"Evolving Spores": 641,
|
||||||
|
"Glowing Tree Sap": 642,
|
||||||
|
"Gaze of Darkness": 643,
|
||||||
|
"Ironwood Scale": 644,
|
||||||
|
"Luminous Rune": 645,
|
||||||
|
"Lost Heirloom": 646,
|
||||||
|
"Mangrove Root": 647,
|
||||||
|
"Mana Extract": 648,
|
||||||
|
"Mountain's Heart": 649,
|
||||||
|
"Platinum Grook Egg": 650,
|
||||||
|
"Salted Salmon": 651,
|
||||||
|
"Sentient Slimeball": 652,
|
||||||
|
"Skybound Remnant": 653,
|
||||||
|
"Soul Stone": 654,
|
||||||
|
"Shattered Dawnlight": 655,
|
||||||
|
"Spirograph Tablet": 656,
|
||||||
|
"Soulfire Matterweave": 657,
|
||||||
|
"Sun-Stained Skin": 658,
|
||||||
|
"Suspicious Shrubs": 659,
|
||||||
|
"Red Crystal Dust": 660,
|
||||||
|
"Relic of the Future": 661,
|
||||||
|
"Ritual Catalyst": 662,
|
||||||
|
"Rocky Mind": 663,
|
||||||
|
"Roots of Eternity": 664,
|
||||||
|
"Serpent's Fang": 665,
|
||||||
|
"Spark of the Oasis": 666,
|
||||||
|
"Squid": 667,
|
||||||
|
"Stolen Pearls": 668,
|
||||||
|
"Sturdy Flesh": 669,
|
||||||
|
"Tempered Core": 670,
|
||||||
|
"Subsuming Darkness": 671,
|
||||||
|
"The Grootslang's Heart": 672,
|
||||||
|
"Tungsten Chunk": 673,
|
||||||
|
"Unicorn Horn": 674,
|
||||||
|
"Unsettling Soul": 675,
|
||||||
|
"Urdar's Stone": 676,
|
||||||
|
"Vim Veins": 677,
|
||||||
|
"Vortexian Event Horizon": 678,
|
||||||
|
"Weathered Idol": 679,
|
||||||
|
"Volatile Matter": 680
|
||||||
|
}
|
|
@ -2,11 +2,6 @@
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
with open("dump.json", "r") as infile:
|
|
||||||
data = json.loads(infile.read())
|
|
||||||
|
|
||||||
items = data["items"]
|
|
||||||
del data["request"]
|
|
||||||
|
|
||||||
with open("recipes_compress.json", "r") as infile:
|
with open("recipes_compress.json", "r") as infile:
|
||||||
recipe_data = json.loads(infile.read())
|
recipe_data = json.loads(infile.read())
|
||||||
|
@ -16,113 +11,7 @@ with open("ingreds_compress.json", "r") as infile:
|
||||||
ing_data = json.loads(infile.read())
|
ing_data = json.loads(infile.read())
|
||||||
ings = ing_data["ingredients"]
|
ings = ing_data["ingredients"]
|
||||||
#this data does not have request :)
|
#this data does not have request :)
|
||||||
import os
|
|
||||||
sets = dict()
|
|
||||||
item_set_map = 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
|
|
||||||
|
|
||||||
translate_mappings = { #this is used for items.
|
|
||||||
#"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 = [
|
delete_keys = [
|
||||||
"addedLore",
|
"addedLore",
|
||||||
|
@ -241,12 +130,12 @@ ing_id_mappings = { #specifically for the id field of an ingredient.
|
||||||
"SPELLCOSTRAW3": "spRaw3",
|
"SPELLCOSTRAW3": "spRaw3",
|
||||||
"SPELLCOSTPCT4": "spPct4",
|
"SPELLCOSTPCT4": "spPct4",
|
||||||
"SPELLCOSTRAW4": "spRaw4",
|
"SPELLCOSTRAW4": "spRaw4",
|
||||||
"JUMPHEIGHT": "jh",
|
"JUMP_HEIGHT": "jh",
|
||||||
#"rainbowSpellDamageRaw": "rainbowRaw",
|
#"rainbowSpellDamageRaw": "rainbowRaw",
|
||||||
"SPRINT": "sprint",
|
"STAMINA": "sprint",
|
||||||
"SPRINGREGEN": "sprintReg",
|
"STAMINA_REGEN": "sprintReg",
|
||||||
"GATHERXPBONUS": "gXp",
|
"GATHER_XP_BONUS": "gXp",
|
||||||
"GATHERSPEED": "gSpd",
|
"GATHER_SPEED": "gSpd",
|
||||||
#"lootQuality": "lq",
|
#"lootQuality": "lq",
|
||||||
}
|
}
|
||||||
ing_delete_keys = [
|
ing_delete_keys = [
|
||||||
|
@ -256,40 +145,27 @@ ing_delete_keys = [
|
||||||
|
|
||||||
recipe_translate_mappings = {
|
recipe_translate_mappings = {
|
||||||
"level" : "lvl",
|
"level" : "lvl",
|
||||||
|
"id" : "name",
|
||||||
}
|
}
|
||||||
recipe_delete_keys = [ #lol
|
recipe_delete_keys = [ #lol
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
import os
|
import os
|
||||||
if os.path.exists("id_map.json"):
|
if os.path.exists("ing_map.json"):
|
||||||
with open("id_map.json","r") as id_mapfile:
|
with open("ing_map.json","r") as ing_mapfile:
|
||||||
id_map = json.load(id_mapfile)
|
ing_map = json.load(ing_mapfile)
|
||||||
else:
|
else:
|
||||||
id_map = {item["name"]: i for i, item in enumerate(items)}
|
ing_map = {ing["name"]: i for i, ing in enumerate(ings)}
|
||||||
# wtf is this hpp
|
|
||||||
|
if os.path.exists("recipe_map.json"):
|
||||||
|
with open("recipe_map.json","r") as recipe_mapfile:
|
||||||
|
recipe_map = json.load(recipe_mapfile)
|
||||||
|
else:
|
||||||
|
recipe_map = {recipe["name"]: i for i, recipe in enumerate(recipes)}
|
||||||
|
|
||||||
texture_names = []
|
texture_names = []
|
||||||
|
|
||||||
import base64
|
|
||||||
for item in items:
|
|
||||||
for key in delete_keys:
|
|
||||||
if key in item:
|
|
||||||
del item[key]
|
|
||||||
|
|
||||||
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):
|
|
||||||
id_map[item["name"]] = len(id_map)
|
|
||||||
print(f'New item: {item["name"]}')
|
|
||||||
item["id"] = id_map[item["name"]]
|
|
||||||
|
|
||||||
item["type"] = item["type"].lower()
|
|
||||||
if item["name"] in item_set_map:
|
|
||||||
item["set"] = item_set_map[item["name"]]
|
|
||||||
|
|
||||||
print(ings[0])
|
print(ings[0])
|
||||||
for ing in ings:
|
for ing in ings:
|
||||||
|
@ -319,6 +195,10 @@ for ing in ings:
|
||||||
ing['ids'][v] = ing['ids'][k]
|
ing['ids'][v] = ing['ids'][k]
|
||||||
del ing['ids'][k]
|
del ing['ids'][k]
|
||||||
|
|
||||||
|
if not (ing["name"] in ing_map):
|
||||||
|
ing_map[ing["name"]] = len(ing_map)
|
||||||
|
print(f'New Ingred: {ing["name"]}')
|
||||||
|
ing["id"] = ing_map[ing["name"]]
|
||||||
|
|
||||||
for recipe in recipes:
|
for recipe in recipes:
|
||||||
for key in recipe_delete_keys:
|
for key in recipe_delete_keys:
|
||||||
|
@ -329,23 +209,22 @@ for recipe in recipes:
|
||||||
if k in recipe:
|
if k in recipe:
|
||||||
recipe[v] = recipe[k]
|
recipe[v] = recipe[k]
|
||||||
del recipe[k]
|
del recipe[k]
|
||||||
|
if not (recipe["name"] in recipe_map):
|
||||||
|
recipe_map[recipe["name"]] = len(recipe_map)
|
||||||
|
print(f'New Recipe: {recipe["name"]}')
|
||||||
|
recipe["id"] = recipe_map[recipe["name"]]
|
||||||
|
|
||||||
|
|
||||||
with open("1_20_ci.json", "r") as ci_file:
|
|
||||||
ci_items = json.load(ci_file)
|
|
||||||
items.extend(ci_items)
|
|
||||||
|
|
||||||
'''with open("id_map.json","w") as id_mapfile:
|
|
||||||
json.dump(id_map, id_mapfile, indent=2)
|
|
||||||
with open("clean.json", "w") as outfile:
|
|
||||||
json.dump(data, outfile, indent=2)
|
|
||||||
with open("compress.json", "w") as outfile:
|
|
||||||
json.dump(data, outfile)'''
|
|
||||||
with open("ingreds_clean.json", "w") as outfile:
|
with open("ingreds_clean.json", "w") as outfile:
|
||||||
json.dump(ing_data, outfile, indent = 2)
|
json.dump(ing_data, outfile, indent = 2)
|
||||||
with open("ingreds_compress2.json", "w") as outfile:
|
with open("ingreds_compress2.json", "w") as outfile:
|
||||||
json.dump(ing_data, outfile)
|
json.dump(ing_data, outfile)
|
||||||
'''with open("recipes_clean.json", "w") as outfile:
|
with open("recipes_clean.json", "w") as outfile:
|
||||||
json.dump(recipe_data, outfile, indent = 2)
|
json.dump(recipe_data, outfile, indent = 2)
|
||||||
with open("recipes_compress2.json", "w") as outfile:
|
with open("recipes_compress2.json", "w") as outfile:
|
||||||
json.dump(recipe_data, outfile)'''
|
json.dump(recipe_data, outfile)
|
||||||
|
with open("ing_map.json", "w") as ing_mapfile:
|
||||||
|
json.dump(ing_map, ing_mapfile, indent = 2)
|
||||||
|
with open("recipe_map.json", "w") as recipe_mapfile:
|
||||||
|
json.dump(recipe_map,recipe_mapfile,indent = 2)
|
2451
ingreds_clean.json
2451
ingreds_clean.json
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
10
items.js
10
items.js
|
@ -96,11 +96,11 @@ const special_mappings = {
|
||||||
"Sum (Mana Sustain)": new SumQuery(["mr", "ms"]),
|
"Sum (Mana Sustain)": new SumQuery(["mr", "ms"]),
|
||||||
"Sum (Life Sustain)": new SumQuery(["hpr", "ls"]),
|
"Sum (Life Sustain)": new SumQuery(["hpr", "ls"]),
|
||||||
"Sum (Health + Health Bonus)": new SumQuery(["hp", "hpBonus"]),
|
"Sum (Health + Health Bonus)": new SumQuery(["hp", "hpBonus"]),
|
||||||
"No Req Strength": new NegateQuery("strReq"),
|
"No Strength Req": new NegateQuery("strReq"),
|
||||||
"No Req Dexterity": new NegateQuery("dexReq"),
|
"No Dexterity Req": new NegateQuery("dexReq"),
|
||||||
"No Req Intelligence": new NegateQuery("intReq"),
|
"No Intelligence Req": new NegateQuery("intReq"),
|
||||||
"No Req Agility": new NegateQuery("agiReq"),
|
"No Agility Req": new NegateQuery("agiReq"),
|
||||||
"No Req Defense": new NegateQuery("defReq"),
|
"No Defense Req": new NegateQuery("defReq"),
|
||||||
};
|
};
|
||||||
|
|
||||||
let itemFilters = document.getElementById("filter-items");
|
let itemFilters = document.getElementById("filter-items");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const ING_DB_VERSION = 2;
|
const ING_DB_VERSION = 4;
|
||||||
|
|
||||||
// @See https://github.com/mdn/learning-area/blob/master/javascript/apis/client-side-storage/indexeddb/video-store/index.js
|
// @See https://github.com/mdn/learning-area/blob/master/javascript/apis/client-side-storage/indexeddb/video-store/index.js
|
||||||
|
|
||||||
|
|
632
recipe_map.json
Normal file
632
recipe_map.json
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
{
|
||||||
|
"Boots-3-5": 0,
|
||||||
|
"Boots-5-7": 1,
|
||||||
|
"Bow-1-3": 2,
|
||||||
|
"Boots-7-9": 3,
|
||||||
|
"Bow-3-5": 4,
|
||||||
|
"Bow-5-7": 5,
|
||||||
|
"Bow-7-9": 6,
|
||||||
|
"Bracelet-3-5": 7,
|
||||||
|
"Bracelet-5-7": 8,
|
||||||
|
"Bracelet-1-3": 9,
|
||||||
|
"Chestplate-1-3": 10,
|
||||||
|
"Chestplate-3-5": 11,
|
||||||
|
"Chestplate-7-9": 12,
|
||||||
|
"Chestplate-5-7": 13,
|
||||||
|
"Dagger-1-3": 14,
|
||||||
|
"Dagger-3-5": 15,
|
||||||
|
"Dagger-5-7": 16,
|
||||||
|
"Bracelet-7-9": 17,
|
||||||
|
"Dagger-7-9": 18,
|
||||||
|
"Food-3-5": 19,
|
||||||
|
"Food-1-3": 20,
|
||||||
|
"Food-5-7": 21,
|
||||||
|
"Food-7-9": 22,
|
||||||
|
"Helmet-1-3": 23,
|
||||||
|
"Helmet-3-5": 24,
|
||||||
|
"Helmet-7-9": 25,
|
||||||
|
"Helmet-5-7": 26,
|
||||||
|
"Necklace-3-5": 27,
|
||||||
|
"Necklace-1-3": 28,
|
||||||
|
"Necklace-7-9": 29,
|
||||||
|
"Necklace-5-7": 30,
|
||||||
|
"Leggings-1-3": 31,
|
||||||
|
"Leggings-3-5": 32,
|
||||||
|
"Leggings-5-7": 33,
|
||||||
|
"Leggings-7-9": 34,
|
||||||
|
"Potion-1-3": 35,
|
||||||
|
"Potion-3-5": 36,
|
||||||
|
"Potion-5-7": 37,
|
||||||
|
"Relik-1-3": 38,
|
||||||
|
"Potion-7-9": 39,
|
||||||
|
"Relik-5-7": 40,
|
||||||
|
"Relik-3-5": 41,
|
||||||
|
"Relik-7-9": 42,
|
||||||
|
"Boots-1-3": 43,
|
||||||
|
"Ring-3-5": 44,
|
||||||
|
"Ring-5-7": 45,
|
||||||
|
"Ring-7-9": 46,
|
||||||
|
"Scroll-1-3": 47,
|
||||||
|
"Scroll-3-5": 48,
|
||||||
|
"Scroll-5-7": 49,
|
||||||
|
"Scroll-7-9": 50,
|
||||||
|
"Spear-1-3": 51,
|
||||||
|
"Spear-3-5": 52,
|
||||||
|
"Spear-5-7": 53,
|
||||||
|
"Spear-7-9": 54,
|
||||||
|
"Wand-1-3": 55,
|
||||||
|
"Wand-3-5": 56,
|
||||||
|
"Wand-5-7": 57,
|
||||||
|
"Wand-7-9": 58,
|
||||||
|
"Boots-10-13": 59,
|
||||||
|
"Boots-13-15": 60,
|
||||||
|
"Boots-15-17": 61,
|
||||||
|
"Boots-17-19": 62,
|
||||||
|
"Bow-10-13": 63,
|
||||||
|
"Bow-13-15": 64,
|
||||||
|
"Bracelet-10-13": 65,
|
||||||
|
"Bracelet-13-15": 66,
|
||||||
|
"Bracelet-15-17": 67,
|
||||||
|
"Bow-17-19": 68,
|
||||||
|
"Bracelet-17-19": 69,
|
||||||
|
"Chestplate-10-13": 70,
|
||||||
|
"Chestplate-13-15": 71,
|
||||||
|
"Chestplate-15-17": 72,
|
||||||
|
"Bow-15-17": 73,
|
||||||
|
"Dagger-10-13": 74,
|
||||||
|
"Dagger-13-15": 75,
|
||||||
|
"Chestplate-17-19": 76,
|
||||||
|
"Dagger-17-19": 77,
|
||||||
|
"Food-13-15": 78,
|
||||||
|
"Food-15-17": 79,
|
||||||
|
"Food-10-13": 80,
|
||||||
|
"Food-17-19": 81,
|
||||||
|
"Helmet-10-13": 82,
|
||||||
|
"Helmet-13-15": 83,
|
||||||
|
"Helmet-15-17": 84,
|
||||||
|
"Helmet-17-19": 85,
|
||||||
|
"Necklace-10-13": 86,
|
||||||
|
"Dagger-15-17": 87,
|
||||||
|
"Necklace-15-17": 88,
|
||||||
|
"Necklace-17-19": 89,
|
||||||
|
"Leggings-10-13": 90,
|
||||||
|
"Leggings-13-15": 91,
|
||||||
|
"Leggings-15-17": 92,
|
||||||
|
"Leggings-17-19": 93,
|
||||||
|
"Potion-10-13": 94,
|
||||||
|
"Potion-13-15": 95,
|
||||||
|
"Potion-15-17": 96,
|
||||||
|
"Relik-10-13": 97,
|
||||||
|
"Relik-13-15": 98,
|
||||||
|
"Relik-15-17": 99,
|
||||||
|
"Relik-17-19": 100,
|
||||||
|
"Ring-10-13": 101,
|
||||||
|
"Ring-13-15": 102,
|
||||||
|
"Ring-15-17": 103,
|
||||||
|
"Ring-17-19": 104,
|
||||||
|
"Scroll-10-13": 105,
|
||||||
|
"Potion-17-19": 106,
|
||||||
|
"Scroll-13-15": 107,
|
||||||
|
"Scroll-15-17": 108,
|
||||||
|
"Spear-10-13": 109,
|
||||||
|
"Scroll-17-19": 110,
|
||||||
|
"Spear-13-15": 111,
|
||||||
|
"Spear-15-17": 112,
|
||||||
|
"Spear-17-19": 113,
|
||||||
|
"Wand-10-13": 114,
|
||||||
|
"Wand-13-15": 115,
|
||||||
|
"Wand-15-17": 116,
|
||||||
|
"Wand-17-19": 117,
|
||||||
|
"Boots-20-23": 118,
|
||||||
|
"Boots-23-25": 119,
|
||||||
|
"Boots-25-27": 120,
|
||||||
|
"Bow-23-25": 121,
|
||||||
|
"Bow-20-23": 122,
|
||||||
|
"Boots-27-29": 123,
|
||||||
|
"Bow-25-27": 124,
|
||||||
|
"Bow-27-29": 125,
|
||||||
|
"Bracelet-20-23": 126,
|
||||||
|
"Bracelet-23-25": 127,
|
||||||
|
"Bracelet-25-27": 128,
|
||||||
|
"Bracelet-27-29": 129,
|
||||||
|
"Chestplate-23-25": 130,
|
||||||
|
"Chestplate-25-27": 131,
|
||||||
|
"Chestplate-20-23": 132,
|
||||||
|
"Chestplate-27-29": 133,
|
||||||
|
"Dagger-20-23": 134,
|
||||||
|
"Dagger-23-25": 135,
|
||||||
|
"Dagger-25-27": 136,
|
||||||
|
"Dagger-27-29": 137,
|
||||||
|
"Food-20-23": 138,
|
||||||
|
"Food-25-27": 139,
|
||||||
|
"Food-27-29": 140,
|
||||||
|
"Helmet-20-23": 141,
|
||||||
|
"Food-23-25": 142,
|
||||||
|
"Helmet-23-25": 143,
|
||||||
|
"Helmet-27-29": 144,
|
||||||
|
"Helmet-25-27": 145,
|
||||||
|
"Necklace-20-23": 146,
|
||||||
|
"Necklace-23-25": 147,
|
||||||
|
"Necklace-27-29": 148,
|
||||||
|
"Leggings-20-23": 149,
|
||||||
|
"Necklace-25-27": 150,
|
||||||
|
"Leggings-23-25": 151,
|
||||||
|
"Leggings-25-27": 152,
|
||||||
|
"Leggings-27-29": 153,
|
||||||
|
"Potion-20-23": 154,
|
||||||
|
"Potion-23-25": 155,
|
||||||
|
"Potion-27-29": 156,
|
||||||
|
"Potion-25-27": 157,
|
||||||
|
"Relik-20-23": 158,
|
||||||
|
"Relik-23-25": 159,
|
||||||
|
"Relik-25-27": 160,
|
||||||
|
"Relik-27-29": 161,
|
||||||
|
"Ring-20-23": 162,
|
||||||
|
"Ring-23-25": 163,
|
||||||
|
"Ring-25-27": 164,
|
||||||
|
"Ring-27-29": 165,
|
||||||
|
"Scroll-20-23": 166,
|
||||||
|
"Scroll-23-25": 167,
|
||||||
|
"Scroll-25-27": 168,
|
||||||
|
"Scroll-27-29": 169,
|
||||||
|
"Spear-20-23": 170,
|
||||||
|
"Spear-23-25": 171,
|
||||||
|
"Spear-25-27": 172,
|
||||||
|
"Spear-27-29": 173,
|
||||||
|
"Wand-20-23": 174,
|
||||||
|
"Wand-23-25": 175,
|
||||||
|
"Wand-25-27": 176,
|
||||||
|
"Wand-27-29": 177,
|
||||||
|
"Boots-30-33": 178,
|
||||||
|
"Boots-33-35": 179,
|
||||||
|
"Boots-35-37": 180,
|
||||||
|
"Boots-37-39": 181,
|
||||||
|
"Bow-30-33": 182,
|
||||||
|
"Bow-33-35": 183,
|
||||||
|
"Bow-35-37": 184,
|
||||||
|
"Necklace-13-15": 185,
|
||||||
|
"Bow-37-39": 186,
|
||||||
|
"Bracelet-30-33": 187,
|
||||||
|
"Bracelet-33-35": 188,
|
||||||
|
"Bracelet-35-37": 189,
|
||||||
|
"Bracelet-37-39": 190,
|
||||||
|
"Chestplate-30-33": 191,
|
||||||
|
"Chestplate-35-37": 192,
|
||||||
|
"Chestplate-33-35": 193,
|
||||||
|
"Dagger-30-33": 194,
|
||||||
|
"Chestplate-37-39": 195,
|
||||||
|
"Dagger-35-37": 196,
|
||||||
|
"Dagger-37-39": 197,
|
||||||
|
"Food-30-33": 198,
|
||||||
|
"Dagger-33-35": 199,
|
||||||
|
"Food-33-35": 200,
|
||||||
|
"Food-35-37": 201,
|
||||||
|
"Food-37-39": 202,
|
||||||
|
"Helmet-30-33": 203,
|
||||||
|
"Helmet-33-35": 204,
|
||||||
|
"Helmet-35-37": 205,
|
||||||
|
"Helmet-37-39": 206,
|
||||||
|
"Necklace-30-33": 207,
|
||||||
|
"Necklace-33-35": 208,
|
||||||
|
"Necklace-35-37": 209,
|
||||||
|
"Necklace-37-39": 210,
|
||||||
|
"Leggings-33-35": 211,
|
||||||
|
"Leggings-30-33": 212,
|
||||||
|
"Leggings-35-37": 213,
|
||||||
|
"Leggings-37-39": 214,
|
||||||
|
"Potion-30-33": 215,
|
||||||
|
"Potion-33-35": 216,
|
||||||
|
"Potion-35-37": 217,
|
||||||
|
"Potion-37-39": 218,
|
||||||
|
"Relik-30-33": 219,
|
||||||
|
"Relik-33-35": 220,
|
||||||
|
"Relik-35-37": 221,
|
||||||
|
"Ring-30-33": 222,
|
||||||
|
"Relik-37-39": 223,
|
||||||
|
"Ring-33-35": 224,
|
||||||
|
"Ring-35-37": 225,
|
||||||
|
"Ring-37-39": 226,
|
||||||
|
"Scroll-30-33": 227,
|
||||||
|
"Scroll-33-35": 228,
|
||||||
|
"Scroll-35-37": 229,
|
||||||
|
"Scroll-37-39": 230,
|
||||||
|
"Spear-30-33": 231,
|
||||||
|
"Spear-33-35": 232,
|
||||||
|
"Spear-35-37": 233,
|
||||||
|
"Spear-37-39": 234,
|
||||||
|
"Wand-30-33": 235,
|
||||||
|
"Wand-33-35": 236,
|
||||||
|
"Wand-35-37": 237,
|
||||||
|
"Boots-40-43": 238,
|
||||||
|
"Wand-37-39": 239,
|
||||||
|
"Boots-45-47": 240,
|
||||||
|
"Boots-47-49": 241,
|
||||||
|
"Boots-43-45": 242,
|
||||||
|
"Bow-40-43": 243,
|
||||||
|
"Bow-47-49": 244,
|
||||||
|
"Bow-43-45": 245,
|
||||||
|
"Bracelet-40-43": 246,
|
||||||
|
"Bow-45-47": 247,
|
||||||
|
"Bracelet-45-47": 248,
|
||||||
|
"Bracelet-47-49": 249,
|
||||||
|
"Chestplate-43-45": 250,
|
||||||
|
"Bracelet-43-45": 251,
|
||||||
|
"Chestplate-40-43": 252,
|
||||||
|
"Chestplate-45-47": 253,
|
||||||
|
"Dagger-40-43": 254,
|
||||||
|
"Chestplate-47-49": 255,
|
||||||
|
"Dagger-43-45": 256,
|
||||||
|
"Dagger-47-49": 257,
|
||||||
|
"Dagger-45-47": 258,
|
||||||
|
"Food-40-43": 259,
|
||||||
|
"Food-43-45": 260,
|
||||||
|
"Food-45-47": 261,
|
||||||
|
"Food-47-49": 262,
|
||||||
|
"Helmet-40-43": 263,
|
||||||
|
"Helmet-43-45": 264,
|
||||||
|
"Helmet-45-47": 265,
|
||||||
|
"Necklace-40-43": 266,
|
||||||
|
"Necklace-43-45": 267,
|
||||||
|
"Necklace-45-47": 268,
|
||||||
|
"Helmet-47-49": 269,
|
||||||
|
"Necklace-47-49": 270,
|
||||||
|
"Leggings-40-43": 271,
|
||||||
|
"Leggings-43-45": 272,
|
||||||
|
"Leggings-45-47": 273,
|
||||||
|
"Leggings-47-49": 274,
|
||||||
|
"Potion-43-45": 275,
|
||||||
|
"Potion-45-47": 276,
|
||||||
|
"Relik-40-43": 277,
|
||||||
|
"Potion-47-49": 278,
|
||||||
|
"Potion-40-43": 279,
|
||||||
|
"Relik-45-47": 280,
|
||||||
|
"Ring-40-43": 281,
|
||||||
|
"Relik-43-45": 282,
|
||||||
|
"Ring-45-47": 283,
|
||||||
|
"Relik-47-49": 284,
|
||||||
|
"Ring-43-45": 285,
|
||||||
|
"Ring-47-49": 286,
|
||||||
|
"Scroll-40-43": 287,
|
||||||
|
"Scroll-43-45": 288,
|
||||||
|
"Scroll-45-47": 289,
|
||||||
|
"Scroll-47-49": 290,
|
||||||
|
"Spear-43-45": 291,
|
||||||
|
"Spear-40-43": 292,
|
||||||
|
"Spear-45-47": 293,
|
||||||
|
"Spear-47-49": 294,
|
||||||
|
"Wand-40-43": 295,
|
||||||
|
"Wand-43-45": 296,
|
||||||
|
"Wand-45-47": 297,
|
||||||
|
"Wand-47-49": 298,
|
||||||
|
"Boots-50-53": 299,
|
||||||
|
"Boots-53-55": 300,
|
||||||
|
"Boots-55-57": 301,
|
||||||
|
"Boots-57-59": 302,
|
||||||
|
"Bow-50-53": 303,
|
||||||
|
"Bow-55-57": 304,
|
||||||
|
"Bow-53-55": 305,
|
||||||
|
"Bow-57-59": 306,
|
||||||
|
"Bracelet-50-53": 307,
|
||||||
|
"Bracelet-53-55": 308,
|
||||||
|
"Bracelet-55-57": 309,
|
||||||
|
"Bracelet-57-59": 310,
|
||||||
|
"Chestplate-50-53": 311,
|
||||||
|
"Chestplate-53-55": 312,
|
||||||
|
"Chestplate-55-57": 313,
|
||||||
|
"Chestplate-57-59": 314,
|
||||||
|
"Dagger-50-53": 315,
|
||||||
|
"Dagger-53-55": 316,
|
||||||
|
"Dagger-55-57": 317,
|
||||||
|
"Food-50-53": 318,
|
||||||
|
"Food-53-55": 319,
|
||||||
|
"Food-55-57": 320,
|
||||||
|
"Dagger-57-59": 321,
|
||||||
|
"Food-57-59": 322,
|
||||||
|
"Helmet-50-53": 323,
|
||||||
|
"Helmet-53-55": 324,
|
||||||
|
"Helmet-55-57": 325,
|
||||||
|
"Helmet-57-59": 326,
|
||||||
|
"Necklace-50-53": 327,
|
||||||
|
"Necklace-57-59": 328,
|
||||||
|
"Necklace-53-55": 329,
|
||||||
|
"Necklace-55-57": 330,
|
||||||
|
"Leggings-53-55": 331,
|
||||||
|
"Leggings-55-57": 332,
|
||||||
|
"Leggings-57-59": 333,
|
||||||
|
"Potion-53-55": 334,
|
||||||
|
"Potion-50-53": 335,
|
||||||
|
"Potion-55-57": 336,
|
||||||
|
"Relik-50-53": 337,
|
||||||
|
"Leggings-50-53": 338,
|
||||||
|
"Relik-53-55": 339,
|
||||||
|
"Potion-57-59": 340,
|
||||||
|
"Relik-55-57": 341,
|
||||||
|
"Relik-57-59": 342,
|
||||||
|
"Ring-50-53": 343,
|
||||||
|
"Ring-53-55": 344,
|
||||||
|
"Ring-55-57": 345,
|
||||||
|
"Ring-57-59": 346,
|
||||||
|
"Scroll-50-53": 347,
|
||||||
|
"Scroll-53-55": 348,
|
||||||
|
"Scroll-57-59": 349,
|
||||||
|
"Scroll-55-57": 350,
|
||||||
|
"Spear-50-53": 351,
|
||||||
|
"Spear-53-55": 352,
|
||||||
|
"Spear-55-57": 353,
|
||||||
|
"Wand-50-53": 354,
|
||||||
|
"Spear-57-59": 355,
|
||||||
|
"Wand-55-57": 356,
|
||||||
|
"Wand-53-55": 357,
|
||||||
|
"Wand-57-59": 358,
|
||||||
|
"Boots-60-63": 359,
|
||||||
|
"Boots-65-67": 360,
|
||||||
|
"Boots-63-65": 361,
|
||||||
|
"Boots-67-69": 362,
|
||||||
|
"Bow-60-63": 363,
|
||||||
|
"Bow-63-65": 364,
|
||||||
|
"Bow-67-69": 365,
|
||||||
|
"Bow-65-67": 366,
|
||||||
|
"Bracelet-63-65": 367,
|
||||||
|
"Bracelet-60-63": 368,
|
||||||
|
"Bracelet-65-67": 369,
|
||||||
|
"Bracelet-67-69": 370,
|
||||||
|
"Chestplate-63-65": 371,
|
||||||
|
"Chestplate-60-63": 372,
|
||||||
|
"Chestplate-65-67": 373,
|
||||||
|
"Chestplate-67-69": 374,
|
||||||
|
"Dagger-60-63": 375,
|
||||||
|
"Dagger-63-65": 376,
|
||||||
|
"Dagger-65-67": 377,
|
||||||
|
"Dagger-67-69": 378,
|
||||||
|
"Food-60-63": 379,
|
||||||
|
"Food-63-65": 380,
|
||||||
|
"Food-67-69": 381,
|
||||||
|
"Helmet-60-63": 382,
|
||||||
|
"Helmet-63-65": 383,
|
||||||
|
"Food-65-67": 384,
|
||||||
|
"Helmet-65-67": 385,
|
||||||
|
"Helmet-67-69": 386,
|
||||||
|
"Necklace-60-63": 387,
|
||||||
|
"Necklace-63-65": 388,
|
||||||
|
"Necklace-65-67": 389,
|
||||||
|
"Necklace-67-69": 390,
|
||||||
|
"Leggings-63-65": 391,
|
||||||
|
"Leggings-60-63": 392,
|
||||||
|
"Leggings-65-67": 393,
|
||||||
|
"Leggings-67-69": 394,
|
||||||
|
"Potion-60-63": 395,
|
||||||
|
"Potion-63-65": 396,
|
||||||
|
"Potion-67-69": 397,
|
||||||
|
"Relik-63-65": 398,
|
||||||
|
"Relik-65-67": 399,
|
||||||
|
"Potion-65-67": 400,
|
||||||
|
"Relik-67-69": 401,
|
||||||
|
"Relik-60-63": 402,
|
||||||
|
"Ring-60-63": 403,
|
||||||
|
"Ring-65-67": 404,
|
||||||
|
"Ring-63-65": 405,
|
||||||
|
"Ring-67-69": 406,
|
||||||
|
"Scroll-60-63": 407,
|
||||||
|
"Scroll-63-65": 408,
|
||||||
|
"Scroll-67-69": 409,
|
||||||
|
"Scroll-65-67": 410,
|
||||||
|
"Spear-63-65": 411,
|
||||||
|
"Spear-60-63": 412,
|
||||||
|
"Spear-67-69": 413,
|
||||||
|
"Wand-60-63": 414,
|
||||||
|
"Wand-63-65": 415,
|
||||||
|
"Spear-65-67": 416,
|
||||||
|
"Wand-65-67": 417,
|
||||||
|
"Wand-67-69": 418,
|
||||||
|
"Boots-70-73": 419,
|
||||||
|
"Boots-73-75": 420,
|
||||||
|
"Boots-77-79": 421,
|
||||||
|
"Boots-75-77": 422,
|
||||||
|
"Bow-75-77": 423,
|
||||||
|
"Bow-73-75": 424,
|
||||||
|
"Bracelet-70-73": 425,
|
||||||
|
"Bow-77-79": 426,
|
||||||
|
"Bracelet-73-75": 427,
|
||||||
|
"Bow-70-73": 428,
|
||||||
|
"Bracelet-75-77": 429,
|
||||||
|
"Chestplate-70-73": 430,
|
||||||
|
"Bracelet-77-79": 431,
|
||||||
|
"Chestplate-73-75": 432,
|
||||||
|
"Chestplate-75-77": 433,
|
||||||
|
"Chestplate-77-79": 434,
|
||||||
|
"Dagger-70-73": 435,
|
||||||
|
"Dagger-73-75": 436,
|
||||||
|
"Dagger-75-77": 437,
|
||||||
|
"Food-70-73": 438,
|
||||||
|
"Dagger-77-79": 439,
|
||||||
|
"Food-73-75": 440,
|
||||||
|
"Food-75-77": 441,
|
||||||
|
"Food-77-79": 442,
|
||||||
|
"Helmet-70-73": 443,
|
||||||
|
"Helmet-73-75": 444,
|
||||||
|
"Helmet-75-77": 445,
|
||||||
|
"Helmet-77-79": 446,
|
||||||
|
"Necklace-70-73": 447,
|
||||||
|
"Necklace-73-75": 448,
|
||||||
|
"Necklace-75-77": 449,
|
||||||
|
"Necklace-77-79": 450,
|
||||||
|
"Leggings-73-75": 451,
|
||||||
|
"Leggings-75-77": 452,
|
||||||
|
"Leggings-77-79": 453,
|
||||||
|
"Leggings-70-73": 454,
|
||||||
|
"Potion-70-73": 455,
|
||||||
|
"Potion-73-75": 456,
|
||||||
|
"Potion-75-77": 457,
|
||||||
|
"Potion-77-79": 458,
|
||||||
|
"Relik-70-73": 459,
|
||||||
|
"Relik-73-75": 460,
|
||||||
|
"Relik-75-77": 461,
|
||||||
|
"Relik-77-79": 462,
|
||||||
|
"Ring-70-73": 463,
|
||||||
|
"Ring-73-75": 464,
|
||||||
|
"Ring-75-77": 465,
|
||||||
|
"Ring-77-79": 466,
|
||||||
|
"Scroll-70-73": 467,
|
||||||
|
"Scroll-73-75": 468,
|
||||||
|
"Scroll-75-77": 469,
|
||||||
|
"Scroll-77-79": 470,
|
||||||
|
"Spear-70-73": 471,
|
||||||
|
"Spear-73-75": 472,
|
||||||
|
"Spear-75-77": 473,
|
||||||
|
"Spear-77-79": 474,
|
||||||
|
"Wand-70-73": 475,
|
||||||
|
"Wand-73-75": 476,
|
||||||
|
"Wand-75-77": 477,
|
||||||
|
"Wand-77-79": 478,
|
||||||
|
"Boots-80-83": 479,
|
||||||
|
"Boots-83-85": 480,
|
||||||
|
"Boots-85-87": 481,
|
||||||
|
"Boots-87-89": 482,
|
||||||
|
"Bow-83-85": 483,
|
||||||
|
"Bow-85-87": 484,
|
||||||
|
"Bow-80-83": 485,
|
||||||
|
"Bracelet-83-85": 486,
|
||||||
|
"Bracelet-80-83": 487,
|
||||||
|
"Bracelet-85-87": 488,
|
||||||
|
"Bow-87-89": 489,
|
||||||
|
"Bracelet-87-89": 490,
|
||||||
|
"Chestplate-80-83": 491,
|
||||||
|
"Chestplate-83-85": 492,
|
||||||
|
"Chestplate-85-87": 493,
|
||||||
|
"Chestplate-87-89": 494,
|
||||||
|
"Dagger-83-85": 495,
|
||||||
|
"Dagger-80-83": 496,
|
||||||
|
"Dagger-85-87": 497,
|
||||||
|
"Dagger-87-89": 498,
|
||||||
|
"Food-83-85": 499,
|
||||||
|
"Food-80-83": 500,
|
||||||
|
"Food-85-87": 501,
|
||||||
|
"Food-87-89": 502,
|
||||||
|
"Helmet-80-83": 503,
|
||||||
|
"Helmet-83-85": 504,
|
||||||
|
"Helmet-85-87": 505,
|
||||||
|
"Helmet-87-89": 506,
|
||||||
|
"Necklace-80-83": 507,
|
||||||
|
"Necklace-83-85": 508,
|
||||||
|
"Necklace-85-87": 509,
|
||||||
|
"Necklace-87-89": 510,
|
||||||
|
"Leggings-80-83": 511,
|
||||||
|
"Leggings-83-85": 512,
|
||||||
|
"Leggings-85-87": 513,
|
||||||
|
"Leggings-87-89": 514,
|
||||||
|
"Potion-80-83": 515,
|
||||||
|
"Potion-83-85": 516,
|
||||||
|
"Potion-85-87": 517,
|
||||||
|
"Potion-87-89": 518,
|
||||||
|
"Relik-80-83": 519,
|
||||||
|
"Relik-83-85": 520,
|
||||||
|
"Relik-85-87": 521,
|
||||||
|
"Ring-83-85": 522,
|
||||||
|
"Relik-87-89": 523,
|
||||||
|
"Ring-85-87": 524,
|
||||||
|
"Ring-80-83": 525,
|
||||||
|
"Ring-87-89": 526,
|
||||||
|
"Scroll-80-83": 527,
|
||||||
|
"Scroll-85-87": 528,
|
||||||
|
"Scroll-83-85": 529,
|
||||||
|
"Spear-80-83": 530,
|
||||||
|
"Scroll-87-89": 531,
|
||||||
|
"Spear-85-87": 532,
|
||||||
|
"Wand-80-83": 533,
|
||||||
|
"Spear-87-89": 534,
|
||||||
|
"Wand-83-85": 535,
|
||||||
|
"Wand-85-87": 536,
|
||||||
|
"Wand-87-89": 537,
|
||||||
|
"Spear-83-85": 538,
|
||||||
|
"Boots-93-95": 539,
|
||||||
|
"Boots-95-97": 540,
|
||||||
|
"Boots-90-93": 541,
|
||||||
|
"Boots-97-99": 542,
|
||||||
|
"Bow-90-93": 543,
|
||||||
|
"Bow-93-95": 544,
|
||||||
|
"Bow-95-97": 545,
|
||||||
|
"Bow-97-99": 546,
|
||||||
|
"Bracelet-90-93": 547,
|
||||||
|
"Bracelet-93-95": 548,
|
||||||
|
"Bracelet-97-99": 549,
|
||||||
|
"Chestplate-90-93": 550,
|
||||||
|
"Chestplate-93-95": 551,
|
||||||
|
"Bracelet-95-97": 552,
|
||||||
|
"Chestplate-95-97": 553,
|
||||||
|
"Ring-1-3": 554,
|
||||||
|
"Chestplate-97-99": 555,
|
||||||
|
"Dagger-93-95": 556,
|
||||||
|
"Dagger-90-93": 557,
|
||||||
|
"Dagger-95-97": 558,
|
||||||
|
"Dagger-97-99": 559,
|
||||||
|
"Food-90-93": 560,
|
||||||
|
"Food-93-95": 561,
|
||||||
|
"Food-95-97": 562,
|
||||||
|
"Food-97-99": 563,
|
||||||
|
"Helmet-90-93": 564,
|
||||||
|
"Helmet-93-95": 565,
|
||||||
|
"Helmet-95-97": 566,
|
||||||
|
"Helmet-97-99": 567,
|
||||||
|
"Necklace-93-95": 568,
|
||||||
|
"Necklace-95-97": 569,
|
||||||
|
"Necklace-97-99": 570,
|
||||||
|
"Leggings-90-93": 571,
|
||||||
|
"Necklace-90-93": 572,
|
||||||
|
"Leggings-93-95": 573,
|
||||||
|
"Leggings-97-99": 574,
|
||||||
|
"Potion-90-93": 575,
|
||||||
|
"Potion-93-95": 576,
|
||||||
|
"Potion-95-97": 577,
|
||||||
|
"Relik-90-93": 578,
|
||||||
|
"Potion-97-99": 579,
|
||||||
|
"Relik-93-95": 580,
|
||||||
|
"Relik-95-97": 581,
|
||||||
|
"Ring-90-93": 582,
|
||||||
|
"Ring-95-97": 583,
|
||||||
|
"Ring-93-95": 584,
|
||||||
|
"Scroll-90-93": 585,
|
||||||
|
"Scroll-93-95": 586,
|
||||||
|
"Ring-97-99": 587,
|
||||||
|
"Scroll-95-97": 588,
|
||||||
|
"Spear-90-93": 589,
|
||||||
|
"Spear-93-95": 590,
|
||||||
|
"Spear-95-97": 591,
|
||||||
|
"Spear-97-99": 592,
|
||||||
|
"Relik-97-99": 593,
|
||||||
|
"Leggings-95-97": 594,
|
||||||
|
"Wand-90-93": 595,
|
||||||
|
"Scroll-97-99": 596,
|
||||||
|
"Wand-93-95": 597,
|
||||||
|
"Wand-95-97": 598,
|
||||||
|
"Wand-97-99": 599,
|
||||||
|
"Boots-100-103": 600,
|
||||||
|
"Bow-100-103": 601,
|
||||||
|
"Bracelet-100-103": 602,
|
||||||
|
"Chestplate-100-103": 603,
|
||||||
|
"Dagger-100-103": 604,
|
||||||
|
"Necklace-100-103": 605,
|
||||||
|
"Potion-100-103": 606,
|
||||||
|
"Relik-100-103": 607,
|
||||||
|
"Ring-100-103": 608,
|
||||||
|
"Scroll-100-103": 609,
|
||||||
|
"Spear-100-103": 610,
|
||||||
|
"Leggings-100-103": 611,
|
||||||
|
"Boots-103-105": 612,
|
||||||
|
"Bow-103-105": 613,
|
||||||
|
"Bracelet-103-105": 614,
|
||||||
|
"Chestplate-103-105": 615,
|
||||||
|
"Dagger-103-105": 616,
|
||||||
|
"Food-103-105": 617,
|
||||||
|
"Helmet-103-105": 618,
|
||||||
|
"Food-100-103": 619,
|
||||||
|
"Leggings-103-105": 620,
|
||||||
|
"Potion-103-105": 621,
|
||||||
|
"Relik-103-105": 622,
|
||||||
|
"Wand-100-103": 623,
|
||||||
|
"Ring-103-105": 624,
|
||||||
|
"Necklace-103-105": 625,
|
||||||
|
"Scroll-103-105": 626,
|
||||||
|
"Spear-103-105": 627,
|
||||||
|
"Wand-103-105": 628,
|
||||||
|
"Helmet-100-103": 629
|
||||||
|
}
|
3150
recipes_clean.json
3150
recipes_clean.json
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
2
wide.css
2
wide.css
|
@ -28,7 +28,7 @@
|
||||||
.container {
|
.container {
|
||||||
padding: 2% 4% 4%;
|
padding: 2% 4% 4%;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 0.85fr 0.5fr 0.5fr;
|
grid-template-columns: 0.85fr 0.45fr 0.55fr;
|
||||||
grid-auto-columns: minmax(200px, auto);
|
grid-auto-columns: minmax(200px, auto);
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
grid-auto-rows: minmax(60px, auto);
|
grid-auto-rows: minmax(60px, auto);
|
||||||
|
|
Loading…
Reference in a new issue