fixed merge conflicts, merge all to master if an incomplete crafter is ok

This commit is contained in:
ferricles 2021-01-19 09:50:34 -08:00
commit df0253cfda
10 changed files with 701 additions and 823 deletions

View file

@ -184,10 +184,16 @@ class Build{
const weapon = itemMap.get(equipment[8]); const weapon = itemMap.get(equipment[8]);
this.powders[4] = this.powders[4].slice(0,weapon.slots); this.powders[4] = this.powders[4].slice(0,weapon.slots);
this.weapon = expandItem(weapon, this.powders[4]); this.weapon = expandItem(weapon, this.powders[4]);
if (equipment[8] !== "No Weapon") {
document.getElementsByClassName("powder-specials")[0].style.display = "grid";
} else {
document.getElementsByClassName("powder-specials")[0].style.display = "none";
}
}else{ }else{
const weapon = itemMap.get("No Weapon"); const weapon = itemMap.get("No Weapon");
this.powders[4] = this.powders[4].slice(0,weapon.slots); this.powders[4] = this.powders[4].slice(0,weapon.slots);
this.weapon = expandItem(weapon, this.powders[4]); this.weapon = expandItem(weapon, this.powders[4]);
document.getElementsByClassName("powder-specials")[0].style.display = "none";
errors.push(new ItemNotFound(equipment[8], "weapon", true)); errors.push(new ItemNotFound(equipment[8], "weapon", true));
} }

View file

