Implement major IDs
This commit is contained in:
parent
509ffc29d6
commit
7d25aa28e5
4 changed files with 55 additions and 13 deletions
7
build.js
7
build.js
|
@ -444,6 +444,7 @@ class Build{
|
||||||
}
|
}
|
||||||
statMap.set("hp", levelToHPBase(this.level));
|
statMap.set("hp", levelToHPBase(this.level));
|
||||||
|
|
||||||
|
let major_ids = new Set();
|
||||||
for (const item of this.items){
|
for (const item of this.items){
|
||||||
for (let [id, value] of item.get("maxRolls")) {
|
for (let [id, value] of item.get("maxRolls")) {
|
||||||
statMap.set(id,(statMap.get(id) || 0)+value);
|
statMap.set(id,(statMap.get(id) || 0)+value);
|
||||||
|
@ -453,7 +454,13 @@ class Build{
|
||||||
statMap.set(staticID, statMap.get(staticID) + item.get(staticID));
|
statMap.set(staticID, statMap.get(staticID) + item.get(staticID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (item.get("majorIds")) {
|
||||||
|
for (const majorID of item.get("majorIds")) {
|
||||||
|
major_ids.add(majorID);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
statMap.set("activeMajorIDs", major_ids);
|
||||||
for (const [setName, count] of this.activeSetCounts) {
|
for (const [setName, count] of this.activeSetCounts) {
|
||||||
const bonus = sets[setName].bonuses[count-1];
|
const bonus = sets[setName].bonuses[count-1];
|
||||||
for (const id in bonus) {
|
for (const id in bonus) {
|
||||||
|
|
|
@ -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.21";
|
const BUILD_VERSION = "6.9.22";
|
||||||
|
|
||||||
function setTitle() {
|
function setTitle() {
|
||||||
let text;
|
let text;
|
||||||
|
|
|
@ -131,7 +131,10 @@ const spell_table = {
|
||||||
{ title: "Heal", cost: 6, parts: [
|
{ title: "Heal", cost: 6, parts: [
|
||||||
{ subtitle: "First Pulse", type: "heal", strength: 0.12 },
|
{ subtitle: "First Pulse", type: "heal", strength: 0.12 },
|
||||||
{ subtitle: "Second and Third Pulses", type: "heal", strength: 0.06 },
|
{ subtitle: "Second and Third Pulses", type: "heal", strength: 0.06 },
|
||||||
{ subtitle: "Total Heal", type: "heal", strength: 0.24, summary: true }
|
{ subtitle: "Total Heal", type: "heal", strength: 0.24, summary: true },
|
||||||
|
{ subtitle: "First Pulse (Ally)", type: "heal", strength: 0.20 },
|
||||||
|
{ subtitle: "Second and Third Pulses (Ally)", type: "heal", strength: 0.1 },
|
||||||
|
{ subtitle: "Total Heal (Ally)", type: "heal", strength: 0.4 }
|
||||||
] },
|
] },
|
||||||
{ title: "Teleport", cost: 4, parts: [
|
{ title: "Teleport", cost: 4, parts: [
|
||||||
{ subtitle: "Total Damage", type: "damage", multiplier: 100, conversion: [60, 0, 40, 0, 0, 0], summary: true },
|
{ subtitle: "Total Damage", type: "damage", multiplier: 100, conversion: [60, 0, 40, 0, 0, 0], summary: true },
|
||||||
|
@ -150,9 +153,15 @@ const spell_table = {
|
||||||
{ subtitle: "Explosion Damage", type: "damage", multiplier: 130, conversion: [100, 0, 0, 0, 0, 0]},
|
{ subtitle: "Explosion Damage", type: "damage", multiplier: 130, conversion: [100, 0, 0, 0, 0, 0]},
|
||||||
{ subtitle: "Total Damage", type: "total", factors: [1, 1], summary: true },
|
{ subtitle: "Total Damage", type: "total", factors: [1, 1], summary: true },
|
||||||
] },
|
] },
|
||||||
{ title: "Charge", cost: 4, parts: [
|
{ title: "Charge", cost: 4, variants: {
|
||||||
{ subtitle: "Total Damage", type: "damage", multiplier: 150, conversion: [60, 0, 0, 0, 40, 0], summary: true },
|
DEFAULT: [
|
||||||
] },
|
{ subtitle: "Total Damage", type: "damage", multiplier: 150, conversion: [60, 0, 0, 0, 40, 0], summary: true }
|
||||||
|
],
|
||||||
|
RALLY: [
|
||||||
|
{ subtitle: "Self Heal", type: "heal", strength: 0.1, summary: true },
|
||||||
|
{ subtitle: "Ally Heal", type: "heal", strength: 0.15 }
|
||||||
|
]
|
||||||
|
} },
|
||||||
{ title: "Uppercut", cost: 9, parts: [
|
{ title: "Uppercut", cost: 9, parts: [
|
||||||
{ subtitle: "First Damage", type: "damage", multiplier: 300, conversion: [70, 20, 10, 0, 0, 0] },
|
{ subtitle: "First Damage", type: "damage", multiplier: 300, conversion: [70, 20, 10, 0, 0, 0] },
|
||||||
{ subtitle: "Fireworks Damage", type: "damage", multiplier: 50, conversion: [60, 0, 40, 0, 0, 0] },
|
{ subtitle: "Fireworks Damage", type: "damage", multiplier: 50, conversion: [60, 0, 40, 0, 0, 0] },
|
||||||
|
@ -165,10 +174,16 @@ const spell_table = {
|
||||||
] },
|
] },
|
||||||
],
|
],
|
||||||
"bow": [
|
"bow": [
|
||||||
{ title: "Arrow Storm", cost: 6, parts: [
|
{ title: "Arrow Storm", cost: 6, variants: {
|
||||||
|
DEFAULT: [
|
||||||
{ subtitle: "Total Damage", type: "damage", multiplier: 600, conversion: [60, 0, 25, 0, 15, 0], summary: true },
|
{ subtitle: "Total Damage", type: "damage", multiplier: 600, conversion: [60, 0, 25, 0, 15, 0], summary: true },
|
||||||
{ subtitle: "Per Arrow", type: "damage", multiplier: 10, conversion: [60, 0, 25, 0, 15, 0]},
|
{ subtitle: "Per Arrow (60)", type: "damage", multiplier: 10, conversion: [60, 0, 25, 0, 15, 0]}
|
||||||
] },
|
],
|
||||||
|
HAWKEYE: [
|
||||||
|
{ subtitle: "Total Damage (Hawkeye)", type: "damage", multiplier: 400, conversion: [60, 0, 25, 0, 15, 0], summary: true },
|
||||||
|
{ subtitle: "Per Arrow (5)", type: "damage", multiplier: 80, conversion: [60, 0, 25, 0, 15, 0]}
|
||||||
|
],
|
||||||
|
} },
|
||||||
{ title: "Escape", cost: 3, parts: [
|
{ title: "Escape", cost: 3, parts: [
|
||||||
{ subtitle: "Landing Damage", type: "damage", multiplier: 100, conversion: [50, 0, 0, 0, 0, 50], summary: true },
|
{ subtitle: "Landing Damage", type: "damage", multiplier: 100, conversion: [50, 0, 0, 0, 0, 50], summary: true },
|
||||||
] },
|
] },
|
||||||
|
@ -192,10 +207,16 @@ const spell_table = {
|
||||||
{ subtitle: "Fatality", type: "damage", multiplier: 120, conversion: [20, 0, 30, 50, 0, 0] },
|
{ subtitle: "Fatality", type: "damage", multiplier: 120, conversion: [20, 0, 30, 50, 0, 0] },
|
||||||
{ subtitle: "Total Damage", type: "total", factors: [10, 1], summary: true },
|
{ subtitle: "Total Damage", type: "total", factors: [10, 1], summary: true },
|
||||||
] },
|
] },
|
||||||
{ title: "Smoke Bomb", cost: 8, parts: [
|
{ title: "Smoke Bomb", cost: 8, variants: {
|
||||||
{ subtitle: "Tick Damage", type: "damage", multiplier: 60, conversion: [45, 25, 0, 0, 0, 30] },
|
DEFAULT: [
|
||||||
|
{ subtitle: "Tick Damage (10 max)", type: "damage", multiplier: 60, conversion: [45, 25, 0, 0, 0, 30] },
|
||||||
{ subtitle: "Total Damage", type: "damage", multiplier: 600, conversion: [45, 25, 0, 0, 0, 30], summary: true },
|
{ subtitle: "Total Damage", type: "damage", multiplier: 600, conversion: [45, 25, 0, 0, 0, 30], summary: true },
|
||||||
] },
|
],
|
||||||
|
CHERRY_BOMBS: [
|
||||||
|
{ subtitle: "Total Damage (Cherry Bombs)", type: "damage", multiplier: 330, conversion: [45, 25, 0, 0, 0, 30], summary: true },
|
||||||
|
{ subtitle: "Per Bomb", type: "damage", multiplier: 110, conversion: [45, 25, 0, 0, 0, 30] }
|
||||||
|
]
|
||||||
|
} },
|
||||||
],
|
],
|
||||||
"relik": [
|
"relik": [
|
||||||
{ title: "Totem", cost: 4, parts: [
|
{ title: "Totem", cost: 4, parts: [
|
||||||
|
|
18
display.js
18
display.js
|
@ -1,4 +1,4 @@
|
||||||
let nonRolledIDs = ["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","str", "dex", "int", "agi", "def", "fixID", "category", "id", "skillpoints", "reqs", "nDam_", "fDam_", "wDam_", "aDam_", "tDam_", "eDam_"];
|
let nonRolledIDs = ["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","str", "dex", "int", "agi", "def", "fixID", "category", "id", "skillpoints", "reqs", "nDam_", "fDam_", "wDam_", "aDam_", "tDam_", "eDam_", "majorIds"];
|
||||||
let rolledIDs = ["hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd"];
|
let rolledIDs = ["hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd"];
|
||||||
let reversedIDs = [ "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4" ];
|
let reversedIDs = [ "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4" ];
|
||||||
let colorMap = new Map(
|
let colorMap = new Map(
|
||||||
|
@ -1824,7 +1824,21 @@ function displaySpellDamage(parent_elem, overallparent_elem, build, spell, spell
|
||||||
part_divavg.classList.add("nomargin");
|
part_divavg.classList.add("nomargin");
|
||||||
overallparent_elem.append(part_divavg);
|
overallparent_elem.append(part_divavg);
|
||||||
|
|
||||||
for (const part of spell.parts) {
|
let spell_parts;
|
||||||
|
if (spell.parts) {
|
||||||
|
spell_parts = spell.parts;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
spell_parts = spell.variants.DEFAULT;
|
||||||
|
for (const majorID of stats.get("activeMajorIDs")) {
|
||||||
|
if (majorID in spell.variants) {
|
||||||
|
spell_parts = spell.variants[majorID];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
Loading…
Reference in a new issue