@ -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.4"; const BUILD_VERSION = "6.9.6";
function setTitle() { function setTitle() {
document.getElementById("header").textContent = "WynnBuilder version "+BUILD_VERSION+" (db version "+DB_VERSION+")"; document.getElementById("header").textContent = "WynnBuilder version "+BUILD_VERSION+" (db version "+DB_VERSION+")";
@ -21,6 +21,29 @@ let weaponTypes = [ "wand", "spear", "bow", "dagger", "relik" ];
let item_fields = [ "name", "displayName", "tier", "set", "slots", "type", "material", "drop", "quest", "restrict", "nDam", "fDam", "wDam", "aDam", "tDam", "eDam", "atkSpd", "hp", "fDef", "wDef", "aDef", "tDef", "eDef", "lvl", "classReq", "strReq", "dexReq", "intReq", "defReq", "agiReq", "hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "str", "dex", "int", "agi", "def", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "fixID", "category", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd", "id" ]; let item_fields = [ "name", "displayName", "tier", "set", "slots", "type", "material", "drop", "quest", "restrict", "nDam", "fDam", "wDam", "aDam", "tDam", "eDam", "atkSpd", "hp", "fDef", "wDef", "aDef", "tDef", "eDef", "lvl", "classReq", "strReq", "dexReq", "intReq", "defReq", "agiReq", "hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "str", "dex", "int", "agi", "def", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "fixID", "category", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd", "id" ];
let editable_item_fields = [ "sdPct", "sdRaw", "mdPct", "mdRaw", "poison", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "hprRaw", "hprPct", "hpBonus", "atkTier", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4" ]; let editable_item_fields = [ "sdPct", "sdRaw", "mdPct", "mdRaw", "poison", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "hprRaw", "hprPct", "hpBonus", "atkTier", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4" ];
let editable_elems = [];
for (let i of editable_item_fields) {
let elem = document.getElementById(i);
elem.addEventListener("change", (event) => {
elem.classList.add("highlight");
});
editable_elems.push(elem);
}
for (let i of skp_order) {
let elem = document.getElementById(i+"-skp");
elem.addEventListener("change", (event) => {
elem.classList.add("highlight");
});
editable_elems.push(elem);
}
function clear_highlights() {
for (let i of editable_elems) {
i.classList.remove("highlight");
}
}
let equipment_fields = [ let equipment_fields = [
@ -403,8 +426,8 @@ function calculateBuild(save_skp, skp){
} }
} }
if(player_build){ if(player_build){
updateBoosts("skip"); updateBoosts("skip", false);
updatePowderSpecials("skip"); updatePowderSpecials("skip", false);
} }
//updatePowderSpecials("skip"); //jank pt 1 //updatePowderSpecials("skip"); //jank pt 1
save_skp = (typeof save_skp !== 'undefined') ? save_skp : false; save_skp = (typeof save_skp !== 'undefined') ? save_skp : false;
@ -455,7 +478,6 @@ function calculateBuild(save_skp, skp){
for (let i of document.getElementsByClassName("hide-container-grid")) { for (let i of document.getElementsByClassName("hide-container-grid")) {
i.style.display = "grid"; i.style.display = "grid";
} }
document.getElementById("int-info-div").style.display = "none";
console.log(player_build.toString()); console.log(player_build.toString());
displayEquipOrder(document.getElementById("build-order"),player_build.equip_order); displayEquipOrder(document.getElementById("build-order"),player_build.equip_order);
@ -836,6 +858,7 @@ function calculateBuildStats() {
} }
location.hash = encodeBuild(); location.hash = encodeBuild();
clear_highlights();
} }
function copyBuild() { function copyBuild() {

View file

@ -1,83 +1,5 @@
{ {
"items": [ "items": [
{
"name": "Demon Tide (1.20)",
"tier": "Legendary",
"type": "leggings",
"set": null,
"quest": null,
"poison": 0,
"spellCost3Pct": -25,
"spellCost2Pct": -20,
"spellCost1Pct": -30,
"spellCost4Pct": -30,
"thorns": 0,
"sprint": 0,
"category": "armor",
"slots": 2,
"drop": "NORMAL",
"hp": 2625,
"fDef": 65,
"wDef": -200,
"aDef": 0,
"tDef": 65,
"eDef": 0,
"lvl": 87,
"classReq": null,
"strReq": 0,
"dexReq": 65,
"intReq": 0,
"agiReq": 0,
"defReq": 45,
"hprPct": 0,
"mr": 0,
"sdPct": -45,
"mdPct": -40,
"ls": 0,
"ms": 0,
"xpb": 0,
"lb": 0,
"ref": 0,
"str": 0,
"dex": 0,
"int": 10,
"agi": 0,
"def": 0,
"expd": 0,
"spd": 0,
"atkTier": 0,
"hpBonus": 0,
"spRegen": 0,
"eSteal": 0,
"hprRaw": 0,
"sdRaw": 0,
"mdRaw": 0,
"fDamPct": 10,
"wDamPct": 20,
"aDamPct": 0,
"tDamPct": 10,
"eDamPct": 0,
"fDefPct": 0,
"wDefPct": 0,
"aDefPct": 0,
"tDefPct": 0,
"eDefPct": 0,
"spPct1": -30,
"spRaw1": 0,
"spPct2": -20,
"spRaw2": 0,
"spPct3": -25,
"spRaw3": 0,
"spPct4": -30,
"spRaw4": 0,
"rainbowRaw": 0,
"sprintReg": 0,
"jh": 0,
"lq": 0,
"gXp": 0,
"gSpd": 0,
"id": 10010
},
{ {
"name": "Dondasch", "name": "Dondasch",
"tier": "Legendary", "tier": "Legendary",
@ -57924,6 +57846,82 @@
"gSpd": 0, "gSpd": 0,
"id": 772 "id": 772
}, },
{
"name": "Ambivalence",
"tier": "Legendary",
"set": null,
"quest": null,
"poison": 0,
"thorns": 0,
"sprint": 0,
"category": "accessory",
"slots": 0,
"drop": "never",
"restrict": "Untradable",
"hp": 0,
"fDef": 70,
"wDef": 0,
"aDef": 70,
"tDef": 70,
"eDef": 0,
"lvl": 100,
"classReq": null,
"strReq": 0,
"dexReq": 40,
"intReq": 0,
"agiReq": 40,
"defReq": 40,
"hprPct": 0,
"mr": 0,
"sdPct": 250,
"mdPct": 0,
"ls": 0,
"ms": 0,
"xpb": 0,
"lb": 0,
"ref": 0,
"str": 0,
"dex": 0,
"int": -70,
"agi": 0,
"def": 0,
"expd": 0,
"spd": 0,
"atkTier": 0,
"hpBonus": 0,
"spRegen": 0,
"eSteal": 0,
"hprRaw": 0,
"sdRaw": 0,
"mdRaw": 0,
"fDamPct": 0,
"wDamPct": 50,
"aDamPct": 0,
"tDamPct": 0,
"eDamPct": 0,
"fDefPct": 0,
"wDefPct": 0,
"aDefPct": 0,
"tDefPct": 0,
"eDefPct": 0,
"type": "necklace",
"fixID": true,
"spPct1": 130,
"spRaw1": 0,
"spPct2": 85,
"spRaw2": 0,
"spPct3": 130,
"spRaw3": 0,
"spPct4": 100,
"spRaw4": 0,
"rainbowRaw": 0,
"sprintReg": 0,
"jh": 0,
"lq": 0,
"gXp": 0,
"gSpd": 0,
"id": 773
},
{ {
"name": "Algaa", "name": "Algaa",
"tier": "Rare", "tier": "Rare",
@ -266667,8 +266665,8 @@
"int": 50, "int": 50,
"def": 0, "def": 0,
"agi": 0, "agi": 0,
"mr": -5, "mr": -4,
"ms": -5, "ms": -4,
"sdPct": 30, "sdPct": 30,
"spPct1": -38, "spPct1": -38,
"spPct2": -38, "spPct2": -38,
@ -270659,7 +270657,7 @@
"category": "armor", "category": "armor",
"lvl": 98, "lvl": 98,
"hp": 3200, "hp": 3200,
"tDef": 200, "tDef": 100,
"aDef": -150, "aDef": -150,
"slots": 3, "slots": 3,
"str": 0, "str": 0,
@ -271168,13 +271166,15 @@
"fDef": 40, "fDef": 40,
"aDef": 40, "aDef": 40,
"slots": 2, "slots": 2,
"str": 4, "str": 3,
"dex": 4, "dex": 3,
"int": 4, "int": 3,
"def": 4, "def": 3,
"agi": 4, "agi": 3,
"sdRaw": 175, "ls": 175,
"mdRaw": 230, "ms": 2,
"lb": 15,
"thorns": 20,
"id": 10259 "id": 10259
}, },
{ {
@ -272802,11 +272802,11 @@
"category": "weapon", "category": "weapon",
"lvl": 93, "lvl": 93,
"nDam": "0-0", "nDam": "0-0",
"eDam": "124-140", "eDam": "120-142",
"tDam": "54-210", "tDam": "60-202",
"wDam": "94-170", "wDam": "90-172",
"fDam": "109-115", "fDam": "105-157",
"aDam": "79-185", "aDam": "75-187",
"slots": 4, "slots": 4,
"str": 0, "str": 0,
"dex": 0, "dex": 0,
@ -275167,7 +275167,7 @@
"agi": -550, "agi": -550,
"ls": 973, "ls": 973,
"ms": 6, "ms": 6,
"atkTier": 3, "atkTier": 1,
"sdRaw": 342, "sdRaw": 342,
"mdRaw": 727, "mdRaw": 727,
"wDamPct": -550, "wDamPct": -550,
@ -275859,344 +275859,6 @@
"tDamPct": 30, "tDamPct": 30,
"aDamPct": -50, "aDamPct": -50,
"id": 10394 "id": 10394
},
{
"tier": "Rare",
"type": "helmet",
"name": "Dissociation (1.20)",
"displayName": "Dissociation (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 0,
"dexReq": 0,
"intReq": 0,
"defReq": 0,
"agiReq": 0,
"category": "armor",
"lvl": 101,
"slots": 0,
"str": -35,
"dex": 0,
"int": -20,
"def": -35,
"agi": 0,
"mr": 2,
"hpBonus": 3550,
"sdRaw": 300,
"mdPct": 60,
"tDefPct": 75,
"aDefPct": 75,
"spRaw3": -1,
"id": 10395
},
{
"tier": "Legendary",
"type": "leggings",
"name": "Anixolytic (1.20)",
"displayName": "Anixolytic (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 35,
"dexReq": 40,
"intReq": 50,
"defReq": 35,
"agiReq": 50,
"category": "armor",
"lvl": 101,
"hp": 3880,
"eDef": -175,
"tDef": 125,
"wDef": 150,
"fDef": -125,
"aDef": 150,
"slots": 0,
"str": 0,
"dex": 15,
"int": 10,
"def": 0,
"agi": 12,
"mr": 4,
"spRaw1": 1,
"spRaw3": 1,
"spRaw4": 1,
"sprintReg": 13,
"id": 10396
},
{
"name": "Anima-Infused Cuirass (1.20)",
"displayName": "Anima-Infused Cuirass (1.20)",
"tier": "Legendary",
"type": "chestplate",
"set": null,
"quest": "The Qira Hive",
"poison": 0,
"thorns": 0,
"sprint": 0,
"category": "armor",
"slots": 2,
"drop": "never",
"restrict": "Untradable",
"hp": 3800,
"fDef": 200,
"wDef": 200,
"aDef": 0,
"tDef": 200,
"eDef": 0,
"lvl": 100,
"classReq": null,
"strReq": 0,
"dexReq": 40,
"intReq": 40,
"agiReq": 0,
"defReq": 40,
"hprPct": 0,
"mr": 2,
"sdPct": 0,
"mdPct": 0,
"ls": 0,
"ms": 0,
"xpb": 0,
"lb": 0,
"ref": 0,
"str": -30,
"dex": 0,
"int": 0,
"agi": -30,
"def": 0,
"expd": 0,
"spd": 0,
"atkTier": 0,
"hpBonus": 0,
"spRegen": 0,
"eSteal": 0,
"hprRaw": 0,
"sdRaw": 0,
"mdRaw": 0,
"fDamPct": 20,
"wDamPct": 20,
"aDamPct": 0,
"tDamPct": 20,
"eDamPct": 0,
"fDefPct": 20,
"wDefPct": 20,
"aDefPct": 0,
"tDefPct": 20,
"eDefPct": 0,
"fixID": true,
"spPct1": 0,
"spRaw1": -1,
"spPct2": 0,
"spRaw2": 0,
"spPct3": 0,
"spRaw3": -1,
"spPct4": 0,
"spRaw4": -1,
"rainbowRaw": 0,
"sprintReg": 0,
"jh": 0,
"lq": 0,
"gXp": 0,
"gSpd": 0,
"id": 10397
},
{
"tier": "Unique",
"type": "boots",
"name": "Boots of Blue Stone (1.20)",
"displayName": "Boots of Blue Stone (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 20,
"dexReq": 20,
"intReq": 20,
"defReq": 20,
"agiReq": 20,
"category": "armor",
"lvl": 82,
"hp": 2000,
"eDef": 30,
"tDef": 30,
"wDef": 30,
"fDef": 30,
"aDef": 30,
"slots": 2,
"str": 5,
"dex": 5,
"int": 5,
"def": 5,
"agi": 5,
"sdRaw": 140,
"mdRaw": 180,
"eDamPct": 13,
"tDamPct": 13,
"wDamPct": 13,
"fDamPct": 13,
"aDamPct": 13,
"sprint": 13,
"sprintReg": 13,
"id": 10398
},
{
"tier": "Rare",
"type": "relik",
"name": "Estuarine (1.20)",
"displayName": "Estuarine (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 28,
"dexReq": 0,
"intReq": 32,
"defReq": 0,
"agiReq": 0,
"atkSpd": "NORMAL",
"category": "weapon",
"lvl": 71,
"nDam": "70-80",
"eDam": "100-110",
"tDam": "0-0",
"wDam": "71-85",
"fDam": "0-0",
"aDam": "0-0",
"slots": 3,
"str": 0,
"dex": 0,
"int": 8,
"def": 0,
"agi": 0,
"mr": 1,
"spd": -12,
"mdPct": -20,
"mdRaw": 130,
"wDamPct": 35,
"eDefPct": 30,
"id": 10399
},
{
"tier": "Rare",
"type": "helmet",
"name": "The Modulator (1.20)",
"displayName": "The Modulator (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": true,
"strReq": 25,
"dexReq": 25,
"intReq": 25,
"defReq": 25,
"agiReq": 25,
"category": "armor",
"lvl": 88,
"hp": 2500,
"slots": 5,
"str": 8,
"dex": 8,
"int": 8,
"def": 8,
"agi": 8,
"spd": 15,
"eDefPct": 30,
"tDefPct": 30,
"wDefPct": 30,
"fDefPct": 30,
"aDefPct": 30,
"id": 10400
},
{
"tier": "Rare",
"type": "dagger",
"name": "Sreggad (1.20)",
"displayName": "Sreggad (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 0,
"dexReq": 0,
"intReq": 0,
"defReq": 0,
"agiReq": 0,
"atkSpd": "SUPER_SLOW",
"category": "weapon",
"lvl": 85,
"nDam": "0-0",
"eDam": "0-0",
"tDam": "0-0",
"wDam": "0-0",
"fDam": "0-0",
"aDam": "0-0",
"slots": 2,
"str": 0,
"dex": 0,
"int": 0,
"def": 20,
"agi": 20,
"hprRaw": 173,
"ls": 354,
"thorns": 333,
"hpBonus": 2500,
"ref": 333,
"eDefPct": 50,
"tDefPct": 50,
"wDefPct": 50,
"fDefPct": 50,
"aDefPct": 50,
"id": 10401
},
{
"tier": "Mythic",
"type": "dagger",
"name": "Nullification (1.20)",
"displayName": "Nullification (1.20)",
"set": null,
"quest": null,
"classReq": null,
"restrict": "1.20 item",
"fixID": false,
"strReq": 30,
"dexReq": 30,
"intReq": 30,
"defReq": 30,
"agiReq": 30,
"atkSpd": "FAST",
"category": "weapon",
"lvl": 95,
"nDam": "0-0",
"eDam": "80-88",
"tDam": "20-148",
"wDam": "65-103",
"fDam": "50-118",
"aDam": "35-133",
"slots": 3,
"str": 0,
"dex": 0,
"int": 0,
"def": 50,
"agi": 0,
"ls": 495,
"ms": 3,
"poison": -7000,
"ref": 80,
"eDefPct": 143,
"tDefPct": 143,
"wDefPct": 143,
"fDefPct": 143,
"aDefPct": 143,
"id": 10402
} }
], ],
"sets": { "sets": {

File diff suppressed because one or more lines are too long

View file

@ -479,7 +479,7 @@ function displayExpandedItem(item, parent_id){
" [ " + item.get("powders").map(x => powderNames.get(x)) + " ]";*/ " [ " + item.get("powders").map(x => powderNames.get(x)) + " ]";*/
let powderPrefix = document.createElement("b"); let powderPrefix = document.createElement("b");
powderPrefix.classList.add("itemp"); powderPrefix.classList.add("powderLeft");
powderPrefix.classList.add("left"); powderPrefix.classList.add("left");
powderPrefix.textContent = "Powder Slots: " + item.get(id) + " ["; powderPrefix.textContent = "Powder Slots: " + item.get(id) + " [";
p_elem.appendChild(powderPrefix); p_elem.appendChild(powderPrefix);
@ -494,7 +494,7 @@ function displayExpandedItem(item, parent_id){
} }
let powderSuffix = document.createElement("b"); let powderSuffix = document.createElement("b");
powderSuffix.classList.add("itemp"); powderSuffix.classList.add("powderRight");
powderSuffix.classList.add("left"); powderSuffix.classList.add("left");
powderSuffix.textContent = "]"; powderSuffix.textContent = "]";
p_elem.appendChild(powderSuffix); p_elem.appendChild(powderSuffix);
@ -1199,7 +1199,7 @@ function displayMeleeDamage(parent_elem, overallparent_elem, meleeStats){
overallaverageDamage.appendChild(overallaverageDamageSecond); overallaverageDamage.appendChild(overallaverageDamageSecond);
overallparent_elem.append(overallaverageDamage); overallparent_elem.append(overallaverageDamage);
overallparent_elem.append(document.createElement("br")); //overallparent_elem.append(document.createElement("br"));
//attack speed //attack speed
let atkSpd = document.createElement("p"); let atkSpd = document.createElement("p");
@ -1221,7 +1221,7 @@ function displayMeleeDamage(parent_elem, overallparent_elem, meleeStats){
overallatkSpd.appendChild(overallatkSpdFirst); overallatkSpd.appendChild(overallatkSpdFirst);
overallatkSpd.appendChild(overallatkSpdSecond); overallatkSpd.appendChild(overallatkSpdSecond);
overallparent_elem.append(overallatkSpd); overallparent_elem.append(overallatkSpd);
overallparent_elem.append(document.createElement("br")); //overallparent_elem.append(document.createElement("br"));
//Non-Crit: n->elem, total dmg, DPS //Non-Crit: n->elem, total dmg, DPS
let nonCritStats = document.createElement("p"); let nonCritStats = document.createElement("p");
@ -1415,7 +1415,7 @@ function displayDefenseStats(parent_elem, build, insertSummary){
hprRow.appendChild(hpr); hprRow.appendChild(hpr);
hprRow.appendChild(boost); hprRow.appendChild(boost);
statsTable.appendChild(hprRow); statsTable.appendChild(hprRow);
/*//EHPR //EHPR
let ehprRow = document.createElement("tr"); let ehprRow = document.createElement("tr");
let ehpr = document.createElement("td"); let ehpr = document.createElement("td");
ehpr.classList.add("left"); ehpr.classList.add("left");
@ -1429,7 +1429,7 @@ function displayDefenseStats(parent_elem, build, insertSummary){
ehprRow.append(boost); ehprRow.append(boost);
statsTable.append(ehprRow); statsTable.append(ehprRow);
ehprRow = document.createElement("tr"); /*ehprRow = document.createElement("tr");
ehpr = document.createElement("td"); ehpr = document.createElement("td");
ehpr.classList.add("left"); ehpr.classList.add("left");
ehpr.textContent = "Effective HP Regen (no agi):"; ehpr.textContent = "Effective HP Regen (no agi):";
@ -1659,24 +1659,20 @@ function displaySpellDamage(parent_elem, overallparent_elem, build, spell, spell
let save_damages = []; let save_damages = [];
let part_divavg = document.createElement("p");
part_divavg.classList.add("nomargin");
overallparent_elem.append(part_divavg);
for (const part of spell.parts) { for (const part of spell.parts) {
parent_elem.append(document.createElement("br")); parent_elem.append(document.createElement("br"));
let part_div = document.createElement("p"); let part_div = document.createElement("p");
parent_elem.append(part_div); parent_elem.append(part_div);
let part_divavg = document.createElement("p");
//part_divavg.classList.add("Normal");
overallparent_elem.append(part_divavg);
let subtitle_elem = document.createElement("p"); let subtitle_elem = document.createElement("p");
subtitle_elem.textContent = part.subtitle; subtitle_elem.textContent = part.subtitle;
subtitle_elem.classList.add("nomargin");
part_div.append(subtitle_elem); part_div.append(subtitle_elem);
if (part.summary == true) {
let subtitle_elemavg = document.createElement("p");
subtitle_elemavg.textContent = part.subtitle;
part_divavg.append(subtitle_elemavg);
}
if (part.type === "damage") { if (part.type === "damage") {
//console.log(build.expandedStats); //console.log(build.expandedStats);
let _results = calculateSpellDamage(stats, part.conversion, let _results = calculateSpellDamage(stats, part.conversion,
@ -1703,12 +1699,12 @@ function displaySpellDamage(parent_elem, overallparent_elem, build, spell, spell
let overallaverageLabel = document.createElement("p"); let overallaverageLabel = document.createElement("p");
let first = document.createElement("b"); let first = document.createElement("b");
let second = document.createElement("b"); let second = document.createElement("b");
first.textContent = "Average: "; first.textContent = part.subtitle + " Average: ";
second.textContent = averageDamage.toFixed(2); second.textContent = averageDamage.toFixed(2);
overallaverageLabel.appendChild(first); overallaverageLabel.appendChild(first);
overallaverageLabel.appendChild(second); overallaverageLabel.appendChild(second);
second.classList.add("Damage"); second.classList.add("Damage");
overallaverageLabel.classList.add("damageSubtitle"); overallaverageLabel.classList.add("overallp");
part_divavg.append(overallaverageLabel); part_divavg.append(overallaverageLabel);
} }
@ -1751,9 +1747,14 @@ function displaySpellDamage(parent_elem, overallparent_elem, build, spell, spell
part_div.append(healLabel); part_div.append(healLabel);
if (part.summary == true) { if (part.summary == true) {
let overallhealLabel = document.createElement("p"); let overallhealLabel = document.createElement("p");
overallhealLabel.textContent = heal_amount; let first = document.createElement("b");
overallhealLabel.classList.add("damagep"); let second = document.createElement("b");
overallhealLabel.classList.add("Set"); first.textContent = part.subtitle + ":";
second.textContent = heal_amount;
overallhealLabel.appendChild(first);
second.classList.add("Set");
overallhealLabel.appendChild(second);
overallhealLabel.classList.add("overallp");
part_divavg.append(overallhealLabel); part_divavg.append(overallhealLabel);
} }
} }

View file

@ -1,6 +1,9 @@
<!DOCTYPE html> <!DOCTYPE html>
<html scroll-behavior="smooth"> <html scroll-behavior="smooth">
<head> <head>
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, width=device-width, user-scalable=no" />
<!-- nunito font, copying wynndata --> <!-- nunito font, copying wynndata -->
<link rel="preconnect" href="https://fonts.gstatic.com"> <link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Nunito&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Nunito&display=swap" rel="stylesheet">
@ -16,7 +19,7 @@
<div class="header" id="header"> <div class="header" id="header">
Wynn build calculator Wynn build calculator
</div> </div>
<div class="center" id="help"> <div class="header" id="help">
<a href="https://forums.wynncraft.com/threads/wynnbuilder-release-thread-and-some-damage-calculation-updates.281438">Forum thread (instructions/help)</a> <a href="https://forums.wynncraft.com/threads/wynnbuilder-release-thread-and-some-damage-calculation-updates.281438">Forum thread (instructions/help)</a>
</div> </div>
<div class="summary"> <div class="summary">
@ -33,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td class="left"> <td class="left">
<label for="helmet-choice">Helmet:</label> <label for="helmet-choice">Helmet:</label><br>
<input class="iteminput" list="helmet-items" id="helmet-choice" name="helmet-choice" placeholder="No Helmet"/> <input class="iteminput" list="helmet-items" id="helmet-choice" name="helmet-choice" placeholder="No Helmet"/>
<datalist id="helmet-items"> <datalist id="helmet-items">
</datalist> </datalist>
@ -47,7 +50,7 @@
</tr> </tr>
<tr> <tr>
<td class="left"> <td class="left">
<label for="chestplate-choice">Chestplate:</label> <label for="chestplate-choice">Chestplate:</label><br>
<input class="iteminput" list="chestplate-items" id="chestplate-choice" name="chestplate-choice" placeholder="No Chestplate" /> <input class="iteminput" list="chestplate-items" id="chestplate-choice" name="chestplate-choice" placeholder="No Chestplate" />
<datalist id="chestplate-items"> <datalist id="chestplate-items">
</datalist> </datalist>
@ -61,7 +64,7 @@
</tr> </tr>
<tr> <tr>
<td class="left"> <td class="left">
<label for="leggings-choice">Leggings:</label> <label for="leggings-choice">Leggings:</label><br>
<input class="iteminput" list="leggings-items" id="leggings-choice" name="leggings-choice" placeholder="No Leggings" /> <input class="iteminput" list="leggings-items" id="leggings-choice" name="leggings-choice" placeholder="No Leggings" />
<datalist id="leggings-items"> <datalist id="leggings-items">
</datalist> </datalist>
@ -75,7 +78,7 @@
</tr> </tr>
<tr> <tr>
<td class="left"> <td class="left">
<label for="boots-choice">Boots:</label> <label for="boots-choice">Boots:</label><br>
<input class="iteminput" list="boots-items" id="boots-choice" name="boots-choice" placeholder="No Boots" /> <input class="iteminput" list="boots-items" id="boots-choice" name="boots-choice" placeholder="No Boots" />
<datalist id="boots-items"> <datalist id="boots-items">
</datalist> </datalist>
@ -90,7 +93,7 @@
<tr> <tr>
<td class="left"> <td class="left">
<br> <br>
<label for="weapon-choice">Weapon:</label> <label for="weapon-choice">Weapon:</label><br>
<input class="iteminput" list="weapon-items" id="weapon-choice" name="weapon-choice" placeholder="No Weapon" value=""/> <input class="iteminput" list="weapon-items" id="weapon-choice" name="weapon-choice" placeholder="No Weapon" value=""/>
<datalist id="weapon-items"> <datalist id="weapon-items">
</datalist> </datalist>
@ -194,7 +197,7 @@
</div> </div>
<br><br> <br><br>
<div class="externalBuffs" id="buff-box"> <div class="externalBuffs hide-container-block" id="buff-box" style="display: none;">
<table class="externalBuffs"> <table class="externalBuffs">
<tr> <tr>
<p class = "buffs-title itemp title"> <p class = "buffs-title itemp title">
@ -203,33 +206,33 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<button class = "button-narrow" id = "vanish-boost" onclick = "updateBoosts('vanish-boost')"> <button class = "button-narrow" id = "vanish-boost" onclick = "updateBoosts('vanish-boost', true)">
Vanish Boost (+80%) Vanish (+80%)
</button> </button>
</td> </td>
<td> <td>
<button class = "button-narrow" id = "warscream-boost" onclick = "updateBoosts('warscream-boost')"> <button class = "button-narrow" id = "warscream-boost" onclick = "updateBoosts('warscream-boost', true)">
War Scream (+10%) War Scream (+10%)
</button> </button>
</td> </td>
<td> <td>
<button class = "button-narrow" id = "yourtotem-boost" onclick = "updateBoosts('yourtotem-boost')"> <button class = "button-narrow" id = "yourtotem-boost" onclick = "updateBoosts('yourtotem-boost', true)">
Your Totem (+35%) Your Totem (+35%)
</button> </button>
</td> </td>
<td> <td>
<button class = "button-narrow" id = "allytotem-boost" onclick = "updateBoosts('allytotem-boost')"> <button class = "button-narrow" id = "allytotem-boost" onclick = "updateBoosts('allytotem-boost', true)">
Ally Totem (+15%) Ally Totem (+15%)
</button> </button>
</td> </td>
<td> <td>
<button class = "button-narrow" id = "bash-boost" onclick = "updateBoosts('bash-boost')"> <button class = "button-narrow" id = "bash-boost" onclick = "updateBoosts('bash-boost', true)">
Bash (+50%) Bash (+50%)
</button> </button>
</td> </td>
</tr> </tr>
</table> </table>
<div class = "powder-specials"> <div class = "powder-specials" style="display: none;">
<div class = "powder-special-stats" style = "grid-column:1;grid-row:1"> <div class = "powder-special-stats" style = "grid-column:1;grid-row:1">
<div class = "center" id = "powder-special-stats"> <div class = "center" id = "powder-special-stats">
<p class = "itemp">Powder Specials</p> <p class = "itemp">Powder Specials</p>
@ -409,6 +412,482 @@
</div> </div>
</div> </div>
</div> </div>
<div class="skillpoints">
<div class="center" style="grid-column:1;grid-row:1">
<div>
<label for="str-skp" class="skpLabel" id="str-skp-label">Strength:</label><br>
<input type="string" id="str-skp" name="str-skp" value="0" class="skpInput"/>
</div>
<div id="str-skp-assign" class="skpDesc">
Manually Assigned: 0
</div>
<div id="str-skp-base" class="skpDesc">
Original Value: 0
</div>
<div id ="str-skp-pct" class="skpDesc">
</div>
</div>
<div class="center" style="grid-column:2;grid-row:1">
<div>
<label for="dex-skp" class="skpLabel" id="dex-skp-label">Dexterity:</label><br>
<input type="string" id="dex-skp" name="dex-skp" value="0" class="skpInput"/>
</div>
<div id="dex-skp-assign" class="skpDesc">
Manually Assigned: 0
</div>
<div id="dex-skp-base" class="skpDesc">
Original Value: 0
</div>
<div id ="dex-skp-pct" class="skpDesc">
</div>
</div>
<div class="center" style="grid-column:3;grid-row:1">
<div>
<label for="int-skp" class="skpLabel" id="int-skp-label">Intelligence:</label><br>
<input type="string" id="int-skp" name="int-skp" value="0" class="skpInput"/>
</div>
<div id="int-skp-assign" class="skpDesc">
Manually Assigned: 0
</div>
<div id="int-skp-base" class="skpDesc">
Original Value: 0
</div>
<div id ="int-skp-pct" class="skpDesc">
</div>
</div>
<div class="center" style="grid-column:4;grid-row:1">
<div>
<label for="def-skp" class="skpLabel" id="def-skp-label">Defense:</label><br>
<input type="string" id="def-skp" name="def-skp" value="0" class="skpInput"/>
</div>
<div id="def-skp-assign" class="skpDesc">
Manually Assigned: 0
</div>
<div id="def-skp-base" class="skpDesc">
Original Value: 0
</div>
<div id ="def-skp-pct" class="skpDesc">
</div>
</div>
<div class="center" style="grid-column:5;grid-row:1">
<div>
<label for="agi-skp" class="skpLabel" id="agi-skp-label">Agility:</label><br>
<input type="string" id="agi-skp" name="agi-skp" value="0" class="skpInput"/>
</div>
<div id="agi-skp-assign" class="skpDesc">
Manually Assigned: 0
</div>
<div id="agi-skp-base" class="skpDesc">
Original Value: 0
</div>
<div id ="agi-skp-pct" class="skpDesc">
</div>
</div>
</div>
<div class="id-box fade-in" id="id-edit" style="display: none">
<div class="id-edit1">
<table class="white-space: nowrap">
<tr>
<th colspan="5">
<h1>Damage values:</h1>
</th>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="sdPct" class="idLabel" id="sdPct-label">S. Damage %:</label><br>
<input type="number" id="sdPct" name="sdPct" value="0" class="idInput"/>
</div>
<div id="sdPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="sdRaw" class="idLabel" id="sdRaw-label">Raw Spell:</label><br>
<input type="number" id="sdRaw" name="sdRaw" value="0" class="idInput"/>
</div>
<div id="sdRaw-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="mdPct" class="idLabel" id="mdPct-label">M. Damage %:</label><br>
<input type="number" id="mdPct" name="mdPct" value="0" class="idInput"/>
</div>
<div id="mdPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="mdRaw" class="idLabel" id="mdRaw-label">Raw Melee:</label><br>
<input type="number" id="mdRaw" name="mdRaw" value="0" class="idInput"/>
</div>
<div id="mdRaw-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="poison" class="idLabel" id="poison-label">Poison:</label><br>
<input type="number" id="poison" name="poison" value="0" class="idInput"/>
</div>
<div id="poison-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="eDamPct" class="idLabel Earth" id="eDamPct-label">Damage %:</label><br>
<input type="number" id="eDamPct" name="eDamPct" value="0" class="idInput"/>
</div>
<div id="eDamPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="tDamPct" class="idLabel Thunder" id="tDamPct-label">Damage %:</label><br>
<input type="number" id="tDamPct" name="tDamPct" value="0" class="idInput"/>
</div>
<div id="tDamPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="wDamPct" class="idLabel Water" id="wDamPct-label">Damage %:</label><br>
<input type="number" id="wDamPct" name="wDamPct" value="0" class="idInput"/>
</div>
<div id="wDamPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="fDamPct" class="idLabel Fire" id="fDamPct-label">Damage %:</label><br>
<input type="number" id="fDamPct" name="fDamPct" value="0" class="idInput"/>
</div>
<div id="fDamPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="aDamPct" class="idLabel Air" id="aDamPct-label">Damage %:</label><br>
<input type="number" id="aDamPct" name="aDamPct" value="0" class="idInput"/>
</div>
<div id="aDamPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="atkTier" class="idLabel" id="atkTier-label">+Tier:</label><br>
<input type="number" id="atkTier" name="atkTier" value="0" class="idInput"/>
</div>
<div id="atkTier-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="id-edit1">
<table>
<tr>
<th colspan="5">
<h1>Defense values:</h1>
</th>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="eDefPct" class="idLabel Earth" id="eDefPct-label">Defense %:</label><br>
<input type="number" id="eDefPct" name="eDefPct" value="0" class="idInput"/>
</div>
<div id="eDefPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="tDefPct" class="idLabel Thunder" id="tDefPct-label">Defense %:</label><br>
<input type="number" id="tDefPct" name="tDefPct" value="0" class="idInput"/>
</div>
<div id="tDefPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="wDefPct" class="idLabel Water" id="wDefPct-label">Defense %:</label><br>
<input type="number" id="wDefPct" name="wDefPct" value="0" class="idInput"/>
</div>
<div id="wDefPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="fDefPct" class="idLabel Fire" id="fDefPct-label">Defense %:</label><br>
<input type="number" id="fDefPct" name="fDefPct" value="0" class="idInput"/>
</div>
<div id="fDefPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="aDefPct" class="idLabel Air" id="aDefPct-label">Defense %:</label><br>
<input type="number" id="aDefPct" name="aDefPct" value="0" class="idInput"/>
</div>
<div id="aDefPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="hprRaw" class="idLabel" id="hprRaw-label">HPR Raw:</label><br>
<input type="number" id="hprRaw" name="hprRaw" value="0" class="idInput"/>
</div>
<div id="hprRaw-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="hprPct" class="idLabel" id="hprPct-label">HPR %:</label><br>
<input type="number" id="hprPct" name="hprPct" value="0" class="idInput"/>
</div>
<div id="hprPct-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="hpBonus" class="idLabel" id="hpBonus-label">Health Bonus:</label><br>
<input type="number" id="hpBonus" name="hpBonus" value="0" class="idInput"/>
</div>
<div id="hpBonus-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="id-edit1">
<table>
<tr>
<th colspan="5">
<h1>Utility values:</h1>
</th>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spPct1" class="idLabel" id="spPct1-label">1st Spell Cost %:</label><br>
<input type="number" id="spPct1" name="spPct1" value="0" class="idInput"/>
</div>
<div id="spPct1-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spPct2" class="idLabel" id="spPct2-label">2nd Spell Cost %:</label><br>
<input type="number" id="spPct2" name="spPct2" value="0" class="idInput"/>
</div>
<div id="spPct2-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spPct3" class="idLabel" id="spPct3-label">3rd Spell Cost %:</label><br>
<input type="number" id="spPct3" name="spPct3" value="0" class="idInput"/>
</div>
<div id="spPct3-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spPct4" class="idLabel" id="spPct4-label">4th Spell Cost %:</label><br>
<input type="number" id="spPct4" name="spPct4" value="0" class="idInput"/>
</div>
<div id="spPct4-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spRaw1" class="idLabel" id="spRaw1-label">1st Spell Cost Raw:</label><br>
<input type="number" id="spRaw1" name="spRaw1" value="0" class="idInput"/>
</div>
<div id="spRaw1-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spRaw2" class="idLabel" id="spRaw2-label">2nd Spell Cost Raw:</label><br>
<input type="number" id="spRaw2" name="spRaw2" value="0" class="idInput"/>
</div>
<div id="spRaw2-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spRaw3" class="idLabel" id="spRaw3-label">3rd Spell Cost Raw:</label><br>
<input type="number" id="spRaw3" name="spRaw3" value="0" class="idInput"/>
</div>
<div id="spRaw3-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
<td>
<div class="idLeft">
<div class="idWrap">
<div>
<label for="spRaw4" class="idLabel" id="spRaw4-label">4th Spell Cost Raw:</label><br>
<input type="number" id="spRaw4" name="spRaw4" value="0" class="idInput"/>
</div>
<div id="spRaw4-base" class="idDesc">
Original Value: 0
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<br>
<div class="center">
<button class = "button" id = "update-button" onclick = "updateStats()">
Update Stats
</button>
<button class = "button" id = "show-id-button" onclick = "toggleID()">
Edit IDs
</button>
</div>
<div class="wide-space"></div>
</div> </div>
</div> </div>
<div class="build-overall-container hide-container-block" style="display: none;"> <div class="build-overall-container hide-container-block" style="display: none;">
@ -418,6 +897,7 @@
</div> </div>
</div> </div>
<div class="spell-info-container hide-container-block" style="display: none;"> <div class="spell-info-container hide-container-block" style="display: none;">
<div class="sticky-box">
<div class="spell-info"> <div class="spell-info">
<div class="center" id="build-melee-statsAvg">melee</div> <div class="center" id="build-melee-statsAvg">melee</div>
</div> </div>
@ -438,389 +918,6 @@
</div> </div>
</div> </div>
</div> </div>
<div class="skillpoints">
<div class="center" style="grid-column:1;grid-row:1">
<div>
<label for="str-skp" class="skpLabel" id="str-skp-label">Strength:</label><br>
<input type="string" id="str-skp" name="str-skp" value="0" class="skpInput"/>
</div>
<div id="str-skp-assign">
Manually Assigned: 0
</div>
<div id="str-skp-base">
Original Value: 0
</div>
<div id ="str-skp-pct">
</div>
</div>
<div class="center" style="grid-column:2;grid-row:1">
<div>
<label for="dex-skp" class="skpLabel" id="dex-skp-label">Dexterity:</label><br>
<input type="string" id="dex-skp" name="dex-skp" value="0" class="skpInput"/>
</div>
<div id="dex-skp-assign">
Manually Assigned: 0
</div>
<div id="dex-skp-base">
Original Value: 0
</div>
<div id ="dex-skp-pct">
</div>
</div>
<div class="center" style="grid-column:3;grid-row:1">
<div>
<label for="int-skp" class="skpLabel" id="int-skp-label">Intelligence:</label><br>
<input type="string" id="int-skp" name="int-skp" value="0" class="skpInput"/>
</div>
<div id="int-skp-assign">
Manually Assigned: 0
</div>
<div id="int-skp-base">
Original Value: 0
</div>
<div id ="int-skp-pct">
</div>
</div>
<div class="center" style="grid-column:4;grid-row:1">
<div>
<label for="def-skp" class="skpLabel" id="def-skp-label">Defense:</label><br>
<input type="string" id="def-skp" name="def-skp" value="0" class="skpInput"/>
</div>
<div id="def-skp-assign">
Manually Assigned: 0
</div>
<div id="def-skp-base">
Original Value: 0
</div>
<div id ="def-skp-pct">
</div>
</div>
<div class="center" style="grid-column:5;grid-row:1">
<div>
<label for="agi-skp" class="skpLabel" id="agi-skp-label">Agility:</label><br>
<input type="string" id="agi-skp" name="agi-skp" value="0" class="skpInput"/>
</div>
<div id="agi-skp-assign">
Manually Assigned: 0
</div>
<div id="agi-skp-base">
Original Value: 0
</div>
<div id ="agi-skp-pct">
</div>
</div>
</div>
<div class="id-box fade-in" id="id-edit" style="display: none">
<div class="id-edit1">
<div class="idCenter">
<div class="idWrap">
<div>
<label for="sdPct" class="idLabel" id="sdPct-label">Spell Damage %:</label><br>
<input type="number" id="sdPct" name="sdPct" value="0" class="idInput"/>
</div>
<div id="sdPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="sdRaw" class="idLabel" id="sdRaw-label">Spell Damage Raw:</label><br>
<input type="number" id="sdRaw" name="sdRaw" value="0" class="idInput"/>
</div>
<div id="sdRaw-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="mdPct" class="idLabel" id="mdPct-label">Melee Damage %:</label><br>
<input type="number" id="mdPct" name="mdPct" value="0" class="idInput"/>
</div>
<div id="mdPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="mdRaw" class="idLabel" id="mdRaw-label">Melee Damage Raw:</label><br>
<input type="number" id="mdRaw" name="mdRaw" value="0" class="idInput"/>
</div>
<div id="mdRaw-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="poison" class="idLabel" id="poison-label">Poison:</label><br>
<input type="number" id="poison" name="poison" value="0" class="idInput"/>
</div>
<div id="poison-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="eDamPct" class="idLabel" id="eDamPct-label">Earth Damage %:</label><br>
<input type="number" id="eDamPct" name="eDamPct" value="0" class="idInput"/>
</div>
<div id="eDamPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="tDamPct" class="idLabel" id="tDamPct-label">Thunder Damage %:</label><br>
<input type="number" id="tDamPct" name="tDamPct" value="0" class="idInput"/>
</div>
<div id="tDamPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="wDamPct" class="idLabel" id="wDamPct-label">Water Damage %:</label><br>
<input type="number" id="wDamPct" name="wDamPct" value="0" class="idInput"/>
</div>
<div id="wDamPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="fDamPct" class="idLabel" id="fDamPct-label">Fire Damage %:</label><br>
<input type="number" id="fDamPct" name="fDamPct" value="0" class="idInput"/>
</div>
<div id="fDamPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="aDamPct" class="idLabel" id="aDamPct-label">Air Damage %:</label><br>
<input type="number" id="aDamPct" name="aDamPct" value="0" class="idInput"/>
</div>
<div id="aDamPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="eDefPct" class="idLabel" id="eDefPct-label">Earth Defense %:</label><br>
<input type="number" id="eDefPct" name="eDefPct" value="0" class="idInput"/>
</div>
<div id="eDefPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="tDefPct" class="idLabel" id="tDefPct-label">Thunder Defense %:</label><br>
<input type="number" id="tDefPct" name="tDefPct" value="0" class="idInput"/>
</div>
<div id="tDefPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="wDefPct" class="idLabel" id="wDefPct-label">Water Defense %:</label><br>
<input type="number" id="wDefPct" name="wDefPct" value="0" class="idInput"/>
</div>
<div id="wDefPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="fDefPct" class="idLabel" id="fDefPct-label">Fire Defense %:</label><br>
<input type="number" id="fDefPct" name="fDefPct" value="0" class="idInput"/>
</div>
<div id="fDefPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="aDefPct" class="idLabel" id="aDefPct-label">Air Defense %:</label><br>
<input type="number" id="aDefPct" name="aDefPct" value="0" class="idInput"/>
</div>
<div id="aDefPct-base">
Original Value: 0
</div>
</div>
</div>
</div>
<div class="id-edit2">
<div class="idCenter">
<div class="idWrap">
<div>
<label for="hprRaw" class="idLabel" id="hprRaw-label">Health Regen Raw:</label><br>
<input type="number" id="hprRaw" name="hprRaw" value="0" class="idInput"/>
</div>
<div id="hprRaw-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="hprPct" class="idLabel" id="hprPct-label">Health Regen %:</label><br>
<input type="number" id="hprPct" name="hprPct" value="0" class="idInput"/>
</div>
<div id="hprPct-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="hpBonus" class="idLabel" id="hpBonus-label">Health Bonus:</label><br>
<input type="number" id="hpBonus" name="hpBonus" value="0" class="idInput"/>
</div>
<div id="hpBonus-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="atkTier" class="idLabel" id="atkTier-label">Attack Speed Bonus:</label><br>
<input type="number" id="atkTier" name="atkTier" value="0" class="idInput"/>
</div>
<div id="atkTier-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spPct1" class="idLabel" id="spPct1-label">1st Spell Cost %:</label><br>
<input type="number" id="spPct1" name="spPct1" value="0" class="idInput"/>
</div>
<div id="spPct1-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spPct2" class="idLabel" id="spPct2-label">2nd Spell Cost %:</label><br>
<input type="number" id="spPct2" name="spPct2" value="0" class="idInput"/>
</div>
<div id="spPct2-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spPct3" class="idLabel" id="spPct3-label">3rd Spell Cost %:</label><br>
<input type="number" id="spPct3" name="spPct3" value="0" class="idInput"/>
</div>
<div id="spPct3-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spPct4" class="idLabel" id="spPct4-label">4th Spell Cost %:</label><br>
<input type="number" id="spPct4" name="spPct4" value="0" class="idInput"/>
</div>
<div id="spPct4-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spRaw1" class="idLabel" id="spRaw1-label">1st Spell Cost Raw:</label><br>
<input type="number" id="spRaw1" name="spRaw1" value="0" class="idInput"/>
</div>
<div id="spRaw1-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spRaw2" class="idLabel" id="spRaw2-label">2nd Spell Cost Raw:</label><br>
<input type="number" id="spRaw2" name="spRaw2" value="0" class="idInput"/>
</div>
<div id="spRaw2-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spRaw3" class="idLabel" id="spRaw3-label">3rd Spell Cost Raw:</label><br>
<input type="number" id="spRaw3" name="spRaw3" value="0" class="idInput"/>
</div>
<div id="spRaw3-base">
Original Value: 0
</div>
</div>
</div>
<div class="idCenter">
<div class="idWrap">
<div>
<label for="spRaw4" class="idLabel" id="spRaw4-label">4th Spell Cost Raw:</label><br>
<input type="number" id="spRaw4" name="spRaw4" value="0" class="idInput"/>
</div>
<div id="spRaw4-base">
Original Value: 0
</div>
</div>
</div>
</div>
</div>
<br>
<div class="center">
<button class = "button" id = "update-button" onclick = "updateStats()">
Update Stats
</button>
<button class = "button" id = "show-id-button" onclick = "toggleID()">
Edit IDs
</button>
</div> </div>
<div class = "build hide-container-grid" style="display: none;"> <div class = "build hide-container-grid" style="display: none;">
<div class = "center build-helmet" id = "build-helmet" style = "grid-item-1"> <div class = "center build-helmet" id = "build-helmet" style = "grid-item-1">
@ -879,7 +976,7 @@
<div class = "center set-info" id = "set-info-div" style = "grid-column:1;grid-row:1; display: none;"> <div class = "center set-info" id = "set-info-div" style = "grid-column:1;grid-row:1; display: none;">
<div class = "center" id = "set-info">Set info</div> <div class = "center" id = "set-info">Set info</div>
</div> </div>
<div class = "center int-info" id = "int-info-div" style = "grid-column:4;grid-row:1; display: none;"> <div class = "center int-info hide-container-block" id = "int-info-div" style = "grid-column:4;grid-row:1; display: none;">
<div class = "center" id = "int-info">Next Spell Costs</div> <div class = "center" id = "int-info">Next Spell Costs</div>
</div> </div>
</div> </div>

View file

@ -1,4 +1,4 @@
const DB_VERSION = 21; const DB_VERSION = 22;
// @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
let db; let db;

View file

@ -39,3 +39,46 @@
max-height: 30px; max-height: 30px;
} }
.wide-space {
height: 1em;
}
.idLabel, .skpLabel, .idDesc, .skpDesc {
font-size: 100%;
}
.title{
text-align: center;
font-size: 190%;
}
.smalltitle{
text-align: center;
font-size: 155%;
margin-top: 10px;
margin-bottom: 4px;
}
.button-narrow {
background-color: #666;
border: 2px solid #444;
border-radius: 5px;
color: #ddd;
text-align: center;
text-decoration: none;
font-family: 'Nunito',sans-serif;
font-weight: 700;
font-size: 113%;
display: inline-block;
}
button {
background-color: #666;
border: 2px solid #444;
border-radius: 5px;
color: #ddd;
text-align: center;
text-decoration: none;
font-family: 'Nunito',sans-serif;
font-weight: 700;
font-size: 150%;
display: inline-block;
}

View file

@ -340,7 +340,6 @@ button.toggleOn{
width: 100%; width: 100%;
} }
<<<<<<< HEAD
.T0 { .T0 {
color: #555; color: #555;
} }
@ -365,7 +364,6 @@ button.toggleOn{
.T3-bracket { .T3-bracket {
color: #0aa; color: #0aa;
} }
=======
.hide-container-block, .hide-container-grid, .set-info-div, .fade-in { .hide-container-block, .hide-container-grid, .set-info-div, .fade-in {
animation-duration: 0.5s; animation-duration: 0.5s;
animation-name: fadeInFromNone; animation-name: fadeInFromNone;
@ -385,4 +383,3 @@ button.toggleOn{
opacity: 1; opacity: 1;
} }
} }
>>>>>>> ca179c7c401539ebf0a5c647f2cf962de7dfe494

View file

@ -4,8 +4,12 @@
.spell-info-container { .spell-info-container {
grid-column:4; grid-column:4;
} }
.sticky-box {
position: sticky;
top: 0;
}
.summary { .summary {
padding: 2% 4% 4%; padding: 2% 2% 0%;
display: grid; display: grid;
grid-template-columns: 1.25fr 1.25fr 1fr 1fr; grid-template-columns: 1.25fr 1.25fr 1fr 1fr;
grid-auto-columns: minmax(200px, auto); grid-auto-columns: minmax(200px, auto);
@ -39,10 +43,55 @@
} }
.iteminput { .iteminput {
width: 15vw;
} }
.skpInput, .idInput { .skpInput, .idInput {
width: 90%;
height: 7vw;
max-height: 30px;
} }
.wide-space {
height: 8em;
}
.idLabel, .skpLabel, .idDesc, .skpDesc {
font-size: 80%;
}
.title{
text-align: center;
font-size: 150%;
}
.smalltitle{
text-align: center;
font-size: 125%;
margin-top: 10px;
margin-bottom: 4px;
}
.button-narrow {
background-color: #666;
border: 2px solid #444;
border-radius: 5px;
color: #ddd;
text-align: center;
text-decoration: none;
font-family: 'Nunito',sans-serif;
font-weight: 700;
font-size: 90%;
display: inline-block;
}
button {
background-color: #666;
border: 2px solid #444;
border-radius: 5px;
color: #ddd;
text-align: center;
text-decoration: none;
font-family: 'Nunito',sans-serif;
font-weight: 700;
font-size: 120%;
display: inline-block;
}